我尝试开发一个MITM攻击工具,首先尝试arp中毒,然后嗅探和过滤特定的数据包(它们都带有替罪羊),如果与我的过滤器匹配,我需要动态修改它,因此,创建该数据包的副本,然后操作TCP数据并发送它。但最后一步行不通。复制数据包的操作正确吗?
from netfilterqueue import NetfilterQueue
from scapy.all import *
from scapy.error import Scapy_Exception
import os
import sys
import threading
import signal
def Inspector (packet):
if packet[TCP].payload :
tcp_data = str(packet[TCP].payload)
if 'Open' in tcp_data:
packet_data = tcp_data.split('(')
a= copy.deepcopy(packet) # First Copy The packet
packet.drop() # Second Drop it
if 'Up' in tcp_data :
payload_O = packet_data[0] + '(' + 'Down//inject'
a[TCP].data = payload_O
send(a)
else :
packet.accept()
def main():
try:
print '[*] Starting Queue '
nfqueue.run_socket()
sniff(filter="tcp port 2626", prn=inspector, store=0)
if __name__ == "__main__":
main()发布于 2018-02-04 12:55:25
用替罪羊拦截数据包是不可能的。您的代码可能会在原始数据包之后发送另一个数据包。
创建MITM工具的最佳方法是ARP中毒。您可以查看一些替罪羊教程,如:
当然,您的工具只用于安全目的,因为您知道这种做法是非法的。
https://stackoverflow.com/questions/48532331
复制相似问题