实战|记一次2022某地HVV中的木马逆向分析
创始人
2024-05-07 03:59:37
0

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

前言

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

310879d47aa27b76ab481817e7d0a96f.png

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

逆向分析

查壳工具DIE看是否加壳

b56f202304ec0dd95f1992f9f018a60c.png

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

c4524dd6de2fd78f63110d6662b6d8fa.png

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

da9010b72d76b79b57580512ed8af052.png

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

2bb588789552a85769778f4a5a9fc01c.png

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

int __cdecl main(int argc, const char **argv, const char **envp)
{HRSRC ResourceW; // rbxHGLOBAL Resource; // rbpsigned int v5; // eaxsize_t v6; // rsisize_t v7; // rcxvoid *v8; // rdiResourceW = 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

f573cd2e863ad210bf6b7c427bc826c2.png

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

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

07798dce4620c67e9ad2f55389823916.png

FindResourcew地址为00000001400015C4

e89e20c5b459a68af1462ba36e29f22d.png

在x64dbg中找到起始地址00007FF638B915C4

b288004b04d0f4acb7910c1fe795fe46.png

根据偏移量跳转下断点

cdbc84f60686260347f9c24f8f560621.png

2d0674d26d9b04d43737eab6245befac.png

F7按步调试

25e6481452fe4869590b0662ee0d8bb5.png

loadResource函数中追踪内存

cb48e4d27ad9ed8e99230ff202dc392a.png

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

db498ccf98686987b768782067e6aab5.png

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

dc61ef6e8e07cdd6cc78beab0b84b85c.png

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

429091dd58b8585096527e0b3789e6c1.png

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

137318a25ccdf2a10174642fd42ddccb.png

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

26a61dee2e78fafafdbc1876ff5b5797.png

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

e7435741b0a9afd043d6f8eec85d978c.png

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

c902593477e855c25ee3e2c77b918a9c.png

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

3fd615cdf0556181cd9dfad41ae1869d.png

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

bb126eb6e1460fa48946da58f24c2059.png

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

小结

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

原创稿件征集

征集原创技术文章中,欢迎投递

投稿邮箱:edu@antvsion.com

文章类型:黑客极客技术、信息安全热点安全研究分析等安全相关

通过审核并发布能收获200-800元不等的稿酬。

更多详情,点我查看!

f1f88dedca5b8ccebd35bd8dff42a207.gif

靶场实操,戳“阅读原文“

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...