精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

物聯(lián)網(wǎng)設(shè)備安全分析之MAX! Cube LAN Gateway篇

責(zé)任編輯:editor007

2016-12-26 20:41:06

摘自:51CTO

標(biāo)識為KEY的QR碼包含以“k”(可能是"key"的意思)為前綴的MD5哈希值,所以,我們不妨嘗試用這個密鑰來解密密文

前言

在這篇文章中,我們將為讀者介紹如何對物聯(lián)網(wǎng)設(shè)備進行安全評估。這里將會詳細介紹進行評估所需的基本方法:對于不同的任務(wù)需要使用哪些工具,以及如何解決在分析過程中可能出現(xiàn)的問題。本文的目標(biāo)讀者對為對物聯(lián)網(wǎng)設(shè)備安全分析感興趣的朋友,對逆向工程感興趣的讀者,或者只想了解如何通過技術(shù)手段來處理未知設(shè)備的讀者。

本文的重點不在于揭示某種設(shè)備的某種漏洞,而在于闡釋影響各種IoT設(shè)備的安全弱點,因此,本文介紹的內(nèi)容同樣適用于其他的設(shè)備和場景。

分析對象

本文的分析對象是來自eQ-3公司的 MAX! Cube LAN Gateway (以下稱為“Cube”)。實際上,許多產(chǎn)品都捆綁了該設(shè)備,比如我的加熱控制系統(tǒng)中就帶有該設(shè)備。通過該設(shè)備名稱中的“Cube”不難猜出,它只是一個LAN網(wǎng)關(guān),通過RF技術(shù)實現(xiàn)真正的“物聯(lián)網(wǎng)設(shè)備”或“智能設(shè)備”之間的通信。在本文中,我們將重點介紹以太網(wǎng)通信,因為它是管理軟件的主要通信方式。

搭建中間人攻擊場景

為了全面地了解該設(shè)備的通信狀況,我搭建了一個簡單的中間人攻擊場景。我在自己的系統(tǒng)上使用了一個USB網(wǎng)卡,并將其直接連接到Cube。首先,打開Cube,但是不要使用任何管理客戶端或其他需要通信的軟件,這樣就能了解Cube自身發(fā)送了什么數(shù)據(jù)包。我們發(fā)現(xiàn),它只是試圖通過DHCP獲得IP,然后開始解析ntp.homematic.com。

為了讓Cube可以訪問互聯(lián)網(wǎng),我已將自己的USB網(wǎng)卡配置為Cube的路由器。為了在不使用DHCP的時候可以通過192.168.0.222訪問Cube,我把設(shè)備的IP地址設(shè)為192.168.0.1/24,并進行了如下所示的配置,以允許通過USB網(wǎng)卡的NAT訪問互聯(lián)網(wǎng):

sysctl net.ipv4.ip_forward=1

iptables -t nat -A POSTROUTING -o enp0s25 -j MASQUERADE

iptables -A FORWARD -i enp0s20u9u3 -o enp0s25 -j ACCEPT

iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

注意:設(shè)備enp0s20u9u3是連接到Cube的USB網(wǎng)卡,enp0s25是系統(tǒng)上的另一個網(wǎng)卡,該網(wǎng)卡連接到具有互聯(lián)網(wǎng)連接的路由器上。

因為Cube會向默認的路由器發(fā)送DNS查詢,所以,我們可以在機器上設(shè)置一個DNS服務(wù)器,或者直接將DNS查詢轉(zhuǎn)發(fā)給相應(yīng)的域名服務(wù)器(例如OpenDNS服務(wù)器):

iptables -t nat -A PREROUTING -i enp0s20u9u3 -p udp --dport 53 -j DNAT --to 208.67.222.222:53

iptables -t nat -A PREROUTING -i enp0s20u9u3 -p tcp --dport 53 -j DNAT --to 208.67.222.222:53

這樣一來,我們就能設(shè)法觀察Cube發(fā)送的所有的數(shù)據(jù)了,例如使用Wireshark或tcpdump等工具來嗅探連接到Cube的NIC上通信數(shù)據(jù)。

發(fā)現(xiàn)網(wǎng)絡(luò)中的Cube設(shè)備

為了方便管理員自動識別本地網(wǎng)絡(luò)上的Cube設(shè)備,Cube提供了相應(yīng)的網(wǎng)絡(luò)發(fā)現(xiàn)功能。下面的Wireshark屏幕截圖展示了由本地管理軟件發(fā)送的數(shù)據(jù)包:

該軟件會向23272端口上的多播組地址224.0.01發(fā)送UDP數(shù)據(jù)包。在右下方,標(biāo)記出來的hexdump部分是有效載荷(eQ3Max * x00 ********** I)。這是一個所謂的身份消息,用來命令Cube向數(shù)據(jù)包的源主機報告其序列號。下面的截圖顯示了Cube的響應(yīng):

同樣,這里響應(yīng)的有效載荷也在右下側(cè)(eQ3MaxApKMD1016788> I)做了標(biāo)記。 我的設(shè)備的序列號是KMD1016788,所以一切正常?,F(xiàn)在,我們只要發(fā)送這樣的UDP數(shù)據(jù)包,就能輕松找出本地網(wǎng)絡(luò)上所有的Cube設(shè)備。同時,我們也可以檢查某個主機是否是使用單播數(shù)據(jù)包的Cube設(shè)備。

我們自己也可以發(fā)送所有這些數(shù)據(jù)包,甚至單播數(shù)據(jù)包。對于這些任務(wù),我更喜歡使用Scapy來完成。因為有了它,我們就可以在交互式Python shell中創(chuàng)建、發(fā)送/接收和操作數(shù)據(jù)包,這樣做是很方便的,因為這樣可以同時進行其他任務(wù),如進行計算或數(shù)據(jù)轉(zhuǎn)換。Cube使用的UDP端口是23272。我們可以從前面的示例中獲取相應(yīng)字符串(這是一個“身份消息(identity message)”,由有效載荷末尾的“I”表示),并將其發(fā)送到目標(biāo)主機:

>>> p = Ether()/IP(src="192.168.0.1", dst="192.168.0.222")/UDP(sport=23272, dport=23272)/Raw("eQ3Max*

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 龙江县| 五河县| 搜索| 天祝| 沈丘县| 阿拉善右旗| 新源县| 东丰县| 阳高县| 滦南县| 绵阳市| 广昌县| 吉隆县| 龙南县| 晋宁县| 巢湖市| 扶风县| 财经| 太原市| 通河县| 西丰县| 太仓市| 昌邑市| 兰溪市| 青州市| 休宁县| 阿荣旗| 融水| 合作市| 北京市| 九龙县| 磐石市| 渝北区| 大洼县| 贵港市| 清河县| 襄城县| 资阳市| 泸州市| 灵川县| 板桥市|