实战 | 记一次某地HVV中的木马逆向分析

admin 2025年4月10日19:28:05评论1 views字数 1812阅读6分2秒阅读模式

声明:本文仅限于技术讨论与分享,严禁用于非法途径。若读者因此作出任何危害网络安全行为后果自负,与本号及原作者无关。

前言

事情是这样的,2022国庆前期某地HVV,所以接到了客户通知他们收到了钓鱼邮件想要溯源

实战 | 记一次某地HVV中的木马逆向分析

直接下载文件逆向分析一波。钓鱼邮件,图标什么的做的还是挺逼真的,还真的挺容易中招的,但是这里的bug也明显,丹尼斯没有客户端,百度一下能够辨别这是钓鱼的。

逆向分析

查壳工具DIE看是否加壳

实战 | 记一次某地HVV中的木马逆向分析

当然其他查壳工具也可以exeinfope等,看到的东西不一样

实战 | 记一次某地HVV中的木马逆向分析

可以看到是64位的应用,无壳,IDA静态分析

实战 | 记一次某地HVV中的木马逆向分析

直接进入主函数,直接F5逆向main函数c代码

实战 | 记一次某地HVV中的木马逆向分析

主函数中使用的函数比较少

int __cdecl main(int argc, const char **argv, const char **envp){  HRSRC ResourceW; // rbx  HGLOBAL Resource; // rbp  signed int v5; // eax  size_t v6; // rsi  size_t v7; // rcx  void *v8; // rdi  ResourceW = FindResourceW(0i64, (LPCWSTR)0x66, L"DATA");  Resource = LoadResource(0i64, ResourceW);  v5 = SizeofResource(0i64, ResourceW);  v6 = v5;  v7 = (unsigned int)(v5 + 1);  if ( v5 == -1 )    v7 = -1i64;  v8 = malloc(v7);  memset(v8, 0, (int)v6 + 1);  memcpy(v8, Resource, v6);  sub_140001070(v8);  return 0;}

简单来看就是先查找资源,DATA应该为加密的shellcode,加载资源赋

Resource,计算资源空间大小,malloc分配空间大小,memset 将申请的内存初始化为0,memcpy函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中,跟进sub_140001070

实战 | 记一次某地HVV中的木马逆向分析

可以看到反汇编之后在第52行创建进程,在56行分配虚拟内存,60行写入内存,61行创建线程,这里创建的线程即为恶意进程。这里使用动态调试x96dbg验证我们的分析另外,需要分析一下外联的地址以及注入的进程是什么,64位的应用使用x64dbg,依次下断点

简单计算一下地址,IDA的起始地址为00000001400015C4

实战 | 记一次某地HVV中的木马逆向分析

FindResourcew地址为00000001400015C4

实战 | 记一次某地HVV中的木马逆向分析

在x64dbg中找到起始地址00007FF638B915C4

实战 | 记一次某地HVV中的木马逆向分析

根据偏移量跳转下断点

实战 | 记一次某地HVV中的木马逆向分析
实战 | 记一次某地HVV中的木马逆向分析

F7按步调试

实战 | 记一次某地HVV中的木马逆向分析

loadResource函数中追踪内存

实战 | 记一次某地HVV中的木马逆向分析

这里加载的是DATA的内容,即为加密的shellcode,我们直接用Resouce hacker直接查看一下恶意进程dennis.exe的DATA内容

实战 | 记一次某地HVV中的木马逆向分析

说明我们的分析没有问题,继续向下调试

实战 | 记一次某地HVV中的木马逆向分析

因为这个应用比较小,所以代码量也不大,f5反编译之后可以直接找到函数下断点,这里不需要计算偏移量了,计算方法跟上面差不多。

实战 | 记一次某地HVV中的木马逆向分析

调试走到这里,可以发现走的是循环

实战 | 记一次某地HVV中的木马逆向分析

可以明显的看到有xor异或指令,这里对shellcode即DATA的内容做异或,异或的对象为byte ptr指向的地址,内存数据为key,那么key的内容为

实战 | 记一次某地HVV中的木马逆向分析

因为是按字节异或所以这里异或的内存应该为78,整个循环异或的key应该为12345678,shellcode加密的时候应该用的key为12345678加密的,所以这里解密使用key去解密,跳出循环RIP一下,到断点CreateProcessW

实战 | 记一次某地HVV中的木马逆向分析

可以清晰的看到注入的进程为C:\windwos\system32\svchost.exe,向下调试

实战 | 记一次某地HVV中的木马逆向分析

申请虚拟空间内存,然后向下为写入内存

实战 | 记一次某地HVV中的木马逆向分析

解密完成后写入内存,所以在这里是可以看到外联的ip地址或者说是域名的,这里使用的是ip,查询之后发现是TX云的服务器。

实战 | 记一次某地HVV中的木马逆向分析

在向下就是创建进程起服务svchost.exe

小结

钓鱼使用的服务器ip地址是TX云怕是报警之后应该可以溯源到本人的真实身份了吧,毕竟现在国内运营商都需要实名,如果用的国内域名也都是实名的不管是否有CDN,不过这种级别的HVV也没必要。第一次逆向分析,多亏了大佬指点,步履维艰,如有错误欢迎指出。

实战 | 记一次某地HVV中的木马逆向分析
学习网安实战技能课程,戳“阅读原文“

原文始发于微信公众号(蚁景网安):实战 | 记一次某地HVV中的木马逆向分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月10日19:28:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战 | 记一次某地HVV中的木马逆向分析https://cn-sec.com/archives/3940954.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息