1.1 地址扫描(ICMP探测/TCP连接探测/ UDP连接探测)
攻击原理:
攻击者运用ICMP报文(如Ping和Tracert命令)探测目标地址,或者使用TCP/UDP报文对一定地址发起连接(如TCP ping),通过判断是否有应答报文,以确定哪些目标系统确实存活着并且连接在目标网络上。
防御原理:
配置IP地址扫描攻击防范后,设备对接收的TCP、UDP、ICMP报文进行检测,如果某个源IP地址每秒发往不同目的IP地址的报文数超过了设定的阈值时,就认为该源IP地址在进行IP地址扫描攻击,FW将该IP地址加入黑名单。
1.2 TCP/UDP端口扫描攻击原理:
攻击者通过对端口进行扫描探测网络结构,探寻被攻击对象目前开放的端口,以确定攻击方式。在端口扫描攻击中,攻击者通常使用Port Scan攻击软件,发起一系列TCP/UDP连接,根据应答报文判断主机是否使用这些端口提供服务。
防御原理:
配置端口扫描攻击防范后,设备对接收的TCP、UDP报文进行检测,如果某个源IP地址每秒发出的报文中目的端口不同的报文数超过了设定的阈值时,就认为该源IP地址在进行端口扫描攻击,FW将该IP地址加入黑名单。
方法:可以使用kali自带工具hing3或者netwox、nmap
1.3 Connect()扫描此扫描试图与每一个TCP端口进行“三次握手”通信。如果能够成功建立连接,则证明端口开发,否则为关闭。准确度很高,但是最容易被防火墙和IDS检测到,并且在目标主机的日志中会记录大量的连接请求以及错误信息。
TCP connect端口扫描服务端与客户端建立连接成功(目标端口开放)的过程:
① Client端发送SYN;
② Server端返回SYN/ACK,表明端口开放;
③ Client端返回ACK,表明连接已建立;
④ Client端主动断开连接。
建立连接成功(目标端口开放)如图所示
connect扫描
TCP connect端口扫描服务端与客户端未建立连接成功(目标端口关闭)过程:
① Client端发送SYN;
② Server端返回RST/ACK,表明端口未开放。
未建立连接成功(目标端口关闭)
优点:实现简单,对操作者的权限没有严格要求(有些类型的端口扫描需要操作者具有root权限),系统中的任何用户都有权力使用这个调用,而且如果想要得到从目标端口返回banners信息,也只能采用这一方法。
另一优点是扫描速度快。如果对每个目标端口以线性的方式,使用单独的connect()调用,可以通过同时打开多个套接字,从而加速扫描。
缺点:是会在目标主机的日志记录中留下痕迹,易被发现,并且数据包会被过滤掉。目标主机的logs文件会显示一连串的连接和连接出错的服务信息,并且能很快地使它关闭。
测试:nmap -sT 1.1.1.1 –p 22,5001(存在的端口,且大于设置的阈值)
1.4 SYN扫描扫描器向目标主机的一个端口发送请求连接的SYN包,扫描器在收到SYN/ACK后,不是发送的ACK应答而是发送RST包请求断开连接。这样,三次握手就没有完成,无法建立正常的TCP连接,因此,这次扫描就不会被记录到系统日志中。这种扫描技术一般不会在目标主机上留下扫描痕迹。但是,这种扫描需要有root权限。
SYN扫描
端口开放:1、Client发送SYN 2、Server端发送SYN/ACK 3、Client发送RST断开(只需要前两步就可以判断端口开放)
端口关闭:1、Client发送SYN 2、Server端回复RST(表示端口关闭)
优点:SYN扫描要比TCP Connect()扫描隐蔽一些,SYN仅仅需要发送初始的SYN数据包给目标主机,如果端口开放,则相应SYN-ACK数据包;如果关闭,则响应RST数据包;
1.5 NULL扫描:反向扫描----原理是将一个没有设置任何标志位的数据包发送给TCP端口,在正常的通信中至少要设置一个标志位,根据RFC 793的要求,在端口关闭的情况下,若收到一个没有设置标志位的数据字段,那么主机应该舍弃这个分段,并发送一个RST数据包,否则不会响应发起扫描的客户端计算机。也就是说,如果TCP端口处于关闭则响应一个RST数据包,若处于开放则无相应。但是应该知道NULL扫描要求所有的主机都符合RFC 793规定,但是windows系统主机不遵从RFC 793标准,且只要收到没有设置任何标志位的数据包时,不管端口是处于开放还是关闭都响应一个RST数据包。但是基于Unix(*nix,如Linux)遵从RFC 793标准,所以可以用NULL扫描。 经过上面的分析,我们知道NULL可以辨别某台主机运行的操作系统是什么操作系统,是windows呢?还是Unix?
端口开放:Client发送Null,rver没有响应
端口关闭:1、Client发送NUll 2、Server回复RST
说明:Null扫描和前面的TCP Connect()和SYN的判断条件正好相反。在前两种扫描中,有响应数据包的表示端口开放,但在NUll扫描中,收到响应数据包表示端口关闭。反向扫描比前两种隐蔽性高些,但精确度也相对低一些。
用途:判断是否为Windows系统还是unix
测试:nmap -sN X.X.X.X
1.6 FIN扫描:与NULL有点类似,只是FIN为指示TCP会话结束,在FIN扫描中一个设置了FIN位的数据包被发送后,若响应RST数据包,则表示端口关闭,没有响应则表示开放。此类扫描同样不能准确判断windows系统上端口开发情况。
端口开放:发送FIN,没有响应
端口关闭:1、发送FIN 2、回复RST
测试:nmap -sF X.X.X.X
1.7 ACK扫描:扫描主机向目标主机发送ACK数据包。根据返回的RST数据包有两种方法可以得到端口的信息。方法一是: 若返回的RST数据包的TTL值小于或等于64,则端口开放,反之端口关闭,如图所示。
ACK扫描
测试:nmap -sA X.X.X.X
1.8 Xmas-Tree扫描:通过发送带有下列标志位的tcp数据包
URG:指示数据是紧急数据,应立即处理。
PSH:强制将数据压入缓冲区。
FIN:在结束TCP会话时使用。
正常情况下,三个标志位不能被同时设置,但在此种扫描中可以用来判断哪些端口关闭还是开放,与上面的反向扫描情况相同,依然不能判断windows平台上的端口。
端口开放:发送URG/PSH/FIN, 没有响应
端口关闭:1、发送URG/PSH/FIN,没有响应 2、响应RST
XMAS扫描原理和NULL扫描的类似,将TCP数据包中的ACK、FIN、RST、SYN、URG、PSH标志位置1后发送给目标主机。在目标端口开放的情况下,目标主机将不返回任何信息。
测试:nmap -sX X.X.X.X
1.9 Dump扫描:也被称为Idle扫描或反向扫描,在扫描主机时应用了第三方僵尸计算机扫描。由僵尸主机向目标主机发送SYN包。目标主机端口开发时回应SYN|ACK,关闭时返回RST,僵尸主机对SYN|ACK回应RST,对RST不做回应。从僵尸主机上进行扫描时,进行的是一个从本地计算机到僵尸主机的、连续的ping操作。查看僵尸主机返回的Echo响应的ID字段,能确定目标主机上哪些端口是开放的还是关闭的。
1.10 系统服务探测:检测ACK数据包,并且有对应的SYN,表示三次握手成功,此时判断该IP对某个端
端口的连接次数在一定的时间范围大于阈值则报警(在json文件中 如:10秒内检测22端口syn包达到1个则触发报警)。注意:端口要存在。
nmap -sT -p 22 -v 172.16.100.21
切记:网络攻击行为所触犯的法律包括有《网络安全法》、《刑法》以及《民法典》等。我国《民法典》规定,网络用户、网络服务提供者利用网络侵害他人民事权益的,应当承担侵权责任。
本文发布于:2023-02-28 20:02:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/167765037474380.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:网络扫描(网络扫描怎么设置).doc
本文 PDF 下载地址:网络扫描(网络扫描怎么设置).pdf
留言与评论(共有 0 条评论) |