在两项基于网络的“黑客”技术软件开发里,于测试中,有着网络环境迁移情况,存在数据分析情况1,进入导读。
为了吸引他人进来仔细看,对于智能路由器的这两项技术的介绍,想来想去还是搞个比较有噱头的标题才行。如今这篇文章介绍的确实是两项关于智能路由器的hack技术,然而却是把这两项技术应用于软件开发过程的正确途径当中的。当然了,要是有悟性的话,把此技术用于不违法的恶作剧玩一下也没什么问题。
本文提到的两个基于网络的hack技术:
基本本质上就是路由器设备的两个主要网络功能:
但是用于软件开发的正途,就变换成下面的说法:
2 概述
开放式无线路由器技术(OpenWrt)能够被说成是一种嵌入式的Linux发行版本,主流路由器固件存在dd-wrt、tomato、openwrt这三类,它并非尝试去构建一个孤立静止唯一性的系统,开放式无线路由器技术(OpenWrt)的包管理给予了一个完全能够进行写入操作的文件体统,源自应用程序供应商所给予的选择以及配置,并且准许您对设备展开自定义设置,以此去适配任何应用程序。
智能路由器,是那种具备智能化管理特性的路由器,它一般有着独立的操作系统,能让用户自己去安装各类应用,能自行操控带宽,能自行把控在线人数,能自行管控浏览网页,能自行限定在线时间,并且同时拥有强大的USB共享功能,切实达成网络以及设备的智能化管理。
不远的前些年,智能硬件的装置呈现出蓬勃向上的发展态势,而智能路由器也随之从实验室迈向了宽广天地,开启了商业化的进程,当下在市场之中已然涌现出各类主流品牌厂商所研发的智能路由器,像国内的极路由,小米所推出的路由器,华为的智能路由系列等等。
用户仅需付出较低的价钱,便能够入手,进而体验,具备良好且齐全的硬件配置的,智能网络硬件设备了。
智能路由器-百度百科
3 基本功能
一般来说,智能路由器可以做到这种地步,即除去普通路由器所具有的全部网络功能之外,还要提供凭借 Linux 软件的应用服务网络功能。
普通路由器网络功能如下:
只因智能路由器硬件之上所搭载的是openwrt,而openwrt本质上是一个经过订制的linux系统,故而还能够安装一些应用程序,借此完成普通linux的一些应用扩展功能,此如:
备注
现如今,于市场之上存在的商用路由器,在价格方面,相较于一台主机电脑而言,要远远低出许多,并且其网络功能完备齐全,还带有具备大容量的硬盘,一旦将其刷制成openwrt之后,便能够拥有属于自身的私有的git服务器或者文件服务器了。
4 准备工作
在正式开始实验之前,要做一些准备工作:
一种用于商业用途的智能路由器硬件装置,它原本是支持特定商用设备的,现在要将这个商用设备进行刷机操作,使其成为openwrt系统,而这一过程是要替换掉原来出厂时所订制的系统,有这样一个行为。
具体的openwrt支持硬件设备列表见 官方文档 。
各种品牌的路由器怎样去刷ROM,能到网上寻觅各种教程来看,文章这里将对于openwrt之后的应用格外着重,所以刷机的过程就省略掉了。
备注
于小米官网购得小米路由mini,依教程将其刷成基于openwrt订制的pandorabox。
刷机成功之后,便能够借助PC机施行远程路由操作了,犹如对一台平常的linux服务器进行远程操作那般,远程登录完毕以后,路由器终端界面给出的提示如下:

与日常Linux相似的是,有着涵盖基本文件操作、还有网络操作这类层面的命令。并且呢,openwrt能够借助软件仓库去实施应用软件的安装,具体参照内容为openwrt软件包管理。
例如,安装 nginx 应用程序:
opkg install nginx
上面针对openwrt的基本的知识,做了简要的介绍,接下来,就要着手开展一些综合的应用啦。
5 软件开发过程的应用
在本文中主要介绍两种综合应用:
给那些没有好用抓包工具的平台,像移动设备之类的,做数据包分析,这属于网络数据监控,网络环境存在迁移变换,其中包括使用场景,有6种情况,6.1是使用场景。
由各种应用服务器以及网络设备所构成的,是典型的互联网系统里最为基本的组成部分。此组成部分借助有效的网络硬件架构以及应用软件架构来实施部署,进而对外提供正常的服务。有一个典型的高性能 web 应用系统,其架构精简后呈现如下图示:

