记一次远控木马的样本分析
闲来无事在吾爱破解论坛上瞎逛,碰见一个师傅的样本分析的帖子,师傅很热心的把样本分析出来,小白表示这个样本的难度和平常接触的不是一个档次的(菜哭),于是我想根据那位师傅的分析步骤结合自己的想法来分析一次这个样本,提升能力。
https://www.52pojie.cn/thread-953913-1-1.html 这是那位师傅的分析过程,供大家欣赏。
1.首先将样本下载下来,发现该文件没有格式,用Winhex打开发现是个rar文件,将后缀名改成rar可进行解压,可解压出该文件
看起来是个文件夹,但右键查看属性显示是一个exe应用程序,于是我们可以得知这用来迷惑计算机使用者来点击,点击后病毒样本则会开始运行。
2.我们将其放入中查看一下
发现是由VC++编写的,而且无壳,算是对小白的奖励吧(菜哭o(╥﹏╥)o)。先将其拖进IDA来进行初步的静态分析。
看到这些函数瞬间觉得压力很大,但还是硬着头皮分析一波吧,查看字符串
有用的字符串看起来并不多,byeyou.tmp sfctlcom.exe可能是比较有用的信息。
3.首先来观察main函数的结构
sub_4057AE被先调用,一开始查看判断条件并没发现什么蹊跷,但仔细思考
v400000 != 0x5A4D || v40003C + 0x400000 !=4550
因为字符在x64和x86中是以小端序的方式存储,4D5A是PE文件的文件头标识,由此我们可以确定该函数用来确定自身是否为PE文件,如果是则继续执行,如果不是则退出执行。
4.接着继续执行
应该是应用程序初始化的一些步骤。
经过一系列初始化后到达关键的函数 sub_401A40。
该函数去获取了自身所处的目录路径。
因为接下来静态分析难以下手,我们转用OD进行动态分析。
5. 由IDA可得到sub_401A40的地址,我们直接跳转过去运行
发现获取了样本所在的路径。
继续运行,程序进入sub_402120函数,该函数师傅说的是发现主要是两个sub401450()函数
第一个sub401450(),程序首先设置文件指针,阅读数据放到开辟的内存空间,然后在c:\windows\help下创建备份文件,而我只知道创建了一个.bak备份文件(还是细节搞不懂)
而且会生成一个同名的文件夹
里面有着7张图片和Thumbs.db这个文件,通过OD判断这可能就是在反复的将.liz文件的数据写入图片当中去。
6.接着将备份文件字符串和同文件名目录作为参数传入sub4026B0()函数,进入sub4026B0()函数,
程序获取临时目录文件路径,拼接出字符串c:\user\yxx\appdata\local\temp\rat.exe,如果存在直接打开,不存在就创建,创建后通过CreateProcess来启动该程序。
创建文件目录,获得备份文件句柄,接着运行可以发现有一段遍历进程的代码
这两个应用程序经过百度可得是安全服务软件,目的就是检测是否含有杀毒软件。
然后通过MoveFileA这个API将原程序覆盖到byeyou.tmp里面,进行了文件替换。
该程序的分析到此告一段落,但我们注意释放出来的rat.exe很值得分析。
于是将其载入OD进行调试
7.
我们发现rat.exe复制自身为ctfmon.exe,然后该进程去寻找资源文件。
创建进程打开alg.exe程序
然后卸载进程模块,实现傀儡进程注入。
alg.exe程序被注入后,唤醒线程,开始运行核心程序。
8.我们将alg.exe文件的资源节所含内容提取出来发现是一个PE文件。
我们将其放入IDA进行分析,可以看到
先通过函数sub_405BD0进行提权,
然后解密域名字符串。
然后通过一系列的GetProAddress()API来初始化调用所需函数。
之后,进入关键函数sub_405960
我们从上到下依次分析这几个函数
①sub_405720
首先启动套接字服务,打开一个URL,保存从URL返回的数据,该URL应该是病毒服务器的地址。
②sub_403190
获取多种函数地址,方便以后调用。
然后该函数调用子函数,来获取磁盘信息,系统版本,是否能PING通等信息。
一旦获取了磁盘信息,就可以远程进行增添,删除等操作,实现真正意义上的远控。
跟着师傅的思路分析了一个下午总算分析的算是有点成果了,经过这次分析获得了很多分析时实用的经验,可是和师傅的水平还是差的很多。
路漫漫其修远兮,吾将上下而求索!