渗透测试 | 看我如何还原黑客真实通信

2024-06-06 401 0

1. 前言

互联网环境通信流量千千万,当我们安全研究人员在做流量分析时无法避免遇到非明文数据,对于自己数据的流量特征可以一眼分析出来通信内容,但是恶意流量通信非常之多,当你看到这样的流量,你是否能够分析出该流量数据传输的是什么内容?

渗透测试 | 看我如何还原黑客真实通信插图

通信流量整体内容可读性较差,完全看不出来恶意流量要传输的内容是什么。

且针对于这种内容如果提取对应的检测规则,仅通过流量层的分析是无法提取的。

接下来我们来从逆向的层面来还原数据传输的意义。

2. 行为分析

2.1 整体流程图

样本的整体执行流程如下:

渗透测试 | 看我如何还原黑客真实通信插图1

2.2 释放诱饵文档

首先运行样本,样本释放并运行诱饵文档用来迷惑受害者。

渗透测试 | 看我如何还原黑客真实通信插图2

随后,通过二次文件释放以及dll调用来加载最终的恶意DLL实现服务启动达到恶意通信目的。

2.3 定位最终载荷

木马行为如下,发现可疑行为

渗透测试 | 看我如何还原黑客真实通信插图3

并通过该文件在服务列表中定位到对应的服务

渗透测试 | 看我如何还原黑客真实通信插图4

3. 逆向分析

3.1 关键函数定位

定位目标dll使用IDA进行逆向分析,对应的导出函数如下:

渗透测试 | 看我如何还原黑客真实通信插图5

进入Servicemain函数进行分析,定位恶意代码主函数。

3.2 注册服务启动

首先创建服务名,名字如下:Net1Service,和火绒剑定位到的服务名如出一辙

渗透测试 | 看我如何还原黑客真实通信插图6

渗透测试 | 看我如何还原黑客真实通信插图7

3.3 创建线程

渗透测试 | 看我如何还原黑客真实通信插图8

恶意代码主函数创建线程,所有的操作均在线程回调函数中。

渗透测试 | 看我如何还原黑客真实通信插图9

3.4 回溯函数调用

线程回调函数整体均使用内存地址寻址调用的方式来实现目标函数的加载,可读性较差加强逆向分析难度。

渗透测试 | 看我如何还原黑客真实通信插图10

交叉引用回溯到函数赋值位置

渗透测试 | 看我如何还原黑客真实通信插图11

3.5 互斥体创建

运行恶意代码前判断目标互斥体是否存在,如果存在则不再继续感染当前主机,否则创建互斥体执行后续恶意代码

渗透测试 | 看我如何还原黑客真实通信插图12

经过动态调试分析,确认“v3+16”函数为上线包处理函数

渗透测试 | 看我如何还原黑客真实通信插图13

3.6 C2解析

渗透测试 | 看我如何还原黑客真实通信插图14

进入函数内部,该函数首先对目标c2进行DNS解析,解析成功后获取到目标ip。

3.7 上线包数据获取

地址随后进行上线包数据信息获取操作。

首先获取受害者主机的mac地址,随后按照02x%进行格式化。

渗透测试 | 看我如何还原黑客真实通信插图15

随后将格式化后的mac地址信息拼接到上线包数据指定偏移0x04。

渗透测试 | 看我如何还原黑客真实通信插图16

随后GetUserInfo函数负责包含剩余其他所有上线包数据的获取。

渗透测试 | 看我如何还原黑客真实通信插图17

获取后的数据拼接如下图所示:

渗透测试 | 看我如何还原黑客真实通信插图18

其中包含被害者主机的mac地址、cpu主频、cpu核数、物理内存大小、国家语言地区、计算机名、系统版本等。其中需要注意的是,此木马在获取受害者所处的国家语言地区时使用的通过编码页数来间接判断语言地区。

渗透测试 | 看我如何还原黑客真实通信插图19

3.8 加密函数分析

获取完数据后使用加密函数对所有明文上线包信息进行加密,这里使用的异或加密,密钥为0xf7。

渗透测试 | 看我如何还原黑客真实通信插图20

加密后的数据如下所示,和最初抓取的pcap中的通信流量数据相同。

渗透测试 | 看我如何还原黑客真实通信插图21

渗透测试 | 看我如何还原黑客真实通信插图22

加密完成后,开始发送上线信息,其中上线包大小为474字节。

渗透测试 | 看我如何还原黑客真实通信插图23

这也刚好和wireshark中抓取的包大小一致。

渗透测试 | 看我如何还原黑客真实通信插图24

4. 解密还原原始数据

通过以上的详细逆向操作,已经将通信流量的数据全部还原解密,下表为通信数据具体的数据结构以及对应的解释。

整体数据结构还原。

偏移

大小

含义

Buf[0]

4字节

固定硬编码

Buf[4]

/

受害者mac地址

Buf[17]

4字节

受害者CPU主频率

Buf[21]

4字节

受害者物理内存大小

Buf[29]

4字节

受害者国家所处地区

Buf[33]

4字节

受害者国家所处地区

Buf[41]

4字节

受害者操作系统版本

Buf[45]

4字节

受害者CPU核数

Buf[218]

/

受害者计算机名

5. 总结

本篇文章作者通过逆向的角度来还原恶意流量中的真实通信数据,其中关键思路在于如何定位出目标流量通信数据对应的PID以及逆向+调试定位还原数据结构。


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论