2019-2020-2 20175310奚晨妍《网络对抗技术》Exp5 信息搜集与漏洞扫描

1 基础知识

1.1 信息搜集

  • 外围信息搜集又叫公开渠道信息搜集。
  • 搜索引擎,公共信息库,目标门户网站等等都是很好的入手点。
  • metasploit有一类“辅助模块”,可以帮助你进行信息搜集的工作,并且还集成了nmap等神器。

主要方法有:

  • 通过DNS和IP挖掘目标网站的信息
    • whois域名注册信息查询
    • nslookup,dig域名查询
    • IP2Location 地理位置查询
    • netcraft提供的信息查询服务
    • IP2反域名查询
    • ...等
  • 通过搜索引擎进行信息搜集
    • Google Hacking
    • 搜索网址目录结构
    • 搜索特定类型的文件
    • 搜索E-Mali
    • 搜索存在sql注入的页面以及后台登陆的页面
    • IP路由侦查工具traceroute

1.2 扫描技术

  • 活跃主机扫描

    • ICMP Ping命令
    • metasploit中的模块
    • Nmap探测
  • 端口扫描

    • metasploit的端口扫描模块

    • Nmap端口扫描,一般用到的参数如下:

      -sT  -sS -sF/-sX/-sN -sP -sU -sA -Pn -p -F
      
    • 探测详细服务信息

      Nmap -sV 参数
      
  • 网络服务扫描

    • telent服务扫描
    • SSH服务扫描
    • Oracle数据库服务查点
    • 开放代理探测

1.3 网络漏洞扫描

漏洞扫描器会向目标发送大量数据包,甚至会导致目标系统拒绝服务,而且会有很多误报或漏报,因此需要人工分析。

  • OpenVAS漏洞扫描器
  • 查找特定服务漏洞

Nmap是针对性扫描工具之一,其拥有很多script的脚本可供使用。

2 实验步骤

2.1 各种搜索技巧的应用

2.1.1 通过搜索引擎进行信息搜集

百度搜索filetype:xls 手机 site:edu.cn,会出现一堆文件格式为XLS的网址,且这些文件中包含手机相关信息。

点击某个网址,直接提示下载该文件,下载后打开,就可以获得某些信息了。下图是某大学毕业论文的统计表,里面包含了手机号这类敏感信息。

2.1.2 tracert

tracert可用于对经过的路由进行探测:在主机cmd中输入命令tracert www.baidu.com

2.1.3 搜索网址目录结构

自动化的工具:metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块,主要是暴力猜解。以dir_scanner为例,依次输入以下命令:

  • msf > use auxiliary/scanner/http/dir_scanner
  • msf auxiliary(scanner/http/dir_scanner) > set THREADS 50
  • msf auxiliary(scanner/http/dir_scanner) > set RHOSTS www.phpluntan.com
  • msf auxiliary(scanner/http/dir_scanner) > exploit

可以查询到网站的目录结构:

2.2 DNS IP注册信息的查询

2.2.1 whois域名注册信息查询

whois用来进行域名注册信息查询。在终端输入whois www.besti.edu.cn可查询到3R注册信息,包括注册人的姓名、组织和城市等信息。

以百度为例查询一下域名信息

从图中可以得到以下信息:

  • Domain Name网站名称:baidu.com
  • Registry Domain ID注册机构ID:11181110_DOMAIN_COM-VRSN
  • Registrar WHOIS Server注册服务器:whois.markmonitor.com
  • Domain Status是指域名状态:clientUpdateProhibited 表示客户端禁止转移 该状态由注册商设置,域名可以更新(域名信息修改)、续费、删除,最少需要填写一个DNS才能正常解析。
  • 等等,这里不再赘述

注意:进行whois查询时去掉www等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中可能查询不到。

2.2.2 nslookup,dig域名查询

nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的。dig可以从官方DNS服务器上查询精确的结果。从图中可以看到,查询百度的域名,这两种方式得到的结果是一样的。

