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