TCP,SYN,FIN扫描

1.TCP扫描相对来说是速度比较慢的一种,为什么会慢呢?因为这种方法在扫描的时候会从本地主机的一个端口向目标主机的一个端口发出一个连接请求报文段,而目标主机在收到这个这个请求报文后:

有回复:

若同意的话则发回一个确认报文段,那么我们本地主机收到确认报文段之后就可以确认目标主机的该端口是活动的了;

端口未开放,端口没有服务存在,目标主机不会发回确认报文,会回复rst报文;

没有回复:

无法判断端口是否打开:报文被防火墙过滤掉,被端口上的服务接收到然后丢弃;


2.SYN扫描
这种扫描方式相对来说速度比较快.
原理为:
(1):本地主机向目标主机发送一个SYN数据段.(这里牵扯到TCP报文结构的问题,在TCP报文中SYN标志位用来建立连接,让连接的双方同步序列号.如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1且ACK=1,则表示接受连接.)
(2):如果目标主机的回应报文中SYN=1,ACK=1,则说明该端口是活动的,那么接着,我们再发一个RST给目标主机,拒绝建立连接.
在这里,如果目标主机的回应为RST,则表示该端口为死端口,在这种情况下,我们不用再做任何回应.
3.FIN扫描
也被称为秘密扫描,在TCP报文结构中,FIN段负责表示发送端已经没有数据要传输了,希望释放连接.
我们发送一个FIN=1的报文到一个关闭的端口时,该报文会被丢掉,并返回一个RST报文.但是,当FIN报文到一个活动的端口时,该报文只是被简单的丢掉,而不回应任何信息.
这种扫描方法的好处就是完全不建立TCP连接,从而大大减少了被目标主机记录下来的可能性,安全性较高.


SYN只不过是TCP报文结构中的一小块罢了,FIN、RST、PSH、ACK、URG等等都是属于TCP中的.而UDP才是和TCP在一个级别的,千万别把SYN和UDP混淆了!

posted @ 2018-03-15 16:18  撒欢  阅读(3108)  评论(0编辑  收藏  举报