除此之外,dig命令还有很多查询选项,每个查询选项被带前缀(+)的关键字标识。例如:

  • +[no]search:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
  • +[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
  • +[no]short:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。
  • +[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
  • ......

2.2.3 shodan地理位置查询

本来准备用老师推荐的IP2Location查询,由于需要FQ所以没用,选择了shodan。百度的搜索结果如下:

此外我还对自己的IP进行了搜索,查到了很多结果,但是结果好像不是很准确,虽然中国有7个结果但是我没找到自己。

2.2.4 IP2反域名查询

查询网址

2.3 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点

2.3.1 主机发现

  • ICMP Ping命令

使用命令ping www.baidu.com

  • metasploit中的模块

位于modules/auxiliary/scanner/discovery 主要有 arp_sweep, ipv6_multicast_ping,ipv6_neighbor, ipv6_neighbor_router_advertisement, udp_probe,udp_sweep。

arp_sweep 使用ARP请求枚举本地局域网的活跃主机,即ARP扫描器 udp_sweep 使用UDP数据包探测。

打开msfconsole,依次输入:

  • msf > use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块
  • msf auxiliary(scanner/discovery/arp_sweep) > set RHOSTS 10.10.10.0/24 //用set进行hosts主机段设置
  • msf auxiliary(scanner/discovery/arp_sweep) > set THREADS 50 //加快扫描速度
  • msf auxiliary(scanner/discovery/arp_sweep) > show options //查询模块参数
  • msf auxiliary(scanner/discovery/arp_sweep) > run //执行run进行扫描

扫描结果如下图所示:

  • Nmap探测

在Linux下使用nmap -sn 192.168.3.0/24寻找该网段下的活跃主机:

2.3.2 端口扫描

  • metasploit的端口扫描模块:利用metasploit中的auxiliary/scanner/portscan中的扫描器进行端口扫描,主要可以扫描以下五种端口:
    • ack:通过ACK扫描的方式对防火墙上未被屏蔽的端口进行探测
    • ftpbounce:通过FTP BOUNCE攻击的原理对TCP服务进行枚举
    • syn:使用发送TCP SYN标志的方式探测开放的端口
    • tcp:通过一次完整的TCP链接来判断端口是否开放
    • xmas:一种更为隐蔽的扫描方式,通过发送FIN,PSH,URG标志能够躲避一些TCP标记检测器的过滤

msfconsole中输入:auxiliary/scanner/portscan/tcp,设定IP地址后,输入run开始扫描:

  • Nmap端口扫描,一般用到的参数如下:

    -sT  -sS -sF/-sX/-sN -sP -sU -sA -Pn -p -F
    
    • 扫描类型:

      • -sT:TCP connect扫描
      • -sS:TCP syn扫描
      • -sF/-sX/-sN:通过发送一些标志位以避开设备或软件的检测
      • -sP:ICMP扫描
      • -sU:探测目标主机开放了哪些UDP端口
      • -sA:TCP ACk扫描
    • 扫描选项:

      • -Pn:在扫描之前,不发送ICMP echo请求测试目标是否活跃
      • -O:辨识操作系统等信息
      • -F:快速扫描模式
      • -p<端口范围>:指定端口扫描范围

在Linux下使用nmap -sS -Pn 192.168.3.13命令,其中-sS是TCP SYN扫描,-Pn是在扫描之前,不发送ICMP echo请求测试目标:

  • 探测详细服务信息

    Nmap -sV 参数
    

在Linux下使用nmap -sV -Pn 192.168.3.13命令,其中-sV用来查看目标机子的详细服务信息:

2.3.3 具体服务的查点

  • Telnet服务扫描
    • msf > use auxiliary/scanner/telnet/telnet_version //进入telnet模块
    • msf auxiliary(telnet_version) > set RHOSTS 192.168.3.0/24 //扫描192.168.3.0网段
    • msf auxiliary(telnet_version) > set THREADS 100 //提高查询速度
    • msf auxiliary(telnet_version) > run
  • SSH服务扫描

    • msf > use auxiliary/scanner/ssh/ssh_version

    • msf auxiliary(ssh_version) > set RHOSTS 192.168.3.0/24

    • msf auxiliary(ssh_version) > set THREADS 200

    • msf auxiliary(ssh_version) > run

  • Oracle数据库服务查点
    • msf > use auxiliary/scanner/oracle/tnslsnr_version
    • msf auxiliary(scanner/oracle/tnslsnr_version) > set RHOSTS 192.168.3.0/24
    • msf auxiliary(scanner/oracle/tnslsnr_version) > set THREADS 200
    • msf auxiliary(scanner/oracle/tnslsnr_version) > run
  • 开放代理探测:open_proxy模块
    • msf > use auxiliary/scanner/http/open_proxy
    • msf5 auxiliary(scanner/http/open_proxy) > set RHOSTS 192.168.3.0/24
    • msf5 auxiliary(scanner/http/open_proxy) > set THREADS 200
    • msf5 auxiliary(scanner/http/open_proxy) > run

2.3.4 OS及服务版本探测

  • 操作系统侦测用于检测目标主机运行的操作系统类型及设备类型等信息。
  • Nmap拥有丰富的系统数据库nmap-os-db,目前可以识别2600多种操作系统与设备类型。
  • OS侦测用法
-O: 指定Nmap进行OS侦测。  
--osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口)。  
--osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统。  

由于这里切换了无线网,所以IP地址发生了改变,主机IP从192.168.3.13变为192.168.0.105

2.4 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)

  • OpenVAS(Open Vulnerability Assessment System)是开放式漏洞评估系统,其核心部分是一个服务器。
  • 该服务器包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。
  • 该工具是基于C/S(客户端/服务器),B/S(浏览器/服务器)架构进行工作,用户通过浏览器或者专用客户端程序来下达扫描任务,服务器端负载授权,执行扫描操作并提供扫描结果。

