Kali Linux 渗透测试:端口扫描工具 下 TCP全连接(10)

上一篇,先是介绍了UDP的端口扫描,又谈了TCP的不完全连接端口扫描;

接下来我们看看TCP的全连接端口扫描:

 

SYN扫描在网络环境非常复杂的情况下,无法正常工作,于是我们可以使用全连接扫描。

即完整地建立三次握手。

 

由于全连接,那么扫描结果相当准确,但是隐蔽性最低,容易被发现。

具体的实现和上文介绍的不完全连接类似:

 

一、Python脚本

这里直接放脚本:tcp_scan1.py

这里简化下脚本,我明确知道要扫描的IP和端口:

#!/usr/bin/python
import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

response = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="S"))
reply = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="A", ack=(response[TCP].seq + 1)))

 

写好之后直接执行即可:tcp_scan1.py

 

我们可以抓包来看:抓包

 

这里前两个包正常发送接收,第三个RST包是Linux内核自动发送的RST,要中断连接。

第四个包:强行发送ACK建立连接,最后一个包直接回RST因为要拒绝"莫名其妙"的连接。

 

于是我们可以发现:这里并不是正确的一个三次握手的过程,因为操作系统内核的自动中断连。

 

接下来,修改得到一个相对完善的脚本:tcp_scan2.py

#!/usr/bin/python
import logging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

SYN = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="S"))

print("- -SENT- -")
SYN.display()

print("\n\n- -RECEIVE- -")
response = sr1(SYN, timeout=1, verbose=0)
response.display()

if int(response[TCP].flags) == 18:
    print("\n\n- -SENT- -")
    A = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="A", ack=(response[TCP].seq + 1)))
    A.display()
    print("\n\n- -RECEIVE- -")
    response2 = sr1(A, timeout=1, verbose=0)
    response2.display()
else:
    print("SYN-ACK NOT RETURNED")

至于这里的 flags==18 在上文中已经说过了!

 

如果脚本是从windows移过来的:

vi tcp_scan2.py
:set fileformat=unix
:wq
chmod u+x tcp_scan2.py
./tcp_scan2.py

 

运行抓包发现还是存在着上边提到的问题而无法建立连接:

Linux操作系统内核自动回复的RST包中断连接

 

那么,有没有方法能解决呢?

有的,直接配置IPTABLES:对于特点IP禁用出口RST

root@kali:~# iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 192.168.22.129 -j DROP

这时候执行发现建立了三次握手。

 

我们发现拐了这么多弯才能够实现一个全连接扫描。

有没有简单点的方式呢?有的,使用强大的Nmap:-sT参数,具体请向下看!

 

二、nmap

直接输入ip效果是扫描1000个默认端口

root@kali:~# nmap -sT 192.168.22.129

nmap

 

指定范围端口也可以:

root@kali:~# nmap -sT 192.168.22.129 -p1-100

nmap端口扫描

 

可以发现,速度是非常的快的,结果也比较完善!

 

三、dmitry

除了强大的Nmap,还有一些其他的工具,比如:

root@kali:~# dmitry -p 192.168.22.129

dmitry

 

这个工具只能实现一些功能,相比于Nmap,优劣显而易见。

 

四、nc

还有一个小工具,也可以了解下:

root@kali:~# nc -nv -w 1 -z 192.168.22.129 1-100

nc

 

总结:

还有一种奇妙的方式:僵尸扫描,不过很复杂,在下一篇专门介绍。

今天端口扫描就介绍到这里,扫描完端口,接下来就是针对端口的服务扫描等等,将在后边介绍。

头像
  • ¥ 98.0元
  • 市场价:198.0元
  • ¥ 198.0元
  • 市场价:398.0元
  • ¥ 499.0元
  • 市场价:499.0元
  • ¥ 69.0元
  • 市场价:69.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: