缘北资源快报-相亲交友-缘分相亲网
当前位置:首页 > 网络技术 > 网络安全

网络安全

剖析Geost:针对俄罗斯银行的安卓木马

时间:2022-05-10   作者:Admin缘北工作室   来源:黑客安全吧   阅读:591   评论:0
内容摘要:Android银行木马Geost是由Stratosphere实验室的SebastianGarcía、MariaJoseErquiaga和AnnaShirokova首次发现。最早,他们通过监视HtBot恶意代理网络来检测到该木马。该僵尸网络以俄罗斯银行为目标,在去年发布关于该僵尸网络的研究时,受害者人数已经超过80万。我...
Android银行木马Geost是由Stratosphere实验室的Sebastian García、Maria Jose Erquiaga和Anna Shirokova首次发现。最早,他们通过监视HtBot恶意代理网络来检测到该木马。该僵尸网络以俄罗斯银行为目标,在去年发布关于该僵尸网络的研究时,受害者人数已经超过80万。
我们的研究成果揭示了Geost(Trend Micro检测为AndroidOS_Fobus.AXM)从受害者那里窃取的信息类型,并分析了僵尸网络背后恶意组织的活动,包括其运营策略以及威胁参与者与僵尸网络编码人员之间的内部通信。
基于这一有趣的发现,我们决定对恶意软件样本进行逆向工程,以更加深入地了解Geost的行为。该木马使用了混淆、加密、反射和注入非功能代码段的多种方式,使得逆向工程更加困难。为了研究代码并分析其使用的算法,我们必须首先编写Python脚本来解密字符串。
初步分析
攻击者将Geost隐藏在恶意应用程序中,并通过随机生成服务器主机名的非官方网站实现分发。如果受害者在寻找Google Play上不可用的应用程序,或者受害者无法访问应用商店时,往往就会直接到网上去搜索特定的应用。随后,受害者可能会在一些不知名的Web服务器上找到该应用程序的链接,下载应用程序并在手机上运行。随后,应用程序将向用户请求授予权限,如果受害者允许授权,则会感染恶意软件。
我们所分析的Geost样本位于一个名为“установка”(俄语)的恶意应用程序中,其名称翻译过来是“设置”。该应用程序使用了Google Play的图标,并且该图标在运行后不会出现在手机屏幕上。
恶意应用程序“установка”使用的图标:
剖析Geost:针对俄罗斯银行的安卓木马
启动应用程序时,该恶意应用请求授予设备的管理员特权。这类特权的请求是非常少见的,因为合法的应用程序通常不会要求如此之高的权限,它基本上为应用程序提供了对设备的完整权限。
用户可能在不知不觉中同意的重要权限包括“访问短信息”,这样一来,恶意应用就可以获取来自银行应用程序的确认信息。而根据这些消息,恶意软件可以收集受害者的姓名、余额和其他银行账户相关的详细信息。只需要单击几下,攻击者就可以在不知情的情况下从受害者的银行账户中转走资金。
请求设备管理员权限的截图:
剖析Geost:针对俄罗斯银行的安卓木马
请求的应用程序权限:
剖析Geost:针对俄罗斯银行的安卓木马
在确认获取到必要的权限之后,应用程序将不再可见,并且应用程序的图标将会消失,从而让受害者误认为该应用程序已经被删除。在我们分析样本所使用的设备上,起初没有显示出任何恶意活动迹象,但该恶意软件持续在后台运行,攻击者已经获得了对设备的访问权限,从而使他们可以监视已发送和已接收的消息,包括来自银行应用程序的短信确认消息。
为了保证重启设备后仍然具有持久性,恶意软件注册了BOOT_COMPLETED和QUICKBOOT_POWERON广播。
注册服务启动广播(部分代码经过混淆):
剖析Geost:针对俄罗斯银行的安卓木马
第一阶段
Geost的运行时生命周期被分为多个阶段。其中,第一阶段较为精简,随后将下载、解密并运行第二阶段,而第二阶段则更为复杂。
在Geost样本的APK中,classes.dex文件包含已编译的Java代码。APK中还包括AndroidManifest.xml和资源文件,它们是APK文件中的常规内容。除上述之外,还有一个大小为125K的“.cache”文件。
为了对提取的classes.dex文件进行反编译,我们使用了几个Java反编译器,包括dex2jar、jadx、jd-core/jd-gui和Ghidra,因为没有一个单独的反编译器能够反编译所有Smali代码。
反编译的Java源代码:
剖析Geost:针对俄罗斯银行的安卓木马
乍一看,反编译的代码似乎部分编码为一系列字符串,但根据字符使用的频率进行分析,我们发现这些字符是随机使用的。
进一步的分析表明,该恶意软件包含其他代码段,除了用于减慢其执行速度意外,这些代码段对应用程序的行为没有任何影响。由于恶意软件将有用的代码分割为多个部分,并频繁更改执行路径,因此使得我们的逆向工程更加困难。执行过程中会走到哪个分支,通常要取决于具有未知值的某个变量,而“switch”、“if”和“try/catch”命令块也同样如此。通过对有实际意义代码的功能进行分析,我们可以更为全面地了解恶意软件的行为。
带有case条件的代码段:
剖析Geost:针对俄罗斯银行的安卓木马
我们不断删除非功能代码段,从而确定了恶意软件使用的第一个解密算法。第一阶段中的所有字符串都使用RC4进行加密,并使用了一个算法,该算法被拆分为多个函数,以避免被人发现其使用了RC4算法。在得到这一信息之后,下一步就是要找到用于RC4解密的密钥。
反编译的Java源代码,作为RC4算法中的一部分:

