openwrt-智能路由器hack技术(2)---"网路信息监控和窃取"
1 导读
PS:之前写的一个文章,现在发现结构内容排版不是太好,导致阅读体验太差,影响传播和SEO,所以现在整理拆分一下,从小处写起,
本系列介绍了两个关于智能路由器的hack技术,供大家赏玩一下。
本文主要介绍openwrt-智能路由器的数据监控功能。(为了维持本文一定的独立性,内容会有所重复)。
2 概述和准备
根据百度百科介绍:OpenWrt 可以被描述为一个嵌入式的 Linux 发行版,(主流路由器固件有 dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。
在正式开始实验之前,要做一些准备工作:
- 一台支持openwrt的商用智能路由器硬件设备
- 将商用设备刷机成openwrt系统(替换原出厂订制系统)
备注
本文是在小米官网购买的 小米路由mini ,然后根据教程刷成基于 openwrt 订制的 pandorabox
刷机成功后,就可以通过PC机远程路由了,就像远程一台普通的linux服务器一样,远程登录后,路由器终端界面提示如下:
基本的文件操作,网络操作等命令和普通Linux类似。同时openwrt也可以通过软件仓库安装应用软件,具体参见 openwrt软件包管理 [1] 。
例如,安装 nginx 应用程序:
opkg install nginx
上面对openwrt的基本知识进行了简单介绍,后面开始一些综合应用了。
[1] | openwrt软件包管理 <http://wiki.openwrt.org/doc/packages> |
3 信息监控
智能路由器作为网关除了网络配置功能外,还有网络数据转发的功能。由于openwrt是基于linux的,上面有比较良好的抓包应用程序tcpdump,再配合 wireshark 的可视化工具,可以达到对所有通过此路由的数据进行监控的能力。
关于 tcpdump 和 wireshark 的使用方法,不是本文的重点,故不展开,默认读者具有一定这方面的基础知识了。
下面的例子是实现远程机器通过可视化工具 wireshark 对所有经过路由器的数据进行监控的实验。
3.1 原理和方法
基本的网络结构图如下:
主要操作原理是:
-
将上网设备连接到路由器
- 在路由器上使用tcpdump对网卡进行数据抓包
-
截至此处已经达到了监控要求,但是不够直观,需要一些可视化的工具,比如wireshark
- 在同一网络内的Linux桌面系统上运行wireshark对路由器上的tcpdump数据进行导入
-
通过ssh远程执行tcpdump命令,将数据输入到desktop,然后作为wireshark的输入数据源
在桌面系统终端里面执行下列命令:
ssh root@mitest "tcpdump -s 0 -U -n -w - -i br-lan not port 22" | wireshark -k -i -
然后输入相应的账号密码就可以监控了。
关于上面的命令行有如下说明:
- 根据openwrt文档,所有的局域网的数据最后都是通过br-lan虚拟网卡来做转发,所以对此网卡进行监控即可
- 此命令本质是远程在路由器上执行网络监控命令,输入文本到本机的wireshark里面
- 使用wireshark作为可视化工具来查看
3.2 工具小技巧
前面讲述了基本的原理和操作手段,但是缺点是每次都需要输入长串命令行和密码,可以利用linux的一些小操作技巧,简化此过程,做成一个命令工具,方便随时调用。
基本原理:
- 使用 sshpass 工具来做名密码输入
- 使用 alias 别名来做成命令语句
自动登录语句实现:
sshpass -p 'route-pass-world' ssh -o StrictHostKeyChecking=no root@mitest 'tcpdump -s 0 -U -n -w - -i br-lan not port 22' | wireshark -k -i -
编辑~/.bash_alias文件,自定义命令行的别名:
alias zshark="sshpass -p 'route-pass-world' ssh -o StrictHostKeyChecking=no root@mitest 'tcpdump -s 0 -U -n -w - -i br-lan not port 22' | wireshark -k -i -"
后面只需要在shell里面输入zshark就可以完成命令的启动了。
3.3 结果效果展示和应用
然后启动抓包工具,使用小米4手机连接路由器,打开UC浏览器访问www.baidu.com :
点击进入并访问到网页:
抓包效果图如下:
已经可以看到设备的相应的网络IO访问内容了。
这个功能的可以用于对一些没有抓包应用的平台上的网络数据监控分析。例如:分析手机上的网络通讯情况。
在软件开发的时候,缓存往往很容易造成一些不正确的假象,这些假象非常容易影响软件调试过程中的分析判断。比如,在网络环境迁移的过程中,不同的设备有不同的DNS或者静态文件的缓存机制,特别是手机终端浏览器都有一些 云加速 功能,这些功能的加入已经改变了以前大家理解的网络请求过程,如果不了解这个影响,应用程序往往会呈现出一些令人费解或者令人误解的现象。所以必须要借助网络监控工具来确认设备的网络环境得到了正确的迁移,才能保证开发人员看到的一些现象是可信的。
比如:UC和QQ手机浏览器有 云加速 功能,但是好歹在设置中可以进行关闭,但是微信内置浏览器其实也有此功能,而且没有任何地方能够设置关闭,这点在web开发调试过程中很容易让人费解或者误解。
3.4 网络安全随想
在前面的内容已经介绍了如何抓包了,显然已经在PC上看到了接入的手机上的相关访问信息:
- 非敏感信息
-
- 手机型号
- 操作系统
- 浏览器标识
- 访问页面内容和时间
- 敏感信息
-
- 如果是http协议,页面提交的表单内容也会明文被查看到
对于非敏感信息,其实有些时候也比较敏感,这是对隐私的一种侵犯,毕竟没有谁希望自己的一切网络行为习惯被别人窥探无遗。
例如,wireshark可以对某个设备的访问记录进行统计:
这只是刚才的实验短时间访问了一下baidu.com,如果长时间对网络出口进行监控,那么这个很容易根据浏览器的网站的内容类别,可以将设备持有人的喜好和特征分析得八九不离十。比如,发现大量的女性衣服购物链接就可以判别此人是年轻女性;如果发现大量科技论文检索页面,则可以判别为科研工作者。
再多一些数据,就会分析更多一些内容。比如,你拿着手机偷偷在搜索引擎里面搜索 白血病的治疗方法 ,很小心的你以为别人不知道,但是其实别人什么都知道了,你想通过搜索引擎知道更多,就会搜索输入得越多,然后产生的网络行为越多,别人就会知道的更多了。
当然所幸的是 国内最大的搜索引擎 百度 ,大概在2015年终于使用了https 的搜索服务了,在此之前是非加密的 http 协议。其它的搜索引擎,例如 搜狗 截至目前为止仍然使用的是非加密的 http 协议。
对于敏感信息,比如登录名和密码,如果是在 http 协议下传输,这些内容是可以直接在路由器上抓包看见的。这部分内容的影响就可大可小了。
所以安全总结如下:
- 非敏感信息被窥探
-
成规模产生统计价值,会暴露个人特征和喜好等等隐私
- 敏感信息被窥探
-
直接涉及到账号密码时,产生的后果可能很严重
注意
https 协议传输的属于加密内容,即使路由器抓包了,也看不到明文。像目前大型的互联网公司的敏感数据传输部分基本上都是基于 https 了,但是仍然有很多中小型互联网公司还没有注意到这一点,仍然使用未加密的http 协议,像用户名密码这些东西在路由器上传输的时候,抓包都可以看到明文。
4 公共WIFI安全警示
经过如下的方法阐述,应该能够引起一部分用户对公共WIFI的安全意识的重视吧。如果对方是路由器的管理员,然后终端用户又将设备连接到路由器上了(被钓鱼),那么:
- DNS劫持
-
本来用户访问A网站,但是却被导向一个伪装好的恶意的B网站,那么用户的登录账号密码等敏感信息甚至银行信息都有可以被截取
- 通讯数据被监视
-
- 用户访问的网络地址都被获知(用户的习惯被掌控了)
- http的请求的数据内容都会被明文截获
当然一般的有明确来源的的WIFI还是可以抱可信的态度的(毕竟现在各大商家都有免费WIFI,不能因噎废食),但是未知WIFI尽量不要轻易连接,否则会有不可预知的风险。
5 最后总结
上面介绍的智能路由器的两种玩法,本意还是希望大家能够尽量将其用于正途,用于生产中,用来提升软件的生产力吧。请勿乱用。
作者: | Harmo哈莫 |
---|---|
作者介绍: | https://zhengwh.github.io |
技术博客: | http://www.cnblogs.com/beer |
Email: | dreamzsm@gmail.com |
QQ: | 1295351490 |
时间: | 2015-10 |
版权声明: | 欢迎以学习交流为目的读者随意转载,但是请 【注明出处】 |
支持本文: | 如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】 |