全连接扫描是最最准确的扫描。正常是SYN扫描就够了,特殊情况用全连接扫描,毕竟不隐蔽。
这个脚本和上面那个脚本唯一不同的是,这个脚本多一个if判断,本质上和上面那个脚本没什么不同的地方。下面这幅图是上面这个脚本打印的相关信息,是为了方便查看收发包的详细过程。
由上面内容可以看到,由于内核的原因,系统一旦一收到不是自己发出的SYN+ACK,就会回复RST。所以,要想上面的程序达到期待的效果。我们需要修改iptables
iptables处在系统内核和外部中间。有点像防火墙的位置(隔离内外网)。因此下面这幅图的命令,是将系统内核像外部发送的RST数据包给禁用了,那么目标就收不到我们系统默认发出的RST包。因此,上面的脚本中发出的ACK就会起到三次握手的目的。就实现了全连接端口扫描。
这里iptables -L 就是可以查看当前的列表了。可以看到,从内核出去的RST包只能发给localhost。。。。