2.4.1 安装OpenVAS

输入以下口令安装OpenVAS:

(1)更新软件包列表:# apt-get update
执行以上命令后,获取最近的软件包列表。

(2)获取到最新的软件包:# apt-get dist-upgrade
执行以上命令后,对有更新的包进行下载并安装。

(3)重新安装OpenVAS工具:# apt-get install openvas

2.4.2 配置OpenVAS服务

我在安装完之后输入openvas-check-setup总是提示没有OpenVAS Scanner,试了很久也没成功,最后重装了kali还是失败,所以我觉得暂时先跳过这一步。

输入sudo openvas-start启动,然后在浏览器打开https://127.0.0.1:9392这个网页,这时候由于没设置用户名和密码所以还不能登陆。输入下面的口令创建用户:

openvassd	启动扫描器
openvasmd --rebuild	生成数据库
openvasmd --create-user=admin --role=Admin && openvasmd --user=admin --new-password=admin	创建用户

创建完之后还是不能登陆,应该是没安装成功的原因,这时候再输入openvas-check-setup,他找到OpenVAS Scanner了!但是出现了新的错误:

$ ERROR: The NVT collection is very small.
$ FIX: RUN A synchronization script like green-nvt-sync.

输入sudo greenbone-nvt-sync更新nvt

重复运行openvas-check-setup,每次根据提示来进行下一步操作,之后输入的操作有:

openvasmd --rebuild
greenbone-scapdata-sync –refresh   生成scap.db文件
openvas-scapdata-sync	同步SCAP数据
openvas-certdata-sync	同步证书数据
openvasmd --create-user=20175310 --role=Admin 创建用户20175310
openvasmd --user=20175310 --new-password=5310 设置新密码(上一步系统会自动生成一个初始密码,为了方便进行更改,也可以不改)

最后看到这句installation is OK真的是感天动地感激涕零!!!三天了,终于成了!!!

然后打开浏览器,输入https://127.0.0.1:9392,输入刚刚的用户名和密码:

注意:若第一次打开该主页时提示该链接不安全之类的错误,需要打开Advanced,点击左下角,将https://127.0.0.1:9392设置为可信任的站点,即可正常打开。

看到这个界面说明登录成功了,至此配置OpenVAS服务全部完成。

2.4.3 新建任务,开始扫描

在菜单栏选择Tasks,进入后点击Task Wizard新建一个任务向导,在栏里输入172.20.10.9(待扫描主机的IP地址),并单击Start Scans确认,开始扫描。

几分钟后,扫描完成:

2.4.4 查看并分析扫描结果

  • CPE(Common Platform Enumeration):以标准化方式为软件应用程序、操作系统及硬件命名的方法。
  • CVE:一个条目列表,每个条目包含一个识别号、一个描述和至少一个公开的已知网络安全漏洞的公共引用。CVE条目用于世界各地的众多网络安全产品和服务,包括NVD。
  • NVT:网络漏洞测试

打开该扫描结果的详细信息,如下图所示:

点击Full and fast,以Amazon Linux Local Security Checks为例,点进去查看详细结果:

图中可以看到都标注了危险等级:

看一下其中一个中级漏洞:

3 实验中遇到的问题

3.1 使用metasploit中的arp_sweep扫描主机时报错

解决方法:这个方法按照顺序输入命令其实很简单,但是要注意两点:

  • 由于是扫描主机,所以设置的RHOST应该为主机的IP地址
  • 在启动msfconsole前应该先输入sudo su或者直接输入sudo msfconsole,我出错就是因为没有获取管理员权限

3.2 侦测os报错

解决方法:错误提示是主机下线了,我在主机输入ipconfig之后发现IP地址不再是192.168.3.13,应该是切换了无线网导致IP地址发生了变化,所以改成新的IP地址即可。

3.3 配置OpenVAS提示找不到OpenVAS scanner

