日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

java解析mqtt_物联网安全系列 | MQTT协议安全

發布時間:2024/9/19 c/c++ 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java解析mqtt_物联网安全系列 | MQTT协议安全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MQTT 全稱為 Message Queuing Telemetry Transport(消息隊列遙測傳輸)是是ISO 標準(ISO/IEC PRF 20922)下基于發布/訂閱范式的消息協議,由 IBM 發布。由于其輕量、簡單、開放和易于實現的特點非常適合需要低功耗和網絡帶寬有限的IoT場景。比如遙感數據、汽車、智能家居、智慧城市、醫療醫護等。

MQTT協議為大量計算能力有限,低帶寬、不可靠網絡等環境而設計,其應用非常廣泛。目前支持的服務端程序也較豐富,其PHP,JAVA,Python,C,C#等系統語言也都可以向MQTT發送相關消息。?

目前最新的版本為5.0版本,可以在 https://github.com/mqtt/mqtt.github.io/wiki/servers?這個連接中看到支持MQTT的服務端軟件。其中hivemq中提到針對汽車廠商的合作與應用,在研究過程中會發現有汽車行業應用了MQTT協議。

以下列舉我們關心的幾項:

1. 使用發布/訂閱的消息模式,支持一對多的消息發布;

2. 消息是通過TCP/IP協議傳輸;

3. 簡單的數據包格式;

4. 默認端口為TCP的1883,websocket端口8083,默認消息不加密。8883端口默認是通過TLS加密的MQTT協議。

MQTT協議中有三種角色和一個主要概念,三種角色分別是發布者(PUBLISHER)、訂閱者(SUBCRIBER)、代理(BROKER),還有一個主要的概念為主題(TOPIC)。

消息的發送方被稱為發布者,消息的接收方被稱為訂閱者,發送者和訂閱者發布或訂閱消息均會連接BROKER,BROKER一般為服務端,BROKER存放消息的容器就是主題。發布者將消息發送到主題中,訂閱者在接收消息之前需要先“訂閱主題”。每份訂閱中,訂閱者都可以接收到主題的所有消息。

其MQTT協議流程圖如下:

這里不對協議進行過多介紹,感興趣的大家可以結尾處的引用查看。

根據其特性,可以擴展如下幾個攻擊點:

1. 授權:匿名連接問題,匿名訪問則代表任何人都可以發布或訂閱消息。如果存在敏感數據或指令,將導致信息泄漏或者被惡意攻擊者發起惡意指令;

2. 傳輸:默認未加密,則可被中間人攻擊。可獲取其驗證的用戶名和密碼;

3. 認證:弱口令問題,由于可被爆破,設置了弱口令,同樣也會存在安全風險;

4. 應用:訂閱端明文配置導致泄漏其驗證的用戶名和密碼;

5. 漏洞:服務端軟件自身存在缺陷可被利用,或者訂閱端或服務端解析內容不當產生安全漏洞,這將導致整個系統。

MQTT的利用

目前已經有針對MQTT的開源利用工具,這里主要以mqtt-pwn這塊工具為主。mqtt-pwn這塊工具功能強大易用。github地址為https://github.com/akamai-threat-research/mqtt-pwn,使用文檔地址為https://mqtt-pwn.readthedocs.io/en/latest/。

工具安裝

mqtt-pwn的安裝很簡單。可以直接安裝到本機,也可以直接使用docker的方式。文本直接使用docker方式。首先確保已經安裝docker和docker-compose,然后運行如下命令進行安裝:

git clone https://github.com/akamai-threat-research/mqtt-pwn.git

cd mqtt-pwn

docker-compose up --build --detach

運行:

docker-compose ps

docker-compose run cli

即可看到mqtt-pwn的界面。

MQTT匿名訪問?

有一些MQTT的服務端軟件默認是開啟匿名訪問,如果管理員沒有網絡安全意識或懶惰,只要對公網開放,任何人都可以直接訪問。

使用mqtt-pwn的connect命令進行連接。connect -h 顯示幫助信息,其他命令也是如此,使用時,多看幫助和文檔,很快就可以熟悉使用。對于開啟匿名的服務,直接connect -o host即可,當然該命令也支持輸入用戶名和密碼。如果沒有顯示連接異常,就表示連接成功。連接成功后,可使用system_info 查看系統信息。