主要结构为:
网络的拓扑结构能够被简化,是为简易描述,所有这般机器连接于一台路由器上从而达成,机器之间借由网络来进行相互访问。
6.2 基本需求
上一小节内容中描述的网络应用架构,能够表征一种处于最终状态的生产力架构。然而,于软件开发周期之内,明显通常是不可以直接在最终生产力服务器平台之上展开操作的。一般情形下,从原型开发开始起,直至内部测试阶段,再到邀请公测,也即灰度阶段,最后到全面开放发布时,此架构的各个部分会经历一些平稳顺畅的迁移过程。
开发阶段的代码通常有各种各样的问题,存在大量不完整或错误之处,因而一定会存在一些不符合正确业务逻辑的情况,进而会产生出一些无用的数据 ,要是直接就针对生产平台展开测试,那就不能完全保证不会对现有的生产系统造成污染,而这是必须要尽力去防止发生的。
所以一般情况下,上述的网络架构体系需要进行三份拷贝:
对各种机器进行编号成:1~12号,如下图:

在开发阶段,可凭借对网络进行调整,进而形成相对平滑的迁移测试,于测试时也是如此。
6.3 实现方法
这些,所有的网络迁移,存在一个前置条件,即,在代码里,不要使用具体的IP,而要统一去使用域名定义机器名称。
这样的好处有:
存在这样一种情况,是关于DNS的定义,在此就不再去详细叙述了。它具备的功能,简单来讲是这样的:当网络应用程序朝着某个域名去请求内容的时候,实际上它并非直接朝着真实的主机发送请求,而是会首先向域名服务器展开查询工作,进而得到与之对应的IP地址,之后才会朝着具体主机上的服务发出请求。
因着上述所讲的原理,怎样去开展网络迁移便成为极易之事了:仅靠着对机器进行DNS解析的修改,便能够设计出自身所期望的网络集群组合了。
有两种方式进行修改:
6.3.1 本机修改
于Linux机器之下,在/etc/hosts文件当中,去进行修改地址解析。
关于/etc/host,主机名和IP配置文件:
该主机名查询静态表,涉及主机,是关于静态表的查找,针对主机名进行这一查找操作。
vim /etc/hosts
当在进行了相应修改工作的机器之上,对域名展开访问操作的时候,便会直接运用本机解析方式。此刻它将不会再朝着其它的DNS服务器发出请求,以进行解析工作。
要是没进行物理方面的分布式部署,所有服务都在本机搭建起来,那就能直接运用此方法。然而要是达成了物理层面的分布式部署,就能够借助DNS服务器以及网关配置,达成同一网关之下所有机器的网络统一化配置。
6.3.2 网关修改
于Linux系统里,通过dnsmasq去配置一台DNS应用服务器。
然后,于网关上,对相应的DNS服务器进行设置,新的主机接上此网关(其物理表现是路由器)后,则自DHCP处分配IP地址以及DNS服务器地址,过程如以下图示:

智能路由器本身就如同是一台 linux 主机,因此能够直接在这台机器上安装 DNS 服务器,并且对 DHCP 进行设置。通常状况下,openwrt 里面自然集成了 dnsmasq。
对于,/etc/config/network,这个文件,去开展编辑操作,如此一来,便能设置DHCP,进而,对相应的代码段,予以修改。
config interface 'lan'
……
option dns '127.0.0.1 223.5.5.5 223.6.6.6'
自然地,对于那些并不熟练掌握linux的同学们而言,也是能够借助openwrt所提供的web管理界面来实施设置的,在这里就省略不说了。
6.4 网络统一配置
因为有了上述的配置,所以后续每一个连接到这个路由之下的设备,全都要由路由进行统一的DNS服务器分配了。
一切连接于这个路由器之上的装置,不论其为移动装置,抑或是服务器,又或者是PC,皆具备统一的网络配置。

