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

當前位置:安全行業動態 → 正文

如何快速破解識別APT28網絡攻擊流量

責任編輯:editor007 作者:clouds |來源:企業網D1Net  2017-05-04 21:12:02 本文摘自:黑客與極客

近期,歐洲多國大選開始,去年涉嫌網絡攻擊干預美國總統選舉的APT28又開始活躍了。相繼有德國、丹麥等國紛紛指責APT28的大肆入侵攻擊行為。而就在最近的法國大選中,有安全專家分析稱,APT28可能已經針對首輪投票勝出的紐埃爾·馬克龍(Emmanuel Macron)開展了網絡攻擊活動。難道APT28又要用鍵盤來操控法國大選了嗎?

在這里,讓我們來看看安全公司Redsocks security如何通過網絡流量來快速識別和破解APT28攻擊行為。

分析簡介

2016年底,Redsocks security發現了一個APT28使用的過期域名,原本Redsocks security希望通過sinkhole該域名對APT28進行一探究竟,卻發現該域名使用了異常復雜的加密通信機制。盡管之前像ESET等其它安全公司認為APT28使用了RC4加密算法,但還未發現APT28具體使用的RC4算法和密鑰屬性。在這里,Redsocks security通過對APT28經常使用的X-Agent樣本進行動態分析,破解其整體攻擊入侵的網絡流量行為。以下為分析中APT28經常使常用到的一例X-Agent木馬程序樣本文件:

Sinkhole (槽洞)攻擊:通過引誘攻擊者發起的流量通過一個已被控制接管的節點,一旦流量數據經過該控制節點,接管者就可以對其網絡流量數據進行分析篡改,判斷攻擊者的攻擊手法和入侵行為。

由于涉及到對APT28攻擊行為的網絡通信機制破解,所以分析過程包括以下幾個方面:

執行X-Agent木馬和其釋放的惡意程序

對X-Agent木馬進行網絡行為觀察

破解APT28通信加密機制和算法

Redsocks security通過全網探測和url模式比對,發現了大量APT28使用的控制端和服務器,為破解調查破解APT28通信機制奠定了基礎。

X-agent釋放的惡意程序(dropper)

該樣本惡意程序dropper包含兩個步驟功能。首先,向Windows系統文件夾內釋放一個ose00000.exe程序和一個惡意dll文件,該dll文件名通常來說是固定的,不會隨著執行行為和目標系統而改變,如在此例中我們分析的83D2CDE2-8311-40CB-B51DEBE20FA803D1.dll,但極少情況下會隨著木馬功能而改變,如我們發現的其它釋放樣本文件xpool.dll;其次,通過釋放的惡意dll文件調用系統shell32庫中的ShellExecuteW方法函數,之后,以rundll32.exe進程身份和”C:Windows83D2CDE2-8311-40CB-B51DEBE20FA803D1.dll,init”參數完成對ShellExecuteW方法的進一步調用執行,在逆向分析中,我們可以從rundll32執行動作中觀察到這一行為。另外,我們還發現了惡意進程會調用ZwMapViewOfSection方法對目標系統進行內核Hook以系統提權。最終,木馬程序將會以rundll32.exe和ose00000.exe兩個進程形成系統駐留。

X-agent的木馬行為分析(rootkit)

83D2CDE2-8311-40CB-B51D-EBE20FA803D1.dll其實就是X-agent木馬安裝在系統內的rootkit,通過該rootkit實現鍵盤記錄和遠程控制。

X-agent架構

如下圖所示,X-agent的程序結構相對復雜,在功能實現和通信機制方面都具有模塊化的架構:

APT28-2.png

  X-agent的程序執行

整個木馬程序的執行從rundll32.exe進程加載dll文件調用初始化函數開始,首先它執行了獲得目標系統磁盤序列號等信息的kernel32.GetVolumeInformationW方法調用,并初始化一些全局變量:

之后,初始化模塊功能實現惡意功能執行(參考ESET報告),本例樣本程序中包括3方面功能模塊:

1 在樣本逆向代碼中為modKey的鍵盤記錄模塊

2 為modFS的文件系統控制模塊

3 為modProcRet的遠程Shell控制模塊

