PE识别 x32位的文件 先找main 函数在说 winmain main maindll 这些的需要的 恶意代码分析主要还是经验以及知识点 Windows平台的了解 还有对PE文件的了解

Q1.这个恶意代码向磁盘释放了什么?

开始分析 先载了 CFF Explorer 32位
image.png
继续往下 先查询段头部地址 存在PE 头和 MZ 头地址 继续看看 好家伙两个文件 (一开始我做题目犯了除 CTF做多了一般是直接丢IDA )继续
image.png
把下面包含的文件导出
image.png
先在得到一个7K的文件现在开用ida分析exe
ida开始更近main 解释一下这两个函数
GetModuleHandleA()检索模块创建进程 也就说这里会有东西被调用
GetModuleFileNameA() 加载进程完 查找另一个 模块文件加载 (dll 7k???)
image.png
跟入第一个函数 sub_401080 4个函数 还有文件操作
image.png
查看fopen 函数的所打开的文件是谁
FindResourceA() 确定指定模块中具有指定类型和名称的资源的位置 进路函数下面的区块 lpNAME
image.png
LoadResource() 加载模块中的ID 和字符串
LockResource() 检测资源中的内存 一句话就是看有没有执行检测一下 必进是个判断
SizeofResource() 检测所加载的大小
VirtualAlloc() 检查调用中的进程状态 分配内存 起始而已代码可以利用这个让其内存报表
image.png
第一题是flag就是 flag{msgina32.dll}
答:恶意代码从名为TGAD资源节中提取出文件msgina32.dll,然后将其释放到硬盘上

Q2.这个恶意代码如何进行驻留?

跟进主函数的第二个函数sub_401000
RegCreateKeyExA RegSetValueExA 注册表修改函数
image.png
image.png
msgina32.dll 可能会对目标拦截
flag{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL}

Q3.这个恶意代码如何窃取用户登录凭证?

把导出的TFAD 丢进IDA分析 进入dllmain分析来看 jnz 看来在数据则会向走左
image.png
继续往下
GetSystemDirectoryW 存储数据函数
lstrcatW 也就是说会把string2 里面调用执行的东西进行存储
LoadLibraryW 将指定的模块加载到调用进程的地址空间中
image.png
string2引用的msgina 让下一个函数 LoadLibraryW获取msgina.dll的句柄
汇编看就是保存值会在eax中 保存进mov hmodule ,那么威胁就在gina 下
image.png
继续往下 跟进所用的调用
image.png
分析用户凭证的函数登录函数 WlxLoggedOnSAS当登录用户想要关闭、注销或锁定工作站时,Winlogon 会调用 WlxLoggedOnSAS
image.png
image.png
GetProcAddress获得真实的ginadll的真实地址 也就是说其他的的ginadll地址也可以定向到真实地址
wsprintfA 这边调用的就是 ginadll32 进行 写了 将格式化的数据写入指定的缓冲区。 根据格式字符串中的相应格式规范,转换任何参数并将其复制到输出缓冲区。 函数将终止 null 字符追加到其写入的字符
image.png

也就是说获取真实的地址 ginadll 会对凭证数据进行拦截
msgina32.dll作为gina拦截器。恶意文件msgina32.dll在Winlogon和msgina.dll之间工作(类似于中间人攻击),此时恶意代码能够拦截提交给系统的所有登陆凭证。
正常 Windowslogondll ->msgina.dll 直接提交
非正常 Windowslogondll -> msgina32.dll ->msgina.dll

Q4.这个恶意代码对窃取的证书做了什么处理?

安找这种处理大概是要保存gina的处理 msgina.dll 被拦截信息进行的处理
WlxLoggedOutSAS 函数必须由替换 GINA DLL 实现。 Winlogon 在没有用户登录的情况下收到 安全关注序列 (SAS) 事件时调用此函数(Windows 资料提供 )
跟进看样子是会保存
WlxLoggedOutSAS+5C push offset aUnSDmSPwSOldS; “UN %s DM %s PW %s OLD %s”
image.png
会把所拦截的数据进行保存到 sys 下面
image.png
恶意代码将被盜窃的登录凭证记到%SystemRoot% System32\msutil32.sys中。用户名、域名称、密码、时间戳都将被记录到该文件msutil32.sys

Q5.如何在你的测试环境让这个恶意代码获得用户登录凭证?

运行它,必须重启系统才能启动GINA magina32.dll 拦截。注销然后再登录系统,就能看到记录到日志文件的登录凭证 以及生成的文件

Windowslogondll -> msgina32.dll ->msgina.dll
msgina32.dll