20184313《网络对抗技术》Exp5 信息搜集与漏洞扫描

1 实践说明

1.1 实践目标

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

1.2 基础知识问答

(1)哪些组织负责DNS,IP的管理?

  • 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。全球根域名服务器:绝大多数在欧洲和北美(全球13台,用A~M编号),中国仅拥有镜像服务器(备份)。

  • 全球一共有5个地区性注册机构:ARIN主要负责北美地区业务,RIPE主要负责欧洲地区业务,APNIC主要负责亚太地区业务,LACNIC主要负责拉丁美洲美洲业务,AfriNIC负责非洲地区业务。

(2)什么是3R信息?

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

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

  • 还是挺准确的,可能是由于我的主机比较新,会定时安装Windows更新,所以没有太严重的漏洞,之后又扫描了Win2000的虚拟机,发现确实可以探测出很多的漏洞。

2 实践内容

2.1 各种搜索技巧的应用

2.1.1 Google搜索引擎扫描——Google Hacking

Google Hacking是利用谷歌搜索引擎,配合一些语法,在互联网中实现开放式搜索,找到我们需要的信息。轻量级的搜索可以搜素出一些遗留后门,不想被发现的后台入口;中量级的搜索出一些用户信息泄露,源代码泄露,未授权访问等;重量级扫描则可能是mdb文件下载,CMS 未被锁定install页面,网站配置密码,php远程文件包含漏洞等重要信息。

image-20210418220329707

  • 点击左侧的搜索图标,可以自主输入想要搜索的内容

image-20210418220446525

2.1.2 msf搜索引擎扫描——搜索网址目录结构

方法是利用msf自动化的工具:例如metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块,主要是暴力猜解。

  • dir_scanner模块
  • kali中进入msf控制台,使用metasploit的辅助模块dir_scanner进行暴力猜解,目的是获取目的网站的目录结构
use auxiliary/scanner/http/dir_scanner		#引入dir_scanner模块
info										#显示配置信息
set RHOST www.baidu.com						#设置扫描目标
set THREADS 50								#设置线程数,加快速度
run											#开始运行

image-20210418221553266

  • 由下图可见,扫描到了很多的baidu.com的子网页

image-20210418221725961

  • dir_listing模块
use auxiliary/scanner/http/dir_listing		#引入dir_listing模块
show options								#显示配置信息
set RHOSTS www.baidu.com					#设置扫描目标
run											#开始运行

image-20210418222030988

image-20210418222912259

  • brute_dirs模块
use auxiliary/scanner/http/brute_dirs	#引入brute_dirs模块
show options							#显示配置信息
set RHOSTS www.baidu.com				#设置扫描目标
run										#开始运行

image-20210418223252760

image-20210418223548928

2.1.3 搜索特定类型的文件——结合Google搜索引擎语法的扫描

  • 网页输入:site:<域名> filetype:<文件类型> <检索信息>
  • 扫描出互联网上该域名下符合条件的文件

image-20210418223811378

  • 打开下载文件,可以获得相应信息

image-20210418223953214

2.1.4 搜索E-Mali

metasploit中有search_email_collector,进行针对性的搜集。它的功能是查找搜索引擎(google、bing、yahoo),收集和某个域名有关的邮箱地址。

由于使用搜索引擎,所以并不保证100%可靠。

黑客可以利用这些信息进行网络钓鱼,骗取个人信息。

  • 输入指令
use auxiliary/gather/search_email_collector		#引入search_email_collector模块
show options									#显示配置信息
set DOMAIN baidu.com							#搜索和百度有关的邮箱地址
set OUTFILE 4313cn.txt							#设置输出文件
set SEARCH_GOOGLE false							#由于网络原因,无法使用Google
set SEARCH_YAHOO false							#由于网络原因,无法使用雅虎
run												#开始运行

image-20210418225349148

  • 找到的结果

image-20210418225458835

