S3N4T0R-0X0/Malicious-PixelCode
GitHub: S3N4T0R-0X0/Malicious-PixelCode
这是一个安全研究项目,演示了将可执行文件编码为图像或视频像素数据,并通过合法平台隐蔽传输与执行的技术。
Stars: 164 | Forks: 37
# 恶意 PixelCode 交付技术
Malicious PixelCode 是一个安全研究项目,演示了一种将可执行文件编码为像素数据并存储在图像或视频中的隐蔽技术。轻量级加载器获取媒体文件,在内存中重建原始二进制文件并执行。本项目仅出于教育和研究目的,突出了非常规的数据交付和混淆方法。
本研究被 Cyber Security News 报道:https://cybersecuritynews.com/pixelcode-attack/

## 什么是 Pixel Code?
Pixel Code 是一个研究概念,它以视觉像素的形式表示二进制数据,其中
每个像素通过将可执行字节转换为结构化的颜色矩阵来编码原始文件的一小部分,数据可以存储、传输或嵌入到图像或视频中,而不暴露其原始形式。
这种技术通常被用于研究数据混淆、隐蔽存储和非常规编码通道。基于像素的编码允许研究人员分析如何将信息隐藏在多媒体内容中,并随后通过解码算法进行重建。
它还有助于理解通过图像或视频共享服务等常见平台传输编码数据的安全影响。总体而言,Pixel Code 专注于将数字文件转换为视觉表示,该表示可以使用相应的解码器进行恢复。

恶意行为者可能会滥用 Pixel Code,将有害的二进制文件或脚本编码为图像或视频帧等视觉数据。通过将恶意软件转换为基于像素的表示,攻击者可以尝试将其 Payload 伪装成无害的多媒体内容。
这些编码文件随后可以上传到 YouTube 等合法平台,赋予它们信任的外观并绕过传统的安全过滤器。
受攻击者控制的加载器或解码器随后可以检索视频并重建原始恶意文件。此滥用场景强调了非常规的数据编码技术如何创建新的攻击向量并挑战现有的检测机制。
在此研究过程中,我们首先从一个负责命令与控制 (C2) 通信的 C++ Payload 开始。将其编译为 EXE 后,使用基于 Python 的工具将该二进制文件转换为 Pixel Code MP4。生成的 Pixel Code 视频随后被上传到 YouTube,其 URL 被嵌入到 C++ 加载器中。
由于 C++ 缺乏反转 Pixel Code 所需的多媒体库,因此改用 Python stager;它被编译为 EXE,进行 Base64 编码,并与 YouTube URL 一起直接嵌入到加载器中。
当在目标环境中执行时,加载器会从 YouTube 下载 Pixel Code MP4,并使用嵌入的 Python stager 重建原始 Payload 并执行它,最终允许研究环境通过 BEAR-C2 重新建立命令与控制。

