DEFCON 27 會議。你的車就是我的車。 第2部分

DEFCON 27 會議。你的車就是我的車。 第1部分

影片結束時,您會聽到咔噠聲 - 這是機械方向盤鎖的解鎖,我們無法使用電子設備繞過該鎖。你必須使用機械的東西,用手打破鎖芯,或做類似的事情,而我不會對她的車做這些事情。在我的演講結束後,這些影片中演示的所有韌體都將在 GitHub 上提供,因此只需前往幻燈片上的 URL 並下載 OpenRemoteStart 檔案即可。

讓我們談談當我們將互聯網添加到這個系統時到底會發生什麼,因為它一定對我們有好處,對嗎?正如我所說,我購買了一個名為 MyCar 的遠端警報控制模組。它有各種修改,我有 Linkr LT-1 型號。

DEFCON 27 會議。你的車就是我的車。 第2部分

MyCar 只是一個品牌,此類模組以 Linkr LT-1、MyCar KIA、Visions MyCar、Carlink (CL6) 等名稱出售。事實證明,一段時間以來,加拿大的起亞經銷商一直在他們的汽車上安裝這個系統,或者至少是一個名為 MyCar KIA 的應用程式。有趣的是,這個應用程式不再可以在 AppStore 上下載。我還想指出的是,我選擇了 Fortin 和 MyCar 產品,但根據自由汽車警報器主題論壇上的用戶評論,其他系統的表現並不好,並且存在類似的問題。

我有一個重要的問題:為什麼售後汽車防盜器市場出售有安全問題的產品卻無人關心?因此,如果你們中有人對遠端啟動系統感興趣,請注意幾個重要情況。首先,正如我前面提到的,如果DS系統沒有正確安裝在手排變速箱的汽車上,那麼很可能在遠端啟動引擎後,如果變速箱掛入某些檔位,汽車就會在無人駕駛的情況下行駛。這真的很危險。第二個危險是,如果有人將汽車停在附屬車庫並意外遠端啟動發動機,他們可能會因積聚的一氧化碳而窒息。因此,如果您有二氧化碳系統和附屬車庫,那麼您絕對應該配備一氧化碳偵測器。

如果您使用 DS 系統,切勿在不知道汽車發動機確切位置的情況下嘗試啟動汽車發動機,因為後果可能是災難性的。

MyCar 設備是一個帶有兩根電線的小黑盒,有 8 個端口,其中兩個專用於調試器接口。連接到這個介面表示該設備運行Linux,但製造商對此保持沉默。使用oelinux 123密碼很容易進入韌體shell,但無需登入即可使用AE Engine,它允許您從命令列輸入AT命令,包括更改設備IP位址的命令該模組進行通訊。

DEFCON 27 會議。你的車就是我的車。 第2部分

如果我們查看下面的行,我們可以看到 MyCar 模組接收韌體更新的伺服器的 IP 位址。該設備配備有一個 L 端口,可讓您「監聽」模組接收到的命令。使用 AE 引擎並更改配對裝置的 IP,我能夠確定該裝置使用未加密的 UDP 協定與 DS 進行通訊。

我沒有對此進行過多研究,但我認為這是一個非常重要且有趣的事實。如果您對有關該設備的更多資訊感興趣,請看一下這張幻燈片 - 它顯示了 3,3V 的電源電壓、115200 波特的資料傳輸速率、用於更新韌體的伺服器位址、root 密碼和鏈接至使用手冊。

DEFCON 27 會議。你的車就是我的車。 第2部分

此元件可以“承受”更高的電源電壓。

正如我所說,這裡很冷。在我把這個系統送給女友大約一個月後,我決定把這個裝置從車上拿出來好好運作一下。事實上,這個月我一直在迴避有關該設備漏洞的想法。他們預計下週氣溫將降至-30F°,所以我必須抓緊時間。我連接到外殼並讓它工作,但由於我的家庭實驗室的蜂窩接收不是很好,我決定在另一台電腦上使用盒子。我使用的FTDI設備有一條短線,所以我找了一根更長的,把它插到DS設備上,再插到電腦上,一打開電源,我的設備就開始冒煙了!

從中吸取的教訓是:如果您正在破解硬件,請準備好備用設備!我女朋友這樣說這個故事的寓意:如果你的另一半是駭客,不要讓他玩弄你的聖誕禮物!現在我們來看看軟體,我想這裡不會有什麼冒煙的。

DEFCON 27 會議。你的車就是我的車。 第2部分

我啟動了中間人代理,在手機上禁用了 SSL 驗證,並觀察了應用程式發送到後端的流量。註冊時,我注意到系統取得了我的電子郵件地址並將其發送到網路服務,以確保該位址與現有帳戶關聯。有趣的是,系統使用基本身份驗證,因為我還沒有建立帳戶。我不知道如何處理這些訊息,所以我只是把它寫在筆記本上然後繼續前進。我建立了帳戶並登錄,登入時應用程式執行的第一件事是呼叫 Web 服務來驗證目前使用者。因此,我只是使用我之前見過的憑證來呼叫此網頁伺服器,這些憑證用於檢查我的電子郵件地址是否存在,並作為回應授予 Mycar 管理員存取權限。

