作者:海滨的微博小窝 | 来源:互联网 | 2023-10-13 01:02
主要参考:https:blog.csdn.netzhaowei1945articledetails78466785https:www.cnblogs.comLuc
主要参考:
https://blog.csdn.net/zhaowei1945/article/details/78466785
https://www.cnblogs.com/LuckWJL/p/7692005.html
https://www.freebuf.com/sectool/119340.html
https://www.cnblogs.com/wiessharling/p/4070826.html
实验记录如下:
使用三种最常见的扫描工具:zmap、nmap、netcat,对内网IP进行低速扫描实验。统计实验中数据的特性,包括packets,bytes,timeout_state_num,retransmit等。
2.1 nmap工具
Nmap的功能非常强大,其基本功能有主机发现、开放端口扫描、支持多端口、多网段、可对目标域名进行扫描;同时具备识别功能:识别端口服务类型及版本、操作系统、设备类型等;而且还有多种扫描模式:TCP SYN scan、TCP connectscan、UDP scan、No Ping scan等。
本次实验中,采用了TCP半开扫描(TCP SYN scan)、TCP全扫描(TCP connect scan)以及Fin扫描(Fin scan)三种形式。可选项 -Tn,其中n取值0-5,表示不同的速度,T5最快(间隔0s),T0最慢(间隔5min)。实验选择T1,两次扫描间隔15s。
2.2 zmap工具
Zmap采用了无状态的扫描技术,没有进行完整的TCP三次握手,因此扫描速度极大提升。Zmap的基本功能是扫描发现主机的开放端口。
在实验中是对172.23.2.0/24段的22端口进行慢扫描,zmap对未开机的机器也会发送扫描包。可选项-r用于设置扫描的发包速率packets/sec(包每秒)。
2.3 netcat工具
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具,其有Windows和Linux的版本,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
实验过程中,netcat进行TCP全扫描,使用如下命令对某台机器的22-53号端口进行扫描,每次扫描间隔30s:nc -z -v -r -i 30 172.23.2.199 22-53
将实验结果进行统计后,如下面三个表格。表格头in、out表示两个方向,对应值为n(+m)[x],n表示packets,m表示重传数,x表示bytes。
工具 | TCP 全扫描 |
防火墙过滤/不可达 | 端口开 | 端口关 |
状态 | In | Out | 状态 | In | Out | 状态 | In | out |
nmap | 1 | 1[74B] | 0 | 13 | 3[206B] | 1[74B] | 10 | 1[54B] | 1[54B] |
netcat | | | | 13 | 4[260B] | 3[227B] | 1 | 1[74B] | 0 |
工具 | TCP 半开扫描 |
防火墙过滤/不可达 | 端口开 | 端口关 |
状态 | In | Out | 状态 | In | Out | 状态 | In | Out |
nmap | 1 | 1[58B] | 0 | 11 | 2[112B] | 1[58B] | 10 | 1[58B] | 1[54B] |
zmap | 1 | 1[54B] | 0 | 11 | 3(+1)[162B] | 1[58B] | 10 | 1[54B] | 1[54B] |
工具 | FIN 扫描 |
不可达/过滤 | 端口开 | 端口关 |
状态 | In | Out | 状态 | In | Out | 状态 | In | Out |
nmap | 4 | 1[54B] | 0 | 4 | 1[54B] | 0 | 15 | 1[54B] | 1[54B] |
附录
1.TCP SYN Scan(TCP同步序列号扫描)
若端口扫描没有完成一个完整的 TCP连接,即在扫描主机和目标主机的一指定端口建立连接的时候,只完成前两次握手,在第三步时,扫描主机中断了本次连接, 使连接没有完全建立起来,所以这种端口扫描又称为“半连接扫描”,也称为“间接扫描”或“半开式扫描”(Half Open Scan)。
SYN 扫描,通过本机的一个端口向对方指定的端口,发送一个TCP的SYN连接建立请求数据报,然后开始等待对方的应答。如果应答数据报中设置了SYN位 和ACK位,那么这个端口是开放的;如果应答数据报是一个RST连接复位数据报,则对方的端口是关闭的。
2. TCP FIN Scan(TCP结束标志扫描)
这种扫描方式不依赖于TCP的3次握 手过程,而是TCP连接的“FIN”(结束)位标志。原理在于TCP连接结束时,会向TCP端口发送一个设置了FIN 位的连接终止数据报,关闭的端口会回应一个设置了RST的连接复位数据报;而开放的端口则会对这种可疑的数据报不加理睬,将它丢弃。可以根据是否收到 RST数据报来判断对方的端口是否开放。
此扫描方式的优点比前两种都要隐秘,不容易被发现。该方案有两个缺点:首先, 要判断对方端口是否开放必须等待超时,增加了探测时间,而且容易得出错误的结 论;其次,一些系统并没有遵循规定,最典型的就是Microsoft公司所开发的操作系统。这些系统一旦收到这样的数据报,无论端口是否开放都会回应一个 RST连接复位数据报,这样一来,这种扫描方案对于这类操作系统是无效的。
3. TCP connect Scan(TCP连接扫描)
这 种方法也称之为“TCP全连接扫描”。它是最简单的一种扫描技术,所利用的是TCP协议的3次握手过程。它直接连到目标端口并完成一个完整的3次握手过 程(SYN、SYN/ACK和ACK)。操作系统提供的“connect()”函数完成系统调用,用来与目标计算机的端口进行连接。如果端口处于侦听状态,那么“connect()”函数就能成功。否则,这个端口是不能用的,即没有提供服务,得到RST连接复位数据报。
TCP连接扫描技术的一个 最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。另一个好处是速度快。如果对每个目标端口以线性的方式,使 用单独的“connect()”函数调用,那么将会花费相当长的时间,用户可以同时打开多个套接字,从而加速扫描。使用非阻塞I/O允许用户设置一个低的 时间以用尽周期,并同时观察多个套接字。但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。目标计算机的日志文件会显示一连串的连接和连接出错的服务 消息,目标计算机用户发现后就能很快使它关闭。