免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2225 | 回复: 0
打印 上一主题 下一主题

端口扫描方法[转] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-22 21:02 |只看该作者 |倒序浏览

一,端口扫描技术
基本的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(连接拒绝)
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/108378/showart_2128352.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP