Chcete získat přístup superuživatele k systému Linux? Zde jsou některé z nejlepších způsobů, jak vyjmenovat počítač se systémem Linux.

Výčet je jednou z klíčových fází penetračního testování. Je to první věc, kterou musíte udělat, když ohrozíte cílový systém jako penetrační tester. Přestože existuje nepřeberné množství nástrojů pro automatizaci tohoto procesu, vždy se doporučuje manuálně prohledat a zkontrolovat systém, zda neobsahuje potenciální vektory eskalace oprávnění.

Podívejme se na různé způsoby, jak ručně vyčíslit systém Linux pro eskalaci oprávnění.

Proč je výčet důležitý pro eskalaci oprávnění?

Eskalace privilegií, známá také jako Eskalace privilegií (EOP), je základní součástí penetračního testování a metodiky penetračního testování. Jak název napovídá, je to fáze, kdy se pokoušíte povýšit svá oprávnění na správce nebo v systémech Linux na uživatele root.

Chcete-li získat oprávnění root, musíte nejprve najít zranitelnost v systému. Zde přichází na řadu výčet. Ačkoli existují nástroje pro automatizaci výčtu, ruční a důkladné výčty mohou častěji odhalit nesprávné konfigurace a další zranitelnosti, které nástroje nezachytí.

instagram viewer

1. Systémový výčet

První věc, kterou byste měli udělat po získání počáteční pozice, je dozvědět se o systému, ke kterému máte zřízený přístup. To vám pomůže optimalizovat vaše užitečné zatížení tak, aby odpovídalo architektuře a zajistilo maximální kompatibilitu vašich užitečných zatížení s cílovým systémem.

Například, pokud máte 64bitový exploit, budete jej muset upravit, pokud váš cílový systém podporuje pouze 32bitový software, protože mezi 32bitovými a 64bitovými systémy je rozdíl.

Znalost verze jádra vám také pomůže hledat exploity na webu v případě, že zjistíte, že verze je zastaralá a zranitelná vůči veřejnému exploitu. Zde je několik příkazů, které vám pomohou získat systémové informace:

Chcete-li najít systémové informace, jako je verze jádra, vydání OS atd., zadejte:

cat /etc/cpuinfo 
uname -a

Pokud se chcete dozvědět více o architektuře CPU, použijte příkaz lscpu:

lscpu

2. Procesní výčet

Procesy jsou programy v běhu. Znalost kompletního seznamu procesů v systému Linux spolu s několika dalšími taktikami výčtu uvedené v této příručce vám pomohou identifikovat potenciálně zranitelné procesy a využít je ke zvýšení úrovně privilegium.

Pokud například najdete proces běžící s právy root, můžete do něj vložit libovolný kód, což by mohlo vést k úspěšné eskalaci oprávnění.

Můžeš použít příkaz ps s aux příznaky pro výpis všech procesů v systému:

ps aux

3. Výčet uživatelů a skupin

Výčet uživatelů a skupin je důležitý pro zjištění, kdo má přístup ke které části systému. Vědět, že vám to umožňuje efektivně zaměřovat své cíle a budovat efektivní strategii útoku. Kromě toho jste schopni vytvořit správná mapování a do hloubky porozumět rolím a oprávněním každého účtu.

Viditelnost privilegovaných účtů vám umožňuje vyzkoušet známé kombinace uživatelského jména a hesla. Obsah si můžete vytisknout /etc/passwd a /etc/group soubory pro přístup k seznamu uživatelů. Případně můžete také použít příkaz getent.

Na získat seznam uživatelů na Linuxu:

getent passwd

Chcete-li získat seznam skupin:

getent skupina

4. Vyšetřování citlivých souborů

Citlivé soubory jako např /etc/passwd a /etc/shadow může potenciálně uniknout mnoho informací. Z /etc/shadow můžete najít hashe hesel uživatelů a pokusit se je prolomit pomocí nástroje na prolomení hash, jako je Hashcat nebo John the Ripper.

Je tam také /etc/sudoers soubor, který, pokud jej můžete nějak upravit, umožní upravit sudo oprávnění pro uživatele a skupiny.

5. Kontrola oprávnění sudo

Správná správa oprávnění sudo je zásadní pro bezpečnost systému Linux. Analýza oprávnění sudo vám poskytne přehled o potenciálních vektorech pro eskalaci oprávnění. Pokud dojde k nesprávné konfiguraci, například že některé programy mají alarmující úroveň oprávnění, můžete je zneužít k získání přístupu root.

Toto je jen příklad mnoha cest útoku, které se mohou otevřít, jakmile budete mít jasno v oprávněních sudo v systému Linux. Dalším příkladem by bylo zneužití mechanismu předběžného načítání knihovny LD_PRELOAD, který můžete vyčíslit pohledem na oprávnění sudo.

sudo -l

6. Hledání zneužití jádra Linuxu

Zneužití linuxového jádra je smrtící, protože útočí na jádro operačního systému běžícího na kompromitovaném systému. S kritickou chybou jádra budete moci se systémem dělat téměř cokoliv.

