端口扫描方法[转]

 

一,端口扫描技术
 基本的TCP connect()扫描
 TCP SYN扫描(半开连接扫描, half open)
 TCP Fin扫描(秘密扫描,stealth)
 TCP ftp proxy扫描(bounce attack)
 用IP分片进行SYN/FIN扫描(躲开包过滤防火墙)
 UDP recvfrom扫描
 UDP ICMP端口不可达扫描
 Reverse-ident扫描

二,TCP连接常识

 TCP数据包6个标志位
 URG: 紧急数据包
 ACK: 确认
 PSH: 请求急迫操作
 RST: 连接复位
 SYN: 连接请求
 FIN: 结束

TCP/IP的一些实现原则
 当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包 
 当一个RST数据包到达一个监听端口,RST被丢弃  当一个RST数据包到达一个关闭的端口,RST被丢弃 
 当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包 
 当一个不包含SYN位的数据包到达一个监听端口时,数据包被丢弃 
 当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN|ACK数据包 
 当一个FIN数据包到达一个监听端口时,数据包被丢弃

三,各种扫描方式详细
1, TCP connect()扫描
 做法
 扫描器调用socket的connect()函数发起一个正常的连接
 如果端口是打开的,则连接成功
 否则,连接失败

 优点
 简单,不需要特殊的权限

 缺点
 服务器可以记录下客户的连接行为,如果同一个客户轮流对每一个端口发起连接,则一定是在扫描

2, TCP SYN扫描
 做法
 向目标主机的特定端口发送一个SYN包
 如果应答包为RST包,则说明该端口是关闭的
 否则,会收到一个SYN|ACK包。于是,发送一个RST,停止建立连接
 由于连接没有完全建立,所以称为“半开连接扫描”

优点
 很少有系统会记录这样的行为

 缺点
 在UNIX平台上,需要root权限才可以建立这样的SYN数据包

3, TCP FIN扫描

 做法
 向目标主机的特定端口发送一个TCP FIN包
 如果应答包为RST包,则说明该端口是关闭的
 若未收到,表示端口是打开的。

4, 分片扫描
 它本身并不是一种新的扫描方法,而是其他扫描技术的变种,特别是SYN扫描和FIN扫描
 思想是,把TCP包分成很小的分片,从而让它们能够通过包过滤防火墙
 注意,有些防火墙会丢弃太小的包
 而有些服务程序在处理这样的包的时候会出现异常,或者性能下降,或者出现错误

5, reverse-ident扫描
 Ident协议使得可以发现任何一个通过TCP连接的进程的所有者的用户名,即使该进程并没有发起该连接
 只有在TCP全连接之后才有效
 TCP端口113

 例如
 可以先连接到80端口,然后通过identd来发现服务器是否在root下运行
 建议关闭ident服务,或者在防火墙上禁止,除非是为了审计的目的

6, TCP FTP proxy扫描
 FTP bounce attack
 做法
 在ftp协议中,数据连接可以与控制连接位于不同的机器上
 让ftp server与目标主机建立连接,而且目标主机的端口可以指定
 如果端口打开,则可以传输否则,返回"425 Can't build data connection: Connection refused." 
 Ftp这个缺陷还可以被用来向目标(邮件,新闻)传送匿名信息

 优点:这种技术可以用来穿透防火墙

 缺点:慢,且有些ftp server禁止这种特性

 

7, UDP ICMP端口不可达扫描
 利用UDP协议

 做法
 开放的UDP端口并不需要送回ACK包,而关闭的端口也不要求送回错误包,所以利用UDP包进行扫描非常困难
 有些协议栈实现的时候,对于关闭的UDP端口,会送回一个ICMP Port Unreach错误

 缺点
 速度慢,而且UDP包和ICMP包都不是可靠的
 需要root权限,才能读取ICMP Port Unreach消息

 一个应用例子
 Solaris的rpcbind端口(UDP)位于32770之上,这时可以通过这种技术来探测

8, UDP recvfrom()&write()扫描
 非root用户不能直接读取ICMP Port Unreach消息,但是Linux提供了一种方法可以间接通知到

 做法
 第二次对一个关闭的UDP端口调用write()总是会失败

 经验:在ICMP错误到达之前,在UDP端口上调用recvfrom()会返回EAGAIN(重试),否则会返回ECONNREFUSED(连接拒绝)

 

偶滴作品

http://www.dbank.com/download.action?t=40&k=ODM3NDMyMg==&pcode=LCwzMDUyNTgsMzA1MjU4&rnd=2725

发布了11 篇原创文章 · 获赞 5 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章