Python嗅探器和RST矢量

时间:2014-07-16 18:50:08

标签: python sockets python-2.7

我只使用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()

1 个答案:

答案 0 :(得分:0)

接口仍然连接到接口上的IP。它花了一些时间,但我删除了地址的所有痕迹,而没有关闭界面,这是有效的。它现在不试图区分地址。我把毯子拿出来了 / etc / network /(接口)文件并重新启动,我的构造工作。我需要编写代码来覆盖它,重新加载接口,发送数据包,恢复到先前的地址,但我不确定在基本的python中这是可能的。我没有网络使用,所以我可以在gcc中自己创建或不担心它,因为它是python中的嗅探器,无论如何都有点不切实际。