接下來就可以查看topic信息等內容。這時先執行discovery,等待顯示scan ?#1 has finished,接下來執行scans -i 序號,在執行topics命令即可看到topic信息。其中disconvery可以使用-t參數設置超時時間。topics命令可以使用-l參數設置查看條數。

可以輸入messages查看topic的內容。使用-l限制條數,-i參數查看某個單挑消息內容等。

MQTT用戶名密碼爆破?

metasploit帶有MQTT的爆破模塊,經過實際測試,效果并不理想。這里仍然以mqtt-pwn來進行介紹。mqtt-pwn具有bruteforce功能,并帶了一個簡單的字典,可以爆破MQTT的用戶名和密碼。

bruteforce --host host --port -uf user_dic -pf pass_dic

端口默認是1883,用戶和密碼字典默認會在mqtt-pwn的resources/wordlists 文件夾下。

例如執行bruteforce --host 127.0.0.1爆破。爆破成功后就可以使用上面將到的內容進行連接進行操作,在連接時加上用戶名和密碼選項即可。

mqtt-pwn還支持更多功能,如Owntracks (GPS Tracker)、Sonoff Exploiter等。感興趣的大家自己去看下文檔去進行測試。

應用中發現

在實際的使用場景我們可以通過中間人劫持從流量中捕獲驗證信息。以下為wireshark抓包內容。

除此之外,由于目前多種語言實現了mqtt的客戶端,web應用中還有webscoket的mqtt。這使得可以通過web的網頁源碼或網絡請求獲得驗證的信息。

服務端漏洞 ?

這里列舉一些歷史上MQTT的漏洞供參考。

CVE-2017-7296

CVE-2017-7650?

CVE-2018-17614?

CVE-2019-5432?

CVE-2020-13849

Mosquitto漏洞列表

功能強大的nmap是支持MQTT協議的識別的,可以直接通過nmap進行識別MQTT協議。另外,除上面提到的默認端口外,有的管理員會修改默認端口,這時也可以嘗試1884,8084,8884等臨近端口以進行快速探測,或前面增加數字等作為組合,如果針對單個目標,則可以探測全部端口。如果進行大規模的掃描或者提升掃描效率,則可以使用masscan、zmap、RustScan等先進性端口掃描,在使用nmap進行協議識別即可。nmap舉例命令如下:

sudo nmap -p1883,8083,8883 -sS -sV --version-intensity 9 -Pn --open target_ip

nmap也有相關的MQTT lua腳本可以使用,其MQTT版本為3.1.1。腳本地址為https://svn.nmap.org/nmap/nselib/mqtt.lua。

如果想要自己編寫代碼去進行探測,只需要根據MQTT的協議標準,通過socket即可進行收發報文。關于MQTT協議的詳細內容可以查看文檔,地址為https://docs.oasis-open.org/mqtt/mqtt/

現有的網絡空間測繪平臺基本都實現了對MQTT進行探測。可直接通過這些搜索引擎獲取大量對外使用MQTT協議的服務。

· 知風

在針對IoT和ICS探測的搜索引擎知風中搜索,直接搜索mqtt關鍵字,可以發現15萬個對外開放的服務。

· fofa?

搜索關鍵字為protocol=mqtt,一年內有25萬個對外開放。

· shodan?

搜索關鍵字:??

product:"MQTT" ? ?

product:"Mosquitto"

shodan上搜索后共有超過11萬個對外開放。

通過以上的搜索結果,各引擎各有優劣。shodan和知風針對該協議的探測均會列出topic;而fofa從發現數量上最多,但是僅識別了協議,并未列出topic;除此之外知風系統的地理位置定位精度較高,可以定位百米范圍內。

1. 請勿啟用匿名訪問,對服務端(BROKER)設置認證,增加用戶名密碼驗證。

2. 根據實際情況,優先使用加密傳輸數據,防止中間人攻擊。

3. 加密payload后在進行安全傳輸。

4. 使用最新的服務端程序架設服務。

5. 不要將實現的代碼上傳到github等代碼公開平臺。

