我只使用Kali 1.05中内置的内容在python中编写了一个嗅探器。 Sniffer看到所有流量(除了我必须使用脚本进入混杂模式),我想要一台连接到地址的RST。下面是一些嗅探器代码。我尝试将标头注入(使用我没有的IP和MAC地址)设置到任何已安装的设备,我收到错误[6]:没有这样的设备或地址。我用十六进制手写出数据包,看看是否有帮助,但我得到了同样的错误(我不能附上那部分代码,所以请不要问)。有没有人有建议?
import threading, os, sys, socket, struct, binascii, time
class atk(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
pkt_type = [0x003]
self.sock = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(pkt_type[0]))
def run(self):
self.atk_msg = ""
while True:
msg = self.sock.recv(65565)
print "PROTOCOL Layer 2-3: ", self.decomp2(self.decomp(msg)), " 3-4: ", self.decomp3(self.decomp(msg))
def decomp(self, msg):
return list(binascii.hexlify(msg))
def decomp3(self, msg):
if msg[46] == '0' and msg[47] == '6':
return "TCP"
def decomp2(self, msg):
if msg[24] == '0' and msg[25] == '8' and msg[26] == '0' and msg[27] == '0':
return "IP "
if msg[24] == '0' and msg[25] == '8' and msg[26] == '0' and msg[27] == '6':
return "ARP "
if msg[24] == '8' and msg[25] == '6' and msg[26] == 'd' and msg[27] == 'd':
return "IPV6"
if __name__ == '__main__':
a = atk()
a.start()
答案 0 :(得分:0)
接口仍然连接到接口上的IP。它花了一些时间,但我删除了地址的所有痕迹,而没有关闭界面,这是有效的。它现在不试图区分地址。我把毯子拿出来了 / etc / network /(接口)文件并重新启动,我的构造工作。我需要编写代码来覆盖它,重新加载接口,发送数据包,恢复到先前的地址,但我不确定在基本的python中这是可能的。我没有网络使用,所以我可以在gcc中自己创建或不担心它,因为它是python中的嗅探器,无论如何都有点不切实际。