TCP端口及服务扫描器的设计
在学习完《Python绝技》一章后,认真的总结下笔记。
常见的端口扫描是基于TCP三次握手或者是四次挥手过程,常见的是发送一个TCP syn包到指定主机的指定端口,根据返回的结果判断该端口是否开放。
1. TCP端口扫描根据不同的发包可以分为:
(1)TCP SYN扫描:也称半开放扫描,该扫描类型发送一个SYN的TCP链接数据包等待响应,当返回RST数据包表示端
口关闭,返回ACK表示端口开放。
(2)TCP NULL扫描:TCP空扫描设置TCP的标志头为零,如果返回一个RST数据包则表示这个端口是关闭的。
(3)TCP FIN扫描:TCP FIN扫描发送一个FIN数据包,请求关闭链接,等待一个个圆满的终止,如果返回RST数据包则
表示该端口是关闭的。
(4)TCP XMAS扫描:TCP XSMAS扫描设置PSH,FIN和URG TCP的标志位,如果返回RST数据包则表示这个端口是关
闭的。
2.扫描器设计思路: