PS:以前寫的一個文章,如今發現結構內容排版不是太好,致使閱讀體驗太差,影響傳播和SEO,因此如今整理拆分一下,從小處寫起,html
本系列介紹了兩個關於智能路由器的hack技術,供你們賞玩一下。linux
本文主要介紹openwrt-智能路由器的數據監控功能。(爲了維持本文必定的獨立性,內容會有所重複)。nginx
前一文章: openwrt-智能路由器hack技術(1)---"DNS劫持"git
根據百度百科介紹:OpenWrt 能夠被描述爲一個嵌入式的 Linux 發行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類)而不是試圖創建一個單一的、靜態的系統。OpenWrt的包管理提供了一個徹底可寫的文件系統,從應用程序供應商提供的選擇和配置,並容許您自定義的設備,以適應任何應用程序。github
在正式開始實驗以前,要作一些準備工做:web
備註shell
本文是在小米官網購買的 小米路由mini ,而後根據教程刷成基於 openwrt 訂製的 pandorabox瀏覽器
刷機成功後,就能夠經過PC機遠程路由了,就像遠程一臺普通的linux服務器同樣,遠程登陸後,路由器終端界面提示以下:緩存
基本的文件操做,網絡操做等命令和普通Linux相似。同時openwrt也能夠經過軟件倉庫安裝應用軟件,具體參見 openwrt軟件包管理 [1] 。安全
例如,安裝 nginx 應用程序:
opkg install nginx
上面對openwrt的基本知識進行了簡單介紹,後面開始一些綜合應用了。
[1] | openwrt軟件包管理 <http://wiki.openwrt.org/doc/packages> |
智能路由器做爲網關除了網絡配置功能外,還有網絡數據轉發的功能。因爲openwrt是基於linux的,上面有比較良好的抓包應用程序tcpdump,再配合 wireshark 的可視化工具,能夠達到對全部經過此路由的數據進行監控的能力。
關於 tcpdump 和 wireshark 的使用方法,不是本文的重點,故不展開,默認讀者具備必定這方面的基礎知識了。
下面的例子是實現遠程機器經過可視化工具 wireshark 對全部通過路由器的數據進行監控的實驗。
基本的網絡結構圖以下:
主要操做原理是:
將上網設備鏈接到路由器
截至此處已經達到了監控要求,可是不夠直觀,須要一些可視化的工具,好比wireshark
經過ssh遠程執行tcpdump命令,將數據輸入到desktop,而後做爲wireshark的輸入數據源
在桌面系統終端裏面執行下列命令:
ssh root@mitest "tcpdump -s 0 -U -n -w - -i br-lan not port 22" | wireshark -k -i -
而後輸入相應的帳號密碼就能夠監控了。
關於上面的命令行有以下說明:
前面講述了基本的原理和操做手段,可是缺點是每次都須要輸入長串命令行和密碼,能夠利用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就能夠完成命令的啓動了。
而後啓動抓包工具,使用小米4手機鏈接路由器,打開UC瀏覽器訪問www.baidu.com :
點擊進入並訪問到網頁:
抓包效果圖以下:
已經能夠看到設備的相應的網絡IO訪問內容了。
這個功能的能夠用於對一些沒有抓包應用的平臺上的網絡數據監控分析。例如:分析手機上的網絡通信狀況。
在軟件開發的時候,緩存每每很容易形成一些不正確的假象,這些假象很是容易影響軟件調試過程當中的分析判斷。好比,在網絡環境遷移的過程當中,不一樣的設備有不一樣的DNS或者靜態文件的緩存機制,特別是手機終端瀏覽器都有一些 雲加速 功能,這些功能的加入已經改變了之前你們理解的網絡請求過程,若是不瞭解這個影響,應用程序每每會呈現出一些使人費解或者使人誤解的現象。因此必需要藉助網絡監控工具來確認設備的網絡環境獲得了正確的遷移,才能保證開發人員看到的一些現象是可信的。
好比:UC和QQ手機瀏覽器有 雲加速 功能,可是好歹在設置中能夠進行關閉,可是微信內置瀏覽器其實也有此功能,並且沒有任何地方可以設置關閉,這點在web開發調試過程當中很容易讓人費解或者誤解。
在前面的內容已經介紹瞭如何抓包了,顯然已經在PC上看到了接入的手機上的相關訪問信息:
對於非敏感信息,其實有些時候也比較敏感,這是對隱私的一種侵犯,畢竟沒有誰但願本身的一切網絡行爲習慣被別人窺探無遺。
例如,wireshark能夠對某個設備的訪問記錄進行統計:
這只是剛纔的實驗短期訪問了一下baidu.com,若是長時間對網絡出口進行監控,那麼這個很容易根據瀏覽器的網站的內容類別,能夠將設備持有人的喜愛和特徵分析得八九不離十。好比,發現大量的女性衣服購物連接就能夠判別此人是年輕女性;若是發現大量科技論文檢索頁面,則能夠判別爲科研工做者。
再多一些數據,就會分析更多一些內容。好比,你拿着手機偷偷在搜索引擎裏面搜索 白血病的治療方法 ,很當心的你覺得別人不知道,可是其實別人什麼都知道了,你想經過搜索引擎知道更多,就會搜索輸入得越多,而後產生的網絡行爲越多,別人就會知道的更多了。
固然所幸的是 國內最大的搜索引擎 百度 ,大概在2015年終於使用了https 的搜索服務了,在此以前是非加密的 http 協議。其它的搜索引擎,例如 搜狗 截至目前爲止仍然使用的是非加密的 http 協議。
對於敏感信息,好比登陸名和密碼,若是是在 http 協議下傳輸,這些內容是能夠直接在路由器上抓包看見的。這部份內容的影響就可大可小了。
因此安全總結以下:
成規模產生統計價值,會暴露我的特徵和喜愛等等隱私
直接涉及到帳號密碼時,產生的後果可能很嚴重
注意
https 協議傳輸的屬於加密內容,即便路由器抓包了,也看不到明文。像目前大型的互聯網公司的敏感數據傳輸部分基本上都是基於 https 了,可是仍然有不少中小型互聯網公司尚未注意到這一點,仍然使用未加密的http 協議,像用戶名密碼這些東西在路由器上傳輸的時候,抓包均可以看到明文。
通過以下的方法闡述,應該可以引發一部分用戶對公共WIFI的安全意識的重視吧。若是對方是路由器的管理員,而後終端用戶又將設備鏈接到路由器上了(被釣魚),那麼:
原本用戶訪問A網站,可是卻被導向一個假裝好的惡意的B網站,那麼用戶的登陸帳號密碼等敏感信息甚至銀行信息都有能夠被截取
固然通常的有明確來源的的WIFI仍是能夠抱可信的態度的(畢竟如今各大商家都有免費WIFI,不能因噎廢食),可是未知WIFI儘可能不要輕易鏈接,不然會有不可預知的風險。
上面介紹的智能路由器的兩種玩法,本意仍是但願你們可以儘可能將其用於正途,用於生產中,用來提高軟件的生產力吧。請勿亂用。
做者: | Harmo哈莫 |
---|---|
做者介紹: | https://zhengwh.github.io |
技術博客: | http://www.cnblogs.com/beer |
Email: | dreamzsm@gmail.com |
QQ: | 1295351490 |
時間: | 2015-10 |
版權聲明: | 歡迎以學習交流爲目的讀者隨意轉載,可是請 【註明出處】 |
支持本文: | 若是文章對您有啓發,能夠點擊博客右下角的按鈕進行 【推薦】 |