openwrt-智能路由器hack技术(1)---"DNS劫持"
1 导读
PS:之前写的一个文章,现在发现结构内容排版不是太好,导致阅读体验太差,影响传播和SEO,所以现在整理拆分一下,从小处写起,
本系列介绍了两个关于智能路由器的hack技术,供大家赏玩一下。
本文提到的两个基于网络的hack技术:
- DNS劫持
- 数据抓包
基本本质上就是路由器设备的两个主要网络功能:
- 网关配置功能
- 网关数据中转功能
但是用于软件开发的正途,就变换成下面的说法:
- 网络环境迁移
- 数据监控
由于大家可能对 恶作剧 比较兴趣一些,所以就从hack的角度把内容抽取出来写吧。
2 概述
OpenWrt 可以被描述为一个嵌入式的 Linux 发行版,(主流路由器固件有 dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序 [1] 。
智能路由器也就是智能化管理的路由器,通常具有独立的操作系统,可以由用户自行安装各种应用,自行控制带宽、自行控制在线人数、自行控制浏览网页、自行控制在线时间、同时拥有强大的USB共享功能,真正做到网络和设备的智能化管理 [2]。
近几年,智能硬件设备蓬勃发展,智能路由器也开始从实验室走了出来,开始商业化,目前市场上已经出现了各种主流品牌厂商的智能路由器。例如国内的:极路由,小米路由器,华为智能路由系列……
用户只需以较低的价格就可以入手体验到硬件配置良好齐全的智能网络硬件设备了。
[1] | Openwrt-百度百科 |
[2] | 智能路由器-百度百科 |
备注
现在市场上的商用路由器,价格上远低于一台主机电脑,然后网络功能齐全,且带有大容量的硬盘,只要刷成openwrt之后,就可以拥有自己的私有的git服务器或者文件服务器了。
3 准备工作
在正式开始实验之前,要做一些准备工作:
- 一台支持openwrt的商用智能路由器硬件设备
- 将商用设备刷机成openwrt系统(替换原出厂订制系统)
具体的openwrt支持硬件设备列表见 官方文档 [3] 。
关于各种品牌的路由器如何刷ROM,可以到网上找各种教程,本文主要侧重openwrt后的应用,故刷机过程略去。
备注
本文是在小米官网购买的 小米路由mini ,然后根据教程刷成基于 openwrt 订制的 pandorabox
刷机成功后,就可以通过PC机远程路由了,就像远程一台普通的linux服务器一样,远程登录后,路由器终端界面提示如下:
基本的文件操作,网络操作等命令和普通Linux类似。同时openwrt也可以通过软件仓库安装应用软件,具体参见 openwrt软件包管理 [4]。
例如,安装 nginx 应用程序:
opkg install nginx
上面对openwrt的基本知识进行了简单介绍,后面开始一些综合应用了。
[3] | Openwrt Table of Hardware <http://wiki.openwrt.org/toh/start> |
[4] | openwrt软件包管理 <http://wiki.openwrt.org/doc/packages> |
4 DNS劫持
关于DNS的定义,在此不再赘述。其功能简单来说:就是网络应用程序在向某个域名请求内容时,其实并不是直接向真实的主机发送,而是先向域名服务器进行查询,得到对应的IP地址,然后才指向具体的主机上的服务进行请求。
基于以上的原理,如何进行DNS劫持就变得很容易了:只需要修改机器的DNS解析,就可以设计出自己想要的网络集群组合了。
有两种方式进行修改:
-
- 本机修改
-
修改本机hosts,不使用额外的DNS服务器
-
- 网关修改
-
建立DNS服务器并进行解析设置
直接修改上网设备由于对当事人的私有设备进行了比较深入的入侵,门槛较高,所以可行性不高。还不如把对方引诱到自己的网络领地,即接入到自己的WIFI或者有线网络里面。
可以通过DNS服务器及网关配置,实现同一路由器(网关)下所有机器的网络统一配置。
在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管理界面进行设置,在此略去不表。
经过上述配置,后续所有连接到此路由下面的设备,都由路由统一分配DNS服务器了。
所有连接在此路由器上的设备,不管是移动设备,还是服务器还是PC都有统一的网络配置。
如果要对整个局域网进行网络修改,只需登录DNS服务器(此处就是智能路由器)。
修改 /etc/hosts 加上域名IP映射记录,然后执行下述命令重启dnsmasq服务即可:
/etc/init.d/dnsmqsq restart
在客户机上执行 ping命令检查一下相应的域名,经过特殊指向的域名返回的都是路由器配置的IP地址了(非特殊设定的,由备用DNS服务器来进行解析,所以其它公网服务仍然正常)。
基本上,只要如上图连接到了你的智能路由器的所有上网设备,都已经在你的掌控之下了,你想劫持就能劫持了。
具体的操作手段如下:
例如,修改路由器的hosts映射:
127.0.0.1 www.baidu.com
然后在浏览器输入 百度 的域名,出来的就是下图(本机已经事先安装了nginx的web服务器了):
使用浏览器的前端调试工具可以看出此域名的实际解析主机已经不再是 百度 的真实服务器,而是nginx的默认主页:
如果hack做一个高仿的 百度 主页,再做一些简单的搜索引擎,那么基于目前都依靠百度来作为互联网导航的广大小白网民来说,杀伤力还是蛮巨大的。
说明
其实对于喜欢hack技术的人来说,上面的技术其实就是 ”DNS劫持技术“ 了。稍微再加一点东西,就可以做成伪装度很高的钓鱼网站,再加一点社会工程学和人类心理学的知识(将上网设备引诱到你的网络领域来),就能产生比较强的破坏力了。所以懂技术的同学请不要做违法的事;不懂技术的同学请注意防范此类的hack技术,不要轻易将设备接入陌生人的网络领地。
5 常见钓鱼手段简介
技术加一点社会工程学,hack做如下事情:
盗取支付信息
-
- 将支付宝登录页面复制一份,做一些修改
-
例如:将提交密码的服务器修改成hack服务器
-
- 引诱小白到自己的路由器网络下,进行DNS劫持
-
免费WIFI,无密码
-
- 诱导用户进行支付登录
-
即使用户不是小白,是IT从业人员,记得支付宝的域名,然后输入了域名,确认进入了一模一样的支付页面,进行登录
- 用户发现进入支付宝页面后,即使输入正确的密码也无法登录进去,于是放弃
- 然后hacker已经获取了用户的相应的用户名及密码了,进行后续工作
DNS劫持和页面复制,可以让用户在浏览器输入了正确的域名,而且浏览器显示了一模一样的 真实 页面,只是你输入账号密码后,不能登录而已。
QQ诈骗
- 前面的手段和上面的例子一样,伪照QQ空间登录页面,获取QQ账号密码
- 给好友发诈骗汇款信息
- 后续其它操作。。。。
可能大家觉得手段比较低端,但是作为一个还算资深的IT从业人员,个人还是有过相应的经历。
事件1
有人在QQ上发消息,说QQ空间有不可思议的照片,习惯性点击过去,是QQ空间相册界面,和登录弹出框。相册封面内容很吸引人,但是我还是出于职业习惯,看了一下浏览器的域名,发现不是QQ空间域名,于是笑了笑,关闭了窗口。
事件2
很久没有联系的一个朋友,在QQ突然向我发消息:麻烦你给我爸爸打个电话说我手机掉厕所了,让他给我汇500块钱过来一下,急。首先这不是让我直接汇款,紧急间,我差点给打了电话,差点成为对方作为博取别人信任的筹码了。还好,我并不知道他的爸爸的电话,迟疑的一瞬间让我清醒了一下,让他说他爸爸的名字,结果他说不出来。。。。
所以,上述方法其实不一定低端,一旦加入高深的社会工程学和人类心理学的知识,产生的社会危害还是蛮大的。还有,上面的那些信息的分析和收集过程,是可以通过编程自动化实现的,线下只需要不断的设局,就会有一定的转化率的。
其它的也不再说,偏离本文主旨了,希望能够引起大家的网络安全意识就好了吧。
6 后文提要
后面再补充一点东西后,整理后续内容“Openwrt智能路由器的网络数据抓包和监控”,以增加大家的公共上网安全意识。
作者: | Harmo哈莫 |
---|---|
作者介绍: | https://zhengwh.github.io |
技术博客: | http://www.cnblogs.com/beer |
Email: | [email protected] |
QQ: | 1295351490 |
时间: | 2015-10 |
版权声明: | 欢迎以学习交流为目的读者随意转载,但是请 【注明出处】 |
支持本文: | 如果文章对您有启发,可以点击博客右下角的按钮进行 【推荐】 |