剖析Geost:针对俄罗斯银行的安卓木马

清理后的RC4算法代码片段:
剖析Geost:针对俄罗斯银行的安卓木马
RC4密钥:
剖析Geost:针对俄罗斯银行的安卓木马
RC4是一种流密码,其内部状态随着每个解密的符号而变化。如果需要解密多个加密的字符串,通常必须要以与加密时相同的顺序来进行解密。幸运的是,我们所分析的样本并非如此。由于RC4加密算法始终复制状态数组S[],因此代码编写者简化了RC4算法,没有保留解密之间的内部状态。
RC4加密始终复制状态数组S[]:
剖析Geost:针对俄罗斯银行的安卓木马
之后,开始搜索通用代码库,找到了Android.support.v4库和ReflectASM Java Reflection库。
带有加密字符串的代码:
剖析Geost:针对俄罗斯银行的安卓木马
在解密以及符号去混淆后,包含字符串的代码:
剖析Geost:针对俄罗斯银行的安卓木马
至此,我们已经可以读懂第一阶段的代码:它使用反射代码隐藏了几个特定的类和方法。基本上,第一阶段使用相同的RC4算法和密钥解密第二阶段的文件。
反射方法调用示例:
剖析Geost:针对俄罗斯银行的安卓木马
前面提到的“.cache”文件被重命名为.localsinfotimestamp1494987116,并在解密后保存为ydxwlab.jar,从中加载并启动.dex文件。
解密并保存第二阶段:
剖析Geost:针对俄罗斯银行的安卓木马
代码作者在其中插入了一个错误的标志HttpURLConnection以及其URL,该URL似乎已经连接到命令和控制(C&C)服务器。但是,这个HTTP链接将永远不会执行。
错误标志:
剖析Geost:针对俄罗斯银行的安卓木马
第一阶段会从第二阶段的开始部分加载一个类,研究人员将其命名为“MaliciousClass”。
启动第二阶段:
剖析Geost:针对俄罗斯银行的安卓木马
第二阶段
通过查看classes.dex,我们可以看到在第二阶段中再次使用了混淆和加密的方法。但是这一次,符号名称部分被替换为长度为1-2个字符的字符串,而不再是之前使用的6-12个字符。此外,还修改了字符串加密算法,使之与上一阶段使用的算法不同。这里还使用了不同的工具。此外,针对每个类别,分别修改了解密算法的参数。
由于goto命令会跳入if块,因此所有Java反编译器在反编译解密算法时都会出现问题,只有Jeb反编译器可以很好地处理这一结构。
解密算法的Smali代码:
剖析Geost:针对俄罗斯银行的安卓木马
Java解密算法代码:
剖析Geost:针对俄罗斯银行的安卓木马
每个类的解密方法都包含不同的参数顺序和不同的常量,这使得编写Python解密脚本变得更加困难。这意味着,解密脚本必须从Smali代码中检测算法设置并进行自我调整,或者必须在解密每个类之前手动在脚本中设置参数。
加密字符串的示例:
剖析Geost:针对俄罗斯银行的安卓木马
字符串解密后,就可以检测到所使用的库,其中包括:
· AES加密引擎
· Base64编码
· 模拟环境检测器
· 文件下载服务
· IExtendedNetworkService
· USSD API库
· Zip4jUtil
初始化阶段
从第一阶段开始调用的MaliciousClass将作为实例化类的信封,研究人员将其命名为“Context”。
Context类:
剖析Geost:针对俄罗斯银行的安卓木马
Context类首先启动EmulatorDetector服务,随后启动AdminService和LPService这两个服务,然后启动主应用程序Intent。
主初始化例程:
剖析Geost:针对俄罗斯银行的安卓木马
模拟环境检测器
模拟环境检测器会检测恶意软件是否正在模拟环境中运行。该样本可以检测到Nox、Andy、Geny、Bluestacks和Qemu Android模拟器的存在。
追踪模拟环境:
剖析Geost:针对俄罗斯银行的安卓木马

 #免责声明#

【声明】:缘北网(https://kuaibao.52ybkj.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱1665545192@qq.com,我们会在最短的时间内进行处理。

本站软件,文章全部来源,互联网的搬运收集,

若有问题请联系删除附上链接    发往手机短信  手机号码:15062997403  邮箱:1665545192@qq.com  微信:sinian990202  QQ;97576821 

温馨提示本站软件源码收集发布提供参考学习不得用于商业,否则后果自负!由自己承当法律责任与本站无关!

企业客服QQ:97576821

 缘北科技 


标签:银行  针对  剖析  木马  俄罗斯  

相关文章

相关评论

本栏最新更新

本栏推荐

阅读排行