草庐IT

scapy_pkt

全部标签

python - 如何从 pcap 文件中提取 TCP SYN 标志并使用 Python (Scapy) 检测 SYN Flood 攻击?

我正在解析一个PCAP文件,我只需要提取TCP标志(SYN)来检测SYN泛洪攻击。我使用Python和scapy。主要目标是检测SYN洪水攻击的方法!我需要为每个IP地址计算一些TCP标志(SYN)并打印一个列表:{IP:numberofSYNflag}按SYNflag数排序。有人可以帮助我吗?#-*-coding:utf-8-*-fromscapy.allimport*pkts=PcapReader("test.pcap")dict_ips=dict() 最佳答案 最好的对象是Counter(来自collections)。“不那么

python - 格式错误的 DNS 响应数据包(python + scapy)

我正在使用Python和scapy创建代理服务器。TCP数据包似乎工作正常,但我遇到了UDP的一些问题,特别是DNS请求。本质上,当收到DNS请求时,我会在脚本中捕获它,执行DNS查找,然后尝试将其返回给请求DNS查询的人。该脚本成功执行查找并返回DNS响应,但是在查看wireshark时它告诉我这是一个“格式错误的数据包”。有人可以告诉我我需要做什么才能正确返回DNS响应吗?#!/usr/bin/envpythonfromtornado.websocketimportWebSocketHandlerfromtornado.httpserverimportHTTPServerfromt

c - scapy 在已建立的连接上发送 tcp 数据包

我有以下内容:服务器端:TCPpython服务器(不是scapy)客户端:Scapy建立连接并发送TCP数据包我正在尝试在3次握手后通过scapy在已建立的连接上发送TCP数据包我能够构建3路握手和服务器端(另一端-pythonTCP服务器-不是scapy-创建TCP套接字,绑定(bind),监听,accpet,recv())显示新连接到来并接受()返回创建的FD我试图在3次握手成功后从scapy发送数据包,但非scapy端的recv()无法获取数据包scapy方面:#!/usr/bin/envpythonfromscapy.allimport*importtime#VARIABLES

python - 访问 Scapy 的内部协议(protocol)层

我正在用Python编写我的第一个程序。我正在使用第三方工具包与网络数据包进行交互(Scapy)。当我使用这个方法时:p=sr1(IP(dst="google.com")/TCP())结果是:>>我可以通过p.chksum访问IP的chksum,但是如何访问chksumTCP? 最佳答案 作为一般准则,您应该使用>>>p[TCP].chksum然而,这仅适用于接收到的数据包,因为校验和是在传输时计算的。您可以使用show2()方法检索未传输数据包的校验和。 关于python-访问Scap

Python scapy 显示 ping (echo) 请求的 ip

我想抓取并打印ping请求的源地址。我有以下脚本:pkt=sniff(filter="icmp",timeout=15,count=15)ifpkt[ICMP].type=='8':printpkt[IP].src当数据包到达时脚本崩溃AttributeError:'list'objecthasnoattribute'type'但是在scapy控制台上我可以清楚地看到它存在!>>>packet=IP()/ICMP()/"AAAAAA">>>packet[ICMP].type8>>>有什么想法吗??我出于测试目的(!)将我的脚本更改为以下内容:pkts=sniff(filter="icm

python - Scapy TCP RST 攻击

我尝试用Scapy编写TCPRST攻击,但我的代码不起作用。请帮我解决我的问题。fromscapy.allimport*defpoison(packet):packet[TCP].flags='RST'sendp(packet)sniff(filter='tcp',prn=poison)flags有问题,我想。有一个错误:Traceback(mostrecentcalllast):File"Univer.py",line6,insniff(filter='tcp',prn=poison)File"/usr/lib/pymodules/python2.6/scapy/sendrecv.p

networking - 获取数据包的源地址和端口号 - Scapy 脚本

我正在嗅探网络并尝试在每个tcp数据包上获取IP地址和端口号。我将scapy与python一起使用,可以成功嗅探数据包,并且在回调函数中甚至可以打印数据包摘要。但我想做更多,比如只获取源的IP地址及其端口号。我怎样才能完成它?下面是我的代码:#!/usr/bin/evnpythonfromscapy.all.import.*defprint_summary(pkt):packet=pkt.summary()printpacketsniff(filter="tcp",prn=packet_summary)请提出一种只打印每个数据包的源IP地址的方法。谢谢。 最

python - Scapy:如何获取完整的 IP 数据包 header ?

在Scapy中,我想手动将数据包与其对应的ICMP超时消息匹配。我需要匹配:ICMP数据包的IP-in-ICMP字段我的数据包的IPheader和前8个字节ICMP数据包不是问题:icmpPayload=str(icmpPacket[ICMP].payload)对于数据包的前8个字节,我只需要做:str(myPacket[IP].payload)[:8]我不知道如何仅获取myPacket的IPheader。我现在所做的就是用它的前8个字节替换整个数据包中的有效负载。如果应用于数千个数据包,这种搜索和替换可能会花费太长时间,恐怕:strOfMyPacket=str(myPacket[IP

python - 使用 scapy、iftop 样式计算每个 IP 的带宽使用情况

我正在使用scapy嗅探镜像端口并生成前10个“谈话者”的列表,即在我的网络上使用最多带宽的主机列表。我知道工具已经可用,例如iftop和ntop,但我需要对输出进行更多控制。以下脚本对流量采样30秒,然后以“源主机->目标主机:字节”的格式打印前10个用量最大的列表。这很好,但我如何计算平均每秒字节数?我觉得将sample_interval更改为1秒并不能很好地对流量进行采样,因此我似乎需要对其进行平均。所以我在脚本末尾尝试了这个:bytespersecond=(totalbytes/sample_interval)但生成的Bytes/s似乎要低得多。例如,我以1.5MB/s的节流速

python - 在 scapy 中发送 ICMP 数据包并选择正确的接口(interface)

我们可以对第3层ICMP数据包使用srp()函数吗?我看到当我们制作一个ICMP回显请求数据包并使用sr()发送/接收时,我们没有看到它被发送出接口(interface),因此没有来自目的地的响应。但是如果我们使用srp()函数,我们会看到相同的数据包响应。我们什么时候应该使用sr()什么时候使用srp()?在文档中它声明sr()用于L3数据包和srp()用于L2?但就我而言,我不确定为什么sr()不适用于ICMP数据包?有高手能帮我理解一下吗?也有人可以让我知道是否始终需要“iface”参数。否则scapy将如何知道它应该通过哪个接口(interface)发送数据包?案例1:以ifa