SSH山水画 发表于 2020-9-19 10:48

黑白鉴定入门之一款后门的分析思路

0x1 文章简介
这是一篇针对初学小白的文章, 楼主也刚刚进入安全行业实习,本篇文章主要记录分析过程,思想方法,如有不对不足,欢迎指出。


0x2 样本hash
3c8ba5a38cd1e4048c969464ab86591d9b08cba9

0x3 分析思路
在拿到一个样本之后,第一件事拖入PEID查壳


没壳,区段正常
分析一下字符串
选出一些有用的字符串
LoadLibraryA
GetProcAddress
ReadFile
CreateFileW
剩下的都是大片的乱码

没什么有用的信息
拖入ida看一下导入表

找出一些能下手的地方
0040301C LoadLibraryA KERNEL32
00403020 GetProcAddress KERNEL32
00403034 ReadFile KERNEL32
能作为突破点的API很少,先试着从LoadLibraryA入手
通过ida的交叉引用查看调用

发现样本使用了CreateFileW,推测有释放文件的操作。
虚拟机打开OD,定位到调用CreateFileW处,在00401FF8 下段,看看样本创建了什么文件

观察堆栈 发现样本创建了自身,放行,样本直接结束
转为在CreateFileW函数头部下断,重新运行样本,观察堆栈
发现断下多次,我们将每一次的堆栈信息都截图下来,并且将文件备份一份

根据以上可以推测出样本创建了第二个自身,结束第一个自身,然后释放文件
为了验证,打开火绒剑捕捉行为

过滤没有用的动作,分析剩下的动作
和我们预测的差不多,启动自身,释放文件,结束
因为他释放完紧接着删除了,很不正常,我们是用火绒的拦截功能,拦截样本的删除动作,捕获被释放的文件

再次执行样本

可以看到样本在试图删除tmp,我们点击阻止,然后分析这个tmp

可以发现tmp是0字节,是哪里出了问题,这是样本的障眼法?或者是他的写入代码没有被执行
到这里好像所有步骤都白费了,抓到的释放行为,结果是释放了一个空文件
那么他的真正功能在哪里呢,既然没被释放到磁盘,那就有可能直接在内存开辟了缓冲区去执行
接下来试着验证这条猜想,打开OD,在VirtualAlloc处下断
放行

果然断下来了,跟出函数,看看他申请这块内存要干什么

这就是申请好的内存地址,右键数据窗口中跟随,下内存写入断点,放行

卧槽,竟然直接终止了,肯定是哪里不对
还是回到那个申请的内存,下硬件写入断点
再次放行

这次断下了,观察数据,发现是很熟悉的PE结构
右键->备份->保存数据到文件
将导出的数据拖入PEID

果然 这段数据很有问题
打开beyond进行代码比较

和本体一模一样的数据,这可能就是火绒剑行为中的创建自身进程用到的数据
回到OD,删除硬件断点,放行
竟然又在alloc处断下,本来以为程序差不多结束了,没想到有意外收获
同样的方法查看这块内存的数据

同样的方法比对代码,依然一样
再次放行,又在alloc断下,同样方法,再次来一遍
这次你会发现,硬断触发的代码,有个循环用来向开辟的内存中赋值
跳出这段循环,被填充的代码是没见过的,但是当你F8下去的时候,会发现下面还有个循环,跳出这个循环,再次F8下去,会有一个大循环

同样是PE结构,但是这次还做了加密解密,必然有问题
同样的方法保存下来,进行对比

正如我们猜测的,这个PE文件开始发生了变化,先将其存好
回到OD,删除硬断,放行
程序结束
由此看来,整个程序的真正作用就是释放第三次alloc处的代码,也就是上面那幅图
接下来的步骤我们将针对这第三个文件,我们取名为new
将new拖入PEID

UPX壳,这更证明了这个文件有大问题
拖入火绒剑,过滤动作,看一下干了什么

又是释放TMP。。,打开火绒,拦截删除动作,发现TMP还是空的
那就不管它,new和原版一个明显的区别就是,new没有退出,而原版直接退出了,所以原版看起来啥也没干
继续火绒剑

捕捉到了connect,自身文件属性也变为了隐藏
符合一个后门的特征了
为了验证猜想,拖入IDA,分析导入表,字符串
数据很少,既然有了connect动作,不应该只有这么点东西
既然这样,就把壳脱掉,使用ESP定律脱掉壳子,定律可以自行百度,资料很多
脱壳后拖入IDA,分析导入表和字符串
截取敏感信息

根据以下行为:
内存运行代码
隐藏自身
无窗口
静默发送connect链接
遍历IP地址
敏感字符串
可以推测为一个后门病毒,并可能带有扫描IP爆破的功能
PS:楼主为个人自学逆向,所以没有接受过专业的培训,可能逆向思维,实践思路有些奇葩,各位谅解。此文章希望可以帮助自学的小白建立一些逆向思维。
保存完帖子才发现,图片有看❄水印,申明一下非转载

SSH山水画 发表于 2020-9-24 14:26

wasdzjh 发表于 2020-9-23 21:05
xp还是win710,应该是64位系统吧

7 64{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}{:1_919:}

SSH山水画 发表于 2020-9-23 19:38

wasdzjh 发表于 2020-9-23 17:27
楼主分析的不错,是不是在虚拟机进行分析?

肯定啊,不然本机不凉凉了

nonamer 发表于 2020-9-21 19:54

楼主犀利~谢谢分享

lmm123 发表于 2020-9-22 17:28

谢谢楼主分享
!!!!

文虑 发表于 2020-9-22 20:32

逆向技术真的博大精深

sem_0564 发表于 2020-9-22 20:33

专业强大

Psyber 发表于 2020-9-23 04:41

非常干货

linrunqing521 发表于 2020-9-23 07:59

我来啦,来啦

fengW 发表于 2020-9-23 13:08

确实很厉害,相比之下我就比较菜菜了   

wasdzjh 发表于 2020-9-23 17:27

楼主分析的不错,是不是在虚拟机进行分析?

下一站左转 发表于 2020-9-23 18:27

专业,强大,学习中
页: [1] 2
查看完整版本: 黑白鉴定入门之一款后门的分析思路