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



推荐阅读
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
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社区 版权所有