openwrt-智能路由器hack技术(2)---"网路信息监控和窃取"

1   导读

PS:之前写的一个文章,现在发现结构内容排版不是太好,导致阅读体验太差,影响传播和SEO,所以现在整理拆分一下,从小处写起,

本系列介绍了两个关于智能路由器的hack技术,供大家赏玩一下。

本文主要介绍openwrt-智能路由器的数据监控功能。(为了维持本文一定的独立性,内容会有所重复)。

前一文章: openwrt-智能路由器hack技术(1)---"DNS劫持"

2   概述和准备

根据百度百科介绍:OpenWrt 可以被描述为一个嵌入式的 Linux 发行版,(主流路由器固件有 dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。

在正式开始实验之前,要做一些准备工作:

  1. 一台支持openwrt的商用智能路由器硬件设备
  2. 将商用设备刷机成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   原理和方法

基本的网络结构图如下:

主要操作原理是:

  1. 将上网设备连接到路由器

  2. 在路由器上使用tcpdump对网卡进行数据抓包

    截至此处已经达到了监控要求,但是不够直观,需要一些可视化的工具,比如wireshark

  3. 在同一网络内的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
版权声明: 欢迎以学习交流为目的读者随意转载,但是请 【注明出处】
支持本文: 如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】

openwrt-智能路由器hack技术(2)---"网路信息监控和窃取"的更多相关文章

  1. openwrt-智能路由器hack技术(1)---"DNS劫持"

    openwrt-智能路由器hack技术(1)---"DNS劫持" 1   导读 PS:之前写的一个文章,现在发现结构内容排版不是太好,导致阅读体验太差,影响传播和SEO,所以现在整 ...

  2. 智能路由器操作系统OpenWrt

    小米路由器的“MiWiFi”又让路由器成了关键词,每台智能路由器的系统是该款产品的亮点之一,其系统肯定有不少“好玩”的地方.为自己的智能路由器量身打造系统,并且纷纷开发了适合智能手机.平板电脑等使用的 ...

  3. 【智能路由器】让MT7620固件openwrt支持USB

    [智能路由器]系列文章连接 http://blog.csdn.net/u012819339/article/category/5803489 首先确定硬件有USB,这个得检查板子是否引出了usb口,一 ...

  4. 智能路由器开发指南_book

    最近购得一个openwrt书籍<智能路由器开发指南>,作者张永智. Building a smart router with openwrt 作者网址:http://openwrt.bjb ...

  5. 2018-2019-2 20165232 《网络对抗技术》 Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165232 <网络对抗技术> Exp6 信息搜集与漏洞扫描 一.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 二.实践内容. 各种搜索技巧的应 D ...

  6. 2018-2019-2 20165325 《网络对抗技术》 Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165325 <网络对抗技术> Exp6 信息搜集与漏洞扫描 实验内容(概要) 1 各种搜索技巧的应用: 2 DNS IP注册信息的查询: 3 基本的扫描技术 ...

  7. 2018-2019-2 网络对抗技术 20165206 Exp6 信息搜集与漏洞扫描

    - 2018-2019-2 网络对抗技术 20165206 Exp6 信息搜集与漏洞扫描 - 实验任务 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口 ...

  8. 网络对抗技术 20165220 Exp6 信息搜集与漏洞扫描

    网络对抗技术 20165220 Exp6 信息搜集与漏洞扫描 实验任务 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服 ...

  9. 2018-2019-2 20165312《网络攻防技术》Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165312<网络攻防技术>Exp6 信息搜集与漏洞扫描 目录 一.信息搜集技术与隐私保护--知识点总结 二.实验步骤 各种搜索技巧的应用 Google Hac ...

随机推荐

  1. eclipse中安装adt插件

    对于程序开发的学者来说,eclipse并不陌生,它为我们提供了一个非常广阔的平台来开发程序.同样我们也可以用它来开发android程序.但是在eclipse中并不能直接开发android程序,需要我们 ...

  2. MySQL 性能优化的最佳20多条经验分享

    当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这 ...

  3. int main(int argc,char* argv[])详解

    argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数, 比如:       int   main(int   argc,   ...

  4. mvc理解篇

    java是面向对象的语言. mvc是一种设计模式,就像论文排版,设置好论文的框架,字体,大小,颜色等,然后把论文内容往里填.mvc的出现让代码的层次更加的清晰,业务通过数据流实现. mvc框架的优点如 ...

  5. 数字与字母 随机数小demo

    public String generateRandomId(){ String chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHI ...

  6. iOS遍历相册中的图片

    //获取相册的所有图片 - (void)reloadImagesFromLibrary { self.images = [[NSMutableArray alloc] init]; dispatch_ ...

  7. 【Java源码分析】LinkedList类

    LinkedList<E> 源码解读 继承AbstractSequentialList<E> 实现List<E>, Deque<E>, Cloneabl ...

  8. IAR FOR ARM的安装及破解

    本博文主要是介绍如何安装以及破解IAR FOR ARM . 1.下载IAR FOR ARM以及注册机 IAR FOR ARM下载:http://pan.baidu.com/s/1i5t1qF7 注册机 ...

  9. 最常用的reset代码

    /*css reset code */ /**** 文字大小初始化,使1em=10px *****/body { font-size:12px;} /*字体边框等初始化*/body,div,dl,dt ...

  10. 广义Euler常数

    对于区间(a,b)内f''(x)>0 那么在该区间内函数的一阶导数对应切线在该区间内只与f(x)在切点相交 1. f''(x)>0那么可知 f'(x)在该区间内是单调增的 以下图为例,过( ...