Androm 样本分析
IOC
Hash | 值 |
---|---|
SHA256 | 94ac22ae1e5bf8f1677e354a333e911bbd4a5070263bda4917c4040f7491d241 |
MD5 | a68da897c3a7ac8ff432170ff816da27 |
SHA1 | 73c31669f9e8920438018ce7e175f700b3114f8d |
静态分析
DIE:
_initterm 是 Windows API 中一个内部函数,用于初始化 C 运行时库中的全局或局部静态对象。它通常在程序启动时由 C 运行时库调用,以确保所有静态对象在进入 main 函数之前已经初始化。
这其中data段存储了四个函数指针,表示程序启动时需要调用的初始化函数。调用_initterm
函数,实际上就是顺序调用sub_402973
, sub_401090
, sub_402020
, 和 sub_402060
,假设这些指针都不为空。
分析到sub_401090
继续向下,发现一个初始化函数中间夹着一个TCP操作。
创建了一个网络连接,尝试连接到 154.201.71.47:13658 上,连接成功后启动线程来send数据(33 32 00)。尝试访问一下,使用recv接收到了一段shellcode。shellcode内包含一个dll。提取出来。
DLL
IOC
Hash | 值 |
---|---|
SHA256 | c6e74a9eae519417aa54d460b219ac27abb295cfa3520e6e43643b5953a561ec |
MD5 | 89f8061d276e9b01cc212aaf572fe1f8 |
SHA1 | 50b1cda0e6ae14c030d5fd0ecabf081510179726 |
分析
该DLL导出一个run函数。
规避杀软
在run函数中,先打开常见的杀毒软件的进程,对其程序Token权限进行降权。
获取对应杀毒软件的所有线程,对其投递WM_QUIT终止消息,以规避杀毒软件的检测。
PostThreadMessageA
函数用于将消息投递到指定线程的消息队列中。其中,0x12是一个特定的消息标识符,表示WM_QUIT
。该消息用来通知线程终止消息循环的消息。
分支 复制文件
根据参数分为俩条路线,无参数分支先规避杀软的检测,如何复制自身到应用数据文件夹,通常是 C:\Users\Username\AppData\Roaming
,之后以msedge.exe命名,同时设置文件属性并启动新线程执行WritinToTheRegistry
。参数为1时,没有降权操作,直接就对当前文件进行了属性修改。
持久性操作
通过添加注册表项来实现持久化,WritinToTheRegistry
设置了一个循环尝试打开注册表键:"Software\Microsoft\Windows\CurrentVersion\Run",查询特定的启动项是否存在,如果存在,则暂停执行一段时间后继续循环,如果不存在则执行函数WriteReg0
.
该函数尝试向系统的启动项注册表添加一个启动命令,方便系统启动时自动执行。通过调用AvoidAntiSoftware
函数来规避杀软的检测。
代码注入
第一处注入:
代码分析:
- 获取ntdll.dll的模块句柄,并加载PSAPI.DLL,并获取其中
GetModuleInformation
函数的地址。 - 打开ntdll.dll文件并创建文件映射,映射到内存中。
- 便利ntdll.dll的导出表,找到.text段,修改其内容。(使用
VirtualProtect
修改内存保护属性为可读。)
第二次远程注入:
尝试创建一个新进程。如果创建失败则创建一个备选进程(msiexec.exe -Puppet)。
-
SuspendThread
挂起目标进程 -
VirtualAllocEx
在目标进程中分配内存。 -
WriteProcessMemory
将代码写入目标进程的内存中 -
CreateRemoteThread
在目标进程中创建一个远程线程,执行注入的代码。
注入的Shellcode执行后加载一个DLL,ioc如下:
Hash | 值 |
---|---|
SHA256 | 71bbf45465a5cc8d4bdbaa7ff0e2e718ae48b131a0a724d06892fec57492cc39 |
MD5 | 74f5a0a3de6f9d7f01d0746b3c260bc1 |
SHA1 | 97c6918087e92ccfa5c7a8ee9dbb3e8e8cd90b80 |
不同于上一次的DLL反射加载,这次的DLL在运行时会根据参数为 "-Puppet" 而进入远控加载的逻辑,上线地址同样为154.201.71.47:13658,再上线后会访问http://w hois.pconline.com.cn/ipJson.jsp 获取本机外网IP发送给服务器,进入循环等待后续服务器发送过来的攻击或控制指令。