2020-2021-2 20181304石昊林《网络对抗技术》 Exp5 信息搜集与漏洞扫描
信息搜集与漏洞扫描
实验内容
- 实践目标
- 掌握信息搜集的最基础技能与常用工具的使用方法。
- 实践内容
- 各种搜索技巧的应用。
- DNS IP注册信息的查询。
- 基本的扫描技术:主机发现、端口扫描、OS及服务版本探测、具体服务的查点(以自己主机为目标)。
- 漏洞扫描:会扫,会看报告,会查漏洞说明,会修补漏洞(以自己主机为目标)。
实验准备
1. 信息搜集
- 概念:信息收集是指通过各种方式获取所需要的信息。信息收集是信息得以利用的第一步,也是关键的一步。信息收集工作的好坏,直接关系到整个信息管理工作的质量。
- 分类:信息可以分为原始信息和加工信息两大类。
- 原始信息是指在经济活动中直接产生或获取的数据、概念、知识、经验及其总结,是未经加工的信息。
- 加工信息则是对原始信息经过加工、分析、改编和重组而形成的具有新形式、新内容的信息。两类信息都对企业的营销管理活动发挥着不可替代的作用。
- 收集原则:准确性原则、全面性原则、时效性原则。
- 准确性原则:该原则要求所收集到的信息要真实可靠。这个原则是信息收集工作的最基本的要求。为达到这样的要求,信息收集者就必须对收集到的信息反复核实,不断检验,力求把误差减少到最低限度。
- 全面性原则:该原则要求所搜集到的信息要广泛,全面完整。只有广泛、全面地搜集信息,才能完整地反映管理活动和决策对象发展的全貌,为决策的科学性提供保障。
- 时效性原则:信息的利用价值取决于该信息是否能及时地提供,即它的时效性。信息只有及时、迅速地提供给它的使用者才能有效地发挥作用。
- 收集步骤:①制定收集计划;②设计收集提纲和表格;③明确信息收集的方式和方法;④提供信息收集的成果。
- 意义:渗透测试中首先要做的重要事项之一。
- 目的:尽可能多的查找关于目标的信息。我们掌握的信息越多,渗透成功的机会越大。
- 任务:搜集关于目标机器的一切信息。比如IP地址,开放的服务,开放的端口。
- 方法:间接信息搜集、直接信息搜集、社会工程学。
- 间接收集:即不接触目标(无物理连接,不访问目标)。方法为使用第三方信息源(例如查询whois信息;数据窃听与分析)。间接收集还可以用于调查取证。
- 直接收集:即建立逻辑连接并获取信息,用于对目标的安全性设置进一步理解。方法为主动扫描技术,探测目标开放的端口和服务。
- 社会工程学:主要是针对人为错误,信息以打印输出、电话交谈、电子邮件等形式泄露。方法主要有伪装、诱骗等。
实验过程
1.各种搜索技巧的应用
- (1)使用metasploit的brute_dirs,dir_listing,dir_scanner等辅助模块,主要的手段是暴力猜测。
- brute_dirs
msfconcole
use auxiliary/scanner/http/brute_dirs
set THREADS 50
set RHOSTS www.baidu.com
exploit
这里Auxiliary是指辅助模块,该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描,嗅探,指纹识别等相关功能以辅助渗透测试。THREADS是设定攻击线程数量,上述我设置的攻击线程为50。
- dir_scanner
msfconsole
use auxiliary/scanner/http/dir_scanner
set THREADS 50
set RHOSTS www.baidu.com
exploit
- 查询结果分析:
- 1开头的http状态码表示临时响应并需要请求者继续执行操作的状态代码。
- 2开头的http状态码表示请求成功。
- 3xx(重定向)是重定向代码。
- 4开头的http状态码表示请求出错。
- 5开头状态码并不常见,我个人理解为硬件出现问题时报的错。
- brute_dirs
- (2)使用搜索引擎直接查找
- 原理:
filetype对搜索结果的文件类型进行限定,格式为“检索词 filetype:文件类型”
-能在检索结果中获取检索词的补集,格式为“检索词 -词语”
site能限制检索结果的来源,格式为“检索词-词语”
inurl能在网址中进行搜索,格式为“检索词 inurl:检索词”
|表示布尔逻辑中的或者(or)关系,使用格式为“关键词1|关键词2”
空格表示布尔逻辑中的交集(and)关系,使用格式为“关键词1 关键词2”
- 操作:使用必应搜索输入:site:edu.cn filetype:xls ,点开第二个链接(因为这个链接是咱们学校的……),会下载一个excel文件。
- 打开这个文件,这竟然是2020年的招生计划。
- 原理:
- (3)路由侦察
- Tracert是路由跟踪实用程序,用于确定IP数据包访问目标所采取的路径。Tracert命令用IP生存时间(TTL)字段和 ICMP错误消息来确定从一个主机到网络上其他主机的路由。
- 工作原理:通过向目标发送不同IP生存时间 (TTL) 值的“Internet控制消息协议 (ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
- 实际操作:
tracert www.baidu.com
,对百度经过的路由进行探测。结果如下图:
2.DNS IP注册信息的查询
- (1)whois查询
- 原理:用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
图中可得到的一些信息:
注册机构Domain Name:baidu.com
注册服务器Registry Domain ID:11181110_DOMAIN_COM-VRSN
更新时间2020-12-09T04:04:41Z
创建时间1999-10-11T11:05:17Z
- 原理:用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
- (2)nslookup查询
- 即域名查询。nslookup可以得到DNS解析服务器保存的Cache的结果,但并不一定是准确的。
- kali虚拟机执行:nslookup baidu.com,如下图:
- (3)dig域名查询
- dig命令是一个用于询问DNS域名服务器的灵活的工具。
- kali虚拟机执行:dig baidu.com,如下图:
结果与nslookup命令的结果是相同的,但是dig还有其它的关键字查询选项:+[no] search
使用(或不使用)索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。+[no] trace
切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。+[no] short
当启用“+short”选项时,显示(或不显示)提供应答的IP地址和端口号。+[no] stats
该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
- (4)IP2Location地理位置查询
- 在https://www.ip-adress.com/中查询IP的地理位置,如下图是查询百度的结果。
- 在https://www.maxmind.com中对220.181.38.148的ip进行查询,如下图:
- 在https://www.ip-adress.com/中查询IP的地理位置,如下图是查询百度的结果。
- (5)IP2反域名查询
- 通过Shodan搜索引擎进行反域名查询,获得百度ip的地理位置、服务占用端口号,以及提供的服务类型。如下图:
- 通过Shodan搜索引擎进行反域名查询,获得百度ip的地理位置、服务占用端口号,以及提供的服务类型。如下图:
3.基本的扫描技术
- (1)主机发现
- ping方式:使用kali虚拟机ping主机ip,结果如下:
- metasploit的arp_sweep模块和udp_sweep模块:arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机;udp_sweep模块除了可以探测到存活主机之外,还可以获得主机名称信息。
启用msf平台msfconsole
启用相应模块use auxiliary/scanner/discovery/XXX_sweep
设定主机段set RHOSTS ip
设置线程set THREADS 50
启用扫描run
- udp_sweep:
- udp_sweep:
- ping方式:使用kali虚拟机ping主机ip,结果如下:
- (2)端口扫描
- nmap
nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取哪台主机正在运行以及提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。 - 命令相关参数如下:
- -sT: TCP connect()扫描,这是最基本的TCP扫描方式,但是容易被IDS检测到,不推荐
- -sS: TCP同步扫描(TCP SYN),可以穿透防火墙
- -sF -sN: 秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式。扫描特殊的标志位以避开设备或软件的监测
- -sP: ping扫描
- -sU: UDP扫描
- -sA: ACK扫描
- -sW: 对滑动窗口的扫描
- -sR: RPC扫描
- -b: FTP反弹攻击
- 尝试在主机使用nmap软件进行扫描。使用
nmap -PU 192.168.0.116
命令,其中IP地址时我主机的ip,此命令是对UDP端口进行探测。结果如下图:
- 还可以在虚拟机内使用nmap命令进行扫描。使用命令
nmap -sT -p 1-1024 192.168.0.116/24
。使用TCP connect扫描1-1024端口。结果如下图:
- nmap
- (3)OS及服务版本探测
- 依然使用nmap。nmap -O是对目标机的OS进行识别,获取目标机的OS和服务版本等信息。结果如下图:
- nmap -sV:查看目标主机的详细服务信息。结果如下图:
我扫描虚拟机然后发现它端口都是close……
- 依然使用nmap。nmap -O是对目标机的OS进行识别,获取目标机的OS和服务版本等信息。结果如下图:
- (4)具体服务的点
msf平台中有许多相关工具,大部分都在scanner辅助模块,常以[service_name]_version(用以遍历主机,确定服务版本)和[service_name]_login(进行口令探测攻击)命名。- telnet服务扫描
use auxiliary/scanner/telnet/telnet_version
set RHOSTS 192.168.0.116/24
set THREADS 50
run
- SSH服务扫描
use auxiliary/scanner/ssh/ssh_version
set RHOSTS 192.168.0.116/24
set THREADS 50
run
- telnet服务扫描
4.漏洞扫描
- (1)openvas安装
apt-get update
apt-get dist-upgrade
apt-get install openvas
openvas-setup
这个过程会非常长……- 安装完成后我通过
sudo runuser -u _gvm -- gvmd --create-user=shihaolin --new-password=123456
指令更改了自己的用户名和密码,如下图:
- 登录,如下图:
- (2)新建扫描任务,执行漏洞扫描
- 选择菜单栏的Scans,然后点击Tasks;
- 鼠标移到左上角中间的图案,选择task wizard,输入要扫描的主机地址,点击start scan开始扫描。
结果如下:
点击reports可以查看更详细的报告。
选择了SSL/TLS这个,可以看到漏洞的危险等级。
- (3)漏洞修补:通过查看开放的端口,发现危险的就关闭它。
实验问题回答
- (1)哪些组织负责DNS,IP的管理?
答:全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器、DNS和IP地址管理。此外,地址支持组织(ASO)负责IP地址系统的管理,域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理,协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配。
还有五个地区性注册机构:RIPE(欧洲地区)、APNIC(亚太地区)、ARIN(北美地区)、LACNIC(拉丁美洲美洲)、AfriNIC(非洲地区)。 - (2)什么是3R信息?
答:3R分别指Registrant、Registrar、Registry,即注册人、注册商、官方注册局。 - (3)评价下扫描结果的准确性。
答:扫描结果绝大部分还是准确的,但是由于搜索引擎的不同结果还是有不同之处,会产生部分端口无法扫描出来的结果。
实验遇到的问题和反思
- 本次实验难度还好,就是有些消磨耐心。我在安装openvas时辛辛苦苦的安装了好久,但是因为一些未知错误还是失败了,最后不得已使用了别人的虚拟机镜像,还要更改配置环境什么的,总之比较耗费时间。
- 信息收集是渗透测试关键,掌握的信息越多,渗透成功的机会越大。只有掌握了漏洞,攻击才有可能实现。总之,本次实验还是受益匪浅。