一个带简单密码的病毒分析

病毒分析 2019-11-10

本文作者:陈十一(信安之路病毒分析小组成员)

病毒文件基本信息

文件名:lab09-01.exe

MD5:B94AF4A4D4AF6EAC81FC135ABDA1C40C

VT报毒情况:

img

是否加壳:

img

从上图可以看出它并没有加壳。

基本静态分析、动态分析

1、使用 strings 查看程序的字符串

img

分析有用的字符串,大致猜测该病毒的功能,此病毒有请求域名服务器、注册服务、修改字符串、调用 cmd 命令行执行程序等功能。

2、分析导入表

a:导入的 DLL

img

b:分析 dll 中的导入函数分析病毒功能

1) ADVAPI32.DLL

img

可以看出此病毒对注册表、服务进行操作

2) SHELL32.DLL

img

执行指定的文件

3) WS2_32.DLL

img

虽然通过序号导出,但是 Dependency Walker 下面也给出了该dll的序号对应的函数名,进行网络的操作

3、通过Process Monitor与Process Explorer查看运行病毒后的行为

打开两个软件,设置好过滤,运行病毒

img

运行这个病毒后,只抓取到了病毒读取了一些注册表项,就删除了自己,并没有做其余得操作,从前面在字符串猜测运行此病毒要用到,-in 、-cc、-re参数等

三.程序流程

img

四.使用 IAD pro 与 OD 进行分析

首先来到 main 函数,如图:

img

分析如果不带参数得情况,则执行 401000 函数,函数得功能是打开注册表,判断键 SOFTWARE\Microsoft \XPS 是否存在 Configuration, 没有返回 0,有返回 1

如果返回为 0 得话,调用 402410,如图,恶意代码获取到自己得路径,拼接命令,将自己删掉,然后退出程序了。

img

img

打开 OD,看看恶意病毒拼接得命令如图:

img

如果返回值为 1,则表明恶意程序被安装过,执行后门功能。(后面分析)

如果带参数则将最后一个参数当作参数传入函数 402510 中,在函数 402510 中首先判断长度是否为 4,然后在判断第一个字符是否为‘a’如图:

img

接下来依次判断剩下得三个字符是否为 bcd,如果都匹配成功得话,返回 1,匹配失败则返回 0,所以恶意样本会判断给的最后得参数是否是 abcd,如果是才继续进行下一步:

img

如果不是 abcd 则执行 401420 函数将自己删掉。接下来恶意程序分析倒数第二参数是什么,图中是提供得全局得字符串:

img

可以看到恶意病毒提供得命令,然后依次匹配参数是否是:-in、-re、-c、-cc下表是对应得命令执行函数:

img

如果参数是 -c,修改注册表,如图:

img

如果参数是 -cc 则在命令行窗口打印恶意病毒得安装信息:

如果参数是 -re 则把创建得服务卸载掉,删除自己得备份文件、删除注册表值如图:

如果参数是 -in,则安装后门,如图:

其中使用 OD:

创建了一个自启动服务,启动程序是 %SYSTEMROOT%\system32\Lab09-01.exe(病毒将自己拷贝到了那个目录下)

下面分析程序得后门功能,后门是在不带参数运行恶意程序的时候,恶意程序判断注册表值,若存在对应得键值则执行,如图:

img

函数 402020 如图:

img

从函数 0x401E60 的返回值获得命令,来比对是否是 SLEEP、UPLOAD、DOWNLOAD、CMD、Nothing

下表为命令与对应执行函数:

img

分析函数 0x401E60,恶意程序访问远程主机,然后返回数据搜索得到相关命令,如图:

img


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论