什么是端口的SYN(半连接)扫描技术
TCP
SYN
扫描是使用最为广泛的扫描方式,其原理就是像带扫描端口发送SYN
数据包,如果能够收到SYN+ACK
数据包,则代表此端口开放,如收到RST
数据包,则证明此端口关闭,如未收到任何数据包,且确定该主机存在,则证明该端口被防火墙等安全设备过滤。由于SYN
扫描并不会完成TCP
连接的三次握手过程,所以SYN
扫描又叫做半开放扫描。
SYN
扫描的最大优点就是速度,在Internet
上,如果不存在防火墙,SYN
扫描每秒钟可以扫描数千个端口,但是SYN
扫描由于其扫描行为较为明显,容易被入侵检测系统发现,也容易被防火墙屏蔽,且构造原始数据包需要较高系统权限。
nmap和masscan 在半开放模式下扫描速度的对比分析
一、扫描命令和参数:
1、nmap x.x.x.x -sS -sU -Pn -p T:80, --source-port 58914 --min-rate 100 --max-rate 100 -n -v -T3 --open --stats-every 5s --min-hostgroup 100 --max-hostgroup 100
2、masscan x.x.x.x --ports T:80, --source-port 58914 --rate 100 --wait 1
带宽都是100,端口都是T:80。都为半开放扫描(其中masscan默认半开放扫描,nmap -sS 指定为半开放扫描)。
二、扫描结果:
1、masscan扫描时会回RST包,有时会回两次RST。
masscan扫描80端口
多回了一个RST包。
masscan扫描C段的80、443端口
用时:
masscan扫描C段的全部常用端口
用时
2、nmap半开放扫描时不回RST包,等待服务器自己关闭。
nmap扫描一个ip的80端口
nmap扫描C段的80、443端口
目标地址会重试连接并返回RST包。
用时:
nmap扫描C段的全部常用端口
三、对比:
经过对比发现,masscan有时会多回一个RST包,而nmap根本不回RST包让目标服务器自己关闭。
由此可以看出,nmap对每个目标会少发一到两个RST包,用时会更少,nmap扫描较快。
四、外网对比:
masscan默认不开启重试。nmap在网络性能差的情况下会触发重试机制,可以设置--max-retries=0关闭重试
1、masscan扫描C段全部常用端口,用时
2、nmap扫描C段全部常用端口,用时
扫描C段全部常用端口,用时
nmap扫描C段全部常用端口,关闭重试,用时
外网扫描速度比较:nmap关闭重试扫描 masscan默认扫描 nmap默认扫描
外网扫描端口存活数据比较:nmap默认扫描存活数 masscan默认扫描存活数 nmap关闭重试扫描存活数
有
Nmap 扫描原理及使用方法
Nmap 扫描原理及使用方法
Namp包含四项基本功能
Nmap基本扫描方法
2.1 用法引入
2.1.1确定端口状况
确定目标主机在线情况及端口基本状况。
命令形式:
namp targethost
2.1.2 完整全面的扫描
对主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用该选项,nmap 对主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。
1)命令形式:
nmap -T4 -A -v targethost
2)参数详解:
2.2 主机发现
2.2.1 主机发现原理
主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,说明目标主机是开启的。
1)常见主机探测方式:
2)案例:
Nmap的用户位于源端,IP地址192.168.0.5,向目标主机192.168.0.3发送ICMP Echo Request。如果该请求报文没有被防火墙拦截掉,那么目标机会回复ICMP Echo Reply包回来。以此来确定目标主机是否在线。
3)默认情况下:Nmap会发送四种不同类型的数据包来探测目标主机是否在线。
依次发送四个报文探测目标机是否开启。只要收到其中一个包的回复,那就证明目标机开启。使用四种不同类型的数据包可以避免因防火墙或丢包造成的判断错误。
2.2.2 主机发现的用法
2.3 端口扫描
Namp通过探测将端口划分为6个状态:
2.3.1 端口扫描原理
2.3.1.1 TCP SYN scanning
TCP SYN scanning 是Nmap默认的扫描方式,称作半开放扫描。
原理:该方式发送SYN到目标端口。
2.3.1.2 TCP connect scanning
原理:TCP connect 方式使用系统网络API connect 向目标主机的端口发起连接。
优缺点:该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑选择的方式。
2.3.1.3 TCP ACK scanning
原理:向目标主机的端口发送ACK包。
优缺点:该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。
2.3.1.4 TCP FIN/Xmas/NULL scanning
这三种扫描方式被称为秘密扫描(Stealthy Scan)
原理:FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包
其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP包。
2.3.1.5 UDP scanning
UDP扫描方式用于判断UDP端口的情况。
原理:向目标主机的UDP端口发送探测包。
2.3.2 端口扫描用法
2.3.2.1 扫描方式选项
2.3.2.2 端口参数与扫描顺序
2.4 版本侦测
2.4.1 优缺点
2.4.2 版本侦测原理
2.4.3 版本侦测用法
2.5 OS侦测
2.5.1 OS侦测原理
2.5.2 OS侦测用法
参考:
7、全连接扫描和半开连接扫描的区别是什么?其优缺点分别是什么?还有什么其它的扫描技术?
全连接扫描是TCP端口扫描的基础,现有的全连接扫描有TCP connect()扫描和TCP反向ident扫描等。其中TCP connect()扫描的实现原理如下所述:
扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用connect开始。如果端口开放,则连接将建立成功;否则,若返回-1则表示端口关闭。建立连接成功:响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。
若端口扫描没有完成一个完整的TCP连接,在扫描主机和目标主机的一指定端口建立连接时候只完成了前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。现有的半连接扫描有TCPSYN扫描和IP ID头dumb扫描等。
SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。
注意syn半开扫描与synflood攻击的区别
Syn半开扫描是一种安全性扫描,它可以帮助系统管理员了解受保护的网络中存在哪些主机,这些主机上运行的服务和端口。Syn半开扫描使用TCP SYN数据包来测试端口的存在性,但不会传送任何用户数据。
Synflood攻击是一种利用TCP SYN数据包进行的DoS/DDoS(Denial of Service / Distributed Deni_
同层动态扫描的方式
同层动态扫描是一种常用的网络安全测试方法,其基本原理是利用主机发送数据包打开目标主机上的端口,以确定可以访问的端口及其服务类型,从而找到潜在的漏洞。以下是同层动态扫描的几种方式:
基于TCP连接的扫描:该方式尝试打开目标主机上每一个TCP端口,并等待回应,从而判断该端口是否处于开放状态。
基于UDP连接的扫描:与TCP连接类似,该方式尝试打开目标主机上每一个UDP端口,并等待回应,以确定该端口是否处于开放状态。
基于半开放扫描的方式:该方式发送一个SYN数据包到目标主机上的端口,如果目标主机响应了一个SYN ACK,则表明该端口处于开放状态,而如果目标主机响应了一个RST,则表明该端口处于关闭状态。
基于服务探测的方式:该方式利用已知的服务信息发送一些特定的数据包到目标主机上的端口,如果收到了对应的响应,则表明该端口上运行的是该特定服务。
以上四种方法都可以用于同层动态扫描,根据实际情况选用合适的方式进行扫描。同时,在进行扫描时,需要注意优化扫描策略,避免过于频繁地发送数据包引起目标主机的异常响应或阻塞。
0条大神的评论