logo RAVENC2
Navigation
Links
GitHub Repository Wiki / Docs Open an Issue
ADVERSARY EMULATION FRAMEWORK

RAVEN C2 FRAMEWORK v3.0

Modular, enterprise-grade Command & Control framework built in Java. Supports Web Panel, CLI, and JavaFX GUI with mutual TLS, AES-256-GCM encryption, and multi-protocol session handling.

OpenJDK 17+
Maven 3.8+
AES-256-GCM
mTLS
AGPL v3
RAVEN-C2 — operator console
RAVEN C2 Web Panel
RAVEN C2 Sessions
RAVEN C2 Terminal
RAVEN C2 CLI
RAVEN C2 GUI
RAVEN C2 Dashboard
Overview

What is RAVEN C2

RAVEN C2 is a multi-platform adversary emulation framework built in Java. It supports multiple interface modes — Web Panel (HTTP), CLI, and JavaFX GUI — and manages concurrent reverse shell sessions from a single operator console across diverse target environments.

Engineered for operational security: all agent communication is protected by AES-256-GCM encryption and mutual TLS authentication using PKCS12 keystores. The framework features a full certificate lifecycle manager (CA → Server → Agent), file transfer, thread-safe session handling, an event-driven architecture, and multi-operator TeamServer mode.

Java 17 Web Panel CLI JavaFX GUI mTLS + AES-GCM version 3.0
Multi Transport Security
v17 Min JDK
AGPL License
v3.0 Version
Authorized Use Only

This tool is for legally authorized penetration testing and red team engagements only. Unauthorized use is illegal and unethical.

Features

Core Capabilities

Everything a red team operator needs in a single Java-based framework.

01

Multi-Interface Support

Operate via Web Panel (browser at port 5000), CLI mode (-C), or full JavaFX desktop GUI (-G) — whichever fits your workflow.

02

AES-256-GCM Encryption

All agent communication is encrypted end-to-end with AES-256-GCM, preventing traffic analysis and ensuring operational confidentiality.

03

Mutual TLS (mTLS)

Agent authentication via PKCS12 keystores. Full CA, server, and agent certificate lifecycle management with a single init command.

04

Multi-Protocol Sessions

Handle RAVEN agents, Meterpreter sessions, and plain reverse shells concurrently from a single operator console.

05

File Transfer

Upload payloads and download evidence files with built-in progress tracking. Evidence saved to the configurable output directory.

06

OPSEC Design

Minimal target footprint, encrypted payloads, and configurable listeners. Designed for operational security in authorized engagements.

07

Thread-Safe Sessions

Concurrent session handling backed by a thread-safe manager. Multiple agents can connect and be interacted with simultaneously.

08

Event-Driven Architecture

Decoupled event system for clean separation between the operator console, session manager, and agent handlers.

09

Cross-Platform

Runs on Windows, Linux, macOS via the JVM. Platform-specific Maven build flags available for each target OS.

10

Database Support

In-memory, SQLite, PostgreSQL, and MongoDB backends configurable via raven.properties.

11

Operator Roles

Role-based access control with four levels: SUPER, ADMIN, OPERATOR, MEMBER — each with distinct permission sets.

12

TeamServer Mode

Multi-operator collaborative C2 with dedicated REST API, allowing multiple clients to connect to the same instance simultaneously.

Installation

Getting Started

Deploy RAVEN C2 v3.0 in under 5 minutes.

01

Prerequisites

Ensure the following are installed before proceeding.

OpenJDK 17 or newerRequired
Apache Maven 3.8+Required
GitRequired
Linux / Termux (Debian recommended)Recommended
02

Clone Repository

Pull the source from GitHub. Use the main branch for stable usage or contrib for contribution.

bash
git clone --branch main https://github.com/MatrixTM26/RAVEN.git
cd RAVEN
03

Quick Run (Pre-built JAR)

A ready-to-use JAR is included in the repository. No compilation required.

bash
java -jar output/raven.jar
04

Build from Source

Compile with Maven. Use platform-specific flags for JavaFX support.

bash
# Linux / Termux
mvn clean package -Djavafx.platform=linux -q

# Windows
mvn clean package -Djavafx.platform=windows -q

# macOS
mvn clean package -Djavafx.platform=macos -q
05

