POS機終端攻擊
POS機終端攻擊-GDA
一、動機
Point-of-Sale (POS) 設備是現代生活中不可或缺的一部分,也是商人的血脈。隨著支付卡逐漸成為默認的支付方式,POS設備的安全也變得更加重要。因而,我感興趣的是真實POS的安全處理機制。但是未經業主同意的「現場測試-close examination」是違法的。並且我沒有業務上需要使用POS機的朋友,因而我決定訂購一台二手POS設備來做研究。我入手的是一款ALOHA POS系統,該設備是一款在酒店業非常受歡迎的POS設備。(Figure 1)
Figure 1Aloha!
二、POS系統分析
ALOHA POS系統,通常有多個前置(FOH- Front-of-House)終端和一個後台文件伺服器。終端作為伺服器的接入點,允許直接與輸入新訂單、刷卡信用卡和列印收據操作進行交互。所有交易記錄被保存到ALOHA的文件伺服器中,文件伺服器每天都會處理這些交易數據。
Figure 2:典型的Aloha POS 系統架構圖
我所購買的系統碰巧是masterterminal (terminal 1),通常在同一網路中如果沒有ALOHA文件伺服器是不會進行交易的。但是,有一個後備模式會在所有交易處於離線狀態時被啟用,他允許終端繼續接受訂單和交易過程。我使用該模式進行了一次輕量級的測試。
三、埠掃描
Figure 3顯示了Nmap的掃描結果。我發現了文件共享相關的服務(埠為135,139,445),其他入侵防護服務MSRPC(埠為1801,2103,2105,2107),和一個運行在5900埠上的VNC服務。有趣的是,還有一個運行在8080埠上網路服務。
Figure 3NMAP 掃描結果
四、VNC安全問題
我手動測試的第一步是猜測VNC密碼。在理想情況下,密碼應該是很難猜測的,否則,你能夠突破一個密碼系統所保護的一切(即「你可以知道其他人不知道的東西」)。很自然的,我第一次猜的密碼會是aloha』,但你猜怎麼著?密碼是正確的,我的第一次嘗試就獲得了系統訪問許可權。此外,該連接還是不加密的(Figure 5),因此攻擊者可以通過訪問基礎設施來嗅探出VNC客戶端和POS之間的通信數據。
Figure 4VNC 登錄界面
Figure 5未加密的VNC連接
當你通過VNC登錄到終端,你可能會看到如Figure 6所示一個屏幕。你可以最小化POS程序,然後訪問資源管理器,執行額外的攻擊。
Figure 6通過VNC連接到POS終端
五、共享功能啟用
另一個基本問題是設備被多個已存在的賬戶共享使用,如『aloha』和 『manager』.
並且,密碼和賬號是一樣的。您可以使用這些帳戶訪問該機的系統驅動器的根目錄。(Figure 7)這可能會直接導致系統文件被惡意篡改。
Figure 7An open share
六、ATDDB.exe –Aloha的通信服務程序
弱口令和開放共享是基本問題,但我想找到額外的攻擊向量。我尋找其他可能進入系統的切入點。一個吸引我眼球的服務是atddb.exe。此程序作為service程序運行,並綁定了8080。(Figure 8)它是一個SOAP服務。
Figure 8ATDDB on port 8080
我無法找到它所使用的這種協議比較好的文檔。另外,你可能需要的BOH服務來使用這個進程的機制。只有一台機器我沒法構造通信數據包來測試協議問題,但是在深挖到二進位後,我卻通過HTTP請求提供無效的輸入觸發了一個堆溢出漏洞。(Figure9)即使我沒有開發一個完整的exploit, 我敢保證這是一個可以利用的堆溢出漏洞。所以atddb.exe可能是攻擊者的另一個切入點。記住,atddb.exe的處理SOAP消息的服務,所以如果你挖到的通信消息格式本身,你會發現更多的問題。
Figure 9Heap corruption with wrong input
七、安全更新問題
看來這個POS設備的所有者或其管理公司,不是很願意提供更新的服務。當然,更新可能會中斷當前的業務運作。特別是當你忙著吃午餐或晚餐的時候,而這時飢餓的顧客在等待他們的食物,你可能沒有時間來顧及他們(更新你的系統)。然後在一天結束時,你可能會有其他的優先事項要處理,或太累了而無法顧及,等等有很多原因吧。
在我研究的設備上,更新功能是被完禁用了(Figure 10)。最近一次系統文件更新時間大約是2007年3月份,根據另外一些文件的時間戳我發現這台機器一直使用到2014年初。這意味著,在漏洞被披露前,在過去的7年中該系統是容易受到攻擊的。從好的一方面來看,此POS終端運行在一個精簡了服務的Windows XPSP2上,這意味著許多xp的漏洞利用程序無法用於這個系統。但是禁用安全更新不是一個值得提倡的做法。
Figure10 Windows update is disabled
八、竊取信息
Aloha POS系統維護一個可以訪問該系統的員工列表。僱員使用他們的磁卡訪問該終端,磁卡記錄著僱員的密碼。我發現了一個包含有酒店所有工作人員的名稱、SSN、地址、手機號碼和訪問碼的文件(Figure 11)。這是高度敏感的信息,並且這些信息的披露很容易導致身份盜竊。
Figure11 Employee database
即使這裡沒有存儲信用卡號記錄,但禮品卡號被保存在了日誌里(Figure 12)。這方面的信息如果它落入壞人之手,也可能被用於欺詐。
Figure12 Gift card numbers in transaction logs
九、搜集信用卡號
一個試圖攻擊POS機的入侵者主要目標是收集信用卡號碼。在我們一個有關BlackPOS的博客上,談論過一種內存刮取的技術。這種技術可以適用於信用卡信息從磁性讀卡器傳輸的信息是加密的情況下。然而這家餐廳POS機,磁卡讀取器是直接連接到設備上的,並沒有進行加密處理。攻擊者可以簡單地用一個一般的鍵盤記錄器獲取到信用卡信息。(Figure 13)我沒有問題,獲取信用卡號碼的卡,我刷卡。因為一些未知的原因,我所遇到的唯一問題是字元會重複兩次。然而,使用這些信息完全沒有任何問題。
Figure13 Keylogger capture (card numbers are obscured)
十、總結
目前我們以一個攻擊者的視角來審視一個從eBay上購買的POS終端,發現系統的整體安全狀況很差。通過幾方面的研究表明(包括通過猜測VNC密碼」aloha」的使用),如果你在沒有將POS和客戶的網路隔離的情況下就提供免費的Wi-Fi接入是非常危險的。也請記住,VNC連接常常被POS管理人員承包商遠程訪問,所以如果不採用適當的訪問控制的話,攻擊者也可能從外網連接到POS機器。
我在不到幾個小時里就發現了供應商創建的一個專有服務存在堆溢出漏洞。(我懷疑整個基礎代碼的都不是以安全的方式編寫)。最後一個問題是在設備上存在隱私信息和敏感信息。由於我研究的設備是FOH的,這意味著實際的信用卡號碼保存在設備上的機會很少,但我還獲取到了大量個人信息如員工信息和大量禮品卡交易日誌。僅僅通過運行傳統的鍵盤記錄器,進入POS終端的攻擊者就可以竊取信用卡數據,從系統的角度來看,磁卡讀取器是被作為鍵盤來識別的,而且它在被使用過程中並沒有進行加密。
推薦閱讀:
※手機POS機哪個好???
※我是商戶,申請pos機選擇銀聯商務的和第三方支付如匯付天下區別在哪裡?
※如何申請銀聯 POS 機?
※飛機上刷信用卡購物信息是如何傳輸的?
※智能微POS機有什麼優勢?