selph
selph
发布于 2022-07-21 / 408 阅读
1
0

病毒分析01:一个简单的Downloader

前言

模仿是入门的快速学习方法,阅读汇编代码是逆向分析的基本功,故本文选择网上师傅现成的分析文章(参考资料[1])中的示例进行分析参考学习(先自己分析,遇到问题去参考),这里记录下自己的分析学习过程

样本地址:https://app.any.run/tasks/ba68e2aa-2083-48ad-ac3f-34dcc9e4446b

由于没目前准备恶意代码分析环境,所以这里也是进行纯静态分析

分析工具:IDA

分析目标:

  1. 初见Downloader类型恶意程序,理解样本的功能
  2. 练习阅读反汇编

分析

根据之前从《恶意代码分析实战》记的笔记:对PE文件进行分析,可以从这几个角度入手:

  1. 字符串:有几率可以获得程序功能相关的提示
  2. 查壳:查看程序是否有进行加密加壳压缩等
  3. PE文件格式:从PE头中可以获取程序的一些信息,例如编译信息、空间要求等
  4. 链接库和函数:从程序的链接库中可以初步推断程序的功能,查看DLL,导入表

分析PE格式与查壳

image

无壳,编译时间是2002-05-09,这个程序应该就是个初学练习使用的古老样本,是个GUI程序

分析字符串

image

除了调用的函数名和动态链接库之外,字符串里包含了一些关键信息:

网络相关:dload.ipbill.com的网址,还有个URI:http://dload.ipbill.com/del/cmb_211826.exe,还有HTTP请求头的字符串

文件相关:c:\\dialler.exe

可以认为结合这些内容可以初步猜测,该程序会从网站上下载一个文件cmb_211826.exe,保存到C:\\dialler.exe

分析链接库和函数

image

可以看到,这里有文件操作相关API:WriteFile和CreateFile,是写入文件的,网络相关函数,用来下载

还有个CreateThread,应该用来创建功能线程使用

ShellExecuteA,用来执行下载的程序

这是个GUI程序,所以还有一堆GUI相关的函数,不过无关紧要

到这里已经可以猜测个大概了,这个程序的功能就是从网上下载一个exe执行

代码分析

定位到关键函数

首先是程序OEP:调用主函数(winMain是4个参数),然后执行完之后退出进程,参数是4个0

image

进入主程序sub_401499:功能很简单,注册窗口类,创建窗口,创建成功就进入消息循环,否则就退出程序,这一层没啥恶意行为出现,但是调用了两个自写函数

image

首先是第一个自写函数sub_401437功能就是注册窗口类,然后就返回

image

然后下一个自写函数:sub_4013A3,这个函数首先是查询了一个系统参数,然后调用CreateWindowExA去创建窗口,如果创建失败就返回,创建成功就继续走

image

窗口创建成功之后,调用ShowWindow显示窗口,然后调用CreateThread创建了一个线程,线程函数是这个StartAddress,到这里都没啥问题,就是这个线程很可疑

image

下载行为

接下来查看这个线程函数:

首先调用了一个自写函数sub_401068,功能是从指定URI下载内容,保存到缓冲区

image

进去这个子函数看看:刚开始是个无意义的操作,应该是延时目的

image

紧接着开始初始化Windows的Socket,并初始化socket连接用的参数,端口地址,网络地址

然后去判断这个网络地址是否存活,成功了就向下跳转

image

再往下就是发送数据了,发送一个GET的HTTP请求,请求的地址是那个exe的URI

image

最后接收服务器返回的数据,并将数据保存参数里,接收的长度也保存进来

image

创建文件

关键函数刚刚接收完了网络上传输来的文件,往下走就是这里,这里的功能是定位接收缓冲区里需要写入到文件的位置

image

定位完要写入的位置之后,紧接着就是创建文件和写入文件了,写入位置是C:\\dialler.exe

image

执行文件

最后调用ShellExecuteA打开这个文件,参数是REFID,工作目录是C:\

image

总结

这个样本的类型是Downloader,功能是:从网络下载恶意程序到本地进行执行

这个文件的文件特征是C:\\dialler.exe,网络特征是会访问http://dload.ipbill.com/del/cmb_211826.exe这个URI

很简单的一次逆向过程,这也是很简单的程序,作为反汇编阅读的练习还挺不错,最后我看了下这个师傅的分析文章,分析的非常详细,如果基础不是很好,建议好好阅读学习

参考资料


评论