日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

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

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

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

 

 

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

MQTT 全稱為 Message Queuing Telemetry Transport(消息隊(duì)列遙測傳輸)是是ISO 標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱方式的消息協(xié)議,由 IBM 發(fā)布。由于其輕量、簡單、開放和易于實(shí)現(xiàn)的特點(diǎn)非常適合需要低功耗和網(wǎng)絡(luò)帶寬有限的IoT場景。比如遙感數(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)語言也都可以向MQTT發(fā)送相關(guān)消息。 目前最新的版本為5.0版本,可以在https://github.com/mqtt/mqtt.github.io/wiki/servers 這個連接中看到支持MQTT的服務(wù)端軟件。 其中hivemq中提到針對汽車廠商的合作與應(yīng)用,在研究過程中會發(fā)現(xiàn)有汽車行業(yè)應(yīng)用了MQTT協(xié)議。

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

 

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

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

發(fā)布/訂閱模式

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

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

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

 

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

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

 

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

 

MQTT的攻擊點(diǎn)

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

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

 

MQTT的利用

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

工具安裝mqtt-pwn的安裝很簡單。可以直接安裝到本機(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匿名訪問

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

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

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

 

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

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

 

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

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

 


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

 

MQTT用戶名密碼爆破

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

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

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

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

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

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

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

 

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

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

 

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

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

 

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

功能強(qiáng)大的nmap是支持MQTT協(xié)議的識別的,可以直接通過nmap進(jìn)行識別MQTT協(xié)議。另外,除上面提到的默認(rèn)端口外,有的管理員會修改默認(rèn)端口,這時也可以嘗試1884,8084,8884等臨近端口以進(jìn)行快速探測,或全面增加數(shù)字等作為組合,如果針對單個目標(biāo),則可以探測全部端口。如果進(jìn)行大規(guī)模的掃描或者提升掃描效率,則可以使用masscan、zmap、RustScan等先進(jìn)性端口掃描,在使用nmap進(jìn)行協(xié)議識別即可。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)行探測,只需要根據(jù)MQTT的協(xié)議標(biāo)準(zhǔn),通過socket即可進(jìn)行收發(fā)報文。關(guān)于MQTT協(xié)議的詳細(xì)內(nèi)容可以查看文檔,地址為https://docs.oasis-open.org/mqtt/mqtt/

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

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

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

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

 

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

mqtt 安全建議

  1. 請勿啟用匿名訪問,對服務(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等代碼公開平臺。

 

小結(jié)

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

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

 

引用

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)載,請參考轉(zhuǎn)載聲明,注明出處: https://www.anquanke.com/post/id/212335

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

網(wǎng)友整理

注冊時間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

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

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

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

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

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

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定