完成以上功能初始化后,攻擊者結合CHOPSTICK后門為不同任務創建了不同的線程,當然了,攻擊者也會針對不同的配置和系統構造不同的功能和內核控制模塊AgentKernel:

所有任務線程由功能和內核控制模塊進行控制操作,并負責與遠程C&C服務器進行通信,受害系統身份和支持運行的功能模塊等信息將通過一個ID號為標識的數據包發送至攻擊者C&C端。所有這些信息將被保存在臨時文件夾下名為“edg6EF885E2.tmp”的文件中。

報告分析樣本使用WinInet API并通過HTTP信道進行通信。與C&C端發送數據之前,惡意程序通信線程會通過測試“adobeincorp.com” 域名解析,檢查與遠程C&C服務器的網絡連通性,如果解析失敗,則轉向兩個硬編碼IP進行直連。通信通道成功連通后,惡意程序就會通過內置的功能模塊發送不同的URL請求信息和POST數據。然而,與C&C端的所有通信都是加密的。總之,X-agent木馬在受害者系統中會執行以下一連串行為:

調用KERNEL32.GetVolumeInformationW

創建至少5個不同的任務線程

向臨時文件夾內edg6EF885E2.tmp文件讀寫數據

調用socket.connect測試C&C端連通性

加密與C&C端的URL和POST數據通信

向C&C端發送get請求

向C&C端發送post請求

調用WININET Http APIs向C&C端對受害者系統發起控制信息

X-agent網絡通信流量分析

為了破解APT28網絡通信流量,我們首先得了解X-agent使用的通信模式。在我們分析X-agent樣本中,其一前一后向遠程C&C端發送了http get和post請求。除一串請求字符以外,其余http頭信息都是固定的。X-agent發起的URL請求如下所示:

/webhp?rel=psy&hl=7&ai=L2Bd93t_o-jl022K1Og4Bm9mSk8QO88K_3ZQZuKcoPwur-5Q7Y=

其中,“/webhp?rel=psy&hl=7&ai=”和最后的“=”標記在所有的執行動作中都是一樣的,而其余51個編碼字符“L2Bd93t_o-jl022K1Og4Bm9mSk8QO88K_3ZQZuKcoPwur-5Q7Y”則包含了木馬客戶端的請求發起時間戳和ID標記;另外,木馬程序發送的POST數據則附加在“=”之后,為71個字符的加密串,解密后如下所示:

藍色部分為受害者系統標記ID,黃色部分為數據發送方模塊ID,綠色部分為遠程C&C端使用的由#符號分隔的一系列功能模塊數據。以下為X-agent的HTTP通信實現結構:

X-agent的通信加密機制

X-agent會對所有get或post請求的有用數據進行加密,加密后的數據會被添加進一些額外的字節并被轉化為BASE64編碼,如下為X-agent的通信模式結構:

時間戳為包含系統時間的BASE64數據,之后,又添加生成了8字節的BASE64隨機數據,而加密后的真實數據(cypher)則為16字節之后的信息,其中包含一些初始字節信息,如數據令牌(data token)和

受害系統ID等。而數據令牌(data token)中則包含了一個硬編碼字符串“V4MGNxZWlvcmhjOG9yZQ”,以下為X-agent的消息結構流程分解:

加密2.jpg

  最終,其BASE64數據基于RFC 4648和一個動態函數生成,并基于以下排列生成:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_

加密模塊

加密過程由兩個參數調用,調用指針指向兩個數據結構,包含以下兩方面加密類實現數據:

加密種子

加密數據

其中,加密種子是硬編碼方式固定的,初始函數通過立即尋址方式把其復制到數據段區域進行加密:

之后,在代碼中,4個隨機字節被追加到種子之后成為54字節數據,這種結構形成了加密過程的關鍵所在。例如,從AgentKernel獲取的默認初始請求為39字節,其中包括:受害系統ID、模塊ID、支持模塊信息,這些信息被封裝為20個字節的數據令牌(data token)、4個字節的受害系統ID和2個字節的模塊ID數據。其中數據令牌(data token)被遠程C&C端用來進行加密校驗。在使用了RC4算法創建密碼之后,加密程序將會向其中添加8字節的隨機值并把整體數據轉化為兼容BASE64的URL,并向其中生成7字節的時間戳信息。整個過程如下:

1.生成隨機的4字節信息;

2.使用RC4算法加密消息;

3.向消息中添加8字節隨機值;

4.把消息轉化為BASE64的URL;

5.在消息中生成7字節的時間戳信息。

RC4算法

RC4是基于字節排列的流密碼算法,在此我們不作重點討論,以下為X-agent使用的RC4算法實現代碼,其中算法涉及到的參數包含4字節的隨機值、加密種子和明文數據:

APT28-7.png

APT28-8.png

  如何破解X-agent數據

如前所述,X-agent加密過程的中的唯一隨機性是把4隨機字節附加到50字節的加密種子數據之后,由于 RC4算法是同步的流密碼加密機制,必須使用同樣的加密密鑰key才能實現解密。所以,解鈴還需第鈴人,X-agent加密機制的破解必須使用相同的RC4算法和調用參數才能實現。最終轉變生成的密碼消息(cypher)除時間戳和隨機字節之外,必須與其http請求對應的數據一致。當然了,可以利用暴力攻擊方法枚舉所有可能值(0到2的32次方-1)來破解RC4算法,如果其破解結果包含一個硬編碼字符串“V4MGNxZWlvcmhjOG9yZQ”,則可以證明這就是APT28的網絡通信行為,因為該字符串為APT28在網絡通信中使用的數據令牌(data token)內容,并且這種破解操作可以在任何普通的個人電腦上快速實現完成,整個過程也就是幾秒鐘的事。具體技術分析參考Redsocks報告。

*參考來源:securityaffairs,freebuf小編clouds編譯,轉載請注明來自FreeBuf.com

關鍵字:X-AgentWinInet

本文摘自:黑客與極客

x 如何快速破解識別APT28網絡攻擊流量 掃一掃
分享本文到朋友圈
當前位置:安全行業動態 → 正文

如何快速破解識別APT28網絡攻擊流量

責任編輯:editor007 作者:clouds |來源:企業網D1Net  2017-05-04 21:12:02 本文摘自:黑客與極客

近期,歐洲多國大選開始,去年涉嫌網絡攻擊干預美國總統選舉的APT28又開始活躍了。相繼有德國、丹麥等國紛紛指責APT28的大肆入侵攻擊行為。而就在最近的法國大選中,有安全專家分析稱,APT28可能已經針對首輪投票勝出的紐埃爾·馬克龍(Emmanuel Macron)開展了網絡攻擊活動。難道APT28又要用鍵盤來操控法國大選了嗎?

在這里,讓我們來看看安全公司Redsocks security如何通過網絡流量來快速識別和破解APT28攻擊行為。

分析簡介

2016年底,Redsocks security發現了一個APT28使用的過期域名,原本Redsocks security希望通過sinkhole該域名對APT28進行一探究竟,卻發現該域名使用了異常復雜的加密通信機制。盡管之前像ESET等其它安全公司認為APT28使用了RC4加密算法,但還未發現APT28具體使用的RC4算法和密鑰屬性。在這里,Redsocks security通過對APT28經常使用的X-Agent樣本進行動態分析,破解其整體攻擊入侵的網絡流量行為。以下為分析中APT28經常使常用到的一例X-Agent木馬程序樣本文件:

Sinkhole (槽洞)攻擊:通過引誘攻擊者發起的流量通過一個已被控制接管的節點,一旦流量數據經過該控制節點,接管者就可以對其網絡流量數據進行分析篡改,判斷攻擊者的攻擊手法和入侵行為。

由于涉及到對APT28攻擊行為的網絡通信機制破解,所以分析過程包括以下幾個方面:

執行X-Agent木馬和其釋放的惡意程序

對X-Agent木馬進行網絡行為觀察

破解APT28通信加密機制和算法

Redsocks security通過全網探測和url模式比對,發現了大量APT28使用的控制端和服務器,為破解調查破解APT28通信機制奠定了基礎。

X-agent釋放的惡意程序(dropper)

