Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
279 changes: 144 additions & 135 deletions build.ps1 → RAVEN-C2/build.ps1
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,135 +1,144 @@
#Requires -Version 5.1

Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

$TotalSteps = 4
$Script:CurrentStep = 0

function PrintInfo {
param([string]$Message)
$Script:CurrentStep++
Write-Host "[" -NoNewline -ForegroundColor White
Write-Host "INFO" -NoNewline -ForegroundColor Blue
Write-Host "]" -NoNewline -ForegroundColor White
Write-Host " [step $Script:CurrentStep/$TotalSteps] $Message" -ForegroundColor White
}

function PrintWarn {
param([string]$Message)
Write-Host "[" -NoNewline -ForegroundColor White
Write-Host "WARN" -NoNewline -ForegroundColor Yellow
Write-Host "]" -NoNewline -ForegroundColor White
Write-Host " [step $Script:CurrentStep/$TotalSteps] $Message" -ForegroundColor White
}

function PrintError {
param([string]$Message)
Write-Host "[" -NoNewline -ForegroundColor White
Write-Host "ERROR" -NoNewline -ForegroundColor Red
Write-Host "]" -NoNewline -ForegroundColor White
Write-Host " [step $Script:CurrentStep/$TotalSteps] $Message" -ForegroundColor White
}

function DetectWingetOrChoco {
if (Get-Command winget -ErrorAction SilentlyContinue) {
return "winget"
} elseif (Get-Command choco -ErrorAction SilentlyContinue) {
return "choco"
} else {
return "unknown"
}
}

function InstallJavaWindows {
param([string]$PackageManager)
switch ($PackageManager) {
"winget" {
winget install --id Microsoft.OpenJDK.17 --accept-source-agreements --accept-package-agreements -e
}
"choco" {
choco install openjdk17 -y
}
default {
PrintError "No supported package manager found (winget/choco). Install OpenJDK manually."
exit 1
}
}
}

function InstallMavenWindows {
param([string]$PackageManager)
switch ($PackageManager) {
"winget" {
winget install --id Apache.Maven --accept-source-agreements --accept-package-agreements -e
}
"choco" {
choco install maven -y
}
default {
PrintError "No supported package manager found (winget/choco). Install Maven manually."
exit 1
}
}
}

function CheckAndInstallJava {
PrintInfo "Checking OpenJDK Java installation"
$JavaCmd = Get-Command java -ErrorAction SilentlyContinue
if ($JavaCmd) {
$JavaVersion = & java -version 2>&1 | Select-Object -First 1
PrintWarn "Java already installed: $JavaVersion"
} else {
PrintWarn "Java not found, detecting package manager..."
$PackageManager = DetectWingetOrChoco
PrintWarn "Installing OpenJDK via [$PackageManager]..."
InstallJavaWindows -PackageManager $PackageManager
PrintInfo "Java installed successfully"
}
}

function CheckAndInstallMaven {
PrintInfo "Checking Maven installation"
$MvnCmd = Get-Command mvn -ErrorAction SilentlyContinue
if ($MvnCmd) {
$MvnVersion = & mvn -version 2>&1 | Select-Object -First 1
PrintWarn "Maven already installed: $MvnVersion"
} else {
PrintWarn "Maven not found, detecting package manager..."
$PackageManager = DetectWingetOrChoco
PrintWarn "Installing Maven via [$PackageManager]..."
InstallMavenWindows -PackageManager $PackageManager
PrintInfo "Maven installed successfully"
}
}

function RunBuild {
PrintInfo "Running Maven build"
& mvn clean package -q -X
if ($LASTEXITCODE -ne 0) {
PrintError "Maven build failed"
exit 1
}

$ArtifactPath = "target\raven-3.0.0.jar"
if (-not (Test-Path $ArtifactPath)) {
PrintError "Build artifact not found: $ArtifactPath"
exit 1
}

Copy-Item -Path $ArtifactPath -Destination "." -Force
}

function RunApp {
PrintInfo "Launching application"
& java -jar raven-3.0.0.jar -h
}

function Main {
CheckAndInstallJava
CheckAndInstallMaven
RunBuild
RunApp
}

Main
#Requires -Version 5.1

Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

$TotalSteps = 4
$Script:CurrentStep = 0

function PrintInfo {
param([string]$Message)
$Script:CurrentStep++
Write-Host "[" -NoNewline -ForegroundColor White
Write-Host "INFO" -NoNewline -ForegroundColor Blue
Write-Host "]" -NoNewline -ForegroundColor White
Write-Host " [step $Script:CurrentStep/$TotalSteps] $Message" -ForegroundColor White
}

function PrintWarn {
param([string]$Message)
Write-Host "[" -NoNewline -ForegroundColor White
Write-Host "WARN" -NoNewline -ForegroundColor Yellow
Write-Host "]" -NoNewline -ForegroundColor White
Write-Host " [step $Script:CurrentStep/$TotalSteps] $Message" -ForegroundColor White
}

function PrintError {
param([string]$Message)
Write-Host "[" -NoNewline -ForegroundColor White
Write-Host "ERROR" -NoNewline -ForegroundColor Red
Write-Host "]" -NoNewline -ForegroundColor White
Write-Host " [step $Script:CurrentStep/$TotalSteps] $Message" -ForegroundColor White
}