2.1.5 IP路由侦查

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

  • 使用工具:traceroute
  • 命令格式

    traceroute [参数] [主机]

  • 命令功能

    traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

    具体参数格式:traceroute [-dFlnrvx] [-f<存活数值>] [-g<网关>...] [-i<网络界面>] [-m<存活数值>] [-p<通信端口>] [-s<来源地址>] [-t<服务类型>] [-w<超时秒数>] [主机名称或IP地址] [数据包大小]

  • 命令参数

    -d 使用Socket层级的排错功能。

    -f 设置第一个检测数据包的存活数值TTL的大小。

    -F 设置勿离断位。

    -g 设置来源路由网关,最多可设置8个。

    -i 使用指定的网络界面送出数据包。

    -I 使用ICMP回应取代UDP资料信息。

    -m 设置检测数据包的最大存活数值TTL的大小。

    -n 直接使用IP地址而非主机名称。

    -p 设置UDP传输协议的通信端口。

    -r 忽略普通的Routing Table,直接将数据包送到远端主机上。

    -s 设置本地主机送出数据包的IP地址。

    -t 设置检测数据包的TOS数值。

    -v 详细显示指令的执行过程。

    -w 设置等待远端主机回报的时间。

    -x 开启或关闭数据包的正确性检验。

  • kali中输入:traceroute www.baidu.com,可以跟踪到百度服务器经过的30个路由器的过程

img

  • 出现 * 的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
  • windows下cmd输入:

    tracert www.baidu.com
    

    同样可以跟踪到信息

    • 第一列代表了“生存时间”(每途经一个路由器结点自增1)
    • 第二至第四列表示“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)
    • 第五列表示“途经路由器的IP地址”(如果有主机名,还会包含主机名)
    • 带有星号(*)的信息表示该次ICMP包返回时间超时。

image-20210418232005352

2.2 DNS IP注册信息的查询

2.2.1 whois域名注册信息查询

通过whois命令查询,可以获得域名信息、子域信息、服务器位置信息、3R注册信息等内容

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

在msfconsole中输入:

whois baidu.com

image-20210418230853850

2.2.2 nslookup,dig域名查询

nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的

  • kali中进入msf控制台,输入:
nslookup
set type=A
baidu.com

image-20210418231440299

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

  • 进入msf控制台,输入:dig @dns.baidu.com baidu.com,其中dns.baidu.com为DNS服务器
  • 与nslookup查询结果一致

image-20210418231806169

2.2.3 IP2反域名查询

  • 联网ping了一下百度

image-20210418232123529

image-20210418232249183

  • 输入目的IP域名,可以看到此IP对应的地理位置、编码(ASN)、互联网服务提供商(ISP)等信息

img

img

2.2.4 IP2Location 地理位置查询

img

2.3 基本的扫描技术

2.3.1 活跃主机扫描

(1)ping命令:ICMP查询

image-20210418233130026

(2)metasploit中的模块扫描

  • modules/auxiliary/scanner/discovery中的arp_sweep, ipv6_multicast_ping, ipv6_neighbor, ipv6_neighbor_router_advertisement, udp_probeudp_sweep

  • arp_sweep扫描

  • msfconsole下输入:

    use modules/auxiliary/scanner/discovery/arp_sweep	#引入search_email_collector模块
    set RHOST 192.168.3.106								#设置扫描目标
    set THREADS 20										#设置线程数,加快扫描速度
    show options										#显示配置
    exploit												#开始扫描
    

image-20210418235530730

  • nmap扫描

    在msfconsole中输入nmap -sP 192.168.3.0/24,表示对192.168.3.0~192.168.3.255的子网进行扫描,检测到了以下的主机。

image-20210418235752697

2.3.2 端口扫描

(1)使用MSF中的auxiliary模块扫描自己的winXP主机

use auxiliary/scanner/portscan/tcp		#引入auxiliary模块
show options							#显示配置
set RHOSTS 192.168.43.0/24				#设置扫描目标
set THREADS 100							#设置线程数,加快扫描速度
set PORTS 1-1024						#设置端口范围
exploit									#开始扫描