DEFCON 27 會議。你的車就是我的車。 第2部分

我懷疑這是一個真正的系統管理員帳戶,因為儘管聽起來很大,但它的權限很低。畢竟我們都認識這樣的人。

因此,我創建另一個請求 - EngineStart 命令,從該帳戶啟動汽車,單擊“發送”,收到響應的命令狀態 - “200 OK”,大約三秒後我的汽車開始移動。

DEFCON 27 會議。你的車就是我的車。 第2部分

事實證明,Mycar 管理員帳戶確實是硬編碼到行動應用程式中的管理員帳戶。但這還不是全部。在之前的一張投影片中,您看到了 API 金鑰之類的東西。同樣,透過監控我的假​​代理伺服器流量,我了解到這些 API 金鑰可以用來代替使用者名稱和密碼。如果您使用「API」作為使用者名稱和這些金鑰之一,則可以對使用者進行身份驗證。

DEFCON 27 會議。你的車就是我的車。 第2部分

因此,我複製了“APIKey”行的內容,將其貼上到 POST 應用程式的“密碼”行中,然後單擊“發送”按鈕。

DEFCON 27 會議。你的車就是我的車。 第2部分

然而,它並沒有起作用,我長達 5 分鐘都無法弄清楚為什麼。最後,我意識到我忘記刪除複製的 API 金鑰中的引號和逗號,這就是我被告知的:“你在 SQL 語法中犯了一個錯誤。”我清楚地意識到,您可以簡單地使用基本的 SQL 注入來繞過整個登入過程,並成為管理員或您想要的任何使用者。我認為沒有人嘗試過使用 SQL 注入來偷車,所以讓我們嘗試一下。

DEFCON 27 會議。你的車就是我的車。 第2部分

DEFCON 27 會議。你的車就是我的車。 第2部分

一般來說,我登入我的帳戶,點擊「傳送」並收到「200 OK」狀態回應。這次我想錄一個影片。由於我是在深夜從辦公室窗戶拍攝的,所以有點暗。所以,我輸入命令,你透過窗戶看到汽車的前燈在下面的院子裡閃爍。起初它們的光很弱,但隨後車頭燈開始全功率發光 - 這是引擎啟動的情況。於是,我用SQL注入啟動了汽車(觀眾鼓掌)。

但這還不是全部。 SQL注入不僅可以用於授權,還可以替換其他參數,例如URL、查詢字串主體參數等。事實上,這個系統到處都使用了SQL注入。查看錯誤訊息,我們可以看到我們輸入的密碼直接與資料庫中的密碼列進行比較。

DEFCON 27 會議。你的車就是我的車。 第2部分

這意味著他們在 SQL 注入中使用純文字密碼。正如他們所說,“這一點都不好,甚至很糟糕!”關於 SQL 的介紹已經夠多了,讓我們看看您還可以做什麼來遠端啟動您的汽車。您只需發送「EngineStart」命令,作為回應,您會收到一個表示該命令標識符的整數標識符,在本例中為ID = 3。服務,該服務將報告該命令的狀態命令。

DEFCON 27 會議。你的車就是我的車。 第2部分

因此,透過增加或減少 ID 值,我可以「拉取」該系統上發送過的任何命令的狀態。

DEFCON 27 會議。你的車就是我的車。 第2部分

不過,它並沒有什麼特別有趣的地方,我想知道這裡是否有對一個物件的直接引用,我可以用它來啟動我的汽車。因此,我以合法使用者的身份從我的帳戶執行「EngineStart」命令,然後嘗試透過另一個使用者的帳戶呼叫它,該帳戶不應存取系統。作為回應,我收到一條錯誤訊息:“此帳戶不在層次結構的上下文中。”所以,也許這種駭客方法行不通。但是,如果您查看此 API,您會發現它重複訊息 - 使用者的電子郵件地址會對應到他們的帳戶 ID。

DEFCON 27 會議。你的車就是我的車。 第2部分

如果您正在開發 API 或破解 API,我們在此 URL 中看到的重複資訊可能會導致錯誤。在這種情況下,API 錯誤可以透過四種不同的方式表現出來。

DEFCON 27 會議。你的車就是我的車。 第2部分

如果您查看紅色框所示的情況 2 和 3,您可以看到對該物件的直接引用。在這兩種情況下,系統都不會檢查您是否有權執行該命令。我嘗試了情況2,但沒有成功,那麼情況3呢?這裡我們只需替換 URL 中的 USER_EMAIL 帳戶 ID,因為它與 ACCOUNT_ID 帳戶 ID 直接相關。之前我們使用受害者的帳戶ID,但現在我們使用攻擊者的帳戶。因此,我使用駭客的帳戶 ID 和受害者的裝置 ID,發送命令並預期收到「200 OK」命令狀態,並獲得了 MyCar 應用程式的控制權。
因此,透過三種不同的攻擊向量,我們能夠執行該應用程式的合法用戶可以執行的所有操作。這意味著您可以找到城市中的任何汽車,在應用程式中設定其品牌和型號,然後遠端解鎖汽車並啟動它。我們可以關閉或開啟警報,更改汽車的服務選單並檢查任何命令的狀態。所有這一切都可以透過三種不同的方式來完成。