# Pixel Code 工作流程 — 详细步骤
## (C2 Payload.cpp)
这是一个用 C++ 编写的隐蔽 Windows 反向 Shell Payload,它持久化地连接回命令与控制服务器,对所有通信使用带有硬编码静态密钥和随机 IV 的 AES-CBC 加密,使用唯一标识符进行身份验证,通过 cmd.exe 或 PowerShell(当以 "EP" 为前缀时)执行接收到的命令,支持目录导航,使用长度前缀的加密块实时流式传输命令输出,在没有可见控制台窗口的情况下运行,并在失败时自动重新连接——这是一个专为漏洞利用后控制而设计的功能齐全的加密远程访问特洛伊木马。
## (将 EXE 转换为 Pixel Code)
编译 Payload 后,生成的 EXE 会通过一个专门设计用于将二进制数据转换为 Pixel Code 的基于 Python 的工具进行处理。该工具将可执行文件转换为视觉 MP4 表示形式,其中二进制字节作为像素值嵌入到视频帧中。
## (将 Pixel Code 视频上传到 YouTube)
生成 Pixel Code MP4 文件后,将其作为标准视频上传到 YouTube。将编码的二进制文件托管在合法平台上,允许研究评估外部可信服务如何处理非传统的编码数据。收集 YouTube 视频 URL 以供后续阶段使用。
## (在 C++ 加载器中嵌入 YouTube URL)
准备一个用 C++ 编写的自定义加载器,用于从其 YouTube 位置检索 Pixel Code。上一步获得的视频 URL 直接嵌入到此加载器中,以便它可以在执行期间下载 MP4。
## (准备 Python Stager 用于解码)
由于 C++ 缺乏将 Pixel Code 解码回二进制形式所需的多媒体库,因此使用 Python stager 来处理重建。此 Python 脚本被编译为 EXE,然后进行 Base64 编码。编码后的 stager 与 YouTube URL 一起直接嵌入到 C++ 加载器中。
Stager.py -> Stager.exe -> base64 -> Loader.cpp -> Loader.exe
## (重建并执行原始 Payload)
Python stager 逐帧处理下载的 MP4 视频,提取编码的像素数据并在内存中重建原始 C++ Payload。
恢复后,将执行 Payload,最终与研究中使用的 BEAR-C2 服务器重新建立命令与控制通信。
## (PixelCode 演示)
https://github.com/user-attachments/assets/1dcb1570-b116-438e-b826-4ce639a1c13c
## ⚠️ 法律免责声明
本内容仅供研究、宣传和教育之用,如果任何人将此技术用于非法目的,我不承担任何责任。
## (将 EXE 转换为 Pixel Code)
编译 Payload 后,生成的 EXE 会通过一个专门设计用于将二进制数据转换为 Pixel Code 的基于 Python 的工具进行处理。该工具将可执行文件转换为视觉 MP4 表示形式,其中二进制字节作为像素值嵌入到视频帧中。
## (将 Pixel Code 视频上传到 YouTube)
生成 Pixel Code MP4 文件后,将其作为标准视频上传到 YouTube。将编码的二进制文件托管在合法平台上,允许研究评估外部可信服务如何处理非传统的编码数据。收集 YouTube 视频 URL 以供后续阶段使用。
## (在 C++ 加载器中嵌入 YouTube URL)
准备一个用 C++ 编写的自定义加载器,用于从其 YouTube 位置检索 Pixel Code。上一步获得的视频 URL 直接嵌入到此加载器中,以便它可以在执行期间下载 MP4。
## (准备 Python Stager 用于解码)
由于 C++ 缺乏将 Pixel Code 解码回二进制形式所需的多媒体库,因此使用 Python stager 来处理重建。此 Python 脚本被编译为 EXE,然后进行 Base64 编码。编码后的 stager 与 YouTube URL 一起直接嵌入到 C++ 加载器中。
Stager.py -> Stager.exe -> base64 -> Loader.cpp -> Loader.exe
## (重建并执行原始 Payload)
Python stager 逐帧处理下载的 MP4 视频,提取编码的像素数据并在内存中重建原始 C++ Payload。
恢复后,将执行 Payload,最终与研究中使用的 BEAR-C2 服务器重新建立命令与控制通信。
## (PixelCode 演示)
https://github.com/user-attachments/assets/1dcb1570-b116-438e-b826-4ce639a1c13c
## ⚠️ 法律免责声明
本内容仅供研究、宣传和教育之用,如果任何人将此技术用于非法目的,我不承担任何责任。标签:DNS 反向解析, Loader, Raspberry Pi, 二进制编码, 云资产清单, 代理, 像素编码, 内存执行, 图像隐写, 多媒体安全, 恶意软件, 搜索语句(dork), 数据传递, 数据展示, 数据混淆, 数据隐藏, 无文件攻击, 红队, 网络安全, 载荷隐藏, 逆向工具, 逆向工程, 隐写术, 隐私保护, 隐蔽通道