openwrt-智能路由器hack技術(2)---"網路信息監控和竊取"
1 導讀
PS:之前寫的一個文章,現在發現結構內容排版不是太好,導致閱讀體驗太差,影響傳播和SEO,所以現在整理拆分一下,從小處寫起,
本系列介紹了兩個關於智能路由器的hack技術,供大家賞玩一下。
本文主要介紹openwrt-智能路由器的數據監控功能。(為了維持本文一定的獨立性,內容會有所重復)。
2 概述和准備
根據百度百科介紹:OpenWrt 可以被描述為一個嵌入式的 Linux 發行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類)而不是試圖建立一個單一的、靜態的系統。OpenWrt的包管理提供了一個完全可寫的文件系統,從應用程序供應商提供的選擇和配置,並允許您自定義的設備,以適應任何應用程序。
在正式開始實驗之前,要做一些准備工作:
- 一台支持openwrt的商用智能路由器硬件設備
- 將商用設備刷機成openwrt系統(替換原出廠訂制系統)
備注
本文是在小米官網購買的 小米路由mini ,然后根據教程刷成基於 openwrt 訂制的 pandorabox
刷機成功后,就可以通過PC機遠程路由了,就像遠程一台普通的linux服務器一樣,遠程登錄后,路由器終端界面提示如下:

基本的文件操作,網絡操作等命令和普通Linux類似。同時openwrt也可以通過軟件倉庫安裝應用軟件,具體參見 openwrt軟件包管理 [1] 。
例如,安裝 nginx 應用程序:
opkg install nginx
上面對openwrt的基本知識進行了簡單介紹,后面開始一些綜合應用了。
| [1] | openwrt軟件包管理 <http://wiki.openwrt.org/doc/packages> |
3 信息監控
智能路由器作為網關除了網絡配置功能外,還有網絡數據轉發的功能。由於openwrt是基於linux的,上面有比較良好的抓包應用程序tcpdump,再配合 wireshark 的可視化工具,可以達到對所有通過此路由的數據進行監控的能力。
關於 tcpdump 和 wireshark 的使用方法,不是本文的重點,故不展開,默認讀者具有一定這方面的基礎知識了。
下面的例子是實現遠程機器通過可視化工具 wireshark 對所有經過路由器的數據進行監控的實驗。
3.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 -
然后輸入相應的賬號密碼就可以監控了。
關於上面的命令行有如下說明:
- 根據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 |
| 版權聲明: | 歡迎以學習交流為目的讀者隨意轉載,但是請 【注明出處】 |
| 支持本文: | 如果文章對您有啟發,可以點擊博客右下角的按鈕進行 【推薦】 |
