示例#1
0
    def test_os_of_victims(self):
        """Create three victims, checks os against urls."""
        victims_instance = victim.Victims.get_instance()
        new_victim = victim.Victim("68:CC:6E:23:44:53", "10.0.0.5")
        victims_instance.add_to_victim_dic(new_victim)
        new_victim.associate_victim_mac_to_vendor("68:CC:6E:23:44:53")

        victims_instance = victim.Victims.get_instance()
        new_victim = victim.Victim("68:CC:6E:23:44:33", "10.0.0.3")
        victims_instance.add_to_victim_dic(new_victim)
        new_victim.associate_victim_mac_to_vendor("68:CC:6E:23:44:33")

        victims_instance = victim.Victims.get_instance()
        new_victim = victim.Victim("5C:BA:37:23:44:53", "10.0.0.6")
        victims_instance.add_to_victim_dic(new_victim)
        new_victim.associate_victim_mac_to_vendor("5C:BA:37:23:44:53")

        victims_instance = victim.Victims.get_instance()
        victims_instance.associate_victim_ip_to_os(
            "10.0.0.5",
            "http://connectivitycheck.android.com/generate_204/gener/plox/")

        victims_instance = victim.Victims.get_instance()
        victims_instance.associate_victim_ip_to_os(
            "10.0.0.3", "http://gstatic.com/generate_204/")

        victims_instance = victim.Victims.get_instance()
        victims_instance.associate_victim_ip_to_os(
            "10.0.0.6", "http://msftncsi.com/lalala/loulou/sasasas.php")

        victims_instance = victim.Victims.get_instance()
        self.assertTrue(
            "Windows" == victims_instance.victims_dic["5C:BA:37:23:44:53"].os)
        self.assertTrue(
            "Android" == victims_instance.victims_dic["68:CC:6E:23:44:53"].os)
示例#2
0
    def test_victims_inserted_to_dic_and_vendor(self):
        """Create two victims and check if their attributes are correct."""
        victims_instance = victim.Victims.get_instance()
        new_victim = victim.Victim("68:CC:6E:23:44:53", "10.0.0.5")
        victims_instance.add_to_victim_dic(new_victim)
        new_victim.associate_victim_mac_to_vendor("68:CC:6E:23:44:53")

        victims_instance = victim.Victims.get_instance()
        new_victim = victim.Victim("5C:BA:37:23:44:53", "10.0.0.6")
        victims_instance.add_to_victim_dic(new_victim)
        new_victim.associate_victim_mac_to_vendor("5C:BA:37:23:44:53")

        victims_instance = victim.Victims.get_instance()
        self.assertTrue("68:CC:6E:23:44:53" in victims_instance.victims_dic)
        self.assertTrue("10.0.0.5" == victims_instance.
                        victims_dic["68:CC:6E:23:44:53"].ip_address)
        self.assertTrue("5C:BA:37:23:44:53" in victims_instance.victims_dic)
        self.assertTrue("10.0.0.6" == victims_instance.
                        victims_dic["5C:BA:37:23:44:53"].ip_address)

        # Check if the vendors match correctly
        self.assertTrue("Huawei Technologies" == victims_instance.
                        victims_dic["68:CC:6E:23:44:53"].vendor)
        self.assertTrue("Microsoft" == victims_instance.
                        victims_dic["5C:BA:37:23:44:53"].vendor)
示例#3
0
    def test_victim_changed_ipaddr(self):
        """Create and insert a new victim and then change its IP address,"""
        victims_instance = victim.Victims.get_instance()
        new_victim = victim.Victim("5C:BA:37:23:44:53", "10.0.0.6")
        victims_instance.add_to_victim_dic(new_victim)
        new_victim.associate_victim_mac_to_vendor("5C:BA:37:23:44:53")

        victims_instance = victim.Victims.get_instance()
        existing_victim = victims_instance.victims_dic["5C:BA:37:23:44:53"]
        existing_victim.assign_ip_to_victim("5C:BA:37:23:44:53", "10.0.0.10")
        self.assertTrue("10.0.0.10" == victims_instance.
                        victims_dic["5C:BA:37:23:44:53"].ip_address)
 def read_connected_victims_file(self):
     """Update the Victims dictionary by reading dnsmasq.leases file."""
     if (not os.path.isfile('/var/lib/misc/dnsmasq.leases')):
         return
     with open("/var/lib/misc/dnsmasq.leases", "r") as dnsmasq_leases:
         for line in dnsmasq_leases:
             line = line.split()
             if not line:
                 return
             mac_address = line[1].strip()
             ip_address = line[2].strip()
             # Get instance of victims dic
             victims_instance = victim.Victims.get_instance()
             if mac_address in victims_instance.victims_dic:
                 existing_victim = victims_instance.victims_dic[mac_address]
                 if ip_address == existing_victim.ip_address:
                     return
                 existing_victim.assign_ip_to_victim(
                     mac_address, ip_address)
             else:
                 new_victim = victim.Victim(mac_address, ip_address)
                 victims_instance.add_to_victim_dic(new_victim)
                 new_victim.associate_victim_mac_to_vendor(mac_address)