One Million ASUS Routers Under Control: Exploiting ASUS DDNS to MITM Admin Credentials
ASUS Router APP 如何在外網連回家
若有開啟DDNS設定,路由器的domain是a+md5(MAC Address).asuscomm.com,手機透過DDNS查詢IP後,再從8443 port連回去。
漏洞
domain name 由MAC Address產生
Domain name = a + md5(MAC Address) + .asuscomm.com
因此,只要知道 router 的 MAC Address,變可以透過網址存取路由器後台。
更新DDNS時未驗證PIN碼
ASUS在update IP address的時候並沒有驗證router的PIN碼是否正確,所以任何人都可以隨意更改domain指向的ip
帳密裸奔,僅使用base64編碼變傳送
ASUS Router 手機 APP 在驗證後台帳號密碼時,直接將帳號密碼 Base64 encode 過後,以 GET 的方式傳給 Router 。
組合計
攻擊者可透過上面三個漏洞達到完美的中間人攻擊,首先,攻擊者可透過網路上洩漏的 MAC Address 取得Domain Name,並且將該Domain指向自己的攻擊機,接著坐等使用者在外網用手機 APP 打開管理介面便可以得到使用者的帳號與密碼,再將帳號密碼傳回真正的IP達成中間人攻擊。
造成危害
攻擊者可透過後台帳號密碼開啟 ssh vpn等服務,摸進內網,或者是更改預設DNS Server,進行網路釣魚。
影響
研究發現全球有多超過100萬台路由器遭受影響,比較明顯的攻擊痕跡可由ddns解析的ip變動看出,或是多個路由器皆將Domain指向同一個ip。
後續研究
我後來針對ASUS Router的MAC Address、DDNS和BSSID研究了一下之後,發現了一些有趣的事情
MAC Address 和 BSSID 相同
因為手邊沒有太多華碩的路由器,觀察了大概三台路由器,發現MAC Address和BSSID不是完全相同就是差一碼
可由 DDNS 回推 MAC Address
前面研究有提到,預設 DDNS 是 A+md5(MAC Address),雖然窮舉 MAC Address 是不可能的,但是 MAC Address 前三個 bytes 是廠商識別碼,剩下要解決的就只有後三 bytes 了。
因此我寫了一個 script 可以在一分半之內由 hashcat 將DDNS的MAC Address還原(都4220年了竟然還有人在用md5)
1 | import os |
BSSID可以用來定位Router的真實位置
當 iPhone 把 Wi-Fi 關閉時,會提示定位精度會下降,因為蘋果會記錄附近router的位置,然後再用來幫手機做更精確的定位,因此,我們有機會使用工具將 BSSID 轉換成實體的經緯度,甚至比GPS更準確。
組合技
當我們得知了一組ip,如果他使用了 ASUS 的 Router ,並且開啟了外網存取時,我們就可以透過這組 ip 取得 DDNS
然後再透過 DDNS 回推 BSSID
最後反查出座標
One Million ASUS Routers Under Control: Exploiting ASUS DDNS to MITM Admin Credentials