首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scapy TCP RST atack

Scapy TCP RST atack
EN

Stack Overflow用户
提问于 2016-06-05 06:31:51
回答 1查看 4.4K关注 0票数 4

我试着用Scapy编写TCP,但是我的代码没有work.Please,帮助我解决问题。

代码语言:javascript
复制
     from scapy.all import *

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

     sniff(filter='tcp',prn=poison)

我想flags出了点问题。有个错误:

回溯(最近一次调用): 文件"Univer.py",第6行,在sniff(filter='tcp',prn=poison)中 文件"/usr/lib/pymodules/python2.6/scapy/sendrecv.py",第559行,单位为sniff r= prn(p) 文件"Univer.py",第3行,在毒包TCP.Parks=‘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 val self.fieldsattr = any2i(self,val)中 文件"/usr/lib/pymodules/python2.6/scapy/fields.py",第785行,在any2i y |= 1 << self.names.index(i)中 ValueError:找不到子字符串

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-05 10:50:44

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

代码语言:javascript
复制
>>> 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            = ({})
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37639137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档