一、实验目的和要求
了解信息搜集和漏洞扫描的一般步骤,利用Nmap等工具进行信息搜集并进行综合分析;掌握TCP全连接扫描、TCP SYN扫描的原理,利用Scapy编写网络应用程序,开发端口扫描功能模块;使用漏洞扫描工具发现漏洞并进行渗透测试。
二、实验步骤
1.主机探测
主机A开启命令行,对B进行ping探测,根据B的回复,可以确定主机A和B的连通情况,还可以根据回复数据包的TTL值对操作系统进行猜测。
1.1 B关闭防火墙。
回复数据包的TTL值: 128 ,B运行的操作系统可能为: Windows NT/2000/XP系统 。
1.2 B开启防火墙。
Ping测试显示目标主机无响应,且所有的数据包都丢失了。这表明目标主机不可达,可能是由于目标主机开启了防火墙。
1.3 arping
arping是一个在LAN中使用ARP地址解析协议发现目标主机的工具。arping工具测试特定IP地址在网络中是否在线。该命令只能在本地局域网内运行,无法跨越路由器和网关,常用的选项为arping -c。Wireshark抓包分析该工具的工作原理(有截图及分析)。
基于ARP协议,使用arping -c 1 192.168.113.134命令向目标主机发送一个arp包命令后停止退出,wireshark抓到两个arp包,第一个是本机发出的request广播包,询问网络中IP地址为192.168.113.134的MAC地址是多少
然后接收到目标IP的reply回复包,回复了它的MAC地址,后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间。
分析并回答:在同一子网中判断目标主机存活性,ping和arping谁更具优势?
答:arping更具有优势。由于ARP主机发现的原理,A只要发送了ARP请求,在线的主机B就会做出应答,而A的ARP缓存里就会有B的IP和MAC地址,这样就获得了B的IP,无所谓B主机是否关闭了防火墙。而对于PING命令,由于发送的是ICMP报文,如果B主机的防火墙处于活跃状态,则会拦截该报文,A接收不到B主机的回复,那么ping命令就无法探测出主机B是否处于存活状态。
2.Nmap扫描
2.1对活动主机进行端口扫描
主机A使用Nmap工具对主机B进行TCP端口同步扫描(范围80-90):
Nmap命令 nmap -sS -p 80-90 192.168.113.134 ;
需将目标主机的防火墙关闭再扫描,否则扫描的所有端口会被过滤掉。
关闭防火墙后,扫描到的80-90的端口都是关闭状态。
wireshark抓包过滤TCP,利用TCP协议中的三次握手过程,本机向目标主机发送TCP SYN包,收到了目标主机回复的TCP RST包,识别端口为关闭状态。
对主机B进行UDP端口扫描(范围是130-140):
Nmap命令 nmap -sU -p 130-140 192.168.113.134 ;
当一个数据包被发送到一个开放的UDP端口时,应该没有响应。发生这种情况时,Nmap 将端口称为open|filtered。也就是它怀疑端口是开放的,但它可能被防火墙过滤了。如果它得到一个UDP响应(这是非常不寻常的),那么该端口被标记为open。更常见的是没有响应,在这种情况下,请求会再次发送以进行双重检查。如果仍然没有响应,则将该端口标记为open|filtered。
当一个数据包被发送到一个关闭的UDP端口时,目标应该用一个 ICMP (ping) 数据包来响应,其中包含一个端口不可达的消息。例如这里的131端口,目标主机就回复了一个ICMP端口不可达报文。
2.2对活动主机操作系统进行探测
主机A对主机B进行TCP/IP指纹特征扫描:
Nmap命令 nmap -sT -O 192.168.113.134 ;
扫描到目标操作系统是Microsoft Windows 7|2008|8.1
首先本机选择一个open的端口和一个closed的端口,向其发送TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹。将探测生成的指纹与nmap-os-db中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。
2.3对活动主机运行服务进行探测
Nmap命令 nmap -sV 192.168.113.134 ;
Nmap只能对Open和Open|Filtered状态的端口进行判断。对应TCP端口,尝试建立TCP连接,在等待时间内,会接收到目标机发送的Welcome Banner信息,nmap将接收到的Banner与nmap-services-probes中NULL probe中的签名进行对比,查找对应应用程序的名字与版本信息。
2.4主机A使用Nmap命令对主机B进行IP协议探测
Nmap命令 nmap -sO 192.168.113.134 ;
不是通过发送常规的TCP或UDP数据包,而是通过发送只包含协议头部的数据包来实现探测目标主机支持哪些IP协议。如果目标主机响应了这些数据包,那么就表示它支持相应的协议。
3.Scapy项目
3.1 初识Scapy
send、sendp、sr、sr1 发送数据包函数使用
send函数工作在第三层,只发送数据包。
如:send(IP(dst="192.168.113.134")/ICMP()) '/' 表示加上一层
生成一个IP包,并加上一层ICMP然后给地址192.168.113.134发送。
Wireshark捕获报文,截图显示以上操作相关报文
sendp函数工作在第二层,只发送数据包。
如:sendp(Ether()/IP(dst="192.168.64.133"),iface="eth0")
Wireshark捕获报文,截图显示以上操作相关报文。
sr()函数用来发送数据包和接收响应。
如:sr(IP(dst="192.168.64.133")/ICMP())
Wireshark捕获报文,截图显示以上操作相关报文。
3.2 构造数据包来实现TCP SYN端口扫描
Wireshark捕获报文,截图显示以上操作相关报文。
3.3模拟三次握手实现TCP连接(以下为目标192.168.113.134:445 为例)
from scapy.all import *
h1=IP(dst="192.168.113.134")/TCP(dport=445)注意用自己的IP,及注意445端口是否开放
rsp=sr1(h1)
h3=IP(dst="192.168.113.134")/TCP(dport=445,flags="A",seq=rsp.ack,ack=rsp.seq+1)
rsp2=sr1(h3)
备注(kali关闭内核发送RST):iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
截图显示与目标主机TCP连接建立情况。
本机向目标IP的445端口发送一个TCP SYN报文请求建立连接,其中Seq=0
目标主机向本机回复SYN ACK报文,其中Seq=0,Ack=1。由于时间内没有收到本机的回复确认包,故重传了两次SYN ACK报文。
本机回复 ACK确认包,Ack=1,三次握手建立连接成功。
3.4 基于scapy实现端口扫描功能模块(TCP SYN扫描)
如果端口对SYN报文响应为开放(SA),则打印Open,如果端口响应为关闭(RST),或无响应,则打印Close。
def tcpSynScan_single(target, port):
send = sr1(IP(dst=target) / TCP(dport=port, flags="S"), timeout=2, verbose=0)
if (send is None):
print("Close")
elif send.haslayer("TCP"):
if send["TCP"].flags == "SA":
print("Open")
elif send["TCP"].flags in ["RA", "R"]: # RST响应
print("Close")
else:
print("Close")
4.漏洞扫描
Goby应用(https://gobies.org)
4.1收集资料,描述其功能及优点
Goby是一款新的网络安全测试工具,它能够针对一个目标企业梳理最全的攻击面信息,同时能进行高效、实战化漏洞扫描,并快速地从一个验证入口点,切换到横向。具有以下功能:
①资产收集:自动探测当前网络空间存活的IP及解析域名到IP,轻量且快速的分析出端口对应的协议、Mac地址、证书、应用产品、厂商等信息。
②子域名扫描:自动爬取子域名,AXFR监测,二级域名字典爆破,关联域名查询。同时支持连接FOFA,扩大数据源。
③网站截图:通过截图,快速判断网站系统应用,无需再一一打开。
④深度分析:发现非标准端口或非标准应用系统资产,进行深入的应用识别。在实战场景中非常有效。
⑤代理扫描:通过socket5代理,快速进入内网,开启内网渗透。
⑥漏洞利用:对扫描出来的风险资产进行批量验证,验证成功后,可进行利用,利用成功后,不需要自己搭建服务器,直接进行shell管理。
⑦生成报告:扫描完成后,生成分析报告,并支持PDF、Excel导出,方便本地分析及呈报传阅。
⑧CS模式:远程服务,区分扫描模块及展示模块。
优点:
①实战性:Goby 并不关注漏洞库的数量有多么多,而是关注真正用于实际攻击的漏洞数量,以及漏洞的利用深度(最小精准体,打造权威性);
②体系性:打通渗透前,渗透中,以及渗透后的完整流程完整 DOM 事件收集,自动化触发。
③高效性:利用积累的规则库,全自动的实现 IT 资产攻击面的梳理;效率提升数倍,发包更少速度更快、更精准;
④平台性:发动广泛的安全人员的力量,完善上面提到的所有资源库;包括基于社区的数据共享,插件发布,漏洞共享等;
⑤艺术性:安全工具原本就比较偏门,我们更多的关注功能而非美观度,所有大部分的安全工具都是其貌不扬;我们希望使用 Goby 能给大家带来感官上的享受。
4.2使用测试(截图)。
用Goby来扫描虚拟机win server 2008,发现其存在Eternalblue/DOUBLEPULSAR MS17-010 SMB RCE漏洞