該樣本惡意程序dropper包含兩個步驟功能。首先,向Windows系統文件夾內釋放一個ose00000.exe程序和一個惡意dll文件,該dll文件名通常來說是固定的,不會隨著執行行為和目標系統而改變,如在此例中我們分析的83D2CDE2-8311-40CB-B51DEBE20FA803D1.dll,但極少情況下會隨著木馬功能而改變,如我們發現的其它釋放樣本文件xpool.dll;其次,通過釋放的惡意dll文件調用系統shell32庫中的ShellExecuteW方法函數,之后,以rundll32.exe進程身份和”C:Windows83D2CDE2-8311-40CB-B51DEBE20FA803D1.dll,init”參數完成對ShellExecuteW方法的進一步調用執行,在逆向分析中,我們可以從rundll32執行動作中觀察到這一行為。另外,我們還發現了惡意進程會調用ZwMapViewOfSection方法對目標系統進行內核Hook以系統提權。最終,木馬程序將會以rundll32.exe和ose00000.exe兩個進程形成系統駐留。

X-agent的木馬行為分析(rootkit)

83D2CDE2-8311-40CB-B51D-EBE20FA803D1.dll其實就是X-agent木馬安裝在系統內的rootkit,通過該rootkit實現鍵盤記錄和遠程控制。

X-agent架構

如下圖所示,X-agent的程序結構相對復雜,在功能實現和通信機制方面都具有模塊化的架構:

APT28-2.png

  X-agent的程序執行

整個木馬程序的執行從rundll32.exe進程加載dll文件調用初始化函數開始,首先它執行了獲得目標系統磁盤序列號等信息的kernel32.GetVolumeInformationW方法調用,并初始化一些全局變量:

之后,初始化模塊功能實現惡意功能執行(參考ESET報告),本例樣本程序中包括3方面功能模塊:

1 在樣本逆向代碼中為modKey的鍵盤記錄模塊

2 為modFS的文件系統控制模塊

3 為modProcRet的遠程Shell控制模塊

完成以上功能初始化后,攻擊者結合CHOPSTICK后門為不同任務創建了不同的線程,當然了,攻擊者也會針對不同的配置和系統構造不同的功能和內核控制模塊AgentKernel:

所有任務線程由功能和內核控制模塊進行控制操作,并負責與遠程C&C服務器進行通信,受害系統身份和支持運行的功能模塊等信息將通過一個ID號為標識的數據包發送至攻擊者C&C端。所有這些信息將被保存在臨時文件夾下名為“edg6EF885E2.tmp”的文件中。

報告分析樣本使用WinInet API并通過HTTP信道進行通信。與C&C端發送數據之前,惡意程序通信線程會通過測試“adobeincorp.com” 域名解析,檢查與遠程C&C服務器的網絡連通性,如果解析失敗,則轉向兩個硬編碼IP進行直連。通信通道成功連通后,惡意程序就會通過內置的功能模塊發送不同的URL請求信息和POST數據。然而,與C&C端的所有通信都是加密的。總之,X-agent木馬在受害者系統中會執行以下一連串行為:

調用KERNEL32.GetVolumeInformationW

創建至少5個不同的任務線程

向臨時文件夾內edg6EF885E2.tmp文件讀寫數據

調用socket.connect測試C&C端連通性

加密與C&C端的URL和POST數據通信

向C&C端發送get請求

向C&C端發送post請求

調用WININET Http APIs向C&C端對受害者系統發起控制信息

X-agent網絡通信流量分析

為了破解APT28網絡通信流量,我們首先得了解X-agent使用的通信模式。在我們分析X-agent樣本中,其一前一后向遠程C&C端發送了http get和post請求。除一串請求字符以外,其余http頭信息都是固定的。X-agent發起的URL請求如下所示:

/webhp?rel=psy&hl=7&ai=L2Bd93t_o-jl022K1Og4Bm9mSk8QO88K_3ZQZuKcoPwur-5Q7Y=

其中,“/webhp?rel=psy&hl=7&ai=”和最后的“=”標記在所有的執行動作中都是一樣的,而其余51個編碼字符“L2Bd93t_o-jl022K1Og4Bm9mSk8QO88K_3ZQZuKcoPwur-5Q7Y”則包含了木馬客戶端的請求發起時間戳和ID標記;另外,木馬程序發送的POST數據則附加在“=”之后,為71個字符的加密串,解密后如下所示:

