[CyberDefenders Write-up] AndroidBreach (伪装成虚假Discord Nitro的键盘记录器)
场景
在BrightWave公司,由于一名员工缺乏安全意识导致其凭证泄露,发生了数据泄露事件。攻击者利用这些凭证未经授权访问系统并窃取了敏感数据。调查期间,该员工透露了两个关键点:第一,他将所有凭证都存储在手机上的笔记应用中;第二,他经常从不受信任的来源下载APK文件。你的任务是分析提供的Android转储文件,识别下载的恶意软件,并确定其确切功能。
分类: 端点取证
工具: ALEAPP, JADX, SQLite DB Browser, CyberChef
实验: 蓝队CTF挑战 | AndroidBreach — CyberDefenders
问题与解答
Q1: 根据初步调查,用于下载恶意APK的可疑链接是什么?
我们拥有从Android手机导出的完整文件(或者可以称之为磁盘镜像?)作为证据。
我对Android工件进行整体解析的首选工具是带有GUI的ALEAPP,它位于“Mobile Forensics”文件夹中。
启动应用程序后,我需要指定“data”文件夹的目录以及输出文件夹来存储HTML报告。创建好存储报告的文件夹后,我可以使用“Process”按钮和所有可用模块进行解析。
解析过程完成后,我们可以点击“Open Report & Close”来打开HTML报告并关闭ALEAPP应用程序。
打开报告后,我们可以看到正在调查的是Galaxy S4的磁盘镜像。
然后我们可以转到“Chrome — Downloads”部分,可以看到有一个危险文件是从ufile.io下载的,但目标路径并未指定下载的文件名。
网站历史记录显示,用户是从以下URL下载Discord nitro的:https://ufile.io/57rdyncx
Q2: 下载的APK名称是什么?
我们知道用户从ufile.io下载了一个文件,因此它应该位于data\media\0\Download目录下,我们可以看到这个下载的APK文件名称是:Discord_nitro_Mod.apk
Q3: 在APK中找到的恶意软件包名是什么?
现在我们必须使用Jadx工具反编译该APK,这是一个可以反编译Java编译文件(包括APK文件)的工具。
反编译APK后,我们可以查看“Resources”下的AndroidManifest.xml文件。这个XML文件包含有关Android应用程序的重要元数据,包括包名、活动名称、主活动(应用程序入口点)、Android版本支持、硬件功能支持、权限和其他配置。
我们可以看到这个APK的包名表明这是一个键盘记录器:com.example.keylogger
Q4: 用于外泄数据的端口是什么?
利用我们从Android Manifest文件中获得的包名,我们可以进入“Source Code” -> “com” -> “example.keylogger”获取该键盘记录器的所有反编译脚本。我们可以看到此应用程序会检查无障碍功能,这是移动设备上最常被滥用的权限。无障碍功能允许应用程序以“帮助残障人士”的名义执行许多操作,因此可以利用此权限实现读取屏幕及其他危险操作。
为了找出用于外泄数据的端口,我们需要查看SendEmail类,其中包含与邮件外泄处理相关的函数。我们可以看到有一个名为openEmailClient的函数,它将打开一个邮件客户端连接到sandbox.smtp.mailtrap.io(一个合法的邮件发送平台域名),使用端口456将收集到的数据通过电子邮件发送给攻击者。实际端口是:465
Q5: 攻击者用来接收外泄数据的服务平台名称是什么?
mailtrap.io
Q6: 攻击者外泄数据时使用的电子邮件是什么?
要找出攻击者的电子邮件,我们必须找到哪个函数调用了SendEmail类,它就是这里的BroadcastForAlarm类。另外需要注意的一点是,在将数据发送给攻击者之前,应用程序创建了config.txt文件用于本地存储键盘记录器的数据。攻击者邮箱:APThreat@gmail.com
Q7: 攻击者在尝试外泄之前保存了一个包含泄露的公司凭证的文件。根据数据,你能找到泄露的凭证吗?
知道了文件名,查找起来就容易多了。我们可以打开其中一个文件来找到这个问题的答案。
我们可以检索到泄露在此文件中的公司凭证:hany.tarek@brightwave.com:HTarek@9711$QTPO309
Q8: 恶意软件通过加密修改了Android手机上存储的图片。用于加密这些图片的密钥是什么?
硬编码的AES密钥可以在MainTask类下的ENC函数中找到,该密钥是base64编码的。如你所见,此应用程序会使用此AES密钥加密image.jpg文件,并删除原始文件。
我们可以使用CyberChef解码base64字符串以获得明文密钥作为此问题的答案。解码后的密钥是:9bY$wQ7!cTz465TX
Q9: 员工在手机相册中存储了敏感数据,包括信用卡信息。存储的信用卡CVC是什么?
在浏览ALEAPP时我注意到一件事,即本机下载文件。我们可以看到有2张信用卡图片是用户不使用Chrome浏览器下载的。
不幸的是,我找不到这两张图片,但有一张图片位于data\media\0\Pictures\.aux目录下,其中恰好包含了信用卡的CVC码,而这正是这个问题的答案:128
CSD0tFqvECLokhw9aBeRqpNzLTXFlojmzFn6OlyTg9XWnhAP6q5FfiGb63VkvyGK0wl+z4HQHGGFVm96LXmhm678S8ZftaFkzfvKBgQ9z7ZxC38Yz0Pg51QpqGTLjpBdw/c6GbTjJuqxnrNjQ1Gosj6zmi8gKsLcZ2MLMdy4T+Q=