【问题标题】:Find webserver listening on port with Scapy port scanner使用 Scapy 端口扫描器查找监听端口的网络服务器
【发布时间】:2020-04-13 01:16:10
【问题描述】:

我正在尝试在 Python 中为 Scapy 编写一个端口扫描器,以找出网络服务器正在侦听的端口。服务器不使用端口 80 和端口 443。要扫描的范围是从 5000 到 10000(这是大学的作业)。我需要为此使用 Scapy,因此不允许使用 nmap 和其他。

目前我写的代码(改编自本原作https://is.muni.cz/th/n9spk/dp.pdf):

target = "172.16.51.142"
ports = range(5000, 10000)
ip = IP(dst=target)
tcp = TCP(dport=ports , flags="S") # SYN flag
ans, unans = sr(ip/tcp) # send packets
for sent, rcvd in ans:
    if rcvd.haslayer(TCP): # TCP packet
        if rcvd.haslayer(TCP).flags & 2: # SYN/ACK flag
            print (sent.dport) # open ports

直到 for 循环按预期工作的第一部分:

但是当for循环开始时,我得到以下错误:

我不知道如何解决这个问题。

我使用了在线文档https://scapy.readthedocs.io/en/latest/usage.html#send-and-receive-packets-srhttps://scapy.readthedocs.io/en/latest/usage.html#tcp-port-scanning,但找不到解决方案。

【问题讨论】:

    标签: python-3.x scapy port-scanning


    【解决方案1】:

    rcvd.haslayer(TCP).flags 是不可能的,因为haslayer 返回一个布尔值。 你在寻找

    rcvd.getlayer(TCP).flags
    

    【讨论】:

      猜你喜欢
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      相关资源
      最近更新 更多