9.2 Získání přístupu (Getting a shell)

Poté, co jsme objevili potenciální zranitelnosti nebo otevřené služby, je cílem získat interaktivní příkazovou řádku (shell) na cílovém stroji.

Přístupy k získání shellu prostřednictvím přihlašovacích údajů

Způsoby nalezení a využití hesel
  • Výchozí přihlašovací údaje: Kontrola dokumentace a instalačních manuálů běžícího softwaru.
  • Brute-forcing (hádání hrubou silou): Enumerace uživatelských jmen a zkoušení hesel pomocí nástrojů jako nxc (netexec), wfuzz, hydra. Nutno dát pozor na uzamčení účtů (account lockout) nebo banování IP.
  • Nalezení hesel ve službách: Extrakce hesel z FTP, SMB, NFS nebo zdrojových kódů.
  • Recyklace hesel (Password reuse): Pokud zjistíte heslo do jedné služby, je pravděpodobné, že uživatel používá stejné heslo i jinde.
  • Odhadování hesel podle kontextu: Zaměření hesel na základě informací o cílové společnosti nebo jménech uživatelů.

Webové aplikace

Pokud cílový stroj obsahuje webovou aplikaci, často se nabízí několik běžných zranitelností vedoucích k RCE (Remote Code Execution) a tím k shellu.

Zranitelnosti vedoucí ke spuštění kódu
  • File upload + LFI/RFI: Zranitelný upload umožní nahrání škodlivého skriptu a přes Local/Remote File Inclusion jeho následné spuštění.
  • Server-Side Template Injection (SSTI): Neopatrné zpracování šablon, kdy dojde k vyhodnocení útočníkova vstupu na straně serveru.
  • Command injection: Přímé vstříknutí příkazů operačního systému, které webový server spustí s vlastními právy.
  • Deserialization: Využití nesprávného obnovení objektů (deserializace), což může vést ke spuštění kódu při destrukci objektu.
  • SQL injection: Kromě extrakce dat z databáze lze často (např. pomocí xp_cmdshell na MSSQL nebo INTO OUTFILE u MySQL) zapisovat na disk a spustit kód.
  • WebDAV misconfiguration: Špatně nastavený WebDAV může útočníkovi povolit nahrání a spuštění souborů.
Co dělat, když nic z výše uvedeného nefunguje?
Pokud výchozí techniky na webu nevedou k úspěchu:
1. Ověřte přesnou verzi daného webového softwaru a hledejte pro ni specifické zranitelnosti a exploity.
2. Pokud ani to nepomůže, vraťte se k fázi enumerace a pokuste se najít a zneužít jinou službu běžící na stroji.