pspy
Úvod a kontext
pspy je malý, ale velmi praktický linuxový nástroj pro pasivní sledování procesů bez root oprávnění. Neprovádí exploit a nic neláme. Jen ukazuje, co se na systému skutečně spouští, kdo to spouští a s jakou periodou. Právě to z něj dělá velmi silný nástroj po footholdu, kdy je potřeba odhalit cron, login hook, maintenance skript nebo jiný privilegovaný workflow.
Na Writeupu bez něj skoro nešlo uvidět, že root při přihlášení volá run-parts bez absolutní cesty. Na Magicu zase pomohl pochopit, že rootovská binárka ve skutečnosti spoléhá na externí nástroj lshw. pspy tedy není jen “procps pro chudé”. Je to nástroj na hledání časovaných nebo nepřímých spouštěcích momentů.
Co tenhle nástroj v praxi řeší
Po získání user shellu bývá problém často stejný: systém vypadá staticky, ale root mezitím v pozadí něco pravidelně spouští. pspy pomáhá odpovědět na otázky:
- co se na hostu spouští periodicky,
- co se děje při loginu nebo jiné akci,
- které skripty a binárky root skutečně volá,
- a zda některý z těchto kroků spoléhá na PATH, wrapper nebo zapisovatelný soubor.
Právě proto se dobře doplňuje s technikami jako PATH, PYTHONPATH a wrapper hijack.
Nejčastější scénáře využití v tomto projektu
Odhalení privilegovaného procesu, který není vidět v souborech
Na Writeupu nevedla root část přes další webovou slabinu, ale přes špatně kvalifikované volání run-parts. Problém byl v tom, že tenhle detail nebyl na první pohled vidět v obvious cron souborech ani v běžné manuální enumeraci. pspy ho odhalilo až pozorováním reálného chování při loginu.
To je prakticky přesně jeho nejsilnější role: ukázat, co se opravdu děje, ne co si myslíte, že se děje podle konfigurace.
Čtení root workflow nad cizí binárkou nebo wrapperem
Na Magicu ukázala lokální enumerace root-owned binárku /bin/sysinfo, ale teprve pozorování chování dává smysl celé eskalaci. pspy napoví, že binárka sahá po externím lshw bez absolutní cesty. To je přesně okamžik, kdy se z nenápadné pomocné utility stává PATH hijack.
Podobné situace jsou důležité proto, že bez pozorování procesů není jasné:
- zda se spouští wrapper nebo přímo binárka,
- které nástroje cestou volá,
- a kdy je nejlepší okamžik pro podstrčení vlastního souboru.
Validace periodických úloh a maintenance chování
Na Playeru pspy ukázalo periodicky spouštěný root proces. To je typický scénář, kdy samotná existence cron nebo timeru ještě nestačí. Důležitější je vědět, co přesně běží, v jakém intervalu a jestli workflow pracuje s něčím, co může běžný uživatel ovlivnit.
Kdy je pspy nejlepší volba
pspy dává největší smysl tehdy, když:
- máte user shell, ale nevidíte přímou cestu k rootu,
- tušíte cron, timer, login hook nebo maintenance úlohu,
- potřebujete potvrdit, které procesy běží jako root,
- nebo hledáte chvíli, kdy privilegovaný proces sahá po cizí cestě, souboru nebo wrapperu.
Naopak není nejvhodnější jako náhrada za celou lokální enumeraci. Nedetekuje všechno a neřekne vám automaticky, co je zneužitelné. Jen velmi dobře zúží, na co se dívat.
Nejčastější chyby v praxi
Pasivní sledování bez interpretace
pspy vrací spoustu procesů, ale hodnota nevzniká ze samotného logu. Hodnota vzniká až ve chvíli, kdy si položíte otázku:
- proč to běží jako root,
- odkud se ten příkaz bere,
- a zda některou jeho část může ovlivnit běžný uživatel.
Čekání jen na cron
Na Writeupu nešlo o klasický cron. Šlo o login workflow. Proto je chyba čekat jen na * * * * * pattern. Zajímavé bývají i shell hooky, run-parts, wrappery a one-shot maintenance úlohy.
Přeskočení následné validace
Jakmile pspy ukáže zajímavý proces, další krok není hned exploit. Obvykle je lepší si binárku nebo skript přečíst, projít volané cesty a ověřit, jestli opravdu dochází k PATH nebo wrapper problému.
Související články v projektu
- Rozbory: Magic, Player, Writeup
- Techniky: PATH, PYTHONPATH a wrapper hijack
- Nástroje: linpeas
Co si odnést do praxe
pspyje velmi silný po footholdu, když je potřeba vidět reálné chování root procesů bez privilegií.- Největší hodnotu má u cronů, login hooků, maintenance skriptů a nepřímých PATH/wrapper eskalací.
- Není to exploitační nástroj. Je to pasivní detektor momentů, kdy systém sám vytvoří příležitost k dalšímu kroku.
Další Související Články V Projektu
HTB Stroje
Techniky
- Údržbové skripty a provozní automaty jako zdroj přístupů
- Live credential extraction z procesní paměti
- PATH, PYTHONPATH a wrapper hijack