def ifconfig(self, ip, netmask=None, broadcast=None):
     pyw.up(self.card)
     pyw.ifaddrset(self.card, ip, netmask, broadcast)
예제 #2
0
 def test_inetgetset(self):
     self.assertEquals(
         None, pyw.ifaddrset(self.card, pri["ip"], pri["mask"],
                             pri["bcast"]))
     self.assertEqual(pri["ip"], pyw.ifaddrget(self.card)[0])
예제 #3
0
    def run(self, args, cmd):
        script_args = argparse.Namespace()

        script_args.hostapd_wpe_args = to_args_str({
            "iface": args.iface,
            "channel": args.channel,
            "encryption": args.encryption,
            "mgt": args.mgt,
            "password": args.password,
            "ssid": args.ssid,
            "karma": args.karma,
            "mac-acl": args.mac_acl
        })

        script_args.dnsmasq_args = to_args_str({
            "start-addr":
            args.dhcp_start_addr,
            "end-addr":
            args.dhcp_end_addr,
            "lease-time":
            args.dhcp_lease_time,
        })

        script_args.deauth_args_lst = []
        additional_mon_iface = None

        if args.deauth:
            additional_mon_iface_name = "{}mon".format(args.iface)
            cmd.pfeedback(
                "[i] Creating additional monitor mode interface {} for the continuous deauth attack..."
                .format(additional_mon_iface_name))
            additional_mon_iface = pyw.devadd(pyw.getcard(args.iface),
                                              additional_mon_iface_name,
                                              "monitor")

            with db_session:
                try:
                    for bss in ExtendedServiceSet[args.ssid].bssets.select(
                            lambda bss: bss.channel == args.channel):
                        script_args.deauth_args_lst.append(
                            to_args_str({
                                "iface": additional_mon_iface_name,
                                "bssid": bss.bssid,
                                "channel": 0,
                                "num-frames": 0,
                                # "client": "FF:FF:FF:FF:FF:FF"
                            }))
                except:
                    pass

        pyw.ifaddrset(pyw.getcard(args.iface), args.router_ip, args.netmask)

        run(["sysctl", "-w", "net.ipv4.ip_forward=1"])

        cmd.pfeedback(
            "[i] Creating NAT rules in iptables for forwarding {} -> {}...".
            format(args.iface, args.out_iface))
        iptc.Table(iptc.Table.NAT).flush()
        nat_rule = iptc.Rule()
        nat_rule.src = str(
            ip_network("{}/{}".format(args.router_ip, args.netmask),
                       strict=False))
        nat_rule.out_interface = args.out_iface
        nat_rule.target = nat_rule.create_target("MASQUERADE")
        iptc.Chain(iptc.Table(iptc.Table.NAT),
                   "POSTROUTING").append_rule(nat_rule)

        cmd.pfeedback("[i] Starting hostapd-wpe and dnsmasq...")
        super().run(script_args, cmd)

        if additional_mon_iface:
            cmd.pfeedback(
                "[i] Deleting the additional monitor mode interface created for the continuous deauth "
                "attack...")
            pyw.devdel(additional_mon_iface)
예제 #4
0
 def test_inetgetset(self):
     self.assertEquals(None,pyw.ifaddrset(self.card,pri['ip'],pri['mask'],pri['bcast']))
     self.assertEqual(pri['ip'],pyw.ifaddrget(self.card)[0])
 def ifconfig(self, ip, netmask=None, broadcast=None):
     if self._valid_card():
         pyw.up(self.card)
         pyw.ifaddrset(self.card, ip, netmask, broadcast)
예제 #6
0
 def test_inetgetset(self):
     self.assertEquals(
         None, pyw.ifaddrset(self.card, pri['ip'], pri['mask'],
                             pri['bcast']))
     self.assertEqual(pri['ip'], pyw.ifaddrget(self.card)[0])
예제 #7
0
 def set_ipaddr(self, addr=None, mask=None, bcast=None):
     try:
         w = pyw.getcard(self._interface)
         pyw.ifaddrset(w, addr, mask, bcast)
     except pyric.error as e:
         logger.error(e)