这是做者新开的一个专栏,主要翻译国外知名的安全厂商APT报告文章,了解它们的安全技术,学习它们溯源APT组织的方法,但愿对您有所帮助。前文分享了Turla新型水坑攻击后门(NetFlash和PyFlash),经过伪造Adobe Flash更新,欺骗受害者下载两个新型恶意软件NetFlash和PyFlash,从而实现恶意攻击。这篇文章将详细介绍Rampant Kitten攻击活动,包括Windows信息窃取程序、Android后门和电报网络钓鱼页面,这是Check Point Research机构的分析报告,很是值得你们学习。html
- 原文标题:Rampant Kitten – An Iranian Espionage Campaign
- 原文连接:https://research.checkpoint.com/2020/rampant-kitten-an-iranian-espionage-campaign/
- 文章做者:checkpoint
- 发布时间:2020年9月18日
- 文章来源:research.checkpoint.com/
- 相关文章:https://thehackernews.com/2020/09/iran-hacking-dissidents.html
文章目录
Check Point Research揭露了伊朗实体多年来一直针对伊朗侨民和持不一样政见者多年进行监视行动。尽管其余研究人员和记者先前曾报道过一些针对我的的攻击事件,但咱们的调查可以将不一样的攻击行动联系起来,并将它们归因于同一攻击者。python
咱们发现了不一样的攻击载体,包括:web
- 四种不一样版本的Windows信息窃取程序,旨在窃取受害者的我的文件以及访问其电报(Telegram)桌面和KeePass账户信息
- Android后门从短信(SMS messages)中提取双因素验证代码,记录手机的语音环境等
- 电报钓鱼网页,利用伪造的电报服务账户分发
上述工具和方法彷佛主要用于对付伊朗少数MZ、FZQ组织和抵抗YD,例如:算法
- 阿什拉夫营和自由营居民家庭协会(AFALR)
- 阿塞拜疆MZ抵抗组织
- 俾路支人
一.初次感染
咱们首先遇到的文档名称为 “وحشت_رژیم_از_گسترش_کانونهای_شورشی.docx”,大体翻译为“当局担忧GMDP的扩散”.docx。该文件的标题实际上指的是伊朗ZQ与GMDP运动之间的持续斗争。数据库
Mujahedin-e Khalq是一个FZF组织,其目标是使伊朗摆脱目前的地位。1986年,MEK开始创建他们的新总部,后来在Iraqi小镇哈里斯附近被称为Ashraf营地。可是,Iraqi多年的紧张局势最终致使该营地的居民被转移到一个新的、偏远的目的地——阿尔巴尼亚。编程
上面的文档利用了外部模板技术,容许它从远程服务器加载文档模板,在本例中是 afalr-sharepoint[.]com。远程模块以下图所示:浏览器
出于对这个网站的好奇,咱们开始探索更多关于它的信息。咱们发现一些反对伊朗ZQ的帐户发布推文,提到了一个很是相似的SharePoint网站,该文档中的网站极可能冒充了如下网站:安全
AFALR的官方网站以下图所示:服务器
二.感染链
当受害者打开文档并下载了远程模板后,模板中的恶意宏代码将执行一个批处理脚本,该脚本尝试从afalr-sharepoint[.]com下载并执行下一阶段的有效负载。网络
而后,有效负载会检查是否在受感染的计算机上安装了Telegram,若是检查有效,它将继续从其资源中提取三个额外的可执行文件。
- BOBC3953C59DA7870
加载器(Loader),由RunDLL执行,将主要有效载荷注入explorer.exe中 - CO9D5A739B85C37C1
信息窃取的有效载荷(Infostealer payload) - Updater.exe
修改电报的更新程序
三.有效载荷分析
该恶意软件的主要功能包括:
- 信息窃取者
上传受害者电脑的相关电报文件,这些文件容许攻击者充分利用受害者的电报账户;从KeePass应用程序窃取信息;上传任何它能找到的以预约义扩展名结尾的文件;记录剪贴板数据,并采起桌面屏幕截图。 - 模块下载器
下载并安装几个额外的模块。 - 独特的持久性
实现了一种基于Telegram内部更新过程的持久性机制。
1.电报结构基础
首先,让咱们回顾一下Telegram Desktop如何组织其文件。如下是一个普通的电报文件结构,一般能够在 %APPDATA%\Roaming\Telegram Desktop 路径找到。
如上所述,在感染链期间,有几个文件被拖放到Telegram工做目录中。删除的文件位于一个名为03A4B68E98C17164s的目录中,因为是一个定制的 Desktop.ini文件,因此第一眼看上去像一个文件,但它其实是一个目录。受感染的Telegram Desktop目录以下图所示。
2.配置
有效负载的一个资源包含编码的配置数据。编码方案使用常规的Base64算法,可是使用自定义索引表为:
- eBaEFGHOQRS789TUYZdCfPbDIJ+/KLMNwxyzquv0op123VWXghijmnkl45rst6Ac
对该资源进行解码可为咱们提供如下配置信息:
3.C&C沟通
该恶意软件使用SOAP进行通讯。SOAP是用于Web服务通讯的基于XML的简单数据结构。SOAP Web服务的API是公开的,能够从如下浏览器访问网站来观察。C&C网站中的SOAP API以下图所示:
消息(命令)能够分为如下几类:
- 身份认证
HelloWorld:身份认证消息 - 模块下载器
DownloadFileSize:检查是否应该下载模块
DownloadFile:从远程服务器下载模块 - 数据渗漏
UploadFileExist:检查是否已上传特定的受害者文件
UploadFile:上传一个特定的受害者文件
(1) 身份认证
有效通讯隧道的第一条消息应该是HelloWorld,它实现了简单的用户名/密码身份验证。凭证在示例中进行了硬编码,而且该消息的SOAP响应包含一个会话ID,该会话ID必须用于其他的会话。
(2) 模块下载器
该程序尝试获取其当前模块的更新,并下载几个其余模块。一些额外的确实模块没法获取,包括:
- D07C9D5A79B85C331.dll
- EO333A57C7C97CDF1
- EO3A7C3397CDF57C1
(3) 数据渗漏
该恶意软件的核心功能是从目标设备中窃取尽量多的信息。有效负载针对两个主要应用程序:Telegram Desktop和著名的密码管理器KeePass。
一旦相关的Telegram桌面和KeePass的文件已被上传,恶意软件就会列举在受害者电脑上找到具备如下扩展名的相关文件:
- .txt;.csv;.kdbx;.xls;.xlsx;.ppt;.pptx;
对于每一个这样的文件,恶意软件在将其编码为base64后将其上传。
4.持久性
该恶意软件使用一种独特的持久性方法,该方法与电报更新过程相关联。它将按期将Telegram主可执行文件复制到中 Telegram Desktop\tupdates,一旦电报应用程序启动,就会触发一个更新程序。该恶意软件的持久性方法的一个隐藏技巧是更改默认的Telegram更新器文件 Telegram Desktop\Updater.exe,其中包含已删除的有效载荷之一(具体的是CO79B3A985C5C7D30)。该更新程序最显着的更新是再次运行有效负载,其中Telegram更新程序运行主要有效负载以下图所示。
四.基础设施和链接
在分析了有效载荷以后,咱们可以追溯到2014年的多种变体,这代表这种攻击已经酝酿了多年。由相同攻击者开发的恶意软件变体之间经常会有细微的差别,尤为是在相同的时间范围内使用它们时。可是,在这种状况下,咱们注意到,虽然某些变体是同时使用的,但它们是用不一样的编程语言编写的,利用了多种通讯协议,并不老是窃取相同类型的信息。
在下表中,咱们列出了发现的变体并突出了它们的独特特征。请参阅下面的技术附录,了解关于每种变体的详细信息。
相关样本还揭示了更多的C&C服务器,经过查找它们的被动DNS信息和其余元数据,咱们能够找到由同一攻击者操做的类似域。事实证实,某些域名出如今恶意Android应用程序和网络钓鱼页面中,从而暴露了该操做的更多层次信息。下图为恶意基础架构的Maltego图。
五.Android后门
在咱们的调查过程当中,还发现了与相同威胁参与者有关联的恶意Android应用程序。该应用程序假装成一种服务,以帮助在瑞典说波斯语的人得到驾照的服务。咱们已经找到了同一应用程序的两个不一样变体,一个彷佛是为了测试而编译的,另外一个是要在目标设备上部署的发行版。Android应用程序的主界面以下图所示。
此Android后门包含如下功能:
- 窃取现有的SMS消息
- 向攻击者控制的C&C服务器提供的电话号码转发两因素认证短信
- 检索我的信息,例如联系人和账户详细信息
- 启动电话周围环境的录音
- 执行Google账户网络钓鱼
- 检索设备信息,如已安装的应用程序和正在运行的进程
有关此应用程序的详细信息,请参阅下面的技术附录。
六.电报网络钓鱼
这些后门并非攻击者试图窃取有关Telegram账户信息的惟一方法。与该恶意活动相关的某些网站还托管了仿冒Telegram的网络钓鱼页面,以下图所示。
使人惊讶的是,几个伊朗电报频道实际上已经发出了针对这些钓鱼网站的警告,并声称伊朗ZQ是他们的幕后黑手。针对网络钓鱼尝试的翻译后的消息警告以下图所示。
根据这些频道,钓鱼信息是由电报机器人发送的。这些信息警告收件人,他们正在不当使用Telegram的服务,若是他们不进入钓鱼连接,他们的帐户将被封掉。
另外一个Telegram频道提供了钓鱼企图的截图,显示攻击者创建了一个冒充官方Telegram的帐户。最初,攻击者在新的Telegram更新中发送了有关这些功能的消息,使其显得合法。网络钓鱼消息仅在5天后发送,并指向https://telegramreport[.]me/active(与上面图相同的域)。下图展现了从假电报账户发送的网络钓鱼消息。
七.有效载荷传递
尽管在某些状况下咱们没法肯定恶意文件如何到达受害者,但咱们收集了一些有关攻击者分发恶意软件方式的潜在线索。例如,访问 mailgoogle[.]info 代表它模拟 ozvdarozv[.]com 并推广了一种软件,以增长Telegram频道中的成员数量。mailgoogle[.]info下载页面以下图所示。
可是,在单击“下载”后,一个名为 Ozvdarozv-Windows.rar 的有密码保护的文档就会被下载,其包含一种恶意软件变种。
2018年一篇被删除的博客文章指控一名网络安全专家剽窃,当时他在接受阿拉比亚新闻频道采访,讨论伊朗的网络攻击。咱们相信这个页面是针对此人或他的同伙的有针对性的攻击的一部分。这个博客包含了一个连接,能够下载一个有密码保护的档案,其中包含了来自 endpload [.]com 的抄袭证据。
endupload[.]com 经过几个被动DNS跃点链接到上述PC和Android操做,包括经过历史DNS服务器信息直接链接到 mailgoogle[.]info 域名。咱们不只没有发如今合法环境中使用过该域名的任何实例,并且还发现了该域名已被波斯语黑客注册的证据。请参见下面的“归因”部分,已删除的博客文章及其连接 endupload[.]com 以下图所示。
与2012年不一样的博客文章讨论了伊朗人权活动家协会附属新闻机构HRANA的侵犯人权行为报告。再次,此博客引用了能够从endupload[.]com如下网站下载的文档:
2012年的另外一篇博客文章则讨论了伊朗RQ活动人士协会(Iranian Association of human rights Activists)下属新闻机构HRANA发布的一篇报告。一样,这个博客引用了一个能够从 endpload [.]com 下载的文档。下图展现了博客中带有指向 endupload [.] com 的连接。
不幸的是,咱们没法得到两个博客条目所指的文件,也没法确认它们是不是恶意的。可是,彷佛 endupload[.]com 已经由攻击者控制了多年,由于与此攻击有关的一些恶意样本(可追溯到2014年)已与该网站进行了通讯。
八.溯源
尽管咱们发现多年来在此攻击中使用过的许多文件和网站,但它们并未归因于特定的威胁组织或实体。可是,威胁攻击者留在恶意事件中的一些指纹使咱们能够更好地了解攻击可能来自何处。
1.攻击起源
首先,某些恶意网站的WHOIS信息代表,它们据称是由伊朗我的注册的。下图展现了 endupload[.]com 和 picfile[.]net 的WHOIS信息。
WHOIS记录了 endpload[.]com 还提到一个电子邮件地址,nobody.gu3st@gmail[.]com。显然,该网站的注册用户在网上很是活跃,由于查询的用户名是“nobody.gu3st ”,咱们能够在伊朗黑客论坛上看到关于他的许多帖子。
2.目标
咱们观察到的目标清单反映了伊朗内部的一些斗争和此次Xi击背后的动机。精心挑选的目标包括SZ组织和阿塞拜疆组织的支持者,这两个著名的抵抗运动提倡JF伊朗人民和伊朗境内的少数MZ。
这些运动与伊朗当局之间的意识形态CT使它们成为这种Xi击的天然目标,由于它们与该ZQ的目标相吻合。此外,后门的功能以及窃取敏感文件、访问KeePass和Telegram帐户的重点代表,攻击者对收集受害者的情报、了解他们的更多活动很感兴趣。
九.结论
追踪此次攻击的踪影能够发现,此次大规模行动在很大程度上成功地隐藏了至少6年。根据咱们收集到的证据,这些彷佛来自伊朗的攻击者利用多种攻击载体暗中监视他们的受害者及其我的电脑和移动设备。
因为咱们确认的大多数目标都是伊朗人,这多是伊朗攻击者正在收集关于该组织潜在对手的情报。SandBlast Mobile可提供实时威胁情报和对移动威胁的可见性,防止受到恶意软件、网络钓鱼、中间人攻击、操做系统攻击等的侵害。Check Point的反网络钓鱼解决方案包括针对网络钓鱼攻击的全部攻击媒介的产品,包括电子邮件、移动电话、端点和网络。
十.技术附录——PC后门变异分析
1.TelB变体
“ TelB”是咱们遇到的最新变体,其分析如上所示。咱们之因此这样命名是由于下一个调试字符串:
- D:\Aslan\Delphi\TelB\BMainWork\SynCryptoEN.pas
2.TelAndExt变体
此变体多是“ TelB”的旧版本,主要在2019年和2020年期间活跃。它与新版本共享如下特性和技术:
- 在Delphi中开发
- 与“TelB”变体共享大量代码
- 专一于Telegram Desktop应用程序
- 相似的持久化和更新方法
- 使用FTP而不是SOAP进行数据溢出
咱们将此变体命名为“TelAndExt”,由于下一个调试字符串为:
- D:\Aslan\Delphi\TelAndExt\TelegramUpdater\SynCryptoEN.pas
3.Python信息窃取变体分析
咱们发现了一些使用如下方法的样本:
- 两层SFX(自解压存档),可提取多个.bat / .vbs / .nfs / .conf文件
- 经过将可执行文件(以结尾.nfs)复制到
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\audio-driver.exe - 可执行文件的名称为speaker-audio.exe或keyboard-EN.exe,具体取决于示例
- 该可执行文件是使用Pyinstaller建立的
- 下载名为net-update.exe的第二阶段有效负载
- 在上传以前,使用带有硬编码密码的库pyAesCrypt对数据进行加密
根据咱们的分析,该变体在信息窃取方面,使用硬编码的凭据与FTP服务器通讯,并窃取如下数据:
- 电报桌面应用程序相关文件
- Paltalk NG应用程序相关文件
- Chrome、Firefox和Edge的相关数据
- 以给定配置中列出的扩展名结尾的任何文件。若是未提供任何配置,它将搜索具备如下扩展名的文件:.txt;.docx;.doc;.exe;.jpg;.html;.zip;.pdf
同时,在调查过程当中,咱们看到了几个Python信息窃取器,它们与同一个FTP服务器通讯,可是将窃取的信息以不一样的别名存储在不一样的页面中。咱们怀疑这是恶意软件做者的操做方式:
- 选择一个目标,并在FTP服务器中为它们建立一个指定的文件夹
- 使用针对数据上传的惟一AES密钥和FTP凭证构建针对目标定制的样本
- 经过感染链载体之一提供武器化的可执行文件
第二阶段有效负载HookInjEx:其核心功能之一是获取第二阶段的有效负载。若是指定的FTP文件夹包含名为 net-update.exe 的文件,则它将下载并执行该文件。咱们分析了其中的几个net-update.exe样本,发现与下面的“HookInjEx”变体彻底重叠,从而使其成为有针对性的高级有效负载。
4.HookInjEx变体
该变体自2014年以来一直在使用,并具备32位和64位版本。随着时间的流逝,该变体不断演变并添加了一些功能,同时还更改了其感染链中不一样组件的名称。咱们发现了两种主要的感染链:
- SFX(自解压存档)包含全部组件。它将全部这些文件放入一个文件夹,而后执行主加载程序 DrvUpdt.exe(ehtmlh.exe在旧版本中)。
- 伪造的SCR文件充当可执行文件。为了看起来像合法的SCR文件,加载程序包含一个诱饵 JPEG / PPTX / DOC文件做为资源(Resource_1),该文件在运行时加载。
SCR文件还将其余有效载荷做为其资源删除,并使用命令行运行主加载程序:
cmd.exe /C choice /C Y /N /D Y /T 3 & "%APPDATA%\\Microsoft\\Windows\\Device\\DrvUpdt.exe" -pSDF32fsj8979_)$
恶意SCR打开诱饵JPG资源以下图所示:
该变体在挂钩和注入(Hooking and Injection)方面,主加载程序使用称为“HookInjEx”的挂钩和注入方法。该方法将DLL映射到explorer.exe,在其中将Start按钮子类化。在咱们的示例中,加载的DLL是DrvUpdtd.dll(dhtmlh.dll在较早的版本中)。
在新版本中,该恶意软件还会以其余语言挂起“Start”按钮。不一样语言的存在可能代表它的受害者来自世界各地的国家。不一样的翻译是:
该恶意软件从一个名为Devinf.asd的文件接收其配置。asd(在旧版本中命名为file2.asd)。配置被解密并写入一个名为Drvcnf的新文件。asd(旧版本中命名为file3.asd)。加密方法为:
该恶意软件从一个名为的文件Devinf.asd(在较早的版本中名为file2.asd)接收配置。解密配置并将其写入名为Drvcnf.asd的新文件(在旧版本中名为file3.asd)。加密方法为:
def decode(content): dec_array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a,0x1b, 0x1c, 0x1d, 0x1e, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44] output_str = '' known_values = [9, 10, 13, 32] for j in range(len(content)): int_cur_content = ord(content[j]) cur_byte = 0 for i in range(62): if int_cur_content == dec_array[i]: if i < 26: cur_byte = i + 0x61 elif 26 <= i < 52: cur_byte = i + 0x27 elif 52 <= i < 62: cur_byte = i - 0x4 output_str += (chr(cur_byte)) break if cur_byte == 0: if int_cur_content in known_values: cur_byte = int_cur_content elif int_cur_content - 0x61 <= 0xe: cur_byte = int_cur_content - 0x40 elif int_cur_content - 0x70 <= 0x6: cur_byte = int_cur_content - 0x36 elif int_cur_content - 0x77 <= 0x5: cur_byte = int_cur_content - 0x1c elif int_cur_content - 0x53 <= 0x3: cur_byte = int_cur_content + 0x28 output_str += (chr(cur_byte)) return output_str
解密配置后,恶意软件会解析这些值并将其放入全局变量中。
<Reg></Reg> - Registry key for persistence <Pre></Pre> - pre value for info files to send <Pas></Pas> - extensions for info files to send <Path_Log></Path_Log> - log path direcory <L_s></L_s> - minimum size for file to send <S_n></S_n> - FTP domain <F_k></F_k> - FTP User value <F_R></F_R> - FTP Password value <Ver></Ver> - version <U_u2></U_u2> - Downloads updates URL <U_u1></U_u1> - Downloads updates URL <F_f></F_f> - Directory in ftp connection. <U_t></U_t> - timer_1 <S_t></S_t> - timer_2 <S_q></S_q> - timer_3 <U_u3></U_u3> - Downloads updates URL <El></El> - value for encryption method to files <Ez></Ez> - value for encryption method to files <F_n></F_n> - Fake name <E_dt></E_dt> <E_dy></E_dy> <Snd_P></Snd_P> - Value to choose name template for info files to send. <Mlt></Mlt> - flag for exeucting again from different place. <Ws1></Ws1> - WHOIS first URL <Ws2></Ws2> - WHOIS second URL <Ws3></Ws3> - WHOIS third URL <S_li></S_li> <RTL></RTL> <SHttpR></SHttpR> - value to download using computer-name and username <OPP></OPP> - Opera gather data flag <FIP></FIP> - Firefox gather data flag <CHP></CHP> - Chrome gather data flag <WHP></WHP> - WHOIS flag <TRP></TRP> - tracert flag <FRC></FRC> - number of tries <Clipfp></Clipfp> - clipboard data flag of CF_HDROP (CLB-f.jpg) <Cliptp></Cliptp> - clipboard data flag of text, unicode, oemtext and locale (clb-t.jpg) <Clipip></Clipip> - clipboard data flag of bitmap and dib (clb-p.jpg)
在持久化方面:
该恶意软件将< Reg >配置文件值中的注册表项(几乎老是注册表项RunOnce)设置为如下值,它将名称设置为SunJavaHtml或DevNicJava,其值为DrvUpdt.exe 11。这样恶意软件就知道它已经被执行了。在旧版本中,该恶意软件用来删除名为rreegg.exe或Capdev.exe的文件。该文件被添加到RunOnce中,而后依次执行DrvUpdt.exe 11。
在信息窃取方面:
该恶意软件的主要功能是从受害者的计算机中窃取信息,而后使用FTP将其发送到C2。该恶意软件窃取了不一样类型的数据:
- Opera / Chrome / Firefox登陆数据
- Firefox信息:配置文件,密钥和数据库文件
- tracert www.google.com的输出
- WHOIS信息(基于< Ws1 >值)
- 前台窗口的屏幕截图和标题
- 一分钟的波形音频记录
- 来自可移动驱动程序的文件。文件类型基于文件中的< cpy >标记Devufl1.tmp(winufl1.tmp在旧版本中)。在某些版本中,该逻辑是在名为的文件中实现的uflscan.exe
- 有趣的是,若是驱动程序的名字是如下内容之一:A65RT52WE3F、09353536557 或 transcend20276,恶意软件就会终止线程。咱们认为它是一个调试代码,它的目的是防止恶意软件从做者的电脑收集文件
- 来自其余驱动器的基于Devufl2.tmp(旧版本为winufl2.tmp)文件中的标记的文件
- 键盘日志和剪贴板数据从各类格式。包括拖放、CF_HDROP、CF_UNICODETEXT、虚拟键代码、CF_OEMTEXT、CF_LOCALE、CF_BITMAP和CF_DIB。
- 使用webcam捕获(旧版本的tcwin.exe)
- 自2018Telegram桌面数据
下图为带有硬编码可移动驱动程序的调试代码。
在C2通信方面:
此变体使用FTP协议将文件上传到其C2域。FTP域位于< S_n >标记内的配置文件中。
- 该链接首先使用配置文件中的密码和用户名进行身份验证
- 而后该恶意软件根据< F_f >标记和其中的子目录及其以前生成的用户ID,建立一个目录。用户ID根据写入文件中的网络适配器的信息生成的Mcdata.dat(PAdata.dat在较早的版本中)。
- 以后,链接TYPE I和PASV命令继续进行,而后再使用命令存储文件STOR
该变体还与其余域联系以更新其不一样组件。域被放置在配置文件内< U_U1 >,< U_U2 >和< U_U3 >标签。使用 URLDownloadToFileW 从给定的URL下载文件,这些文件user_id包含在URL中。
在字符串混淆方面:
在较新版本(自2018年起)中,使用如下脚本对字符串进行加密:
buf_1 = 'qweyuip[];lkjhgdszcm,.><MNBVCXZ|ASDFGHJK:}{POIUYTREWQ123456789-=+_)(*&^%$#@!' buf_2 = '!#$%&()*+,-.123456789:;<=>@ABCDEFGHIJKMNOPQRSTUVWXYZ[]^_cdeghijklmpqsuwyz{|}' input_str = "" # The encrypted string output_str = '' for i in range(len(input_str)): cur_byte = input_str[i] place = buf_2.find(cur_byte) if place == -1: output_str += cur_byte continue new_byte = buf_1[place] output_str += new_byte print(output_str)
十一.技术附录——Android后门分析
第一个活动是MainActivity,它负责向用户提供诱饵内容并请求执行特权活动的权限。它还启动一个名为MainService的后台服务,并在服务器发送命令时启动第二个MainActivityFake (GmailActivity)。下图展现了要求用户容许一组权限。
1.数据采集
一旦GmailActivity启动MainService,它将负责如下任务:计时器注册、配置监视、显示虚假通知(以下所述)和敏感数据收集。在此初始数据收集过程当中,将读取并准备如下信息:
- 已安装的应用程序列表
- 帐户信息
- 短信
- 联系人信息
从C&C服务器收到命令后,其他信息将按需收集:
- 录音–默认状况下为30秒录音
- Google凭据-服务器触发身份验证网络钓鱼尝试
2.Google凭据盗窃
在收到正确的命令从C&C服务器,谷歌登陆页面将显示给受害者,经过激活MainActivityFake (GmailActivity)。Google登陆页面以下图所示:
此时,用户会看到一个合法的 accounts.google.com 登陆页面,位于Android的WebView中。为了窃取输入的凭证,使用了Android的JavascriptInterface,以及一个定时从用户名和密码输入字段中检索信息的计时器。按期检索Google账户凭据代码以下图所示:
3.“已启用Google保护”
如前所述,它的核心功能之一是打开麦克风并记录周围环境。为了实时实现这一目标,应用程序须要在后台运行其服务。任何想要执行此类操做的Android应用程序都须要向用户发布一个正在进行的通知,提醒用户设备上有未启动的活动。为了规避这个问题,恶意软件开发者选择向用户显示一个“谷歌保护已启用”的假通知。下图展现了应用程序显示虚假通知。
结果是假装成“ Google保护”的永远在线的诱饵通知。
4.C&C
该恶意软件使用常规的HTTP与C&C服务器通讯。它将初始请求发送给alarabiye[.]net,并继续与gradleservice[.]info通讯以得到配置、命令和状态更新信息。为了上传全部敏感信息,该恶意软件使用带有硬编码凭证的FTPS。
此外,在将敏感文件上传到FTP服务器以前,它会使用AES算法以及预先配置的密码对它们进行加密,AES加密代码以下。
5.短信渗透
此恶意应用程序的独特功能之一是将前缀为G-(谷歌双因素身份验证码的前缀)的短信转发到它从C&C服务器接收到的电话号码。此外,全部来自Telegram等社交网络应用的短信也会自动发送到攻击者的电话号码。
在咱们的分析过程当中,很明显这个恶意应用程序仍在积极开发中,各类资产和功能要么是之前操做的遗留,要么是还没有使用。其中一个未使用的网络钓鱼资产甚至包含一个预先输入的用户名,多是攻击者先前操做的目标。未使用的网络钓鱼HTML资产和位置跟踪代码以下图所示。
十二.相关指标及总结
网络钓鱼
- telegramreport[.]me
- telegramco[.]org
- telegrambots[.]me
- mailgoogle.info
安卓C&C服务器
- gradleservice[.]info
- alarabiye[.]net
文件的MD5
- 4ae3654b7ed172b0273e7c7448b0c23c
- ca154dfd01b578b84c0ec59af059fb62
文件的SHA-1
- f3a4feedd4f62702c65b037a91bd8332d9518c08
- 735f761462443deff23dde5b76746b7ab0ceaf71
文件的SHA-256
- 24e5b2967437dbc1866df3ac1bf776a4960a5a56676b48bb9a143e62849a43d2
- 881ab44385541ac7cd0f3279ba4fb8519df07d529456c9e34074787ebb33f658
TelB变体C&C服务器
- afalr-sharepoint [.] com
- afalr-onedrive [.] com
后门的MD5
- 315e6338bf9c9bcbe3d5af0482f51dfd
后门的SHA-1
- 8b00d62a5c03efa76dfca8bd8c95c969167f83ee
后门的SHA-256
- a713a2749e9791243a89471a2603bf1f32ec11c9179771ca46fb5583b8412cb0
最后但愿这篇文章对您有所帮助,更多指标推荐你们阅读原文。很是感谢你们的祝福和关心,但愿早些时候带思远去珞珈山看看,若是之后他能考上就更好了,哈哈。爸爸即将返校奋斗,但愿宝宝和女神都健健康康、开开心心。敏而多思,宁静致远。无思远人,劳心忉忉。爱大家喔回去后得更加努力,脚踏实地,固然最重要的还有远方和大家,晚安娜~
前文分享:
- [译] APT分析报告:01.Linux系统下针对性的APT攻击概述
- [译] APT分析报告:02.钓鱼邮件网址混淆URL逃避检测
- [译] APT分析报告:03.OpBlueRaven揭露APT组织Fin7/Carbanak(上)Tirion恶意软件
- [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
- [译] APT分析报告:05.Turla新型水坑攻击后门(NetFlash和PyFlash)
- [译] APT分析报告:06.猖獗的小猫——针对伊朗的APT攻击活动详解
2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、逆向分析、APT分析报告、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构做者的全部文章,从零讲解Python和安全,写了近十年文章,真心想把本身所学所感所作分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。
(By:Eastmount 2020-11-09 星期一 晚上10点写于贵阳 http://blog.csdn.net/eastmount/ )