草庐IT

python - 使用scapy时如何从数据包中读取整个ip层和tcp层?

我正在使用scapy接收ICMPDestinationunreachable(FragmentationneededICMPTYPE=3CODE=4)消息时进行TCP重传行为测试。测试流程是这样的:1.与服务器建立TCP连接2.TCP建立后向服务器发送HTTPGET请求3.当HTTPResponse返回时4.向设置了小MTU的服务器发送ICMP类型3代码4消息问题是ICMPTYPE=3CODE=4消息包含该HTTP响应数据包的IPheader和部分TCPheader(srt、dst和seq编号)。目前,我只是从HTTP响应数据包中读取每个参数(如IP标识、片段标记、ttl等)。问题是:

python - 用netfilterqueue和scapy修改HTTP头

我想使用netfilterqueue(0.6-最新版)和scapy将“主机”header更改为我的值。这是我的iptables规则:iptables-AOUTPUT-ptcp--dport80-jNFQUEUE--queue-num0我有我的代码:fromnetfilterqueueimport*fromscapy.allimport*defchange(pkt):scapy_pkt=IP(pkt.get_payload())ifscapy_pkt.haslayer(TCP)andscapy_pkt.getlayer(TCP).dport==80andscapy_pkt.haslaye

python - scapy sr 函数不返回答案

我正在尝试使用scapy进行隐形SYN扫描。我在scapy中阅读usagedocumantation关于sr功能。它应该对我发送的数据包做出响应。例如,我尝试运行以下命令:>>>ans,unans=sr(IP(dst="192.168.1.1")/TCP(dport=[22,80,443],flags="S"))也就是说,我想通过TCP/IP向192.168.1.1发送一个SYN数据包。我本以为会立即得到以下答案:>>>Beginemission:.......*.**.......Finishedtosend3packets.**.*.*..*..................Re

python - Scapy sniff() 似乎没有捕获 TCP 数据包,只显示以太网帧

我有tcpdump和scapy在同一个界面上运行sniff()。发生scp文件传输。tcpdump:我看到了带有seq和acks的tcp数据包。scapysniff()返回列表:我在每个数据包summary()中看到的都是(MACaddr1)>(Macaddr2)(0x800)/Raw。即使在数据包.show()中,我也只看到带有“##[Ethernet]##”、src和dst的链路层内容。我以30的超时时间运行此程序,所以我知道我会捕获空文本文件的scp传输,所以我知道我的时间是正确的。肯定有TCP数据包通过,但没有检测到。Scapy有问题吗?谢谢 最佳答

python - Scapy 原始套接字

我尝试在Python中使用原始套接字并使用Scapy实现3-way-hadnshake。代码是:s=socket.socket(socket.AF_PACKET,socket.SOCK_RAW,socket.IPPROTO_TCP)ss=StreamSocket(s)iph=IPheader()syn=TCP(sport=TCP_SOURCE_PORT,dport=TCP_DESTINATION_PORT,flags="S")synack=ss.sr1(iph/syn)myack=iph/TCP(dport=synack[TCP].sport,sport=synack[TCP].dpo

python - 使用 Scapy 用 Python 编写的 TCP 端口扫描器没有响应

我正在尝试制作一个TCP端口扫描器,但我坚持使用一个非常简单的示例,该示例与我在网上找到的一个更高级的示例串联在一起。我没有收到任何错误。自从我在Linux机器上启动Apache服务器后,我希望代码显示端口80是打开的。代码如下:#!/usr/bin/pythonimportlogginglogging.getLogger("scapy.runtime").setLevel(logging.ERROR)fromscapy.allimport*ip="127.0.0.1"port=80response=sr1(IP(dst=ip)/TCP(dport=port,flags="S"),ve

networking - 关于ICMP“需要分片,DF位设置”或ICMP包太大的消息

我正在向服务器中注入ICMP“需要碎片,df位集”,理想情况下,服务器应该开始发送数据包,其大小如ICMP中“下一个跃点MTU”字段中所述。但这不起作用。这是服务器代码:#!/usr/bin/envpythonimportsocket#Importsocketmoduleimporttimeimportosrange=[1,2,3,4,5,6,7,8,9]s=socket.socket()#Createasocketobjecthost='192.168.0.17'#Getlocalmachinenameport=12349#Reserveaportforyourservice.s.s

python - 仅使用 TCP 的 Scapy DNS 请求格式错误

我使用scapy和python来构建我的DNS请求。UDP请求没问题,但当我想使用TCP(使用与UDP完全相同的请求)时,Wireshark说我的DNS请求格式错误。这是我的python代码:fromscapy.allimport*ip=IP(dst="130.104.254.1")dns=DNS(rd=1,qd=DNSQR(qname="google.be",qtype="A"))SYN=ip/TCP(sport=RandNum(1024,65535),dport=53,flags="S",seq=42)SYNACK=sr1(SYN)ACK=ip/TCP(sport=SYNACK.d

python - 使用 nfqueue/scapy 更改 TCP 负载

你好,我正在使用nfqueue和scapy,我的目标是在我的NFQUEUE接收数据包,更改有效负载并重新发送它们。我可以毫无问题地更改TTL等字段,但在更改有效负载时,我遇到了问题。当我更改有效载荷时,我使用wireshark嗅探数据包,显然我发送了修改了有效载荷的数据包,但服务器没有应答。这是我的代码:#!/usr/bin/envpythonimportnfqueuefromscapy.allimport*defcallback(payload):data=payload.get_data()pkt=IP(data)pkt[TCP].payload=str(pkt[TCP].payl

Python3下基于Scapy库完成网卡抓包解析

Scapy是一个可以让用户发送、侦听和解析并伪装网络报文的Python程序。这些功能可以用于制作侦测、扫描和攻击网络的工具。在Python代码中可以通过sniff函数调用抓包分析,并对抓到的包进行回调操作。Sniff方法定义:sniff(count=0,store=1,offline=None,prn=None,filter=None,L2socket=None,timeout=None,opened_socket=None,stop_filter=None,iface=None)count:抓取报的数量,设置为0时则一直捕获store:保存抓取的数据包或者丢弃,1保存,0丢弃offline: