常见端口扫描原理总结

转载修改自:  https://blog.csdn.net/whatday/article/details/45504961

0. TCP的三次握手

常见端口扫描原理总结_第1张图片

常见端口扫描原理总结_第2张图片


上图是wirkshark抓到的tcp三次握手的过程,符合第一张图描述的过程,首先主机81向88发送同步指令SYN(具体包见上上图,flags中SYN置位),主机88收到请求后,置位SYN,描述该包为同步包,ACK标识该包为回应包,

主机81收到88的回应后通知上层已经建立好连接,seq(Sequence number)字段强调这个包是我发送给你的第几 个包。ack字段强调描述: 我已经收到之前你发送的seq=y个数目的数据包,我期待下一个是y+1个序列的数据包,那么下一个你发给我的数据包seq应该是y+1。

主机88收到81的回复后,告诉上层建立好了TCP连接,可以按双方约定好的参数进行数据传输。

1.扫描方式分析

因为没有包含TCP3次握手建立连接,所以日志系统不记录相关信息,秘密扫描类型有:TCP FIN扫描,TCP ACK扫描,NULL扫描, XMAS扫描, SYN/ACK扫描。

1. TCP connect扫描

    该扫描client和server建立tcp连接,完成三次握手后,client主动关闭连接。server日志会记录下连接的内容。

2. SYN扫描

   置位SYN标识flag,发送同步包,因为没有建立连接,所以扫描目标不会有任何记录。

   若端口开放, 扫描器收到 SYN/ACK 标识回复。

   若端口关闭, 扫描器收到 RST 标识回复。

3. NULL扫描

    数据包flags标识位全都不设置,

   若扫描主机是windows系统,不管端口开放情况,都会回复RST包。

   若扫描主机是linux系统,若端口开放,则不回复。 若端口关闭,则回复RST包。可以探测操作系统。

4. FIN扫描

    FIN标识符置位,表示释放TCP会话。

   若端口开放, 目标主机不回复。

   若端口关闭, 目标主机回复RST。

5. ACK扫描

   扫描主机向目标主机发送ACK标识包,从返回信息中的TTL值得出端口开放信息。

6. Xmas扫描

   同时置位URG/PSH/FIN,该方法和null扫描一样,无法判断windows系统的端口开放情况(Linux下收到该形式的数据包若端口开放会不回复),但是windows不管端口开放如何均会回复。

    















你可能感兴趣的:(windows系统)