image-20210419091502323

(2)使用nmap扫描目标主机

  • 使用nmap -sS 192.168.43.32可以看见开放的TCP端口与对应的服务

image-20210419083900907

  • 扫描主机win10也可以看到其开放的端口

img

2.3.3 OS及服务版本探测

(1)使用nmap扫描自己的win10主机

  • 使用nmap -O -Pn 192.168.43.39获取目标机的操作系统和服务版本等信息

image-20210419085153143

  • 没扫描出来版本信息等消息
  • 提示信息:No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
Filtered(过滤的):由于报文无法到达指定的端口,nmap不能够决定端口的开放状态,这主要是由于网络或者主机安装了一些防火墙所导致的。当nmap收到icmp报文主机不可达报文或者目标主机无应答,常常会将目标主机的状态设置为filtered
  • 尝试加入-A扫描,识别到操作系统为Win10 Pro 19042

image-20210419090444171

  • 换成WinXP SP3虚拟机试试,扫出了是winXP SP2/3

image-20210419091015790

(2)使用nmap -sV 192.168.43.39查看目标主机的详细服务信息

image-20210419093455142

image-20210419093606574

2.3.4 具体服务的查点

每个具体服务的探测都对应一个msf模块,可以在modules/auxiliary/scanner中进行搜索

(1)Telnet服务扫描

Telnet先天缺乏安全性的网络服务,对于传输数据不进行加密,一般管理员大多使用SSH协议代替telnet。在渗透进入一个网络时,可以扫描一下是否有主机设备开启telnet服务。
  • 进入msf控制台,输入以下命令:
use auxiliary/scanner/telnet/telnet_version		#导入telnet模块
show options									#查看设置信息
set RHOSTS 192.168.43.1/24						#设置扫描网段
set THREADS 50									#设置线程数提高查询速度
run												#开始扫描

image-20210419094156836
image-20210419094111005

  • 可以看到开启了telnet服务的设备(由于我的热点没有接入太多的设备,所以大部分是关闭的)

(2)SSH服务扫描

SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将SSH客户端与SSH服务器连接起来。一般是linux系统上最常见的远程管理服务,SSH采用了安全的加密信息传输方式。如果管理员没有限制管理员登录的ip地址或mac地址,可获取服务器口令登录服务器,对网络中开发的SSH服务主机进行扫描。
  • 同样进入msf控制台,输入命令:
use auxiliary/scanner/ssh/ssh_version			#导入进入ssh模块
set RHOSTS 192.168.3.0/24						#设置扫描网段
set THREADS 50									#设置线程数,提高查询速度
run												#开始扫描

image-20210419094504024

image-20210420211452274

  • 再次扫描,发现192.168.3.139的主机运行SSH-2.0-OpenSSH_7.3版本的SSH服务

image-20210420211749436

(3)Oracle数据库服务扫描

use auxiliary/scanner/oracle/tnslsnr_version		#导入oracle模块
set RHOSTS 192.168.3.0/24							#设置扫描网段
set THREADS 50										#设置线程数,提高查询速度
run													#运行

image-20210420220537560

  • 可以看到没有找到开启SSH服务的主机,但我之前在学习数据库课程时安装过MySQL,尝试使用mysql_version模块扫描开启MySQL服务的主机。
use auxiliary/scanner/oracle/mysql_version			#导入mysql_version模块
set RHOSTS 192.168.3.0/24							#设置扫描网段
set THREADS 50										#设置线程数,提高查询速度
run													#运行
  • 发现192.168.3.142的主机开启了版本为8.0.21的MySQL服务。

image-20210420220419341

2.4 漏洞扫描

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

2.4.1 安装GVM

apt-get update					#更新软件库
apt-get upgrade					#升级软件
apt-get dist-upgrade			#升级系统
apt-get install gvm				#安装gvm
gvm-setup						#gvm初始化,花费时间较长,由于网络原因可能会失败,需要多次重复
  • 其中遇到选择一路“Y”同意即可