若要针对整个局域网开展网络修改操作,于此处言就是智能路由器,只需登录DNS服务器。
将域名IP映射记录添加到 /etc/hosts 当中,随后执行下面所说的命令,以此来重启 dnsmasq 服务,便可做到:
/etc/init.d/dnsmqsq restart
凭借在客户机之上践行ping命令,以此来查验一番相应着的域名,经由特殊所指向出去的域名,返回的全都是路由器配置而成的IP地址了,并非以特殊设定的那种,乃是让备用DNS服务器去开展解析工作这般,所以其他公网领域的服务依旧保持正常状态。
这个功能在某些场合是相当有用的,比如:前端兼容性测试。
有一个带有客户端的 web 应用程序,当它有着很强的兼容性要求之际,那就必须要在各种各样的平台进行打开测试。平台的分类是很多的,这里面包含不同的 PC 操作系统,类别各异的浏览器平台,差异化明显的移动端设备。比如说在 PC 端平台测试旧版本的 IE,通常情况下每个版本的 IE 都得建立一个虚拟机,而移动端因为差异化还要更严重,碎片化情况也很突出,所以会直接使用 N 台真实设备。如此一来,一个完整的兼容性测试就会涉及十几台甚至几十台设备。倘若首次网络环境的迁移都得于各个设备之上对网络配置予以修改,那么此项工作量以及出错率均是颇为巨大的。借助路由器针对子网的网络配置功能,能够极为高效地将这个问题加以解决。节约了时间,降低了出错率,这便是技术所带来的生产力。
说明
事实上,对于那些钟情于hack技术的人而言,上面所提及的技术实际上即是 “DNS劫持技术” 了。略微再增添些许内容,便能够打造出伪装程度颇高的钓鱼网站,再融入一点社会工程学以及人类心理学方面的知识,也就是把上网设备诱导至你的网络范围之中,如此便能够产生较为强大的破坏力了。所以,懂得技术的同学务必要杜绝去做违法的事情;不懂得技术的同学需要留意防范此类hack技术,切不可轻易地将设备接入陌生人的网络区域。
6.5 DNS劫持钓鱼手段简介
技术加一点社会工程学,hack做如下事情:
盗取支付信息
拷贝一份支付宝登录页面,做些改动,比如把提交密码的服务器改成hack服务器,诱使小白进入自己的路由器网络,实施DNS劫持,提供免费无密码WIFI,诱导用户支付登录,就算用户不是小白而是IT从业人员,记得支付宝域名并输入域名,确认进入一样的支付页面登录,用户发觉进入支付宝页面后,即便输入正确密码也登不进去便放弃,而后hacker已获取用户相应用户名及密码,开展后续工作。
你在浏览器输入了正确的域名,并且浏览器显示了一模一样的真实页面,与此同时,存在DNS劫持和页面复制情况,然而只是在你输入账号密码后,就不能登录了。
QQ诈骗
先来的方式与上头的事例相同,伪造QQ空间登录界面,取得QQ账号密码,给好友发送诈骗汇款讯息,随后进行其他行为。
也许众人会认为方式较为低级,然而身为一名还算得上资深的从事 IT 行业的人员,个人是曾有着相应的经历的。
事件1
有人在QQ放上消息,讲QQ空间存在不可思议的照片,依照习惯点过去,是QQ空间相册界面,还有登录弹出框。相册封面内容蛮吸引人,不过我仍出于职业习惯,瞧了一下浏览器的域名,发觉并非QQ空间域名,随之笑了笑,关掉了窗口。
事件2
有个很久都没联系过的朋友,在QQ上突然给我发消息,说麻烦我给她爸爸打个电话,讲她手机掉厕所里了,让她爸爸给她汇500块钱过来,还挺急的。首先这可不是让我直接汇款呀,紧急时刻,我差点就打了电话,差点就成了对方用来博取别人信任的筹码了。还好,我根本不知道她爸爸的电话,迟疑的那一瞬间让我清醒了些,让她说出她爸爸的名字,结果她却说不出来。
所以,上述那般方法实际上不见得就低端,然而一旦增添了高深的社会工程学以及人类心理学方面的知识,其所产生的社会危害着实是颇为巨大的。另外,上面那些信息的分析以及收集过程,能够借助编程以自动化的方式达成,在线下仅仅需要持续不断地去设局,便会具备一定的转化率的。
别再提其它,那偏离了本文主旨,只期望能引起大家那网络的安全意识,如此便好。
7 网络数据监控
除了网络配置功能外,智能路由器作为网关还具备网络数据转发的功能。openwrt基于linux,其上有抓包应用程序tcpdump且比较良好,再配合可视化工具wireshark,能够达到对所有通过此路由的数据进行监控的能力。
使用tcpdump有其相应方法,使用wireshark也有其对应方式,关于这些使用方法,并非本文所着重关注的要点,所以不会就此展开阐述,而是假定读者已然具备一定程度的关于此种方面的基础认知知识情形了。
下面的例子 ,是一个实验 ,该实验的目的是 ,实现远程机器 ,借助可视化工具wireshark ,对所有历经路由器的 ,数据展开监控的操作。
7.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 -
然后输入相应的账号密码就可以监控了。
7.2 工具小技巧
前面讲了基本原理,以及操作手段,然而其缺点在于,每次都得输入长串命令行,还有密码,能够利用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,如此便能够达成命令的启动之举了。
7.3 结果效果展示和应用
之后开启抓包工具,借助小米4手机连接路由器,接着打开UC浏览器去访问www.baidu.com抓包效果图是这样的:

已经可以看到设备的相应的网络IO访问内容了。
该功能能够被用于针对某些不存在抓包应用的平台之上的网络数据展开监控分析,比如说,对手机上面的网络通讯状况予以分析。
在进行软件开发之际,缓存常常极易致使一些并不正确的假象出现,而这些假象极容易对软件调试进程里的分析判断产生影响。举例来说,在网络环境迁移之时,不同的设备具备不同的DNS或者静态文件的缓存机制,尤其是手机终端浏览器都拥有一些云加速功能,这些功能的增添已然改变了以往大家所理解的网络请求过程,要是不了解这种影响,应用程序往往会展现出一些令人费解或者令人误解的现象。所以,一定要借助网络监控工具,以此来确认设备的网络环境,是否得到了正确的迁移,只有这样,才能够保证开发人员看到的某些现象,是可信的。
例如,UC手机浏览器以及QQ手机浏览器具备云加速功能,然而,好歹在其设置里面能够予以关闭,可是,微信内置浏览器实际上同样拥有该功能,并且,不存在任何一处地方能够进行设置关闭,这一点,在web开发调试进程当中极易致使人们感到费解或者产生误解。
7.4 网络安全随想
此前的内容讲过抓包的方法,很明显,在PC上已然见到了接入的手机与相关访问信息有关的情况:
敏感信息
针对并非敏感的信息,实际上有时候也具备一定敏感性,这构成了对隐私的一种侵害,毕竟不存在会期望自身所有网络行为习惯被他人毫无遗漏地窥视的人。
例如,wireshark可以对某个设备的访问记录进行统计:

这仅仅是刚才的实验,在短时间内访问了一下baidu.com ,要是长时间去对网络出口展开监控,那么依据浏览器网站的内容类别,就能够就易如反掌般地对设备持有人的喜好以及特征分析得极为准确。举例来说,一旦发现存在大量的女性衣服购物链接,那么便可以判断此人乃是年轻女性;要是发现大量科技论文检索页面,那么就能够判断为科研工作者。
数据再多些许,便会分析出更多内容。比如说,你手持手机悄悄于搜索引擎内搜索白血病的治疗方法,小心翼翼的你以为旁人不知,然而实际上他人全都知晓了。你欲借搜索引擎知晓更多,搜索输入就会越多,进而引发的网络行为越多,别人所知也就越多了。
在国内规模最大的搜索引擎百度于大概二零一五年最终启用了https搜索服务之前一直采用是非加密的http协议,这一点所幸是如此,当然在此之前也是这样。需要特别说明截至当下搜狗这类其他搜索引擎依旧采用的是非加密的http协议。
一旦涉及敏感信息,像登录名以及密码这类,要是处于http协议的传输环境下,那么这些内容能够直接在路由器上通过抓包被看见。这部分内容所产生的影响具有可大可小这样的特性。
所以安全总结如下:
注意
在https协议传输的情形下,所涉及的是加密内容,就算路由器实施抓包操作,也无法看到明文。当前,大型互联网公司的敏感数据传输部分大多是以https为基础,然而仍有诸多中小型互联网公司尚未留意到这一要点,依旧采用未加密的http协议,诸如用户名、密码这类内容,在通过路由器传输时,抓包便能看到明文。
8 公共WIFI安全警示
依循着如下途径的方法论述,理应是能够促使一部分用户对于公共WIFI的安全意识予以重视的吧。倘若对方身为路由器的管理员,并且终端用户又把设备连接至路由器之上了(遭遇钓鱼情形),那么:
毕竟当下各大商家均设有免费WIFI呢,这就使得一般拥有明确来源的WIFI,还是能够秉持可信的态度的,当然了,不能因为有未知WIFI尽量别轻易连接就因噎废食,否则会存在不可预知的风险。
9 最后总结
上述所介绍的,关于智能路由器所具备的两种玩法,其原本的意图,依旧是期望大家能够尽可能地把它应用于正当的途径,应用在生产的过程当中,通过它来提高软件的生产能力吧。千万不要随意滥用。
未经允许不得转载:openwrt技术分享 » 智能路由器两项hack技术,含OpenWrt流量监控用于软件开发

openwrt技术分享
微信关注,获取更多