端口扫描技术的分类

端口扫描技术的分类

端口扫描的第一步是向目标主机的TCP/UDP端口发送探测数据包,然后根据对方的回应判断端口是否开放。由于网络环境的差异以及操作系统对连接请求的应答并不一致,在端口扫描中支持多种扫描方式,以保证扫描的准确和快速。

  1. TCP connect() 扫描
    也称全连接扫描。扫描主机通过TCP/IP 协议的三次握手与目标主机的指定端口建立一次完整的连接。连接由系统调用connect() 开始。如果端口开放,则连接将建立成功;否则,若返回-1 则表示端口关闭。建立连接成功:响应扫描主机的SYN/ACK 连接请求,这一响应表明目标端口处于监听( 打开) 的状态。如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST 的响应。
  2. TCP SYN 扫描
    也称“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP 连接。扫描程序发送的是一个SYN 数据包,好象准备打开一个实际的连接并等待反应一样( 参考TCP 的三次握手建立一个TCP 连接的过程) 。一个SYN|ACK 的返回信息表示端口处于侦听状态。一个RST 返回,表示端口没有处于侦听态。如果收到一个SYN|ACK ,则扫描程序必须再发送一个RST 信号,来关闭这个连接过程。这种扫描技术的优点在于一般不会在目标计算机上留下记录。但这种方法的一个缺点是,必须要有root 权限才能建立自己的SYN 数据包。
  3. TCP FIN 扫描
    有的时候有可能SYN 扫描都不够秘密。一些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能检测到这些扫描。相反, FIN 数据包可能会没有任何麻烦的通过。这种扫描方法的思想是关闭的端口会用适当的RST 来回复FIN 数据包。另一方面,打开的端口会忽略对FIN数据包的回复。这种方法和系统的实现有一定的关系。有的系统不管端口是否打开,都回复RST ,这样,这种扫描方法就不适用了。并且这种方法在区分Unix 和NT 时,是十分有用的。
  4. TCP 反向ident扫描
    ident协议允许看到通过TCP 连接的任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。例如,连接到http 端口,然后用identd来发现服务器是否正在以root 权限运行。这种方法只能在和目标端口建立了一个完整的TCP 连接后才能看到。
  5. UDP ICMP端口不可到达扫描
    这是使用UDP协议,向一个端口发送UDP包。一个打开的UDP端口不会发送任何回应,如果端口是关闭的,有些系统会返回ICMP_PORT_UNREACH信息。由于UDP不是可靠的,所以这种扫描也不是很可靠,且速度会比较慢。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野马菲比

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值