Initialize Certificates & Launch

Initialize mTLS certificates first, then start the server in your preferred interface mode.

bash
# Initialize CA and server certificates
java -jar target/raven-3.0.0.jar -i

# Web Panel mode (default — http://localhost:5000)
java -jar target/raven-3.0.0.jar

# CLI mode
java -jar target/raven-3.0.0.jar -C

# JavaFX GUI mode
java -jar target/raven-3.0.0.jar -G
Server running — Web panel at http://localhost:5000, waiting for agents.
Commands

Command Reference

CLI flags and operator console commands for RAVEN C2 v3.0.

OptionLong OptionDescription
-h-helpShow help and exit
-s <addr>-host <addr>C2 server bind address (default: server.properties)
-p <port>-port <port>C2 listener port (default: server.properties)
-C-cli-modeStart in CLI interface mode
-G-gui-modeStart in JavaFX GUI mode
-W-web-modeStart in Web Panel mode
-TSC-teamserver-cliTeamServer with CLI interface
-TSW-teamserver-webTeamServer with Web interface
-TSG-teamserver-guiTeamServer with GUI interface
-tp <port>-teamserver-port <port>TeamServer API port (default: server.properties)
-i-init-certsInitialize CA and server certificates
-l-listList all generated agent certificates
OptionLong OptionDescription
-A-multiMulti-protocol auto-detect
-R-rawRaw TCP reverse shell only
-b-httpHTTP beacon only
-B-httpsHTTPS beacon only
-T-tlsTCP TLS — RAVEN agent
-M-mtlsMutual TLS — RAVEN agent
-F-fmtlsFull mTLS + HTTPS beacon
CommandSyntaxDescription
sessionssessionsList all active agent sessions
agentsagentsAlias for sessions
useuse <id>Enter interactive shell with agent
sysinfosysinfo <id>Show full system info for agent
execexec <id> <cmd>Execute arbitrary command on agent (raw passthrough)
shellshell <id> <cmd>Execute via shell interpreter (sh -c / cmd /c)
broadcastbroadcast <id,...|all> <cmd>Broadcast command to selected or all agents
killkill <id>Terminate an agent session
pingping <id>Ping agent to verify liveness (raven: protocol)
reconnectreconnect <id>Ask RAVEN agent to reconnect
self-destructself-destruct <id>Wipe agent and terminate session (ADMIN+)
sleepsleep <id> <seconds>Set agent sleep interval
jitterjitter <id> <ms>Set agent jitter delay in ms
CommandSyntaxDescription
whoamiwhoami <id>Current user info
idid <id>User ID / groups
hostnamehostname <id>Show agent hostname
unameuname <id>OS / kernel info
psps <id>Process list
netstatnetstat <id>Network connections
ifconfigifconfig <id>Network interfaces
arparp <id>ARP table
routeroute <id>Routing table
usersusers <id>Local users list
servicesservices <id>Running services
screenshotscreenshot <id>Capture desktop screenshot (raven: protocol)
privcheckprivcheck <id>Privilege escalation check
antivirusantivirus <id>Detect AV / EDR presence
hashdumphashdump <id>Dump credential hashes (raven: protocol)
keystrokekeystroke <id> <on|off>Toggle keylogger on agent
dumpbrowsersdumpbrowsers <id>Saved browser credentials (raven: protocol)
wifidumpwifidump <id>WiFi credentials dump
osqueryosquery <id> <sql>Run osquery SQL on agent
CommandSyntaxDescription
lsls <id> [path]List directory
pwdpwd <id>Working directory
cdcd <id> <path>Change directory on agent
catcat <id> <file>Read file contents
headhead <id> <file> [n]First N lines of a file
tailtail <id> <file> [n]Last N lines of a file
rmrm <id> <path>Delete file / directory
mkdirmkdir <id> <path>Create directory
cpcp <id> <src> <dst>Copy file or directory
mvmv <id> <src> <dst>Move file or directory
findfind <id> <path> [name]Find files
grepgrep <id> <pattern> <file>Search text in file
hashhash <id> <file> [sha256|md5]File hash computation
downloaddownload <id> <remote-path>Download file from agent (raven: protocol)
uploadupload <id> <local-path> [remote-path]Upload file to agent (raven: protocol)
CommandSyntaxDescription
pivotpivot <id> <host:port>Register pivot route through agent
portfwdportfwd <id> <lport> <rhost> <rport>Port forward through agent
sockssocks <id> <lport>SOCKS5 proxy through agent
spawnspawn <id>Spawn new agent process on target
shellcodeshellcode <id> <hex>Inject shellcode into agent process
persistpersist <id> [method]Install persistence (cron/bashrc/systemd/reg/schtask)
unpersistunpersist <id> [method]Remove persistence entry
runasrunas <id> <user> <pass> <cmd>Run command as another user
OptionLong OptionDescription
-i-init-certsInitialize CA and server certificates
-s <host>-server <host>Server host used during cert init
-a <id>-agent <id>Generate a single agent certificate
-m-multiGenerate multiple agent certificates
-c <count>-count <count>Number of agents to generate (default: 10)
-u <prefix>-prefix <prefix>Username prefix for bulk agent certs
-ah <host>-agent-host <host>Agent callback host
-ap <port>-agent-port <port>Agent callback port
-am-agent-mtlsEnable mTLS in generated agent
-ps-persistentEnable persistence in generated agent
-hc-hide-consoleHide console window in generated agent
-l-listList all generated agent certificates
-r <id>-revoke <id>Revoke an agent certificate by ID
OptionLong OptionDescription
-AO-add-operatorAdd a new operator
-RO-remove-operatorRemove an existing operator
-OP-operator-permissionView or update operator role
-u <user>-username <user>Operator username
-pw <pass>-password <pass>Operator password (min 8 characters)
-r <role>-role <role>Operator role: SUPER / ADMIN / OPERATOR / MEMBER
Architecture

