hammadx05/windows-keylogger-c2-simulation

GitHub: hammadx05/windows-keylogger-c2-simulation

一个用于恶意软件分析教学的 Windows 键盘记录器与 C2 通信模拟项目,演示了键盘挂钩、持久化、触发执行和数据外发等恶意软件核心技术。

Stars: 0 | Forks: 0

# 🧪 恶意软件分析项目(键盘记录器 + C2 模拟) ## ⚠️ 免责声明 本项目严格**仅限教育目的**,属于*恶意软件分析基础*课程的一部分。 它在**受控的实验环境(虚拟机配置)**中进行开发和测试,旨在理解恶意软件的行为,绝不可用于任何现实世界或恶意目的。 # 📌 概述 本项目是一个简单的恶意软件分析模拟,包含: * 基于 Windows 的键盘记录器(受害者机器) * 基于 Python 的 C2 服务器(攻击者机器 - Kali Linux) * 基于触发器的执行系统 * 使用 Windows 注册表的持久化机制 * 键盘记录 + 数据外发模拟 其核心思想是从两个方面了解真实恶意软件的行为: * 受感染的系统(Windows 虚拟机) * 攻击者的系统(Kali Linux) # 🧠 项目架构 ### 🪟 受害者端(Windows 虚拟机) * `keylogger.exe` * 使用 Windows API 钩子捕获按键 * 以隐蔽模式运行 * 在激活前等待触发器 * 在本地存储日志 * 激活后将数据发送到 C2 服务器 * 通过注册表 Run 键添加持久化 ### 🐧 攻击者端(Kali Linux) * `c2_server.py` * 基于 HTTP 的命令与控制服务器 * 接收来自受害者机器的按键信息 * 将日志存储在: * `.log` 文件(人类可读格式) * `.json` 文件(结构化格式) * 显示实时传入的数据 # ⚙️ 功能 ## 🔹 键盘记录器(Windows) * 隐蔽执行(隐藏窗口) * Windows API 键盘挂钩 * 基于触发器的激活: * 插入 USB * 检测到计算器进程 * Ctrl + Alt + Esc 快捷键 * 注册表持久化(Run 键) * 带缓冲的按键记录 * 通过 HTTP 与 C2 服务器通信 ## 🔹 C2 服务器(Kali Linux) * 使用 Python 的简单 HTTP 服务器 * 接收来自受害者的 POST 请求 * 以两种格式存储数据: * `keystrokes.log` * `keystrokes.json` * 用于查看日志的 Web 界面 * 实时终端日志记录 # 🛠️ 设置说明 ## 🐧 第一步:启动 C2 服务器(Kali Linux) 运行服务器: ``` python3 c2_server.py ``` 服务器启动于: ``` http://0.0.0.0:8080 ``` 你可以查看: * 日志:`http://localhost:8080/logs` * JSON:`http://localhost:8080/json` ## 🪟 第二步:运行键盘记录器(Windows 虚拟机) 编译命令: ``` g++ -static -mwindows -std=c++11 -O2 keylogger.cpp -o keylogger.exe -luser32 -lgdi32 -lwininet -lpthread -ladvapi32 ``` 运行: ``` keylogger.exe ``` # 🔁 工作原理(完整流程) ### 1. 空闲状态 * 键盘记录器以**休眠模式**启动 * 最初不会进行任何记录 * 仅监控系统的活动 ### 2. 触发激活 当发生以下任意情况时,键盘记录器会被激活: * 插入 USB 驱动器 * 打开计算器 * 按下 Ctrl + Alt + Esc 一旦被触发: * 键盘挂钩将被激活 * 开始记录 ### 3. 键盘记录阶段 * 捕获所有按键 * 将其存储在缓冲区中 * 写入到: ``` C:\Windows\Temp\system_log.dat ``` ### 4. C2 通信 激活后: * 日志被发送到 Kali 服务器 * 服务器在以下位置接收 POST 请求: ``` http://:8080/log ``` * 数据被存储在: * `keystrokes.log` * `keystrokes.json` ### 5. 持久化 * 将条目添加到 Windows 注册表: ``` HKCU\Software\Microsoft\Windows\CurrentVersion\Run ``` * 确保程序在启动时自动运行 # 📡 C2 服务器详情(c2_server.py) 此脚本运行在 Kali Linux 上,充当攻击者的控制面板。 ### 它的功能: * 接收传入的 HTTP POST 数据 * 提取按键信息 * 带有时间戳保存日志 * 提供简单的 Web 界面以查看日志 ### 端点: * `/` → 状态页面 * `/logs` → 纯文本日志 * `/json` → 结构化 JSON 日志 * `/log` → 接收来自受害者的数据 # 🧪 主要学习成果 本项目有助于理解: * Windows API 钩子技术 * 恶意软件持久化技术 * 基于触发器的执行逻辑 * 数据外发概念 * 基本的命令与控制架构 * 受害者与攻击者之间的通信流程 # 🛡️ 防御视角 从安全防御的角度来看,此类行为可以通过以下方式被检测到: * 可疑的注册表 Run 条目 * 键盘挂钩检测 * 隐藏的进程执行 * 异常的 HTTP POST 流量 * Temp 目录中的日志文件创建 ## 👨‍💻 开发者 - Hammad
标签:C2通信, DAST, Hook技术, Keylogger, Python, USB检测, Windows API, 命令与控制, 安全实验, 恶意软件分析, 教育项目, 数据渗出, 数据窃取, 无后门, 注册表持久化, 热键触发, 端点可见性, 红队模拟, 网络安全, 自启动, 虚拟机环境, 触发执行, 进程检测, 逆向工具, 键盘挂钩, 键盘记录器, 隐私保护, 隐蔽执行