function DetectWingetOrChoco {
if (Get-Command winget -ErrorAction SilentlyContinue) {
return "winget"
} elseif (Get-Command choco -ErrorAction SilentlyContinue) {
return "choco"
} else {
return "unknown"
}
}

function InstallJavaWindows {
param([string]$PackageManager)
switch ($PackageManager) {
"winget" {
winget install --id Microsoft.OpenJDK.17 --accept-source-agreements --accept-package-agreements -e
}
"choco" {
choco install openjdk17 -y
}
default {
PrintError "No supported package manager found (winget/choco). Install OpenJDK manually."
exit 1
}
}
}

function InstallMavenWindows {
param([string]$PackageManager)
switch ($PackageManager) {
"winget" {
winget install --id Apache.Maven --accept-source-agreements --accept-package-agreements -e
}
"choco" {
choco install maven -y
}
default {
PrintError "No supported package manager found (winget/choco). Install Maven manually."
exit 1
}
}
}

function GetCommandVersion {
param([string]$Command)
$PreviousPreference = $ErrorActionPreference
$ErrorActionPreference = "Continue"
$Output = & $Command 2>&1 | ForEach-Object { "$_" } | Select-Object -First 1
$ErrorActionPreference = $PreviousPreference
return $Output
}

function CheckAndInstallJava {
PrintInfo "Checking OpenJDK Java installation"
$JavaCmd = Get-Command java -ErrorAction SilentlyContinue
if ($JavaCmd) {
$JavaVersion = GetCommandVersion -Command "java"
PrintWarn "Java already installed: $JavaVersion"
} else {
PrintWarn "Java not found, detecting package manager..."
$PackageManager = DetectWingetOrChoco
PrintWarn "Installing OpenJDK via [$PackageManager]..."
InstallJavaWindows -PackageManager $PackageManager
PrintInfo "Java installed successfully"
}
}

function CheckAndInstallMaven {
PrintInfo "Checking Maven installation"
$MvnCmd = Get-Command mvn -ErrorAction SilentlyContinue
if ($MvnCmd) {
$MvnVersion = GetCommandVersion -Command "mvn"
PrintWarn "Maven already installed: $MvnVersion"
} else {
PrintWarn "Maven not found, detecting package manager..."
$PackageManager = DetectWingetOrChoco
PrintWarn "Installing Maven via [$PackageManager]..."
InstallMavenWindows -PackageManager $PackageManager
PrintInfo "Maven installed successfully"
}
}

function RunBuild {
PrintInfo "Running Maven build"
& mvn clean package -q -X
if ($LASTEXITCODE -ne 0) {
PrintError "Maven build failed"
exit 1
}

$ArtifactPath = "target\raven-3.0.0.jar"
if (-not (Test-Path $ArtifactPath)) {
PrintError "Build artifact not found: $ArtifactPath"
exit 1
}

Copy-Item -Path $ArtifactPath -Destination "." -Force
}

function RunApp {
PrintInfo "Launching application"
& java -jar raven-3.0.0.jar -h
}

function Main {
CheckAndInstallJava
CheckAndInstallMaven
RunBuild
RunApp
}

Main
4 changes: 3 additions & 1 deletion build.sh → RAVEN-C2/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ readonly Reset='\033[0m'
TotalSteps=4
CurrentStep=0

ConfigFile="pom.xml"

PrintInfo() {
local Message="$1"
CurrentStep=$((CurrentStep + 1))
Expand Down Expand Up @@ -127,7 +129,7 @@ CheckAndInstallMaven() {

RunBuild() {
PrintInfo "Running Maven build"
if ! mvn clean package -q -X; then
if ! mvn clean package -q -X -f $ConfigFile; then
PrintError "Maven build failed"
exit 1
fi
Expand Down
21 changes: 10 additions & 11 deletions server.properties → RAVEN-C2/config/server/server.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
# RAVEN C2 default configurations
# AUTHOR: MatrixTM26
# RAVEN V1.0

# NOTE:
# This tool is currently under development, in some release versions, you may encounter functional errors or logic flaws.


# server general configuration
server.host = 0.0.0.0
Expand All @@ -17,8 +23,8 @@ server.mode = multi
# default web mode configuration
web.host = 127.0.0.1
web.port = 5000
web.template.dir = config/app/templates
web.static.dir = config/app/static
web.template.dir = config/interfaces/app/templates
web.static.dir = config/interfaces/app/static

# HTTP/HTTPS beacon port (-1 to disable)
web.beacon.port = -1
Expand Down Expand Up @@ -75,19 +81,12 @@ agent.buffer.size = 8192

# logging
# debug level: INFO | DEBUG | VERBOSE | WARN | ERROR
logging.level = INFO
logging.verbose = true
logging.level = VERBOSE
logging.verbose = false
logging.max.entries = 10000
logging.file = logs/raven.log
logging.file.enabled = true

# database (teamserver)
# database type : none | postgresql | mongodb
# PostgreSQL : jdbc:postgresql://host:5432/dbname
# MongoDB : mongodb://host:27017
db.type = sqlite
db.url = jdbc:postgresql://localhost:5432/ravenc2

# database
# database backend:
# sqlite = local database (recommended)
Expand Down
Empty file added RAVEN-C2/note.txt
Empty file.
Loading
Loading