Chcete získať prístup superužívateľa k systému Linux? Tu sú niektoré z najlepších spôsobov, ako vymenovať počítač so systémom Linux.
Enumerácia je jednou z kľúčových fáz penetračného testovania. Je to prvá vec, ktorú musíte urobiť, keď ste kompromitovali cieľový systém ako penetračný tester. Hoci existuje množstvo nástrojov na automatizáciu tohto procesu, vždy sa odporúča manuálne prehľadať a skontrolovať systém, či neobsahuje potenciálne vektory eskalácie privilégií.
Pozrime sa na rôzne spôsoby manuálneho vymenovania systému Linux na eskaláciu privilégií.
Prečo je enumerácia dôležitá pre eskaláciu privilégií?
Eskalácia privilégií, známa aj ako Eskalácia privilégií (EOP), je základnou súčasťou penetračného testovania a metodiky penetračného testovania. Ako už názov napovedá, ide o fázu, kedy sa pokúšate povýšiť svoje privilégiá na správcu alebo v systémoch Linux na používateľa root.
Ak chcete získať privilégiá root, musíte najskôr nájsť zraniteľnosť v systéme. Tu vstupuje do hry enumerácia. Hoci existujú nástroje na automatizáciu počítania, ručné a dôkladné vyčíslenie môže častejšie odhaliť nesprávne konfigurácie a iné zraniteľnosti, ktoré nástroje nezachytia.
1. Vyčíslenie systému
Prvá vec, ktorú by ste mali urobiť po získaní počiatočnej pozície, je dozvedieť sa o systéme, ku ktorému máte zriadený prístup. To vám pomôže optimalizovať vaše užitočné zaťaženie tak, aby zodpovedalo architektúre a zaistilo maximálnu kompatibilitu vašich užitočných zaťažení s cieľovým systémom.
Napríklad, ak máte 64-bitový exploit, budete ho musieť upraviť, ak váš cieľový systém podporuje iba 32-bitový softvér, pretože medzi 32-bitovými a 64-bitovými systémami je rozdiel.
Znalosť verzie jadra vám tiež pomôže pri hľadaní exploitov na webe v prípade, že zistíte, že verzia je zastaraná a zraniteľná voči verejnému zneužitiu. Tu je niekoľko príkazov, ktoré vám pomôžu získať systémové informácie:
Ak chcete nájsť systémové informácie, ako je verzia jadra, vydanie operačného systému atď., zadajte:
cat /etc/cpuinfo
uname -a
Ak sa chcete dozvedieť viac o architektúre CPU, použite príkaz lscpu:
lscpu
2. Enumerácia procesu
Procesy sú vykonávané programy. Poznanie kompletného zoznamu procesov v systéme Linux spolu s niekoľkými ďalšími taktikami enumerácie uvedené v tejto príručke vám pomôžu identifikovať potenciálne zraniteľné procesy a využiť ich na zvýšenie úrovne privilégium.
Ak napríklad nájdete proces spustený s oprávneniami typu root, možno doň budete môcť vložiť ľubovoľný kód, čo by mohlo viesť k úspešnej eskalácii oprávnení.
Môžeš použiť príkaz ps s aux príznaky na zobrazenie všetkých procesov v systéme:
ps aux
3. Enumerácia používateľov a skupín
Enumerácia používateľov a skupín je dôležitá na zistenie, kto má prístup ku ktorej časti systému. Vedieť, že vám to umožňuje efektívne rozlíšiť vaše ciele a vybudovať efektívnu stratégiu útoku. Okrem toho môžete vytvoriť správne priradenia a do hĺbky pochopiť roly a privilégiá každého účtu.
Viditeľnosť privilegovaných účtov vám umožňuje vyskúšať známe kombinácie používateľského mena a hesla. Obsah si môžete vytlačiť /etc/passwd a /etc/group súbory na prístup k zoznamu používateľov. Prípadne môžete použiť aj príkaz getent.
Komu získať zoznam používateľov v systéme Linux:
getent passwd
Ak chcete získať zoznam skupín:
getentová skupina
4. Hľadá sa citlivé súbory
Citlivé súbory ako napr /etc/passwd a /etc/shadow môže potenciálne uniknúť veľa informácií. Od /etc/shadow môžete nájsť hash hesiel používateľov a pokúsiť sa ich prelomiť pomocou nástroja na lámanie hash, ako je Hashcat alebo John the Ripper.
Je tu tiež /etc/sudoers súbor, ktorý, ak ho môžete nejako upraviť, umožní upraviť sudo povolenia pre používateľov a skupiny.
5. Kontrola povolení sudo
Správna správa povolení sudo je kľúčová pre bezpečnosť systému Linux. Analýza povolení sudo vám poskytne prehľad o možných vektoroch eskalácie privilégií. Ak sa vyskytnú nesprávne konfigurácie, napríklad niektoré programy majú alarmujúcu úroveň privilégií, možno ich budete môcť zneužiť na získanie prístupu root.
Toto je len príklad mnohých ciest útoku, ktoré sa môžu otvoriť, keď budete mať jasné povolenia sudo v systéme Linux. Ďalším príkladom by bolo zneužitie mechanizmu predbežného načítania knižnice LD_PRELOAD, ktorý môžete vymenovať pohľadom na oprávnenia sudo.
sudo -l
6. Hľadanie zneužitia jadra Linuxu
Zneužitia linuxového jadra sú smrteľné, pretože útočia na jadro operačného systému bežiaceho na napadnutom systéme. S kritickou chybou jadra budete môcť so systémom robiť takmer čokoľvek.
Ak chcete nájsť exploity jadra, najprv zistite verziu jadra a potom pomocou nástroja ako searchsploit alebo pomocou Google Dorks, nájdite vhodný exploit ovplyvňujúci presnú verziu jadra bežiaceho v systéme.
7. Využívanie binárnych súborov SUID
SUID je skratka pre Set Owner User ID pri spustení. Ide o špeciálny typ oprávnenia súboru, ktorý po nastavení spustí program s oprávneniami jeho vlastníka.
Ak bol program vytvorený užívateľom root a bol preň nastavený bit SUID, po spustení by mal program privilégiá typu root. Ako možno SUID zneužiť? Je to jednoduché.
Vypočítajte všetky binárne súbory s nastaveným bitom SUID, prehľadajte zoznam, nájdite binárny súbor, pre ktorý máte prístup na zápis, a upravte jeho zdroj, aby ste pridali svoje užitočné zaťaženie. Na vyhľadanie binárnych súborov SUID a presmerovanie štandardného výstupu môžete použiť príkaz find /dev/null:
nájsť / -perm -4000 2>/dev/null
8. Únos knižníc
Niekedy môžu byť v systéme spustené programy, ktoré používajú knižnice, ktoré nie sú chránené proti zápisu. V takomto scenári môžete jednoducho prepísať používanú knižnicu a prevziať kontrolu nad funkčnosťou programu.
Ak budete mať šťastie a nájdete program spustený ako root, môžete uniesť knižnicu, na ktorej závisí, a potenciálne získať prístup k shellu root.
9. Skúmanie a únos premenných prostredia
Premenné prostredia sú špeciálne typy premenných, ktoré do určitej miery definujú fungovanie systému a programov. Dôležitou premennou prostredia je premenná PATH.
Ukladá umiestnenie všetkých spustiteľných binárnych súborov v systéme. Môžete manipulovať s premennou PATH a spájať ju s inými zraniteľnosťami, ako je únos knižnice, aby ste získali prístup root.
Predpokladajme napríklad, že existuje spustiteľný súbor s nastaveným bitom SUID. Aby fungoval správne, volá binárny súbor bez definovania jeho celej cesty.
Môžete to využiť vytvorením duplicitnej škodlivej verzie binárneho súboru a aktualizáciou premennej PATH s umiestnením škodlivý binárny súbor, takže keď sa spustí spustiteľný súbor SUID, váš škodlivý binárny súbor bude spustený ako root a budete môcť vytvoriť root shell.
Okrem toho je tu tiež veľká šanca nájsť tajné kľúče a heslá jednoduchým pohľadom cez premenné prostredia. Všetky premenné prostredia môžete vytlačiť pomocou príkazu env:
env
10. Nájdite artefakty v histórii Bash
História aktuálneho používateľa sa často neodstráni. Môžete to zneužiť na potenciálne získanie prístupu k citlivým informáciám alebo opätovné spustenie predchádzajúcich príkazov s upravenými parametrami.
Aj keď to pravdepodobne nepovedie k eskalácii privilégií, je to dobrý zdroj únikov informácií, ktorý vám objasní, čo používateľ zvyčajne robí v systéme.
11. Únos zraniteľných úloh Cron
Cron úlohy sú vstavanou a vysoko vynaliezavou funkciou Linuxu. Ak ste migrovali zo systému Windows, úlohu cron možno priamo porovnať s naplánovanou úlohou v systéme Windows.
Spúšťa sa periodicky a vykonáva príkazy. Čas, kedy sa spustí, aj príkazy, ktoré vykoná, sú vopred definované používateľom. Niekedy môžete nájsť niekoľko úloh cron zraniteľných voči útokom, ako je vloženie zástupných znakov, alebo do ktorých môže zapisovať používateľ, pod ktorým ste sa prihlásili.
Tieto zraniteľnosti môžete zneužiť na získanie prístupu root do systému. Ak chcete využiť prácu cron, musíte najprv nájsť zraniteľnú. Tu sú príkazy na zoznam aktuálne spustených úloh cron a ďalších relevantných údajov:
ls /etc/cron.d/
crontab -l -u
12. Výpis zastaraných balíkov
Keď ste si vytvorili prístup k systému, jedným z prvých krokov, ktoré by ste mali urobiť, je vypísať zoznam všetkých nainštalovaných softvérových balíkov a porovnať ich nainštalované verzie s ich najnovším vydaním.
Existuje možnosť, že je nainštalovaný nejaký neznámy balík, ktorý sa nemusí príliš používať, no je kriticky zraniteľný voči útoku eskalácie privilégií. Potom môžete tento balík využiť na získanie prístupu root.
Použite príkaz dpkg s -l tag na zoznam nainštalovaných balíkov na systémoch založených na Debiane a Ubuntu:
dpkg -l
Pre systémy RHEL/CentOS/Fedora použite tento príkaz na zobrazenie zoznamu nainštalovaných balíkov:
ot./min -qa
Teraz viete, ako manuálne vyčísliť Linux na eskaláciu privilégií
Eskalácia privilégií závisí výlučne od enumerácie. Čím viac informácií máte k dispozícii, tým lepšie si budete môcť naplánovať svoje stratégie útoku.
Efektívne vymenovanie je kľúčom k vytvoreniu základne, eskalácii privilégií a úspešnému udržaniu vo vašom cieľovom systéme. Hoci ručné robenie vecí pomáha, niektoré úlohy možno priradiť k automatizovaným nástrojom, aby sa ušetril čas a námaha. Musíte vedieť o najlepších bezpečnostných nástrojoch na skenovanie systémových chýb.