2019-2020 20174318张致豪《网络对抗技术》Exp5 信息搜集与漏洞扫描
Exp5 信息搜集与漏洞扫描
前期准备
一、实验目标与基础知识
1.1 实践目标
掌握信息搜集的最基础技能与常用工具的使用方法。
- 各种搜索技巧的应用
- DNS IP注册信息的查询
- 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点
- 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞
1.2 实践原理
信息搜集:渗透测试中首先要做的重要事项之一,搜集关于目标机器的一切信息
- 间接收集
- DNS记录扫描和枚举
- CorpWatch:
auxiliary/gather/corpwatch_lookup_name - 搜索引擎子域名搜集器:
auxiliary/gather/searchengine_subdomains_collector - 在线搜索工具
- GHDB
- 设备搜索:shodan,censys,zoomeye
- viewdns
- 直接收集
- 主机扫描:发现网络上的活动主机,
modules/auxiliary/scanner/discovery - 端口扫描:发现主机上的开放端口,通过
search portscan命令查看MSF中的端口扫描模块 - 版本探测:探测端口上的运行服务漏洞探测:探测服务是否有相应漏洞
- SMB(
auxiliary/scanner/smb/smb_)一种在 Microsoft Windows系统中使用网络文件共享的协议,已被证明是最容易被攻击的协议之一,它允许攻击者枚举目标文件和用户,甚至远程代码执行。 - SSH(
auxiliary/scanner/ssh)一个广泛使用的远程登录程序。 - FTP(
auxiliary/scanner/ftp) - SMTP(
auxiliary/scanner/smtp/smtp_) - SNMP(
auxiliary/scanner/snmp/snmp_enum)用于管理网络设备的协议,比如监控设备的状态信息,接口信息,网络接口的数据吞吐量等,通过SNMP扫描器可以找到特定系统的大量信息。如果目标系统为Windows且配置了SNMP(通常是RO/RW团体字符串),我们可以提取系统重启时间,系统上的用户名,系统网络信息,运行的服务等各种有价值的信息。 - HTTP(
auxiliary/scanner/http/)
- SMB(
- 漏洞探测:探测服务是否有相应漏洞
- NMAP:也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。
- 主机扫描:发现网络上的活动主机,
1.3 基础知识
1.信息搜集
- 外围信息搜集又叫公开渠道信息搜集。
- 搜索引擎,公共信息库,目标门户网站等等都是很好的入手点。
- metasploit有一类“辅助模块”,可以帮助你进行信息搜集的工作,并且还集成了nmap等神器。
主要方法有:
- 通过DNS和IP挖掘目标网站的信息
- whois域名注册信息查询
- nslookup,dig域名查询
- IP2Location 地理位置查询
- netcraft提供的信息查询服务
- IP2反域名查询
- 通过搜索引擎进行信息搜集
- Google Hacking
- 搜索网址目录结构
- 搜索特定类型的文件
- 搜索E-Mali
- 搜索存在sql注入的页面以及后台登陆的页面
- IP路由侦查工具traceroute
2.扫描技术
-
活跃主机扫描
- ICMP Ping命令
- metasploit中的模块
- Nmap探测
-
端口扫描
- metasploit的端口扫描模块
- Nmap端口扫描,一般用到的参数如下:
-sT -sS -sF/-sX/-sN -sP -sU -sA -Pn -p -F - 探测详细服务信息
Nmap -sV 参数
-
网络服务扫描
- telent服务扫描
- SSH服务扫描
- Oracle数据库服务查点
- 开放代理探测
3.网络漏洞扫描
漏洞扫描器会向目标发送大量数据包,甚至会导致目标系统拒绝服务,而且会有很多误报或漏报,因此需要人工分析。- OpenVAS漏洞扫描器
- 查找特定服务漏洞
实验步骤
一、各种搜索技巧的应用
1.搜索网址目录结构
-
原理:暴力破解一般就是指穷举法,它的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!(本实验以dir_scanner模块为例,获取网站目录结构)
-
方法:
- msfconsole
- use auxiliary/scanner/http/dir_scanner
- set THREADS 20
- set RHOSTS www.baidu.com
- exploit
-
可以找到以下这些目录

2.检测特定类型的文件
-
原理:
filetype能对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”-能在检索结果中获取检索词的补集,格式为“检索词 -词语”site能限制检索结果的来源,格式为“检索词 site:限制域名”(不要在“:”后的域名中输入“http:”和“www.”)inurl能在网址中进行搜索,格式为“检索词inurl:检索词”|表示布尔逻辑中的或者(or)关系,使用格式为“关键词1 | 关键词2”- 空格表示布尔逻辑中的交集(and)关系,使用格式为“关键词1 关键词2”
- 高级搜索界面,高级搜索界面的入口在搜索引擎首页右上角“设置”->“高级搜索”。
- 方法:
- 使用
site:edu.cn filetype:xls 学号

- 打开下载的文档,显示信息如下:

3.使用traceroute命令进行路由侦查
-
原理:traceroute 命令利用 ICMP 协议定位用户计算机和目标计算机之间的所有路由器。TTL 值可以反映数据包经过的路由器或网关的数量,通过操纵独立 ICMP 呼叫报文的 TTL 值和观察该报文被抛弃的返回信息,traceroute 命令能够遍历到数据包传输路径上的所有路由器。本实验以侦查百度为例。
-
方法:输入命令
tracert www.baidu.com

- 从左到右的5条信息分别代表了“生存时间”(每途经一个路由器结点自增1)、“三次发送的ICMP包返回时间”(共计3个,单位为毫秒ms)和“途经路由器的IP地址”(如果有主机名,还会包含主机名)。其中带有星号(*)的信息表示该次ICMP包返回时间超时。
二、DNS IP 注册信息的查询
1.whois查询
-
原理:
whois用来进行域名注册信息查询。 -
方法:在终端输入
whois gitee.com可查询到 3R 注册信息,包括注册人的姓名、组织和城市等信息。 -
注:进行 whois 查询时去掉 www 等前缀,因为注册域名时通常会注册一个上层域名,子域名由自身的域名服务器管理,在 whois 数据库中可能查询不到。

2.nslookup,dig域名查询
nslookup:
-
原理:
nslookup可以得到 DNS 解析服务器保存的 Cache 的结果,但并不是一定准确的。 -
方法:在终端输入
nslookup gitee.com

dig:
-
原理:
dig可以从官方 DNS 服务器上查询精确的结果。 -
方法:在终端输入
dig gitee.com

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

3.IP2Location 地理位置查询
-
原理:www.maxmind.com网站可以根据IP查询地理位置。
-
方法:利用
ping www.baidu.com的查看网站的 IP 地址 -> 打开网站网页 www.maxmind.com ->在网站下方输入 IP ->点击前往查看结果


- 该网站还可以查看当前主机的地理位置:

-
原理:IP-ADDRESS 这个网站可以查询到更详细的关于 IP 的信息
-
方法:网页初始界面会显示自己本机的 IP 地址,在左上角的框框里可以输入想要查询的IP,如 14.215.177.38 为百度的 IP ,14.107.84.158 为本机的 IP


4.IP2反域名查询
- 原理:shodan搜索引擎可以进行反域名查询,可以搜索到该 IP 的地理位置、服务占用端口号,以及提供的服务类型.
- 方法:打开网站,输入 IP 地址,可以看到地理位置,端口号和提供的服务具体信息

三、基本的扫描技术
1.主机发现
(1) PING- 原理:ping 命令用发送 ICMP 报文的方法检测活跃主机
- 方法:输入命令
ping www.baidu.com

(2)metasploit 中的 arp_sweep 模块和 udp_sweep 模块
-
原理 arp_sweep 和 udp_sweep 都是 metasploit 中位于 modules/auxiliary/scanner/discovery 中的模块。arp_sweep 使用 ARP 请求枚举本地局域网络中的所有活跃主机;udp_sweep 模块除了可以探测到存活主机之外,还可以获得主机名称信息
-
arp_sweep
- msfconsole
- use auxiliary/scanner/discovery/arp_sweep //进入arp_sweep 模块
- show options //查询模块参数
- set RHOSTS 192.168.0.105/24 //用set进行hosts主机段设置
- set THREADS 50 //加快扫描速度
- run //执行run进行扫描

- 如上图,其中192.168.0.105 为电脑主机的 IP 地址
udp_sweep
- msfconsole
- use auxiliary/scanner/discovery/udp_sweep //进入udp_sweep 模块
- show options //查询模块参数
- set RHOSTS 192.168.0.105/24 //用set进行hosts主机段设置
- set THREADS 50 //加快扫描速度
- run //执行run进行扫描

(3)nmap -sn
nmap相关参数如下:
-sS:TCP SYN扫描,可以穿透防火墙; -sA:TCP ACK扫描。有时候由于防火墙会导致返回过滤/未过滤端口; -sP:发送ICMP echo探测; -sT:TCP connect扫描,最准确,但是很容易被IDS检测到,不推荐; -sF/-sX/-sN:扫描特殊的标志位以避开设备或软件的监测; -O:启用TCP/IP协议栈的指纹特征信息扫描以获取远程主机的操作系统信息; -sV:获取开放服务的版本信息;
-
原理:nmap -sn 参数可以用来探测某网段的活跃主机
-
方法:输入命令
nmap -sn 192.168.0.105/24

(1)nmap -PU
-
原理:nmap -PU参数是对UDP端口进行探测,与udp_sweep模块功能相同。
-
方法:输入命令
nmap -PU 192.168.0.105/24

(1)nmap -O
-
原理:nmap -O 选项让 Nmap 对目标的操作系统进行识别,获取目标机的操作系统和服务版本等信息
-
方法:输入命令
nmap -O 192.168.0.105

2.nmap -sV
-
原理:nmap -sV 查看目标主机的详细服务信息
-
方法:输入命令
nmap -sV -Pn 192.168.0.105,其中 -Pn 是在扫描之前,不发送 ICMP echo 请求测试目标

4.具体服务的查点
metasploit中有许多相关工具,大部分都在 Scanner 辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名。
(1)Telnet服务扫描
-
原理:telnet命令用于登录远程主机,对远程主机进行管理。
-
方法:

(2)SSH服务
-
原理:SSH(“安全外壳”)协议是用于从一个系统安全远程登录到另一个的方法。用户通过客户端 - 服务器架构格式的不安全网络使用安全通道,用于将 SSH 客户端与 SSH 服务器连接起来。
-
方法:
- msfconsole
- use auxiliary/scanner/ssh/ssh_version //进入ssh模块
- set RHOSTS 192.168.0.105/24 //扫描网段
- set THREADS 50 //提高查询速度
- run

(3)Oracle数据库服务查点
-
方法:
- msfconsole
- use auxiliary/scanner/oracle/tnslsnr_version
- show options
- set RHOSTS 192.168.0.105/24
- set THREADS 200
- run

四、漏洞扫描——安装 OpenVAS
首先安装 OpenVAS,使用以下指令安装
apt-get update apt-get dist-upgrade apt-get install openvas openvas-setup
- 使用
openvas-check-setup进行检查,弹出过各种不同的错误,选取一种截图分享:

- 根据系统的提示,运行
greenbone-scapdata-sync进行文件更新,这里系统提示你缺少什么文件,你就更新什么文件,语句都是 greenbone-XXX-sync - 之后,创建新用户:
openvasmd --create-user=20174318 --role=Admin //创建用户 openvasmd --user=20174318 --new-password=123 //设置密码
- 随后,浏览器进入
https://127.0.0.1:9392,输入用户名和密码

- 在菜单栏选择
Tasks,进入后点击Task Wizard新建一个任务向导,在栏里输入192.168.0.107,点击Start Scans确认,开始扫描:


- 扫描结果如下:

- 打开结果查看详细信息:

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

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

- 看一下其中一个中级漏洞,可以看到其中的详细信息,包括介绍,还有具体的解决方案:

实验总结
一、基础问题回答
(1)哪些组织负责DNS,IP的管理?
『全球的根服务器都是在美国的,由美国政府授权的 ICANN 统一管理,另外,全球共有5个地区性注册机构:ARIN(北美地区),RIPE(欧洲地区),APNIC(亚太地区),LACNIC(拉丁美洲美洲),AfriNIC(非洲地区)。』
(2)什么是 3R 信息?
『Registrant注册人、Registrar注册商、Registry官方注册局。』
(3)评价下扫描结果的准确性。
『扫描结果实际操作完我认为是很准确的,没有出现什么偏差和误判,位置信息也很准确。』
二、实验总结与体会
本次实验的内容并不多,但是花的时间却特别多,主要是堵在了安装 OpenVAS 上(陆续花了三天),非常搞人心态,会弹出各种缺少文件,需要你不断的检查更新,每次都是窒息的20kb/s,漫长的等待,中间还碰上kali 的存储空间不够,解决未果后直接重开,新建了虚拟机;甚至还碰上了系统自动更新重启了主机,导致 kali 非正常关机,开机黑屏的问题,可谓困难重重。
当然,通过本次的实验,收获的知识还是很多的,学习并尝试了各种信息收集、漏洞扫描的方式,了解了漏洞的扫描和分析的基本方式,感觉在今后的学习中会派上用场。
下面我简单的分享一下我所遇到的问题。
- 搜索网址目录时返回错误

参考文章解决问题
- 安装 OpenVAS

运行 greenbone-scapdata-sync 进行文件更新,不断用 openvas-check-setup 检查更新,这里系统提示你缺少什么文件,你就更新什么文件,语句都是 greenbone-XXX-sync


浙公网安备 33010602011771号