System Architecture

How RAVEN C2 v3.0 components interconnect in a live deployment.

OPERATOR INTERFACES Web Panel · CLI · JavaFX GUI RAVEN C2 SERVER Session Manager · mTLS Auth · AES-256-GCM Event System · Cert Manager · File Transfer RAVEN AGENT 192.168.1.42 session-1 · mTLS METERPRETER 10.0.0.15 session-2 · multi-proto REVERSE SHELL 172.16.0.8 session-3 · tcp + more agents mTLS / AES-256-GCM OUTPUT LOGS ./output CONFIG server.properties

Operator Interfaces

Web Panel (browser), CLI terminal, and JavaFX desktop GUI — all connecting to the same C2 server core.

C2 Server Core

Thread-safe session manager, mTLS auth, AES-256-GCM encryption, event-driven architecture, and certificate lifecycle manager.

Multi-Protocol Agents

Supports RAVEN agents (mTLS), Meterpreter sessions, and plain reverse shells — all managed from one console.

Output & Config

All session I/O captured to timestamped logs in ./output. All settings configurable via server.properties.

Configuration

Configuration Reference

All parameters available in config/server/raven.properties.

properties
# C2 listener
server.host=0.0.0.0
server.port=4444
server.mode=multi

# Web panel
web.host=0.0.0.0
web.port=5000

# Database backend (none | sqlite | postgres | mongo)
db.type=none

# TLS protocol
cert.tls.protocol=TLSv1.3

# Logging
logging.level=INFO
logging.file.enabled=false
Server
KeyDefaultDescription
server.host0.0.0.0Bind address for C2 listener
server.port4444Default agent listener port
server.modemultiListener mode (single / multi)
web.host0.0.0.0Web panel bind address
web.port5000Web panel HTTP port
Database
Valuedb.typeNotes
In-memorynoneDefault, no persistence
SQLitesqliteFile-based, no server required
PostgreSQLpostgresProduction-grade relational DB
MongoDBmongoDocument-oriented store
Security
KeyDefaultDescription
cert.tls.protocolTLSv1.3TLS protocol version enforced
logging.levelINFOLog verbosity level
logging.file.enabledfalseEnable file-based logging

LEGAL DISCLAIMER

RAVEN C2 Framework is an offensive security tool designed exclusively for authorized penetration testing and red team engagements, controlled lab and research environments, and cybersecurity education under supervised conditions. You MUST have explicit written authorization from the system/network owner before deployment. Unauthorized use constitutes a criminal offense under applicable international and local cybercrime laws.

Ready to deploy

Explore the source, open issues, or contribute to RAVEN C2 on GitHub.