當前位置:
首頁 > 新聞 > 內網穿透:Android木馬進入高級攻擊階段

內網穿透:Android木馬進入高級攻擊階段

概述

近日,360烽火實驗室發現有數千個樣本感染了一種名為「DressCode」的惡意代碼,該惡意代碼利用實下流行的SOCKS代理反彈技術突破內網防火牆限制,竊取內網數據。

這種通過代理穿透內網繞過防火牆的手段在PC上並不新鮮,然而以手機終端為跳板實現對企業內網的滲透還是首見[1]。

SOCKS是一種網路傳輸協議,SOCKS協議位於傳輸層與應用層之間,所以能代理TCP和UDP的網路流量,SOCKS主要用於客戶端與外網伺服器之間數據的傳遞,那麼SOCKS是怎麼工作的呢?

舉個例子:A想訪問B站點,但是A與B之間有一個防火牆阻止A直接訪問B站點,在A的網路裡面有一個SOCKS代理C,C可以直接訪問B站點,於是A通知C訪問B站點,於是C就為A和B建立起信息傳輸的橋樑。其工作流程大致分為以下5步:


(1)代理方向代理伺服器發出請求信息。

(2)代理伺服器應答。

(3)代理方需要向代理伺服器發送目的IP和埠。

(4)代理伺服器與目的進行連接。

(5)連接成功後將需要將代理方發出的信息傳到目的方,將目的方發出的信息傳到需要代理方。代理完成。

由於SOCKS協議是一種在服務端與客戶端之間轉發TCP會話的協議,所以可以輕易的穿透企業應用層防火牆;它獨立於應用層協議,支持多種不同的應用層服務,如TELNET,FTP,HTTP等。

SOCKS協議通常採用1080埠進行通信,這樣可以有效避開普通防火牆的過濾,實現牆內牆外終端的連接[2]。

二.地域分布

360互聯網安全中心數據顯示,截止目前,「DressCode」惡意代碼傳播量已達24萬之多,在世界範圍內分布相當廣泛,感染了該惡意代碼的手機在全世界的分布情況如下圖所示:


圖1「DressCode」木馬在世界各地的分布情況

數據顯示,已有200多個國家的用戶手機安裝了帶有「DressCode」惡意代碼的應用。

該惡意代碼大多寄宿在時下流行的手機遊戲中,其擴散能力很強,其中美國、俄羅斯,德國、法國等歐美髮達國家屬於重災區,中國的形勢也不容樂觀,企業內網安全正在遭受前所未有的挑戰。


三.詳細分析

該木馬的主要攻擊過程如下[3]:


(1)木馬運行時主動連接到攻擊者主機(SOCKS客戶端),建立一個與攻擊者對話的代理通道。

(2)作為SOCKS服務端的木馬根據攻擊者傳來的目標內網伺服器的IP地址和埠,連接目標應用伺服器。

(3)木馬在攻擊者和應用伺服器之間轉發數據,進行通信。

當木馬安裝上手機後,首先會連接C&C伺服器,連接成功後,那麼木馬就與C&C伺服器建立了一個對話通道,木馬會讀取C&C伺服器傳送過來的指令, 當木馬收到以「CREATE」開頭的指令後,就會連接攻擊者主機上的SOCKS客戶端,攻擊者與處於內網中的木馬程序建立了信息傳輸的通道了。

SOCKS服務端讀取SOCKS客戶端發送的數據,這些數據包括目標內網應用伺服器的IP地址和埠、客戶端指令。如下圖所示:

圖2SOCKS服務端獲取客戶端指令等信息

客戶端傳遞過來的命令主要有CONNECT與BIND兩種指令。


(一)CONNECT指令

當SOCKS客戶端要與目標應用伺服器建立連接時,首先會發送一個CONNECT指令,SOCKS服務端接收到CONNECT指令後,會根據讀取到的IP地址和埠連接目標應用伺服器。

連接成功後,會將請求結果發送給SOCKS客戶端,此時目標應用伺服器與SOCKS服務端,SOCKS服務端與SOCKS客戶端都建立起了會話通道,木馬作為數據中轉站,可以在攻擊者和應用伺服器轉發任意數據了,其轉發過程如圖所示:


圖3木馬轉發數據過程

SOCKS協議對數據轉發的實現代碼如下:

圖4木馬轉發數據的代碼

那麼通過這兩條已連接的數據傳輸通道如何竊取數據的呢?

以HTTP協議為例,假設攻擊者要訪問位於內網的HTTP伺服器,那麼攻擊者首先通過SOCKS客戶端將HTTP請求數據發送給SOCKS服務端,SOCKS服務端讀取到這些數據後,馬上將這些數據轉發給應用伺服器。

應用伺服器收到HTTP請求後,將HTTP應答數據發送給木馬,木馬檢查到應答數據,馬上轉發給攻擊者,這樣攻擊者就通過木馬完成了對內網HTTP伺服器的訪問。


