# 好厲駭學習紀錄 ## 1. 上週回顧 1. MQTT 安全方面研究 2. H.W. 修補韌體並打包 尚未完成 目前解法 -> squashfs-tools 提取檔案標頭不動 把剩下檔案系統結合dd 、cat 放入到 header.bin裡面 最後再用binwalk看 ## 2. 學習紀錄 - MQTT 架設、場景、攻擊運用 - ZYXEL ## 3. MQTT安全協議 - 一種物聯網的通訊協定 - 目的是為了在**窄寬帶**以及**低耗能**條件下,傳送與接收處理訊息 - 採用 Publish/Subscribe 的方式,透過 Broker 做訊息溝通。 - 輕量化的格式 - 預設port 為TCP 1883 ,websocket port為 8083 ,預設不加密,但8883 port 透過TLS加密的MQTT協議 ![](https://i.imgur.com/VYjC6R4.png) > MQTT 採用 Publish/Subscribe 模式,其中 Publisher 和 Subscriber 都是用戶端(Client),Broker 是 伺服器端(Server) 負責轉發 Topic > 由於 Publisher/Subscriber 之間有 Broker 當作中繼站,所以兩邊並不需要知道彼此的 IP [MQTT應用參考教學](https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E6%95%99%E5%AE%A4/ios-x-iot-2-mqtt-%E7%B0%A1%E4%BB%8B-e750aa420162) ## 4. MQTT安裝 MQTT 軟體 Mosquitto 1. 加入 apt 下載package ![](https://i.imgur.com/PP2KKDF.png) --- 2. 更新套件 ![](https://i.imgur.com/bYbgF1o.png) --- 3. 安裝 Mosquitto broker ![](https://i.imgur.com/pOguZrc.png) --- 4. 啟用mosquitto ,以及在localhost 架起broker 並命名一個主題 test ![](https://i.imgur.com/yhR21IK.png) --- 5. 建立一個 publisher 並傳送一串文字做測試就會看到Topic、Qos等...資訊 ![](https://i.imgur.com/zmCh3A1.png) --- 6. 訂閱該主題的 subscribe 就會馬上看到資訊 / publisher 剛傳送的資訊 ![](https://i.imgur.com/nnCmJnZ.png) 7. 測試新的一個 subscribe ,訂閱一樣的主題 ![](https://i.imgur.com/UJJydFt.png) 8. publisher 再次傳送一個 message ![](https://i.imgur.com/VpYurGR.png) 9. 新的subscribe也成功收到 ![](https://i.imgur.com/ZGSEEcO.png) ## 4. MQTT攻擊面 這部分安全問題還是比較少 1. **授權**:匿名連接問題,任何人都可以發布或訂閱消息如果存在敏感數據或指令,將導致資訊洩漏或被惡意攻擊者發起惡意指令 2. **傳輸**:完全未加密,則可被中間人攻擊。可獲取其驗證的用戶名和密碼 3. **認證**:弱密碼問題,由於可被爆力破解,設置了弱密碼,同樣也會存在安全風險 4. **應用**:訂閱端明文配置導致洩漏其驗證的使用者名稱和密碼 6. **漏洞**:服務端軟件本身存在缺陷可被利用,或者訂閱端或服務端解析內容不當產生安全漏洞,這將導致整個系統。 ## 5. MQTT exploit [MQTT_PWN Github](https://github.com/akamai-threat-research/mqtt-pwn) [MQTT_PWN Doc](https://mqtt-pwn.readthedocs.io/en/latest/plugins/brute.html) >利用docker 安裝完成後會看見下面畫面 ![](https://i.imgur.com/7Ly6pcy.png) >參數 connect -h ![](https://i.imgur.com/Jwip9YK.png) > 現在是再docker 環境裡,讓他連接本機IP並用 system_info 可看到目標的資訊 ![](https://i.imgur.com/hEwLRg5.png) > 怎麼確定是正確的資訊? 來看一下 ![](https://i.imgur.com/oT5h9Wv.png) > 用法: discovery 後接 scans ![](https://i.imgur.com/GmpPXrI.png) > 選擇scan後的結果ID 可以進一步看Topics ![](https://i.imgur.com/YnkWfxM.png) > Messages 可以看見資訊 ![](https://i.imgur.com/xhvr9GA.png) >進一步參數 -i 可看見更多資訊 ![](https://i.imgur.com/OnHbkhB.png) > 還有 **暴力破解**、**Owntracks 追蹤定位**、**Sonoff Exploiter 控制開關** 等用法,仍在研究 ## 6. MQTT有關的CVE - [CVE-2017-7296](https://www.cvedetails.com/cve/CVE-2017-7296/) : web介面上的XSS - [CVE-2017-7650](https://mosquitto.org/blog/2017/05/security-advisory-cve-2017-7650/) : Pattern based ACLs can be bypassed by clients that set their username/client id to '#' or '+'. This allows locally or remotely connected clients to access MQTT topics that they do have the rights to. The same issue may be present in third party authentication/access control plugins for Mosquitto. ## 7. ZYXEL 上上週新聞 ![](https://i.imgur.com/tOvLFik.png) > 依照受害設備下去搜索 果然發現不少設備能有連網 ![](https://i.imgur.com/BH7w4Kq.png) > 先確認目標開啟哪些服務, 發現 ftp 、ssh ![](https://i.imgur.com/v8fB9MS.png) > ssh 過去 輸入帳密 成功 !! 但下 ls 和一些linux command 沒反應 不確定是甚麼檔案系統 ![](https://i.imgur.com/abToA41.png) > 到官方下載韌體來做分析 下載韌體還需要註冊會員 但成功找到上一版本的韌體 ![](https://i.imgur.com/7ukOx9v.png) > 拿 binwalk 來拆解看看 ![](https://i.imgur.com/WZKUbjq.png) > etc 資料夾 但內部的檔案都被需要密碼過 無法打開 ![](https://i.imgur.com/Hv3e19K.png) > 想到可以用tab的方式 果真有東西 ![](https://i.imgur.com/T4yb3bz.png) > 看個版本號 指令結尾要加上 ; 權限還可以 重開機、關機、寫入config檔、修改服務 ![](https://i.imgur.com/6a2eupt.png)