寫這篇文章時,網絡上關于MQTT安全的文章并不多,但是通過對其了解,仍然有不少內容可以探索,比如在工業上有MQTT網關,以及眾多支持MQTT的服務端軟件、加上廣泛的應用場景。本文簡單介紹MQTT安全的內容,還有更多的內容等待探索。感興趣的朋友也歡迎大家多多交流討論。

最后,提醒一下大家,在學習和研究過程中自己搭建服務進行學習。請勿對網絡上的目標進行測試、破壞等活動。

https://dzone.com/articles/exploiting-mqtt-using-lua https://www.hindawi.com/journals/wcmc/2018/8261746/ https://github.com/akamai-threat-research/mqtt-pwn https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b https://book.hacktricks.xyz/pentesting/1883-pentesting-mqtt-mosquitto https://hackmd.io/@QwmL8PAwTx-bYDnry-ONpA/H1nm2tHzb?type=view https://ttm4175.iik.ntnu.no/prep-iot-mqtt.html https://mobilebit.wordpress.com/tag/mqtt/ https://www.hivemq.com/blog/seven-best-mqtt-client-tools/ https://nmap.org/nsedoc/lib/mqtt.html

http://mqtt.p2hp.com/

總結

以上是生活随笔為你收集整理的java解析mqtt_物联网安全系列 | MQTT协议安全的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰97干 | 成人免费高清 | 精品少妇无码av无码专区 | 超碰人人91 | 日韩另类 | 精品人妻伦一二三区久 | 97成人资源站 | 欧美一级片免费观看 | 人妻偷人精品一区二区三区 | 女人下面流白浆的视频 | 午夜视频入口 | 丰满少妇在线观看网站 | 末路1997全集免费观看完整版 | 亚洲第一黄色网址 | 国产日韩欧美激情 | a级一a一级在线观看 | 欧美精品一区二区三区三州 | zjzjzjzjzj亚洲女人| 风流老熟女一区二区三区 | av自拍一区 | 成人在线观看网 | 午夜欧美精品 | 欧美成人片在线观看 | 亚洲最大的黄色网 | 亚洲乱码国产乱码精品精软件 | 欧美偷拍精品 | 豆花在线观看 | 亚洲最大的成人网站 | 手机福利视频 | 国产欧美一区二区在线观看 | 国产精品久久9 | 五月激情婷婷网 | 中文字幕av日韩 | 一区二区三区不卡在线 | 婷婷久久综合 | 这里只有精品视频 | 国产91在线观看丝袜 | 日本成人在线一区 | 成人性生活免费视频 | 国产中文一区二区三区 | 少妇天堂网| 99久久精品免费看国产 | 亚洲天堂成人在线观看 | 蜜臀国产AV天堂久久无码蜜臀 | 尤物网站在线 | 亚洲美女毛片 | 可以在线观看av的网站 | 欧美亚洲综合久久 | 真人一毛片 | 日本在线视频播放 | 扒开伸进免费视频 | 成人影音在线 | 国产大学生自拍视频 | 黄色片子免费看 | 久久精品视频18 | 丰满人妻一区二区三区四区53 | 婷婷激情六月 | 主播一区二区 | 狠狠干2022 | 国产成人精品免费视频 | 日本少妇aaa | 国产色网站| 青草精品视频 | 天天天天天操 | 成人羞羞免费 | 99久久久国产精品无码性 | 激情文学88| 大地av | 久久99热人妻偷产国产 | 欧美夜夜 | 亚洲一本二本 | 新版红楼梦在线高清免费观看 | 一区二区不卡在线观看 | 日日射视频 | 色视频免费在线观看 | 欧洲做受高潮欧美裸体艺术 | 在线观看亚洲a | 国产视频一区二区三区四区 | 中文字幕女同女同女同 | 不卡日韩 | 日本成人午夜视频 | 国产精品美女网站 | 免费观看一区 | 卡通动漫精品一区二区三区 | av片免费在线播放 | 国产在线观看免费高清 | 蜜臀在线视频 | 欧美激情一区二区三区p站 欧美mv日韩mv国产网站app | 精品国产免费人成在线观看 | 婷婷丁香激情五月 | 能在线观看的av | 伊人影院久久 | 超碰在线免费公开 | 男人和女人做爽爽视频 | 99自拍视频在线观看 | 中国女人一级一次看片 | 99久久精品免费看国产 | 欧美88av | 超碰123 |