亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

 

大家好,我是銀基Tiger Team的BaCde,今天來(lái)說(shuō)說(shuō)MQTT協(xié)議的安全。

MQTT 全稱為 Message Queuing Telemetry Transport(消息隊(duì)列遙測(cè)傳輸)是是ISO 標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱方式的消息協(xié)議,由 IBM 發(fā)布。由于其輕量、簡(jiǎn)單、開(kāi)放和易于實(shí)現(xiàn)的特點(diǎn)非常適合需要低功耗和網(wǎng)絡(luò)帶寬有限的IoT場(chǎng)景。比如遙感數(shù)據(jù)、汽車、智能家居、智慧城市、醫(yī)療醫(yī)護(hù)等。

 

MQTT協(xié)議

MQTT協(xié)議為大量計(jì)算能力有限,低帶寬、不可靠網(wǎng)絡(luò)等環(huán)境而設(shè)計(jì),其應(yīng)用非常廣泛。目前支持的服務(wù)端程序也較豐富,其php,JAVA,Python,C,C#等系統(tǒng)語(yǔ)言也都可以向MQTT發(fā)送相關(guān)消息。 目前最新的版本為5.0版本,可以在https://github.com/mqtt/mqtt.github.io/wiki/servers 這個(gè)連接中看到支持MQTT的服務(wù)端軟件。 其中hivemq中提到針對(duì)汽車廠商的合作與應(yīng)用,在研究過(guò)程中會(huì)發(fā)現(xiàn)有汽車行業(yè)應(yīng)用了MQTT協(xié)議。

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

以下列舉我們關(guān)心的幾項(xiàng):

  1. 使用發(fā)布/訂閱的消息模式,支持一對(duì)多的消息發(fā)布;
  2. 消息是通過(guò)TCP/IP協(xié)議傳輸;
  3. 簡(jiǎn)單的數(shù)據(jù)包格式;
  4. 默認(rèn)端口為TCP的1883,websocket端口8083,默認(rèn)消息不加密。8883端口默認(rèn)是通過(guò)TLS加密的MQTT協(xié)議。

發(fā)布/訂閱模式

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

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

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

其MQTT協(xié)議流程圖如下:

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

這里不對(duì)協(xié)議進(jìn)行過(guò)多介紹,感興趣的大家可以結(jié)尾處的引用查看。

 

MQTT的攻擊點(diǎn)

根據(jù)其特性,可以擴(kuò)展如下幾個(gè)攻擊點(diǎn):

  1. 授權(quán):匿名連接問(wèn)題,匿名訪問(wèn)則代表任何人都可以發(fā)布或訂閱消息。如果存在敏感數(shù)據(jù)或指令,將導(dǎo)致信息泄露或者被惡意攻擊者發(fā)起惡意指令;
  2. 傳輸:默認(rèn)未加密,則可被中間人攻擊。可獲取其驗(yàn)證的用戶名和密碼;
  3. 認(rèn)證:弱口令問(wèn)題,由于可被爆破,設(shè)置了弱口令,同樣也會(huì)存在安全風(fēng)險(xiǎn);
  4. 應(yīng)用:訂閱端明文配置導(dǎo)致泄漏其驗(yàn)證的用戶名和密碼;
  5. 漏洞:服務(wù)端軟件自身存在缺陷可被利用,或者訂閱端或服務(wù)端解析內(nèi)容不當(dāng)產(chǎn)生安全漏洞,這將導(dǎo)致整個(gè)系統(tǒng)。

 

MQTT的利用

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

工具安裝mqtt-pwn的安裝很簡(jiǎn)單。可以直接安裝到本機(jī),也可以直接使用Docker的方式。文本直接使用docker方式。首先確保已經(jīng)安裝docker和docker-compose。然后運(yùn)行如下命令進(jìn)行安裝:

git clone https://github.com/akamai-threat-research/mqtt-pwn.git
cd mqtt-pwn
docker-compose up --build --detach

運(yùn)行:

docker-compose ps
docker-compose run cli

即可看到mqtt-pwn的界面。

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

MQTT匿名訪問(wèn)

有一些MQTT的服務(wù)端軟件默認(rèn)是開(kāi)啟匿名訪問(wèn),如果管理員沒(méi)有網(wǎng)絡(luò)安全意識(shí)或懶惰,只要對(duì)公網(wǎng)開(kāi)放,任何人都可以直接訪問(wèn)。

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

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

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

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

可以輸入messages查看topic的內(nèi)容。使用-l限制條數(shù),-i參數(shù)查看某個(gè)單條消息內(nèi)容等。

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 


物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

MQTT用戶名密碼爆破

metasploit帶有MQTT的爆破模塊,經(jīng)過(guò)實(shí)際測(cè)試,效果并不理想。這里仍然以mqtt-pwn來(lái)進(jìn)行介紹。mqtt-pwn具有bruteforce功能,并帶了一個(gè)簡(jiǎn)單的字典,可以爆破MQTT的用戶名和密碼。

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

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

例如執(zhí)行bruteforce --host 127.0.0.1爆破。爆破成功后就可以使用上面講到的內(nèi)容進(jìn)行連接進(jìn)行操作,在連接時(shí)加上用戶名和密碼選項(xiàng)即可。

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

應(yīng)用中發(fā)現(xiàn)在實(shí)際的使用場(chǎng)景我們可以通過(guò)中間人劫持從流量中捕獲驗(yàn)證信息。以下為wireshark抓包內(nèi)容。

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

除此之外,由于目前多種語(yǔ)言實(shí)現(xiàn)了mqtt的客戶端,web應(yīng)用中還有webscoket的mqtt。這使得可以通過(guò)web的網(wǎng)頁(yè)源碼或網(wǎng)絡(luò)請(qǐng)求獲得驗(yàn)證的信息。

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

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

CVE-2017-7296CVE-2017-7650CVE-2018-17614CVE-2019-5432CVE-2020-13849Mosquitto漏洞列表

 

探測(cè)與發(fā)現(xiàn)

功能強(qiáng)大的nmap是支持MQTT協(xié)議的識(shí)別的,可以直接通過(guò)nmap進(jìn)行識(shí)別MQTT協(xié)議。另外,除上面提到的默認(rèn)端口外,有的管理員會(huì)修改默認(rèn)端口,這時(shí)也可以嘗試1884,8084,8884等臨近端口以進(jìn)行快速探測(cè),或全面增加數(shù)字等作為組合,如果針對(duì)單個(gè)目標(biāo),則可以探測(cè)全部端口。如果進(jìn)行大規(guī)模的掃描或者提升掃描效率,則可以使用masscan、zmap、RustScan等先進(jìn)性端口掃描,在使用nmap進(jìn)行協(xié)議識(shí)別即可。nmap舉例命令如下:sudo nmap -p1883,8083,8883 -sS -sV --version-intensity 9 -Pn --open target_ip

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

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

如果想要自己編寫代碼去進(jìn)行探測(cè),只需要根據(jù)MQTT的協(xié)議標(biāo)準(zhǔn),通過(guò)socket即可進(jìn)行收發(fā)報(bào)文。關(guān)于MQTT協(xié)議的詳細(xì)內(nèi)容可以查看文檔,地址為https://docs.oasis-open.org/mqtt/mqtt/

現(xiàn)有的網(wǎng)絡(luò)空間測(cè)繪平臺(tái)基本都實(shí)現(xiàn)了對(duì)MQTT進(jìn)行探測(cè)。可直接通過(guò)這些搜索引擎獲取大量對(duì)外使用MQTT協(xié)議的服務(wù)。

  • 知風(fēng)
    在針對(duì)IoT和ICS探測(cè)的搜索引擎知風(fēng)中搜索,直接搜索mqtt關(guān)鍵字,可以發(fā)現(xiàn)15萬(wàn)個(gè)對(duì)外開(kāi)放的服務(wù)。
  • fofa
    搜索關(guān)鍵字為protocol=mqtt,一年內(nèi)有25萬(wàn)個(gè)對(duì)外開(kāi)放。
  • shodan
    搜索關(guān)鍵字:
    product:”MQTT”
    product:”Mosquitto”

shodan上搜索后共有超過(guò)11萬(wàn)個(gè)對(duì)外開(kāi)放。

物聯(lián)網(wǎng)安全之MQTT協(xié)議安全

 

通過(guò)以上的搜索結(jié)果,各引擎各有優(yōu)劣。shodan和知風(fēng)針對(duì)該協(xié)議的探測(cè)均會(huì)列出topic;而fofa從發(fā)現(xiàn)數(shù)量上最多,但是僅識(shí)別了協(xié)議,并未列出topic;除此之外知風(fēng)系統(tǒng)的地理位置定位精度較高,可以定位百米范圍內(nèi)。

mqtt 安全建議

  1. 請(qǐng)勿啟用匿名訪問(wèn),對(duì)服務(wù)端(BROKER)設(shè)置認(rèn)證,增加用戶名密碼驗(yàn)證。
  2. 根據(jù)實(shí)際情況,優(yōu)先使用加密傳輸數(shù)據(jù),防止中間人攻擊。
  3. 加密payload后再進(jìn)行安全傳輸。
  4. 使用最新的服務(wù)端程序架設(shè)服務(wù)。
  5. 不要將實(shí)現(xiàn)的代碼上傳到github等代碼公開(kāi)平臺(tái)。

 

小結(jié)

寫這篇文章時(shí),網(wǎng)絡(luò)上關(guān)于MQTT安全的文章并不多,但是通過(guò)對(duì)其了解,仍然有不少內(nèi)容可以探索,比如在工業(yè)上有MQTT網(wǎng)關(guān),以及眾多支持MQTT的服務(wù)端軟件、加上廣泛的應(yīng)用場(chǎng)景。本文簡(jiǎn)單介紹MQTT安全的內(nèi)容,還有更多的內(nèi)容等待探索。感興趣的朋友也歡迎大家多多交流討論。

最后,提醒一下大家,在學(xué)習(xí)和研究過(guò)程中自己搭建服務(wù)進(jìn)行學(xué)習(xí)。請(qǐng)勿對(duì)網(wǎng)絡(luò)上的目標(biāo)進(jìn)行測(cè)試、破壞等活動(dòng)。

 

引用

https://dzone.com/articles/exploiting-mqtt-using-luahttps://www.hindawi.com/journals/wcmc/2018/8261746/https://github.com/akamai-threat-research/mqtt-pwnhttps://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9bhttps://book.hacktricks.xyz/pentesting/1883-pentesting-mqtt-mosquittohttps://hackmd.io/@QwmL8PAwTx-bYDnry-ONpA/H1nm2tHzb?type=viewhttps://ttm4175.iik.ntnu.no/prep-iot-mqtt.htmlhttps://mobilebit.WordPress.com/tag/mqtt/https://www.hivemq.com/blog/seven-best-mqtt-client-tools/https://nmap.org/nsedoc/lib/mqtt.htmlhttp://mqtt.p2hp.com/

本文由Tiger-Team原創(chuàng)發(fā)布
轉(zhuǎn)載,請(qǐng)參考轉(zhuǎn)載聲明,注明出處: https://www.anquanke.com/post/id/212335

分享到:
標(biāo)簽:聯(lián)網(wǎng)
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定