一、实验名称

  信息搜集与漏洞扫描

 

二、实验目的

  掌握信息搜集的最基础技能与常用工具的使用方法。

 

三、实验内容

  1.各种搜索技巧的应用

  2.DNS IP注册信息的查询

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

  4.漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞

 

四、基础知识和实验准备

  1.traceroute (Windows系统下是tracert) 命令利用ICMP 协议定位用户计算机和目标计算机之间的所有路由器。TTL 值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP 呼叫报文的TTL 值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。

  2.nmap:是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(亦称 fingerprinting),以及用以评估网络系统安全。其基本功能有三个,一是探测一组主机是否在线;其次是扫描主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统。

  3.OpenVAS:是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题。最新版kali默认没有安装OpenVAS,需要先行下载安装。

 

五、实验过程记录

  5.1各种搜索技巧的应用

    5.1.1使用搜索引擎搜索特定类型的文件

    在百度引擎中输入“filetype:doc site:edu.cn 名单”,会出现大量格式为DOC的文件链接,随机点开一个(此处选择第一个),可以发现获奖单位中包含单位地址、负责人姓名和联系方式等信息。

漏洞扫描python 漏洞扫描报告_端口扫描

    5.1.2使用tracert指令进行路由跟踪

    在Windows终端输入“tracert www.besti.edu.cn”,追踪数据包传输路径上的所有路由。

 

漏洞扫描python 漏洞扫描报告_漏洞扫描python_02

    路由跟踪结果如下:

    ·58.248.21.113

漏洞扫描python 漏洞扫描报告_IP_03

    ·120.80.120.193

 

漏洞扫描python 漏洞扫描报告_TCP_04

    ·112.89.0.69

漏洞扫描python 漏洞扫描报告_漏洞扫描python_05

    ·219.158.112.25

 

漏洞扫描python 漏洞扫描报告_IP_06

    ·125.33.186.18

漏洞扫描python 漏洞扫描报告_TCP_07

    ·202.106.36.198、124.65.227.254、124.65.143.6 定位地址均为北京市 联通ADSL

 

漏洞扫描python 漏洞扫描报告_IP_08

    ·123.127.3.1

漏洞扫描python 漏洞扫描报告_漏洞扫描python_09

    由路由跟踪结果可知,我们学校的ISP应该是中国联通或中国网通,从我所处的位置访问学院官网需要经过广东省地区主干网,国家联通主干网,北京市联通ADSL。

    5.1.3搜索网址目录结构

    自动化的工具:Metasploit的dir_listing,dir_scanner等辅助模块可以搜索网址的目录结构,过程主要是暴力猜解,相当于穷举法。实验中使用dir_scanner,在kali终端进入msf控制器后,依次输入以下命令:

    use auxiliary/scanner/http/dir_scanner

    set RHOSTS www.besti.edu.cn/www.gdgzez.com.cn(广东广州二中官网)

    set THREADS 50          //设置并发进程数量,加快扫描速度

    exploit

漏洞扫描python 漏洞扫描报告_TCP_10

在搜索www.besti.edu.cn的目录结构时,发现什么都搜索不到,可能是防御措施相当到位。

 

漏洞扫描python 漏洞扫描报告_IP_11

    我转而搜索广州二中的官网,通过上述指令,可以查询到该网站的目录结构,包括Admin、News、USER等。

 

  5.2 DNS IP注册信息的查询

    5.2.1 whois域名注册信息查询

漏洞扫描python 漏洞扫描报告_端口扫描_12

漏洞扫描python 漏洞扫描报告_漏洞扫描python_13

    可以得到诸如注册商(Registrar)、注册人(Registrant)、官方注册局ID(Registry Domain ID)、状态、注册时间、注册人联系邮箱等信息。

    注意:使用whois查询时需要去掉www前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在whois数据库中大概率查询不到(如上图所示)。

    5.2.2 nslookup,dig域名查询

    nslookup是一个非常有用的查询域名信息的命令,主要用来诊断域名系统 (DNS) 基础结构的信息,一般得到的是非权威应答。

    dig可以从官方DNS服务器上查询精确的结果。

漏洞扫描python 漏洞扫描报告_IP_14

漏洞扫描python 漏洞扫描报告_漏洞扫描python_15

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

    ·+[no]search:使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。

    ·+[no]trace:切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。

    ·+[no]short:当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。

    ·+[no]stats:该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。

    5.2.3 IP地理位置查询

