Analysis of Trochilus.
Malware Analysis – Alina
项目结构
在Visual Studio中打开:
1 | Base.cpp |
编译
VS2019直接编译
分析
main.cpp
1 |
Base.cpp(finished)
定义了一个Base类。
主要看Base::Base
函数
1 | Base::Base(void) |
总体干的事情:
- 将自身用RC4加密,密码是“Password”
- 然后写入
%AppData%\ntkrnl
文件
Watcher.cpp
和名字一样,是个监视器
Settings.cpp(finished)
进行了一些基础设置。
1 | cnc.push_back(std::pair<std::string, std::string>("adobeflasherup1.com", "/wordpress/post.php")); |
CNC: Command aNd Control servers
可能就是黑客用来操控的服务器
Scanner.cpp
1 | Scanner::Scanner() |
首先是crc32gentab
1 | void Scanner::crc32gentab() |
似乎是先进行CRC32打表。
然后创建一个monitorThread
线程。
ProcScanner.cpp(finished)
创建procThread
线程。
获取进程内存,获取内存拷贝,并调用scan函数。
scan函数似乎是在做指定的恶俗事情,找内存特征。具体细节不是很重要
PanelRequest.cpp(finished)
重点在execute
函数。
主要干的事情就是与Settings中设置的CNC服务器进行交互,传输数据。
1 | bool PanelRequest::execute(std::string *response) |
RootkitInstaller.cpp(finished)
如果是以admin模式启动程序的,那么就会安装恶意服务(也就是RootKit)
安装的恶意服务已经编译成字节流了。随便逆向了一下
总体干的事情就是绕过windows defender服务。
MonitoringThread
在main中直接调用了InitiateMonitoringThread
函数
干的事情就是向explorer.exe
注入恶意代码mthread
。
1 | void InitiateMonitoringThread() |
InjectShellcode
的具体实现原理就是远程注入线程,利用VirtualAllocEx
,WriteProcessMemory
,CreateRemoteThread
什么的。
mthread分析(未完成)
sub_29E函数是个RC4加密函数。
看上去和Base.cpp
中的RC4Crypt是比较相似的。
1 | int __stdcall RC4Encrypt(_BYTE *Buffer, int BufferLen, _BYTE *Key) |
sub_232是个strlen。
Updater.cpp(finished)
反正就是利用PanelRequest将卡的数据信息上传至Hacker。
- 本文作者: Taardis
- 本文链接: https://taardisaa.github.io/2023/05/21/Malware-Analysis-Trochilus/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!