[英]Using Scapy (Python) For Resending A Packet In The Network
我想在Python中使用Scapy軟件包,以便在特定端口(例如53)中接收數據包(例如DNS查詢),然后再次將相同的數據包發送給我自己,但發送到其他端口。 例如,如果原始查詢發送到端口53,我想再次發送它,但是發送到另一個端口(例如1028)。
我考慮過將目標IP地址更改為回送地址(127.0.0.1),並將目標端口更改為特定值(例如1028),然后使用scapy的“發送”功能,但這似乎不起作用。
如果收到的數據包變量名為“數據包”,則:
packet['IP'].dst = '127.0.0.1'
packet['UDP'].dst = 1028
send(packet)
我還考慮過刪除校驗和並使用show2()重新計算它們,但仍然無法正常工作。
有任何想法嗎?
例如,這是一種情況(當“包”是通過嗅探接收到的包時,將調用此函數:
new_ip_header = IP(src=packet['IP'].src,dst=**MY IP**)
new_udp_header = UDP(sport=packet['UDP'].sport,dport=1028)
new_dns_header = packet['DNS']
new_packet = new_ip_header / new_udp_header / new_dns_header
del new_packet[IP].chksum
del new_packet[UDP].chksum
del new_packet[IP].payload.chksum
new_packet.show2()
send(new_packet)
一些注意事項:
該消息正在發送到我的公共IP地址。 它說“已發送1個數據包”,但好像沒有按預期在端口1028中接收到該消息。
校驗和字段被刪除,然后我使用show2方法重新計算它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.