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: | dreamzsm@gmail.com |
QQ: | 1295351490 |
時間: | 2015-10 |
版權聲明: | 歡迎以學習交流為目的讀者隨意轉載,但是請 【注明出處】 |
支持本文: | 如果文章對您有啟發,可以點擊博客右下角的按鈕進行 【推薦】 |