如何使用scapy使端口显示为打开状态?

2024-09-27 00:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试创建一个ACKSYN包,使它看起来好像端口是打开的,但它不起作用,这是我迄今为止的代码

ip=IP(src=machine_self_ip, dst=pkt[IP].src, proto='tcp')

SYN=TCP(sport=pkt.payload.dport, dport=pkt.payload.sport, seq=1,ack=1, urgptr=0, flags="SA")

然后我发送数据包,但是端口仍然关闭。我错过什么了吗?在

谢谢!在


Tags: 端口代码selfipsrcmachinetcpdst
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:56

在 最好的方法是实现一个AnsweringMachine类。在

一种快速而肮脏(但有效)的方法是将sniff与一个特殊的prn函数一起使用:

def answer(p):
    p = p[IP]
    send(IP(dst=p.src, src=p.dst)/TCP(dport=p.sport, sport=p.dport,
                                      ack=p.seq + 1, flags='SA'))

sniff(filter='tcp and tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn',
      prn=answer, store=False)

在Scapy有机会发送SYN-ACK之前,您可能需要添加防火墙规则来阻止主机的IP堆栈发送RST-ACK包。您可能还需要调整过滤器,使其只对发往主机(或特定主机/网络)的数据包作出响应。在

相关问题 更多 >

    热门问题