漏洞扫描python 漏洞扫描报告_IP_16

 

 

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

    5.3.1主机扫描

    (1)ping命令探测主机是否在线,但一般会受到防火墙的拦截

      在kali终端输入“ping 192.168.1.10(Windows系统的IP)”。

      关闭防火墙:

漏洞扫描python 漏洞扫描报告_IP_17

      开启防火墙后,就无法ping通目标主机了。为防止洪泛攻击,多数计算机的防火墙设置了对ping不应答(如下图所示)。

漏洞扫描python 漏洞扫描报告_IP_18

    (2)nmap扫描

      在kali终端输入“nmap -sn 192.168.1.0/24”,查询该网段下的活跃主机。

 

漏洞扫描python 漏洞扫描报告_漏洞扫描python_19

    (3)Metasploit中的模块,如arp_sweep,通过使用ARP请求枚举本地局域网中的活跃主机

      在kali终端使用root用户进入msf控制器后,依次输入以下命令:

      use auxiliary/scanner/discovery/arp_sweep

      set RHOSTS 192.168.1.0/24

      set THREADS 50

      run

漏洞扫描python 漏洞扫描报告_漏洞扫描python_20

    5.3.2端口扫描(此时Windows的IP变更为192.168.1.12)

    (1)Metasploit的端口扫描模块

      利用metasploit中的auxiliary/scanner/portscan中的扫描器可以进行端口扫描,在kali终端使用root用户进入msf控制器后,输入“use auxiliary/scanner/portscan”,会显示以下五种扫描方式:

      ·ack      :通过ACK扫描的方式对防火墙上未被屏蔽的端口进行探测

      ·ftpbounce   :通过FTP BOUNCE攻击的原理对TCP服务进行枚举

      ·syn      :使用发送TCP SYN标志的方式探测开放的端口

      ·tcp      :通过一次完整的TCP链接来判断端口是否开放

      ·xmas     :一种更为隐蔽的扫描方式,通过发送FIN,PSH,URG标志能够躲避一些TCP标记检测器的过滤

      进而选择扫描方式(实验中我选择了TCP SYN和TCP两种方式)

      use 2          //选择TCP SYN端口扫描方式

      set RHOSTS 192.168.1.12

      set THREADS 50

      exploit

漏洞扫描python 漏洞扫描报告_漏洞扫描python_21

      实验中我发现这种扫描方式耗时相当长,是TCP端口扫描方式耗时的3倍以上,但隐蔽性可能比较好。

      换用另一种端口扫描方式,依次在终端输入:

      use 3          //选择TCP端口扫描方式

      set RHOSTS 192.168.1.12

      set THREADS 50

      exploit

漏洞扫描python 漏洞扫描报告_漏洞扫描python_22

    (2)nmap扫描

      在kali终端进入root用户后输入“nmap -sS 192.168.1.12”。

      nmap端口扫描常用参数如下:

      ·-sT:TCP connect扫描

      ·-sS:TCP SYN扫描

      ·-sP:ICMP扫描

      ·-sU:探测目标主机开放了哪些UDP端口

      ·-sA:TCP ACk扫描

      ·-Pn:在扫描之前,不发送ICMP echo请求测试目标是否活跃

      ·-F:快速扫描模式

      ·-p<端口范围>:指定端口扫描范围(如下图中 -p 0-1024)

漏洞扫描python 漏洞扫描报告_TCP_23

    5.3.3 OS及服务版本探测

    (1)OS探测

      在kali终端输入“nmap -O 192.168.1.12”,参数“-O”表示嗅探目标计算机的操作系统等相关信息。

漏洞扫描python 漏洞扫描报告_端口扫描_24

    (2)服务版本探测

      在kali终端输入“nmap -sV 192.168.1.12”,参数“-sV”表示嗅探目标计算机的详细服务信息及版本。

漏洞扫描python 漏洞扫描报告_端口扫描_25

    5.3.4具体服务的查点

    (1)Telnet服务扫描

      Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。

漏洞扫描python 漏洞扫描报告_IP_26

漏洞扫描python 漏洞扫描报告_IP_27

      网段内普遍回应都是“unreachable”,意外地发现192.168.1.202可以到达。

    (2)SSH服务扫描

      SSH(安全外壳协议)是建立在应用层基础上的安全协议。SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

 