img

  • 安装完成后会自动生成默认的管理员账号和密码(可自己修改)

img

  • 使用gvm-check-setup检查安装是否成功

image-20210420222928622

2.4.2 使GVM用进行漏洞扫描与分析

  • 输入gvm-start启动OpenVAS会自动弹出网页

    或者或者可以在kali菜单中选择漏洞分析菜单中的gvm start来启动。

    如果表示root用户,可能不能自动打开浏览器,也可以打开浏览器,在搜索栏输入https://127.0.0.1:9392进入网页

  • 输入用户名和密码登录

image-20210420223459318

  • 新建任务scanTasksTask Wizard

image-20210420223704894

image-20210420223900474

  • 输入扫描主机IP:192.168.3.123

  • 开始扫描:Start Scans

image-20210420224527569

  • 扫描完成后点击Last Report即可查看报告

image-20210421105901722

  • 还可以生成pdf格式的报告,以供阅读

image-20210421112658530

  • 下载下来就可以方便的查看

image-20210421112853749

  • 报告分为两部分,第一部分介绍了被扫描主机的大致情况,列举了每个主机的威胁情况。可以看到,我的win10主机有两个中等程度的漏洞

image-20210421113448734

  • 可以看到探测到了我的主机的操作系统为Win10Pro 20H2

image-20210421113630895

  • 第一个漏洞是DCE/RPC and MSRPC Services Enumeration Reporting(NVT:DCE/RPC和MSRPC服务枚举报告),该漏洞的描述为:

    通过连接端口135并执行适当的查询,可以枚举在远程主机上运行的分布式计算环境/远程过程调用(DCE/RPC)或MSRPC服务。

  • 可能造成的危害是:

    攻击者可以利用此事实获取有关远程主机的更多信息。

  • 此漏洞涉及的端口:

    Port: 1070/tcp

    UUID: 0b6edbfa-4a24-4fc6-8a23-942b1eca65d1, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[1070]

    UUID: 12345678-1234-abcd-ef00-0123456789ab, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[1070]
    Named pipe : spoolss
    Win32 service or process : spoolsv.exe
    Description : Spooler service

    UUID: 4a452661-8290-4b36-8fbe-7f4093a94978, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[1070]

    UUID: 76f03f96-cdfd-44fc-a22c-64950a001209, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[1070]

    UUID: ae33069b-a2a8-46ee-a235-ddfd339be281, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[1070]

    Port: 1071/tcp

    UUID: 6b5bdd1e-528c-422c-af8c-a4079be4fe48, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[1071]
    Annotation: Remote Fw APIs

    Port: 1073/tcp

    UUID: 367abb81-9844-35f1-ad32-98f038001003, version 2
    Endpoint: ncacn_ip_tcp:192.168.3.123[1073]

    Port: 49664/tcp

    UUID: 12345778-1234-abcd-ef00-0123456789ac, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[49664]
    Named pipe : lsass
    Win32 service or process : lsass.exe
    Description : SAM access

    UUID: 51a227ae-825b-41f2-b4a9-1ac9557a1018, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[49664]
    Annotation: Ngc Pop Key Service

    UUID: 8fb74744-b2ff-4c00-be0d-9ef9a191fe1b, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[49664]
    Annotation: Ngc Pop Key Service

    UUID: b25a52bf-e5dd-4f4a-aea6-8ca7272a0e86, version 2
    Endpoint: ncacn_ip_tcp:192.168.3.123[49664]
    Annotation: KeyIso

    Port: 49665/tcp

    UUID: d95afe70-a6d5-4259-822e-2c84da1ddb0d, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[49665]

    Port: 49666/tcp

    UUID: f6beaff7-1e19-4fbb-9f8f-b89e2018337c, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[49666]
    Annotation: Event log TCPIP

    Port: 49667/tcp

    UUID: 3a9ef155-691d-4449-8d05-09ad57031823, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[49667]

    UUID: 86d35949-83c9-4044-b424-db363231fd0c, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[49667]

    Port: 49668/tcp

    UUID: 29770a8f-829b-4158-90a2-78cd488501f7, version 1
    Endpoint: ncacn_ip_tcp:192.168.3.123[49668]

  • 给出的解决方案是:缓解,筛选到此端口的传入流量。因此可以在防火墙中配置相关入站规则,修复该漏洞。

  • 另外一个漏洞是SSL/TLS: Deprecated TLSv1.0 and TLSv1.1 Protocol Detection(SSL/TLS:已弃用的TLSv1.0和TLSv1.1协议检测)

  • 该漏洞的描述为:

    可以在此系统上检测不推荐使用的TLSv1.0和/或TLSv1.1协议的使用情况。

  • 可能造成的危害是:

    攻击者可能会利用已知的加密缺陷窃听客户端和服务之间的连接,以访问在安全连接中传输的敏感数据。
    此外,此协议中新发现的漏洞将不再接收安全更新。

  • 给出的解决方案是:缓解,建议禁用不推荐的TLSv1.0和/或TLSv1.1协议,以支持TLSv1.2+协议。有关更多信息,请参阅参考资料。

  • 按照这篇文章可以修复这个漏洞。

  • 禁用TLS1.0/1.1