DEFCON 27 會議。你的車就是我的車。 第2部分

很明顯,MyCar 開發人員試圖以某種方式修復系統錯誤。因此,對於硬編碼密碼,他們只需在應用程式前面放置一個反向代理即可隱藏用於授權的憑證。問題是反向代理並不神奇,並不能解決所有問題。他們將 SQL 注入儲存在第三方服務中,這樣即使沒有密碼我仍然可以透過使用者驗證過程使用它。

DEFCON 27 會議。你的車就是我的車。 第2部分

我決定仔細研究一下 URL 結構。您可能已經注意到,系統使用的所有位址都包含 m2m。確定這是 MyCar 應用程式中授權機制的某種內部交互,我將這些字母輸入 Google 並發現了 M2M Suite 網站。當您看到此表單時,您唯一能做的就是在其中添加幾個單引號,然後看看會發生什麼。將會發生的事情是,您將獲得所需的 SQL 注入(觀眾鼓掌)。

DEFCON 27 會議。你的車就是我的車。 第2部分

DEFCON 27 會議。你的車就是我的車。 第2部分

這是在開發人員報告 SQL 注入問題幾個月後發生的。如果一個應用程式出現這樣的問題,就需要盡快修復,但正如你所看到的,開發者並沒有採取任何措施。我覺得這種對使用者的漠視是令人反感的。

MyCar 模組具有 GPS 單元,因此它可以追蹤您的汽車的位置並將其顯示在應用程式中。但事實證明,它們不僅存儲汽車的當前位置。它們儲存了大量的信息,遠遠超過了追蹤汽車當前位置所需的資訊。就我而言,在使用該應用程式超過 13 天的時間裡,他們累積了我的汽車去過的地方的不到 XNUMX 個地理定位點。 MyCar 開發公司的隱私權政策並未提及此類資訊收集。

然而,情況變得更糟。您可能會說這只是位置服務實施的副作用。但問題是,他們不只是創建你的汽車去的地方的列表,而是使用另一個 API 來分析該數據並確定你的汽車最常去的地方。同樣,據我所知,隱私權政策中沒有任何此類功能的暗示。也許這並不奇怪,因為經過大量搜尋後,我找到了 MyCar 的母公司 Procon Analytics,訪問了他們的網站並訪問了常見問題解答部分。在這裡我遇到了一個問題:“你們如何確保資料安全?”該公司的回應是:「與爭奪資料儲存優先權的公有雲不同,Procon Analytics 使用自己的虛擬雲,該虛擬雲專門供我們應用程式的用戶使用,並免受其他用戶的干擾。這是一個具有高度安全性的特殊雲端環境,可確保輕鬆可用性和服務交付速度。透過與 Procon Analytics 合作,您可以確信您的資料受到安全保護。我甚至不知道該說什麼......

DEFCON 27 會議。你的車就是我的車。 第2部分

如果你去他們的 Facebook 頁面,你可以找到更多有趣的事情。他們在這裡簡單地寫道:“保護有關您車輛的信息至關重要!”嗯,我只能同意這樣的說法。

那麼,回到我開始的問題:「這種情況是如何發生的以及如何避免」?更重要的是,作為一個社區,我們如何防止這種情況發生?

我的報告到此結束,但我仍然可以回答幾個問題(觀眾鼓掌)。

你問他們是否修復了所有問題?至此,我認為他們已經修復了我向他們報告的所有錯誤,除了我在演講結束時提到的隱私權政策缺陷。上次我檢查時,一切都沒有改變。當被問到我是否可以以類似的方式編輯汽車電子引擎控制單元(ECU)的參數時,我會回答說我的任務是僅在 MyCar 應用程式中編輯汽車的參數。它儲存透過直接物件存取、SQL 注入或其他攻擊媒介進行編輯的車輛的數位表示。

最後一個問題是:我的車上是否有帶有「啟動」按鈕的無鑰匙引擎啟動系統?我的回答是MyCar有這樣一個按鈕,所以這個系統沒有方向盤鎖。我懷疑如果你安裝了這個系統,你肯定就無法依賴方向盤鎖了。

一些廣告🙂

感謝您與我們在一起。 你喜歡我們的文章嗎? 想看更多有趣的內容? 通過下訂單或推薦給朋友來支持我們, 面向開發人員的雲 VPS,4.99 美元起, 我們為您發明的入門級服務器的獨特模擬: VPS (KVM) E5-2697 v3(6 核)10​​4GB DDR480 1GB SSD 19Gbps XNUMX 美元或如何共享服務器的全部真相? (適用於 RAID1 和 RAID10,最多 24 個內核和最多 40GB DDR4)。

Dell R730xd 在阿姆斯特丹的 Equinix Tier IV 數據中心便宜 2 倍? 只有這裡 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 電視低至 199 美元 在荷蘭! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 美元起! 閱讀 如何建設基礎設施公司同級使用價值730歐元的Dell R5xd E2650-4 v9000服務器一分錢?

來源: www.habr.com

添加評論