探测远程主机操作系统指纹的全新技术
2010-05-12 20:35:36 来源:WEB开发网SYN转发原理:
(注:以下各图中,相同名称的为同一台主机,无箭头的直线没有任何意义。如下图:三个client均指同一客户端,三个firewall均指同一个防火墙)
client ------SYN ------> firewall ---------------- target
client <--- SYN-ACK----- firewall ---------------- target
如果在某个时间段内防火墙没有收到等待的ACK数据报,那么这个连接将会被中止:
client <------RST------- firewall ---------------- target
相反,传输将会继续进行:
client ---------------- firewall -------SYN------> target
client ------ACK------> firewall <--- SYN-ACK----- target
client ---------------- firewall -------ACK------> target
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SYN网关原理:
client ------SYN------> firewall -------SYN------> target
client <----SYN-ACK---- firewall <-----SYN-ACK---- target
如果在某个时间段内防火墙没有收到等待的ACK数据报,那么它将会中断本次连接:
client ---------------- firewall ------RST------> target
相反,连接将会继续进行:
client ------ACK------> firewall ------ACK------> target
6.3 将来的改进
在TCP的传输流中另一种状态也有相同的功能,试图重发那些被假装丢弃的数据报,这就是FIN_WAIT_1状态。它可以和前面的探测技术结合使用,也可以用在对进行了SYN保护系统的探测之中。这种有趣的技术可以通过实施了SYN网关保护机制的网络,进而实现对真正目标主机的系统指纹探测。
---------------------------------------------
│Retries│===Linux2/4====│==Windows 2k===│
│==1st==│======0,8======│=======3=======│
│==2nd==│======1,3======│=======6=======│
│==3rd==│======2,6======│======12=======│
│==4th==│======5,2======│======24=======│
│==5th==│=====10,5======│======48=======│
│==6th==│=====20,8======│no more retries│
│==7th==│=====41,6======│===============│
│==8th==│no more retries│===============│
---------------------------------------------
│=Reset=│===no reset===│====no reset===│
---------------------------------------------
七、结论
RING 使用了一个建立在常规,无危险TCP传输上的新的操作系统探测技术。它通过分析目标主机在各次重传数据报之间的延迟来判断远程主机操作系统的指纹。如果将其和其他的操作系统探测技术相结合,应该会收到更好的效果。
Reference:
1 ) << Ring-full-paper >> by Intranode Research Team
2 ) << Remote OS detection via TCP/IP Stack FingerPrinting >> by Fyodor
3 ) << ICMP based remote OS TCP/IP stack fingerprinting techniques >> by Ofir Arkin & Fyodor Yarochkin
更多精彩
赞助商链接