藍色部分為受害者系統標記ID,黃色部分為數據發送方模塊ID,綠色部分為遠程C&C端使用的由#符號分隔的一系列功能模塊數據。以下為X-agent的HTTP通信實現結構:

X-agent的通信加密機制

X-agent會對所有get或post請求的有用數據進行加密,加密后的數據會被添加進一些額外的字節并被轉化為BASE64編碼,如下為X-agent的通信模式結構:

時間戳為包含系統時間的BASE64數據,之后,又添加生成了8字節的BASE64隨機數據,而加密后的真實數據(cypher)則為16字節之后的信息,其中包含一些初始字節信息,如數據令牌(data token)和

受害系統ID等。而數據令牌(data token)中則包含了一個硬編碼字符串“V4MGNxZWlvcmhjOG9yZQ”,以下為X-agent的消息結構流程分解:

加密2.jpg

  最終,其BASE64數據基于RFC 4648和一個動態函數生成,并基于以下排列生成:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_

加密模塊

加密過程由兩個參數調用,調用指針指向兩個數據結構,包含以下兩方面加密類實現數據:

加密種子

加密數據

其中,加密種子是硬編碼方式固定的,初始函數通過立即尋址方式把其復制到數據段區域進行加密:

之后,在代碼中,4個隨機字節被追加到種子之后成為54字節數據,這種結構形成了加密過程的關鍵所在。例如,從AgentKernel獲取的默認初始請求為39字節,其中包括:受害系統ID、模塊ID、支持模塊信息,這些信息被封裝為20個字節的數據令牌(data token)、4個字節的受害系統ID和2個字節的模塊ID數據。其中數據令牌(data token)被遠程C&C端用來進行加密校驗。在使用了RC4算法創建密碼之后,加密程序將會向其中添加8字節的隨機值并把整體數據轉化為兼容BASE64的URL,并向其中生成7字節的時間戳信息。整個過程如下:

1.生成隨機的4字節信息;

2.使用RC4算法加密消息;

3.向消息中添加8字節隨機值;

4.把消息轉化為BASE64的URL;

5.在消息中生成7字節的時間戳信息。

RC4算法

RC4是基于字節排列的流密碼算法,在此我們不作重點討論,以下為X-agent使用的RC4算法實現代碼,其中算法涉及到的參數包含4字節的隨機值、加密種子和明文數據:

APT28-7.png

APT28-8.png

  如何破解X-agent數據

如前所述,X-agent加密過程的中的唯一隨機性是把4隨機字節附加到50字節的加密種子數據之后,由于 RC4算法是同步的流密碼加密機制,必須使用同樣的加密密鑰key才能實現解密。所以,解鈴還需第鈴人,X-agent加密機制的破解必須使用相同的RC4算法和調用參數才能實現。最終轉變生成的密碼消息(cypher)除時間戳和隨機字節之外,必須與其http請求對應的數據一致。當然了,可以利用暴力攻擊方法枚舉所有可能值(0到2的32次方-1)來破解RC4算法,如果其破解結果包含一個硬編碼字符串“V4MGNxZWlvcmhjOG9yZQ”,則可以證明這就是APT28的網絡通信行為,因為該字符串為APT28在網絡通信中使用的數據令牌(data token)內容,并且這種破解操作可以在任何普通的個人電腦上快速實現完成,整個過程也就是幾秒鐘的事。具體技術分析參考Redsocks報告。

*參考來源:securityaffairs,freebuf小編clouds編譯,轉載請注明來自FreeBuf.com

關鍵字:X-AgentWinInet

本文摘自:黑客與極客

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

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

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 宁德市| 周宁县| 司法| 嘉鱼县| 奉化市| 萨嘎县| 百色市| 宜章县| 皋兰县| 沙田区| 马公市| 且末县| 泾阳县| 双城市| 桐庐县| 行唐县| 镇宁| 襄汾县| 明光市| 桦川县| 特克斯县| 盐亭县| 河间市| 襄樊市| 华宁县| 沧州市| 松溪县| 荆门市| 大英县| 玉屏| 台南市| 德昌县| 施秉县| 大邑县| 宜章县| 昆山市| 西充县| 黄骅市| 泗水县| 化德县| 临邑县|