漏洞扫描python 漏洞扫描报告_漏洞扫描python_28

    (3)NetBios网络服务扫描

      NetBios服务的扫描结果受防火墙的影响比较大,目标计算机开启防火墙后将很难搜索到有用的信息。

      Windows开启防火墙:

漏洞扫描python 漏洞扫描报告_漏洞扫描python_29

      Windows关闭防火墙:

漏洞扫描python 漏洞扫描报告_端口扫描_30

 

 

  5.4漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞

    5.4.1 OpenVAS的安装和使用

      安装时会使用如下指令:

      sudo apt-get update

      sudo apt-get dist-upgrade

      sudo apt-get install openvas

      sudo openvas-setup

      openvas-check-setup

      sudo su

      openvasmd --user=admin --new-password=123456

漏洞扫描python 漏洞扫描报告_TCP_31

漏洞扫描python 漏洞扫描报告_IP_32

漏洞扫描python 漏洞扫描报告_IP_33

    输入“openvas-start”后出现上图所示提示框,直接复制网址https://127.0.0.1:9392,在浏览器中打开,输入上述指令设置的用户名admin和密码123456。

    5.4.2 漏洞扫描结构分析

    选择Tasks—>Task Wizard,新建一个任务向导,在提示框中输入192.168.1.12(目标主机的IP地址),并单击Start Scans确认,开始扫描。

漏洞扫描python 漏洞扫描报告_漏洞扫描python_34

    打开扫描结果的详细信息,点击“Full and fast”

漏洞扫描python 漏洞扫描报告_端口扫描_35

    进入后我随意点开了几个看看,此处选择最后一项:Windows:Microsoft Bulletins。

漏洞扫描python 漏洞扫描报告_TCP_36

漏洞扫描python 漏洞扫描报告_TCP_37

    此处我选择了下图第七项“Adobe Flash Player Microsoft Edge and Internet Explorer Security Update(apsb19-19)-Windows”,看看我常用的浏览器Microsoft Edge和IE有什么漏洞(还是10.0分的)。

 

漏洞扫描python 漏洞扫描报告_TCP_38

    从下图报告中,我们可以得到此漏洞感染的软件/操作系统(Affected Software/OS)、可造成的冲击(Impact)、解决方案(Solution)以及官方的参考资料(References)等信息。

漏洞扫描python 漏洞扫描报告_IP_39

漏洞扫描python 漏洞扫描报告_IP_40

 

 

六、问题回答

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

  答:全球根服务器均由美国政府授权的Internet Corporation for Assigned Names and Numbers (ICANN)统一管理,负责全球域名根服务器,DNS和IP地址管理。由其设立的三个支持组织分别是:

    (1)地址支持组织(ASO) 负责IP地址系统的管理

    (2)域名支持组织(DNSO) 负责互联网上的域名系统(DNS)的管理

    (3)协议支持组织(PSO) 负责涉及Internet协议的唯一参数的分配

    目前全球有5个地区性注册机构:

    (1)ARIN主要负责北美地区业务

    (2)RIPE主要负责欧洲地区业务

    (3)APNIC主要负责亚太地区业务

    (4)LACNIC主要负责拉丁美洲地区业务

    (5)AfriNIC主要负责非洲地区业务。

  2.什么是3R信息。

  答:Registrant(注册人)、Registrar(注册商)、Registry(官方注册局)。

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

  答:大部分还都比较准确,但受制于目标计算机的防护程度(如防火墙),部分扫描结果会失真。

 

七、实验总结与体会

  通过本次实验,我知道了网络信息的收集方式有网络踩点、网络查点和网络扫描,网络扫描又包括主机扫描、端口扫描、系统类型探查和漏洞扫描,相应的,也学习了很多配套的软件和指令。借助以上方式,我们可以在短时间内获取目标计算机或目标域名的大量信息,甚至可以猜测出目标的网络拓扑结构之类的信息。有矛就会有盾,打开防火墙,减少开放端口,使用端口扫描监测工具,记录日志,应用审计技术进行分析等方法可以有效防范相应的信息搜集技术。

  本次实验中,我从一个攻击者的角度对我的笔记本电脑进行了大量的信息搜集,更了解自己电脑的同时,也感慨于现如今的扫描技术之发达。本次实验令我受益匪浅,期待下次的实验能让我对这门课程有更深的理解和感悟。