[原创]HW行动 rdpscan后门简单分析
笔者目前是初学者,该文章的分析的每一步都是经过实践与参考他人分析报告而输出。
分析时间花了三个星期,文中如有错误,欢迎各位指正。
样本概况
文件名称 :rdpscan.exe
文件大小 :85504 byte
文件类型 :PE32 executable for MS Windows (console) Intel 80386 32-bit
MD5:d0840aeb2642d718f325a07a4b7f6751
SHA1:ae77ca712670176650b01d30e6fe4801e90fafe2
SHA256:9966826ada8b1f366a9e7b9b1e7c430a2a49dda60eb7025c7481295e3ab7f9e4
文件名称 :ssleay32.dll
文件大小 :67416 byte
文件类型 :data
MD5:27b0374083f46693df15c0e3fffad070
SHA1:0eb87babebc32e526f6128fc4be3686c034c4185
SHA256:948e2def7339cf87071913148705bbba3cd9a8279c6157251036d6fac59983d5
拿到文件后,是个压缩包,进行解压后,发现如下文件。


本地静态分析
有个exe文件,查下壳。

无壳,发现是VS2013编写的控制台程序。
在线分析
VT检测
rdpscan.exe 因为之前国内厂商已经检测,并且已经添加特征库,所以在线分析会被检测出。

得到的特征为木马后门
ssleay32.dll(shellcode) 由于关键信息数据已加密,静态分析时则无法检测。

在线云沙箱检测
微步云沙箱检测如下,结果是该文件为安全:
这与自己在本地虚拟机运行时一致,当第一次拿到样本时,当晚就在虚拟机里实际运行,直接提示缺失组件,无法成功运行。
因为后门编译为debug版本,没有找到对应的运行库,无法运行,导致沙箱无法对其进行恶意性行为检测。

如果要实际运行,本地需要安装VS2015以上版本后才会自带VC运行库。
直接在网上搜索VCRUNTIME140.dll缺失,会找到一些解决文章, 但是经过实践,都失败了,无法安装运行库。
最后只能退而求其次,安装了VS2015,因为会自带所需运行库。
附一个视频,安装VCRUNTIME140.dll。还未实验,不知道是否能行。
https://www.youtube.com/watch?v=AqxebQEFU64
该rdpscan扫描工具参考了之前网上公布的工具源码,所以按照之前网上的分析步骤,先去源项目的github查下源码。
https://github.com/robertdavidgraham/rdpscan/blob/master/src/main.c
经过仔细对比,在471-190行之间的代码被加入了一个判断,如果条件成立就跳转执行恶意代码。
/* See if we have a single IPv4 range, in which case we expand
* this into a larger range */
if (cfg.list_filename == NULL && cfg.target_count == 1 && is_ipv4_range(cfg.targets[0])) {
char *string = cfg.targets[0];
unsigned index = 0;
struct Range range;
struct RangeList list = {0};
size_t i;
uint64_t count;
struct BlackRock br;
/* Free the old list and reset it to NULL */
free(cfg.targets);
cfg.targets = 0;
cfg.target_count = 0;
/* Parse the range */
range = range_parse_ipv4(string, &index, (unsigned)strlen(string));
if (!range_is_valid(range)) {
fprintf(stderr, "[-] %s: invalid range\n", string);
exit(1);
}
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