image-20210421172552073

3 实验遇到的问题及解决方法

  1. GVM安装下载速度慢

    • 问题详情:由于要连接外网服务器进行下载,因此下载速度较慢,时常会断开连接。

    • 解决方法:使用代理,加速下载。

      • 参考方案

      • 安装proxychains
        sudo apt-get install proxychains

      • 配置 /etc/proxychains.conf

        vim /etc/proxychains.conf 在文件最后加上[代理协议] [代理IP] [代理端口]即可开启代理。

      image-20210421180040306

      • 然后对于任何程序,只要在其前面加上proxychains命令就可以,例如:

        proxychains gvm-setup

      • 代理前的下载速度:

        只有不到100kb/s

      image-20210421180702945

      • 使用代理后的下载速度:

        最快可达500kb/s

      image-20210421181211589

  2. gvm-setup报错

  • 报错:

    image-20210421175123686

    ERROR: The default postgresql version is not 13 required by libgvmd

    Error: Use pg_upgradecluster to update your postgres cluster

  • 错误原因:kali默认使用postgresql的版本是12,而openvas要13,并且12与13版本间不兼容

  • 解决方法:手动停用postgresql 12,启用postgresql 13。

    参考方法

    • 进入Postgresql 13的配置文件:
      vi /etc/postgresql/13/main/postgresql.conf

      image-20210421175212340

    • 将侦听端口改为5432:

      ![image-20210421175241642](D:\study\大三下\网络对抗\实验5\image-20210421175241642.png

    • 再进入Postgresql 12的配置文件,将其侦听端口改为任意其它端口:
      vi /etc/postgresql/12/main/postgresql.conf

    image-20210421175341607

    • 重启postgresql
      service postgresql restart
    • 再次gvm-setup:

    在这里插入图片描述

  1. GVM扫描失败
  • GVM开始扫描时提示Failed to find config 'daba56c8-73ec-11df-a475-002264764cea'

    image-20210421185649100

  • 这是由于安装时没有配置扫描策略,重新尝试安装gvm-setup并升级数据库gvm-feed-update即可解决

4 实验收获与感想

  • 本次实验其实没有什么很困难的点,主要在于学习并尝试使用了常用的信息收集、漏洞扫描等几种方式,很多方法之前在别的课程中有涉略到,但通过本次实验对漏洞扫描等的学习,能更直观的感受到扫描的结果以及其代表的含义,清楚地认识到扫描结果的意义。
  • 此外就是在安装OpenVAS时由于校网过慢花了很长时间,后来使用代理并查询了很多的资料才得以解决。
posted @ 2021-04-21 19:47  浩夜星空  阅读(1181)  评论(0编辑  收藏  举报