首页
社区
课程
招聘
[原创]样本分析记录(二)(特斯拉样本(关于C#如何调试dll又从dll中释放exe的))
发表于: 2020-12-9 21:55 8047

[原创]样本分析记录(二)(特斯拉样本(关于C#如何调试dll又从dll中释放exe的))

2020-12-9 21:55
8047

前情提要

C#属于解释型语言,有一个中间语言IL,不能直接在电脑上运行的机器码,IL是独立于CPU且面向对象的指令集,这意味着不能通过ida去反编译c#所编写的程序
中间语言IL被封装在一个叫做程序集的文件中,程序集中包含了描述所创建的方法、类和属性的所有元数据

 

—————————————————————————————————
找到main函数中的Application.Run(new Form1())代码可得知,该样本是C# WinForm的应用程序
图片描述

样本调试

进入Form1函数
图片描述
进入Form1的实例方法种调用的this.InitializeComponent()
图片描述
开始调试InitializeComponent函数
选择不要中断:程序不中断直接停在断点处 此时发现程序不能断下来,因此重新选择断在入口点:
图片描述
单步步过的调试,从哪里开始运行起来说明那里就是关键函数

dump出来的dll

startgame调用了其余4个函数,因此这里是入口函数
图片描述

 

C#加载dll一般是通过函数invoke实现的
所以在调试到invoke的时候 选择 调试-窗口-模块
图片描述

 

并在模块中被调用的函数的invoke代码处下断点 然后继续运行 等待断点断下来:
图片描述
进入dll了:
图片描述

 

解密完资源的地方:
图片描述
返回之后获取到解密后的资源模块
图片描述
这个资源文件都是经过Eazfuscator混淆的
图片描述

 

也可以使用de4dot去混淆(有的时候de4dot去不了混淆 原因可能是因为你的de4dot不是最新版 要找最近日期发布的):
图片描述

 

然鹅在调试的时候出现了异常
图片描述
拿进火绒剑看看:
1.用cmd命令创建进程:
图片描述
2.看看进程的字符串:
图片描述
能看到有很多反调试相关的api,比如:[ANSI] 0x00047aa6: IsDebuggerPresent等
同时发现了一堆注入相关的api:
图片描述

 

在WriteProcessMemoryAPI处下断点,看看向内存中写入了什么东西,查看后发现注入了一个pe文件,将该文件dump下来,发现又是一个用C#写的exe文件:
图片描述

 

获取计算机id hash mac地址 cpuID 系统序列号等信息:
图片描述

 

获取当前进程id:
图片描述

 

提取剪切板的内容 下键盘钩子和剪切板钩子
图片描述
图片描述

 

使用的加密方式:base64、md5、des
图片描述

 

查找安装目录“@"C:\Users\win10x64_xxxx\AppData\Local"”下是否存在"Iridium Browser"、“Yandex Browser”、"Chromium"、"Torch Browser"、"Cool Novo"、"Kometa"、"Amigo"、"CentBrowser"、"Chedot"、"Orbitum"、"Sputnik"、"Vivaldi"、"Citrio"、"360 Browser"、"Uran"、"Liebao Browser"、"Epic Privacy"、"Coccoc"、"Sleipnir 6"、"QIP Surf"、。。。这些浏览器,并获取这些浏览器中记录的用户的登录密码
图片描述

 

mail相关:

1
2
@"Software\IncrediMail\Identities\"
@"\VirtualStore\Program Files\Foxmail\mail\"

FTP相关:

1
2
@"\CoreFTP\sites.idx"
@"\SmartFTP\Client 2.0\Favorites\Quick Connect\*.xml"

图片描述

 

注册表相关:

1
2
3
4
5
6
@"HKEY_CURRENT_USER\Software\FTPWare\COREFTP\Sites\Host"
"HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites"+ str +"Port"
"HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites"+ str +"User"
"HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites"+ str +"PW"
"HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites"+ str +"Name"
@"HKEY_CURRENT_USER\Software\Aerofox\FoxmailPreview"

从注册表中获取WINSCP默认保存用户密码

1
@"SOFTWARE\\Martin Prikryl\\WinSCP 2\\Sessions"

用正则匹配配置文件:
图片描述

 

技术有限 有些地方可能有错误。。。欢迎大佬们指正

 

从网上找到了一篇后门功能几乎一致的样本报告:https://blog.csdn.net/cp15191163199/article/details/100453349

 

附件解压码是bbs.pediy.com


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-1-11 16:48 被大河向东流哇编辑 ,原因:
上传的附件:
收藏
免费 2
支持
分享
最新回复 (3)
雪    币:
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
在x32Dbg中dunpPE文件这步是在第一次writeprocessMemory断下来的时候就把整个PEdump下来吗?
2021-10-13 10:23
0
雪    币: 259
活跃值: (3475)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
3
wx_Simba 在x32Dbg中dunpPE文件这步是在第一次writeprocessMemory断下来的时候就把整个PEdump下来吗?
我记不太清这个样本详细的分析过程了 你看看内存的数据,得等内存中已经写入一个完整的pe文件的时候才可以dump  在内存中往下滑一下 看看后面的数据是否写入了
2021-10-18 16:24
0
游客
登录 | 注册 方可回帖
返回
//