tom@home.htb:~$

Blog o HTB

15 December 2020

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:

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é:

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ž:

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:

Č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

Co si odnést do praxe

Další Související Články V Projektu

HTB Stroje

Techniky

Nástroje

tags: nastroje - linux - privesc - processes - cron - path