You are currently viewing PSExec
  • Post author:
  • Post last modified:25.06.2025
  • Post category:Metody

PSExec

PSExec to narzędzie firmy Microsoft z pakietu Sysinternals, które umożliwia zdalne wykonywanie procesów na innych systemach Windows. W kontekście testów penetracyjnych, PSExec (oraz jego klony) są szeroko wykorzystywane do lateral movement po sieci oraz do uzyskiwania dostępu do systemów docelowych po kompromitacji danych uwierzytelniających.

Na czym polega atak

PSExec wykorzystuje protokół SMB do komunikacji z docelowym systemem i wymaga uprawnień administratora lokalnego na maszynie docelowej. Proces działania:

  1. Uwierzytelnienie: Połączenie z docelowym systemem przy użyciu danych uwierzytelniających (hasło lub hash)
  2. Upload service: Przesłanie pliku wykonywalnego usługi na system docelowy
  3. Service creation: Utworzenie i uruchomienie usługi Windows na zdalnym systemie
  4. Command execution: Wykonanie poleceń przez utworzoną usługę
  5. Cleanup: Usunięcie plików i usługi po zakończeniu sesji

Jakie luki wykorzystuje

  • Credential reuse: Ponowne wykorzystanie skompromitowanych danych uwierzytelniających
  • Administrative privileges: Wykorzystanie uprawnień administratora lokalnego
  • SMB protocol: Komunikacja przez protokół SMB (porty 135, 445)
  • Windows service mechanism: Wykorzystanie mechanizmu usług Windows do wykonania kodu
  • Pass-the-hash: Możliwość użycia hashy NTLM zamiast jawnego hasła

Przykładowe polecenia

PSExec z hasłem

psexec.py <domain>/<user>:<password>@<ip address>

Wyjaśnienie:

  • <domain> – nazwa domeny lub WORKGROUP dla komputerów lokalnych
  • <user> – nazwa użytkownika z uprawnieniami administratora
  • <password> – hasło użytkownika w postaci jawnej
  • <ip address> – adres IP docelowego systemu

Przykład:

psexec.py CONTOSO/administrator:P@ssw0rd@192.168.1.100

PSExec z hashem (Pass-the-Hash)

psexec.py <user>@<ip> -hashes <hash>

Wyjaśnienie:

  • -hashes <hash> – hash NTLM w formacie LM:NTLM (zwykle LM jest pusty)
  • Pozwala na uwierzytelnienie bez znajomości jawnego hasła

Przykład:

psexec.py administrator@192.168.1.100 -hashes aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76

Mitygacja

Podstawowe metody obrony z uwzględnieniem ograniczeń:

Włączenie podpisywania SMB na wszystkich urządzeniach

  • Zalety: Zapobiega atakom typu SMB relay i utrudnia nieuprawniony dostęp
  • Wady: Może powodować problemy z wydajnością sieci
  • Konfiguracja: Group Policy → Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options

Wyłączenie uwierzytelnienia NTLM

  • Zalety: Całkowicie zatrzymuje ataki Pass-the-Hash
  • Wady: Jeżeli Kerberos przestanie działać, system wróci do uwierzytelnienia NTLM
  • Konfiguracja: Group Policy → „Network security: Restrict NTLM”

Podział kont na kategorie

  • Zalety: Ogranicza konta z najwyższymi uprawnieniami (domain admins) do konkretnych czynności
  • Wady: Może generować spory opór w stosowaniu tego typu polityk
  • Implementacja: Segregacja kont administracyjnych i użytkowników

Blokada administratorów lokalnych

  • Zalety: Może zapobiec wielu technikom lateral movement
  • Wady: Może być uciążliwe dla helpdesku
  • Konfiguracja: Wyłączenie lub ograniczenie kont administratorów lokalnych

Dodatkowe środki bezpieczeństwa

  • Network segmentation: Ograniczenie komunikacji SMB między segmentami sieci
  • Privileged Access Management (PAM): Centralne zarządzanie kontami uprzywilejowanymi
  • Application whitelisting: Ograniczenie możliwości uruchamiania nieautoryzowanych programów