Compare commits
12 Commits
942debe424
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
aa883ac39d
|
|||
|
3d1c08d174
|
|||
|
f335e3205d
|
|||
|
04683589ed
|
|||
|
d33d8a9712
|
|||
|
28d2344f8f
|
|||
|
bf2edcaaa4
|
|||
|
14b4b8bfa2
|
|||
|
01fe12a9ac
|
|||
|
83fb8e1287
|
|||
|
16e1740536
|
|||
|
47946bd1dc
|
@@ -1 +1,2 @@
|
||||
.env
|
||||
setup.conf
|
||||
|
||||
+2
-6
@@ -10,12 +10,6 @@ RUN apt update && apt -y install \
|
||||
xz-utils \
|
||||
&& 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 .
|
||||
|
||||
@@ -39,5 +33,7 @@ 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
|
||||
COPY --from=builder /build/teamserver/pkg/handlers /app/teamserver/pkg/handlers
|
||||
COPY --from=builder /build/payloads /app/payloads
|
||||
|
||||
EXPOSE 40056
|
||||
|
||||
@@ -17,10 +17,15 @@ services:
|
||||
cloudflare-tunnel:
|
||||
container_name: havoc-cloudflare-tunnel
|
||||
image: cloudflare/cloudflared:latest
|
||||
user: root
|
||||
restart: unless-stopped
|
||||
command: tunnel --no-autoupdate run --token ${TUNNEL_TOKEN}
|
||||
depends_on:
|
||||
- havoc-teamserver
|
||||
environment:
|
||||
- SSL_CERT_FILE=/app/certs/teamserver.crt
|
||||
volumes:
|
||||
- ./profiles/teamserver.crt:/app/certs/teamserver.crt:ro
|
||||
networks:
|
||||
- c2-network
|
||||
|
||||
|
||||
+14
-9
@@ -3,8 +3,8 @@ Teamserver {
|
||||
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"
|
||||
Compiler64 = "/usr/bin/x86_64-w64-mingw32-gcc"
|
||||
Compiler86 = "/usr/bin/i686-w64-mingw32-gcc"
|
||||
Nasm = "/usr/bin/nasm"
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,7 @@ Teamserver {
|
||||
WebHook {
|
||||
Discord {
|
||||
# required
|
||||
Url = "https://discord.com/api/webhooks/<bla>/<bla>" # replace this with your webhook
|
||||
Url = "{{DISCORD_WEBHOOK}}"
|
||||
|
||||
# optional
|
||||
AvatarUrl = "https://raw.githubusercontent.com/HavocFramework/Havoc/main/assets/Havoc.png" # url to an image to use as an avatar
|
||||
@@ -24,8 +24,8 @@ WebHook {
|
||||
|
||||
# For God's sake, change this...
|
||||
Operators {
|
||||
user "admin" {
|
||||
Password = "admin"
|
||||
user "{{OPERATOR_USER}}" {
|
||||
Password = "{{OPERATOR_PASS}}"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,14 +33,19 @@ Listeners {
|
||||
Http {
|
||||
Name = "Cloudflare HTTP Listener"
|
||||
HostBind = "0.0.0.0"
|
||||
PortBind = 80
|
||||
PortBind = 443
|
||||
PortConn = 443
|
||||
HostRotation = "round-robin"
|
||||
Secure = false
|
||||
UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
|
||||
Secure = true
|
||||
UserAgent = "Mozilla/5.0 Windows NT 10.0 Win64 x64 Chrome/120.0.0.0"
|
||||
|
||||
Cert {
|
||||
Cert = "/app/profiles/teamserver.crt"
|
||||
Key = "/app/profiles/teamserver.key"
|
||||
}
|
||||
|
||||
Hosts = [
|
||||
"c2.example.com" # replace with your actual host
|
||||
"{{C2_DOMAIN}}"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDOjCCAiKgAwIBAgIUG25PUmeE62tLEJZr2DF1Gd1hGfQwDQYJKoZIhvcNAQEL
|
||||
BQAwGzEZMBcGA1UEAwwQaGF2b2MtdGVhbXNlcnZlcjAeFw0yNjA2MjYxMDQ0MDha
|
||||
Fw0yNzA2MjYxMDQ0MDhaMBsxGTAXBgNVBAMMEGhhdm9jLXRlYW1zZXJ2ZXIwggEi
|
||||
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDbK3dc9JuvDyycn4Q6693Hz9/P
|
||||
CooBlzoipDcIp2GenR6J/n5SosxnrkQhbgUUgYRsBgGp7OjuGFbBjIvJ+ew4Bwn4
|
||||
4kXBdjGFvWKrgNkhqc9cJs8Sv5VBC5htB1B42Plnj3d8oyOpjERXUS3P++bAu3N9
|
||||
gO+EQjXf8fIswCNDK6z0RtcT8ZvPy8YYGIXNR7FwAPn0bgTv4f3gEBnTAqBpDwei
|
||||
pNvvxCKIxjMaCi40l3ngGYO82E6bIYXIe/vyMKUBQ1KOUC/zsF5feJDYAVslo2dI
|
||||
YsckSJlQyYz3YCTPeZTNl+QLGjA+btSXKRak/iq7zJ+ELe3dMW88VAk1v5odAgMB
|
||||
AAGjdjB0MB0GA1UdDgQWBBRGKSIXTwTzK3ShMav0yHABqlZaYTAfBgNVHSMEGDAW
|
||||
gBRGKSIXTwTzK3ShMav0yHABqlZaYTAPBgNVHRMBAf8EBTADAQH/MCEGA1UdEQQa
|
||||
MBiCEGhhdm9jLXRlYW1zZXJ2ZXKHBAAAAAAwDQYJKoZIhvcNAQELBQADggEBAKUi
|
||||
TGOs7LqaMakfAREmMeNyKl7TQG57d2t3MAH+1jSwTI4N210yKau7Dpw4+NgkIhA6
|
||||
Z52a6ciXkJ/jcs393voTVAHvcXSBpldYKJMaeGDN0U0I17gZtQxcCliaub/LKzmm
|
||||
coQknW5gcEz2wRWxmwRIYQAJPmvUC+nCzYd080vQgR1nn6tWUGmyUImeSj8znDwf
|
||||
HGmoZBY4t59xegE6Q1wUNUE73j3Azb7pRxrf7vmltaIpW6oluT3epM/LC7b3460H
|
||||
xdFRhxFcN73YtsucER1nc25BvGrFLxbzR2eoboS/JSmvl2nHhV0oEey7mWEL60yA
|
||||
reH9k7OpeWd82v3dDcE=
|
||||
-----END CERTIFICATE-----
|
||||
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDbK3dc9JuvDyyc
|
||||
n4Q6693Hz9/PCooBlzoipDcIp2GenR6J/n5SosxnrkQhbgUUgYRsBgGp7OjuGFbB
|
||||
jIvJ+ew4Bwn44kXBdjGFvWKrgNkhqc9cJs8Sv5VBC5htB1B42Plnj3d8oyOpjERX
|
||||
US3P++bAu3N9gO+EQjXf8fIswCNDK6z0RtcT8ZvPy8YYGIXNR7FwAPn0bgTv4f3g
|
||||
EBnTAqBpDweipNvvxCKIxjMaCi40l3ngGYO82E6bIYXIe/vyMKUBQ1KOUC/zsF5f
|
||||
eJDYAVslo2dIYsckSJlQyYz3YCTPeZTNl+QLGjA+btSXKRak/iq7zJ+ELe3dMW88
|
||||
VAk1v5odAgMBAAECggEABr/crevphHdc6hjef1sGqjHcZFmgfOKNm4X/nOBcuQAB
|
||||
MgI4nS5eyZ2cAwSKmwJPE+2ObQ967+Qnfc/oeSidbe9HjxbWy5mqdkIqEPqHlUoP
|
||||
tPiL/XmRbN6gy9DDGWmjKp2IMjoq7byAWUkKdmJ9TXeoW5fWKHZKhvJCQT8MhvO5
|
||||
h1YY4qr+c8pPhZ3xKa6xEALqsGdo//yJvLTZMYr6kNzhxo+tfung1CuvDQXsiP2w
|
||||
u8Tba6KnxeMLhTgZWnmtIyO4HBfL7OJEK9ptzI73lti9cQP1QXTPTUJ7r1W9v+sW
|
||||
qBfjwrnKuz59/hTPxRzgMAitqqufBn9gjuBnqfgjaQKBgQD1bq06O2YQB+UIa/xY
|
||||
4sWbk6jmEQU2hl3cjcij+hTdob8G/W51wamEH4UnKOZiST/4tzhqxfhlVmk7sQAA
|
||||
UpbvpQddHE+JSlbNQ54O+J3uyNobd1QiHyJ0R7QRTTxQNiqNz1UTEv8snQ0VhtC4
|
||||
K2OtZPOjwivSZ5gD1nd8KPeHtQKBgQDkm05NsbcBjMJkgtvtCPgElZmpXQHShBW3
|
||||
kS6kwt41dt6GN8DXL2uLmbzxmIsiV3JNopK/ipK9N40km6OcrB9Sov+1aeWBH/yd
|
||||
rsm2i6uT9gCIALMHpqy5PgEp383BzlFVKyhLAj8K+5H63F1Vs2S70heWJPjrBaxP
|
||||
32GiqSv5yQKBgBBYv8bqH+EfdXy7HIKbEAhNrGkuZwd7qZLACsYJKQyd8kg35vyG
|
||||
2pCHPOofykBvmogpQ+OwrduqBrZIErTyy0TI3BWyhgWh4ugnAccDfhliXUyJBRyE
|
||||
sFnIUND6MPMyuGDbl1H+6OoCx9VQNmSd1zS8TZHxo9OOvMw8o5asb9glAoGAcT29
|
||||
fB8cWFgxszhfWPuoYBz7ETpRPMbROy1fvZ4KFNHdSP81N2L2EyEEx2iZA1nt9Scj
|
||||
Kl6qcbCi6g9u7J0Wpwi3QlZCqcP+jt2Wbiahx5mEidpO1OtrhBeC3AtRET/yag4G
|
||||
16E1OWuE1I90bI+Axsk7hdSquUEGKkqtQrYqYoECgYEAmkjx9TXAWssaDIpP1pcw
|
||||
1pNwncqOVtG18yo96gnmlKnkcPV84C53QJ3HCbEQqg3Cn8MmFPNurt55uSqfHipP
|
||||
02pChfkbwuss7YuyeGQMwhmmoNpLD9zcq3X2ZKSyVUW8zkHubaRBA58UFNO0GfwZ
|
||||
402Gu0/p7JWBOgJGC3/FJKw=
|
||||
-----END PRIVATE KEY-----
|
||||
@@ -0,0 +1,9 @@
|
||||
# Listener & Cloudflare
|
||||
C2_DOMAIN="c2.example.com"
|
||||
|
||||
# OpCreds (Teamserver)
|
||||
OPERATOR_USER="admin"
|
||||
OPERATOR_PASS="admin"
|
||||
|
||||
# Discord Webhook Config
|
||||
DISCORD_WEBHOOK="https://discord.com/api/webhooks/123456/abcdef"
|
||||
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
CONFIG_FILE="setup.conf"
|
||||
PROFILE_FILE="./profiles/default.yaotl"
|
||||
|
||||
# validate files
|
||||
if [ ! -f "$CONFIG_FILE" ]; then
|
||||
echo -e "\e[31m[!] Error: Could not find ${CONFIG_FILE}\e[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$PROFILE_FILE" ]; then
|
||||
echo -e "\e[31m[!] Error: Could not find default profile in ${PROFILE_FILE}\e[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# load vars
|
||||
source "$CONFIG_FILE"
|
||||
|
||||
echo -e "\e[34m[*] Appliying changes...\e[0m"
|
||||
|
||||
# replace useing sed
|
||||
sed -i "s|{{C2_DOMAIN}}|${C2_DOMAIN}|g" "$PROFILE_FILE"
|
||||
sed -i "s|{{OPERATOR_USER}}|${OPERATOR_USER}|g" "$PROFILE_FILE"
|
||||
sed -i "s|{{OPERATOR_PASS}}|${OPERATOR_PASS}|g" "$PROFILE_FILE"
|
||||
sed -i "s|{{DISCORD_WEBHOOK}}|${DISCORD_WEBHOOK}|g" "$PROFILE_FILE"
|
||||
sed -i "s|{{DEMON_SLEEP}}|${DEMON_SLEEP}|g" "$PROFILE_FILE"
|
||||
sed -i "s|{{DEMON_JITTER}}|${DEMON_JITTER}|g" "$PROFILE_FILE"
|
||||
|
||||
echo -e "\e[32m[+] Placeholders have been replaced successfully.\e[0m"
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
TARGET_HOST="${1:-c2.example.com}"
|
||||
|
||||
if [[ -z "$TARGET_HOST" ]]; then
|
||||
echo "[!] Error: Please specify a target host." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "\e[34m[*] Launching secure TCP proxy to: \e[1;36m${TARGET_HOST}\e[0m"
|
||||
echo -e "\e[32m[+] Listening locally on 127.0.0.1:40056\e[0m"
|
||||
echo -e "\e[33m[*] Press Ctrl+C to close the bridge when done.\e[0m"
|
||||
echo "--------------------------------------------------------"
|
||||
|
||||
cloudflared access tcp --hostname "$TARGET_HOST" --listener 127.0.0.1:40056
|
||||
Reference in New Issue
Block a user