解决方法:先输入apt-get remove openvas将安装包卸载,更换软件源,然后输入安装的三个命令进行重装,在输入第一个命令的时候出现了下面这个错误。

3.4 更新软件包列表报错,显示设备上没有空间

解决方法:输入df -h查看硬盘用量,发现/dev/sda1满了,使用率100%。

使用以下命令清理linux系统垃圾:

  • sudo apt-get autoclean 清理旧版本的软件缓存
  • sudo apt-get clean 清理所有软件缓存
  • sudo apt-get autoremove 删除系统不再使用的孤立软件

清理之后可用空间增多:

但是还是只有1.3G的空间,输入apt-get dist-upgrade还是报错说空间不够,见下一个问题。

3.5 输入apt-get dist-upgrade报错您在 /var/cache/apt/archives/ 上没有足够的可用空间。

解决方法:方法一是在3.4问题中提到的清理linux系统垃圾,但是刚刚已经尝试过了,还是不够,应该是最开始创建虚拟机时分配的内存太小,所以只能采用方法二,给虚拟机扩容

  • 在虚拟机关机状态下进入虚拟机设置,点击扩展
  • 提示说在部分链上无法执行所调用的函数。请打开父虚拟磁盘。,说明虚拟磁盘文件是分多个文件存储的,需要先将分割的多个文件整合成一个文件后才能扩容。(没这个错误直接进行下一步)
    • 进入vmware-vdiskmanager.exe工具目录,按住shift键,在文件夹空白处鼠标右键选择“在此处打开命令窗口”;
    • 输入下面的命令,将文件整合:vmware-vdiskmanager.exe -r "F:\kali\kali-000001.vmdk" -t 0 "F:\kali\test\kali-000001.vmdk"
    • 虽然是87%不是100%,但是显示整合成功,就可以直接下一步了。
  • 进入虚拟机设置,点击扩展,选择要设置的硬盘大小就可以了(扩展之前不要开机!!!我看到的教程说先开机再扩展,但是我第一次先开机再扩展还是会提示在部分链上无法执行所调用的函数。请打开父虚拟磁盘。这个错误,第二次不开机直接扩展就没有报错)
  • 经过漫长的等待后,扩展成功!可以开机啦~单还不算真正成功,因为还需要进行设置
  • 在终端输入fdisk /dev/sda开始分区:
    • 输入p显示当前的分区状况
    • 输入F查看可用的未分区空间
    • 输入n添加一个新分区
    • 选择中输入p创建主分区
    • 其他操作默认
    • 输入w保存该分区
  • 通过上面的操作,我们已经划分了新的分区,mkfs -t ext4 /dev/sda3把它格式化为ext4文件系统格式,供数据的存储与读取。
  • 最后还是没成功,因为扩展并没有使根分区,最后通过重装kali解决。

4 问题回答

4.1 哪些组织负责DNS,IP的管理。

全球根服务器均由美国政府授权的ICANN统一管理,负责DNS和IP地址管理。

全球一共有5个地区性注册机构:ARIN(北美地区),RIPE(欧洲地区),APNIC(亚太地区),LACNIC(拉丁美洲美洲),AfriNIC(非洲地区)

4.2 什么是3R信息。

  • 注册人Registrant
  • 注册商Registrar
  • 官方注册局Registry

4.3 评价下扫描结果的准确性。

扫描结果还是比较准确的,和实际相差不大。

5 实验体会

​ 这次实验最让人心累的是安装OpenVAS这一步,虽然只要短短三个口令,但我还是遇到了各种千奇百怪的问题,我出现的错误在老师的指导书里也没有类似的解答,只能自己研究。我也不知道为什么每次安装软件我都会遇到这么多问题,虚拟机也崩了好几次,最后重新装了kali,心态爆炸.....总的来说这次实验虽然经历千难万险,但最后还是顺利完成了,通过这次实验,学习并尝试使用了各种信息收集、漏洞扫描的方式,还掌握了漏洞的扫描和分析的基本方法,收益匪浅。

6 参考资料

0x51_信息搜集与NMAP.md

metasploit学习笔记之主机探测和端口扫描

Nmap 讲解从简到难---03

2017-2018-2 20155303『网络对抗技术』Exp6:信息收集与漏洞扫描

Linux中 [Error 28] 设备上没有空间

Linux /dev/sda1磁盘满了,清理办法。

关于VMware 15:在部分链上无法执行所调用的函数,请打开父虚拟磁盘

posted @ 2020-04-20 12:08  20175310xcy  阅读(541)  评论(1编辑  收藏  举报