Chcete-li najít exploity jádra, nejprve zjistěte verzi jádra a poté pomocí nástroje jako searchsploit nebo pomocí Google Dorks, najděte vhodný exploit ovlivňující přesnou verzi jádra běžícího v systému.

7. Využívání binárních souborů SUID

SUID je zkratka pro Set Owner User ID při spuštění. Jde o speciální typ oprávnění k souboru, který po nastavení spouští program s právy jeho vlastníka.

Pokud byl program vytvořen uživatelem root a byl pro něj nastaven bit SUID, po spuštění by měl program oprávnění root. Jak lze SUID zneužít? Je to jednoduché.

Vyjmenujte všechny binární soubory s nastaveným bitem SUID, procházejte seznam, najděte binární soubor, pro který máte přístup pro zápis, a upravte jeho zdroj, abyste přidali své užitečné zatížení. K vyhledání binárních souborů SUID a přesměrování standardního výstupu můžete použít příkaz find /dev/null:

find / -perm -4000 2>/dev/null

8. Únos knihoven

Někdy mohou v systému běžet programy, které používají knihovny, které nejsou chráněny proti zápisu. V takovém scénáři můžete snadno přepsat používanou knihovnu a převzít kontrolu nad funkčností programu.

Pokud budete mít štěstí a najdete program běžící jako root, můžete unést knihovnu, na které závisí, a potenciálně získat přístup k root shellu.

9. Zkoumání a únos proměnných prostředí

Proměnné prostředí jsou speciální typy proměnných, které do určité míry definují fungování systému a programů. Důležitou proměnnou prostředí je proměnná PATH.

Ukládá umístění všech spustitelných binárních souborů v systému. Můžete manipulovat s proměnnou PATH a zřetězit ji s dalšími chybami zabezpečení, jako je únos knihovny, abyste získali přístup root.

Předpokládejme například, že existuje spustitelný soubor s nastaveným bitem SUID. Aby fungoval správně, volá binární soubor bez definování jeho úplné cesty.

Můžete toho využít vytvořením duplicitní škodlivé verze binárního souboru a aktualizací proměnné PATH umístěním škodlivý binární soubor, takže když je spuštěn spustitelný soubor SUID, váš škodlivý binární soubor bude spuštěn jako root a budete moci vytvořit kořenový shell.

Kromě toho existuje také dobrá šance na nalezení tajných klíčů a hesel pouhým prohlížením proměnných prostředí. Všechny proměnné prostředí můžete vytisknout pomocí příkazu env:

env

10. Najděte artefakty v historii Bash

Historie aktuálního uživatele se často nesmaže. Toho můžete zneužít k potenciálnímu získání přístupu k citlivým informacím nebo opětovnému spuštění předchozích příkazů s upravenými parametry.

Ačkoli to pravděpodobně nepovede k eskalaci oprávnění, je to dobrý zdroj úniků informací, který vám objasní, co uživatel v systému obvykle dělá.

11. Únos zranitelných úloh Cron

Úlohy Cron jsou vestavěnou a vysoce vynalézavou funkcí Linuxu. Pokud jste migrovali ze systému Windows, lze úlohu cron přímo porovnat s naplánovanou úlohou ve Windows.

Spouští se periodicky a provádí příkazy. Jak čas, kdy bude spuštěn, tak příkazy, které bude provádět, jsou předem definovány uživatelem. Někdy můžete najít několik úloh cronu zranitelných vůči útokům, jako je vkládání zástupných znaků, nebo do nich může zapisovat uživatel, pod kterým jste se přihlásili.

Tyto chyby zabezpečení můžete zneužít k získání přístupu root do systému. Chcete-li využít úlohu cron, musíte nejprve najít zranitelnou. Zde jsou příkazy pro výpis aktuálně spuštěných úloh cronu a dalších relevantních dat:

ls /etc/cron.d/
crontab -l -u

12. Výpis zastaralých balíčků

Když máte vytvořený přístup k systému, jedním z prvních kroků, které byste měli udělat, je vytvořit seznam všech nainstalovaných softwarových balíků a sečíst jejich nainstalované verze s jejich nejnovější verzí.

Existuje možnost, že je nainstalován nějaký obskurní balíček, který nemusí být příliš používán, ale je kriticky zranitelný vůči útoku eskalace oprávnění. Pak můžete tento balíček zneužít k získání přístupu root.

Použijte příkaz dpkg s -l tag pro seznam nainstalovaných balíčků na systémech založených na Debianu a Ubuntu:

dpkg -l

Pro systémy RHEL/CentOS/Fedora použijte tento příkaz k zobrazení nainstalovaných balíčků:

otáčky za minutu -qa 

Nyní víte, jak ručně vyčíslit Linux pro eskalaci privilegií

Eskalace oprávnění závisí pouze na výčtu. Čím více informací budete mít k dispozici, tím lépe budete moci plánovat své útočné strategie.

Efektivní výčet je klíčem k vytvoření základu, eskalaci oprávnění a úspěšnému přetrvání na vašem cílovém systému. Ačkoli ruční provádění věcí pomáhá, některé úkoly lze přiřadit automatizovaným nástrojům, aby se ušetřil čas a úsilí. Musíte vědět o nejlepších bezpečnostních nástrojích pro skenování zranitelností systému.