【问题标题】:netfilterqueue problem when I start code?启动代码时出现 netfilterqueue 问题?
【发布时间】:2022-08-07 05:24:17
【问题描述】:
有人可以帮我吗?
我写了同样的代码:
从 netfilterqueue 导入 NetfilterQueue
def print_and_accept(pkt):
print(pkt)
pkt.accept()
nfqueue = NetfilterQueue()
nfqueue.bind(1, print_and_accept)
try:
nfqueue.run()
except KeyboardInterrupt:
print(\'\')
nfqueue.unbind()
在按下运行按钮之前我写了
iptables -I FORWARD -j NFQUEUE --queue-num 0
我试图写 INPUT 和 OUTPUT 而不是 FORWARD;并更改--queue-num 1,2,3...
当我写 python3 net_cut.py 时没有任何反应,然后推送 CTRL + C 我收到一条消息:
^CTraceback (most recent call last):
File \"PycharmProjects/net_cut/net_cut.py\", line 12, in <module>
nfqueue.run()
KeyboardInterrupt
标签:
python
python-3.x
networking
netfilter
kali-linux
【解决方案1】:
将 --queue-num 0 更改为 1,如果这不起作用这里有一个完整的示例:
sudo iptables -A OUTPUT -p icmp -j NFQUEUE --queue-num 1
在您运行 iptables 的系统上,执行 ping -c 1 8.8.8,代码会将目标重写为 192.168.1.100 - 显然将该 ip 更改为网络中的某些机器并在到达接口上运行 tcpdumo icmp
from scapy.all import *
from netfilterqueue import NetfilterQueue
def modify(packet):
print("running")
#pkt = IP(packet.get_payload())
pkt = IP(packet.get_payload())
if pkt.haslayer(ICMP):
print("found icmp")
pkt.dst = '192.168.1.100'
print(pkt.dst)
del pkt[IP].chksum
#del pkt[TCP].chksum
packet.set_payload(bytes(pkt))
#packet.accept()
packet.drop()
send(pkt)
nfqueue = NetfilterQueue()
nfqueue.bind(1, modify)
try:
print("[*] waiting for data")
nfqueue.run()
except KeyboardInterrupt:
pass