(二)BIND指令

當攻擊者需要訪問內網FTP應用伺服器時,SOCKS代理客戶端需要向服務端發送BIND指令。SOCKS協議支持採用PORT模式傳輸FTP數據,PORT模式[4]傳輸數據的主要過程如下:

FTP客戶端首先和FTP伺服器建立控制連接,用來發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。

FTP伺服器必須和客戶端建立一個新的連接用來傳送數據。PORT命令包含了客戶端用什麼埠接收數據。在傳送數據的時候,服務端通過自己的埠(默認是20)連接至客戶端的指定埠發送數據。

SOCKS代理服務端接收到BIND指令後,木馬會利用本地IP和匿名埠生成一個服務端SocketA,並通過建立的數據轉發通道,將本地IP和埠發送給攻擊者;等待目標應用伺服器連接(多為FTP伺服器)。


(三)攻擊FTP伺服器的過程

攻擊者想要竊取內網FTP伺服器數據時,會首先發送CONNECT指令,處於內網中的SOCKS服務端接收到此命令後,會試圖和FTP伺服器建立一個控制流,如果FTP伺服器響應此請求,最終FTP控制流建立。

攻擊者建立新的到SOCKS服務端的TCP連接,並在新的TCP連接上發送BIND請求,SOCKS服務端接收到BIND請求後,創建新的Socket,等待目標FTP伺服器的連接,並向SOCKS客戶端發送第一個BIND響應包。

SOCKS客戶端收到第一個BIND響應包後,攻擊者通過FTP控制流向FTP伺服器發送PORT命令,通知FTP伺服器主動建立到SocketA的連接;FTP伺服器收到PORT命令,主動連接到SocketA。

SOCKS服務端接收到來自FTP伺服器的連接請求,向SOCKS客戶端發送第二個響應包,然後SOCKS服務端開始轉發數據流。這樣攻擊者就通過木馬完成了對內網文件伺服器的數據竊取。

以上攻擊過程如下圖所示:

圖5黑客攻擊FTP伺服器,竊取數據的過程


四.總結建議

「DressCode」惡意代碼穿透能力強,地域分布廣泛,已成為對內網安全的一種新的潛在威脅,減除接入企業內網的智能終端設備所帶來的安全威脅客不容緩。針對此種情況,企業應做好如下兩點防範措施:

(1)嚴格限制不可信的智能終端設備接入公司內部網路,對要接入公司內網的終端設備進行身份認證。

(2)智能終端設備不應該與企業內部伺服器處於同一個區域網段內。

與此同時,手機用戶應該提高安全意識,要從正規的安卓應用商店下載應用,不要安裝來歷不明的應用軟體。

引用

[1] DressCodeand its Potential Impact for Enterprises:

http://blog.trendmicro.com/trendlabs-security-intelligence/dresscode-potential-impact-enterprises/

[2] SOCKS: Aprotocol for TCP proxy across firewalls:

http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol

[3] FastIntroduction to SOCKS Proxy:

http://etherealmind.com/fast-introduction-to-socks-proxy/

[4] FTP協議分析:

http://kendy.blog.51cto.com/147692/33480

*作者:360手機衛士,轉載請註明來自FreeBuf黑客與極客(FreeBuf.COM)



請您繼續閱讀更多來自 FreeBuf 的精彩文章:

TAG:FreeBuf |

您可能感興趣

木馬程式Xavier入侵Android
Android安全之殤:Gooligan木馬控制百萬谷歌賬戶
能DDoS的勒索木馬FireCrypt進一步分析
暗雲Ⅲ BootKit 木馬分析
MBR勒索木馬再度來襲:GoldenEye分析
【FB TV】一周「BUF大事件」:RSA 2017盤點報道;暗網市場Hansa發布漏洞懸賞;Windows木馬傳播Mirai
Sophos:新型木馬病毒Kedi利用Gmail進行傳播
新型PPT釣魚攻擊分析(含gootkit木馬詳細分析)
NSA DanderSpiritz測試指南——木馬生成與測試
直面冥王:最新爆發的C#敲詐木馬HadesLocker解讀
Red Alert 2.0:可以阻止和記錄銀行來電的新型Android銀行木馬
Chrome 搜索 User-Agent Switcher 排行第一的插件竟是木馬
BankBot木馬瞄準Google Play應用商店
[圖]新型Android木馬Xavier爆發:可悄然竊取你的個人信息
木馬病毒爆發 Android用戶下載需謹慎
比特幣「玩家」小心被銀行木馬TrickBot盯上
TrickBot銀行木馬再度來襲 這次將影響24個國家
新型Ursnif銀行木馬:添加滑鼠移動反檢測技術
華盟 Web安全與滲透 第十三課 Php注入頁面與Php木馬的編寫 PPT及視頻下載