热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

openwrt-智能路由器hack技术(2)---网路信息监控和窃取1导读PS:之前写的一个文章,现在发现结构内容排版不

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



推荐阅读
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 如何在Win10系统下通过VMware 14 Pro安装CentOS 7
    本文详细介绍了在Windows 10操作系统中使用VMware Workstation 14 Pro搭建CentOS 7虚拟环境的步骤,包括所需工具、安装过程及系统配置等。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 深入体验Python的高级交互式Shell - IPython
    IPython 是一个增强型的 Python 交互式 Shell,提供了比标准 Python 控制台更为强大的功能,适用于开发和调试过程。它不仅支持直接执行 Linux 命令,还提供了丰富的特性来提高编程效率。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 实践指南:使用Express、Create React App与MongoDB搭建React开发环境
    本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ... [详细]
author-avatar
拍友2502902623
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有