微信号:HackerCoder

介绍:分享最前沿的黑客知识,了解黑客世界,学习黑客技术

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

2019-02-19 08:30 陈十一

来自:信安之路(微信号:xazlsec)

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

病毒文件基本信息

文件名:lab09-01.exe

MD5:B94AF4A4D4AF6EAC81FC135ABDA1C40C

VT报毒情况:


是否加壳:

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

基本静态分析、动态分析

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


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

2、分析导入表

a:导入的 DLL

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

1) ADVAPI32.DLL

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

2) SHELL32.DLL

执行指定的文件

3) WS2_32.DLL

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

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

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


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

三、程序流程


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

首先来到 main 函数,如图:


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

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

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


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

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

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


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


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

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


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

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

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


其中使用 OD:


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

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


函数 402020 如图:

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

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

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




编号805,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓
 

Web开发

更多推荐25个技术类微信公众号

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

 
黑客技术与网络安全 更多文章 轻松理解端口转发和端口映射 对 XSS 的一次深入分析认识 WAF 绕过的捷径与方法 全面了解HTTP和HTTPS(开发人员必备) 百度开源项目OpenRASP快速上手指南
猜您喜欢 大数据时代快速SQL引擎-Impala 资本寒冬来临,估值百亿的AI机会在哪里? 从内存角度看C函数的调用过程 2017 Postgres 大会视频全集 设计师的潮流实验