Vill du få superanvändaråtkomst till ett Linux-system? Här är några av de bästa sätten att räkna upp en Linux-maskin.

Uppräkning är ett av nyckelstadierna i penetrationstestning. Det är det första du ska göra när du har äventyrat ett målsystem som penetrationstestare. Även om det finns en uppsjö av verktyg för att automatisera den här processen, rekommenderas det alltid att manuellt leta igenom och dubbelkolla systemet för potentiella vektorer för privilegieskalering.

Låt oss titta på de olika sätten att manuellt räkna upp ett Linux-system för privilegieskalering.

Varför är uppräkning viktig för privilegieupptrappning?

Privilege-eskalering, även känd som Escalation of Privilege (EOP) är en kärnkomponent i penetrationstestning och penetrationstestmetoden. Som namnet antyder är det ett skede när du försöker höja dina privilegier till administratören eller, i Linux-system, root-användaren.

För att få root-privilegier måste du först hitta en sårbarhet i systemet. Det är här uppräkningen kommer in i bilden. Även om det finns verktyg för att automatisera uppräkning, kan manuell och noggrann uppräkning oftare än inte avslöja felkonfigurationer och andra sårbarheter som inte plockas upp av verktyg.

instagram viewer

1. Systemuppräkning

Det första du bör göra efter att ha fått ett första fotfäste är att lära dig om systemet du har etablerat tillgång till. Detta hjälper dig att optimera dina nyttolaster för att matcha arkitekturen och säkerställa maximal kompatibilitet för dina nyttolaster med målsystemet.

Till exempel, om du har en 64-bitars exploatering, måste du ändra den om ditt målsystem bara stöder 32-bitars programvara eftersom det finns en skillnad mellan 32-bitars och 64-bitars system.

Att känna till kärnversionen kommer också att hjälpa dig att leta efter exploateringar på webben i fall du upptäcker att versionen är föråldrad och sårbar för en offentlig exploatering. Här är några kommandon som hjälper dig att hämta systeminformation:

För att hitta systeminformation som kärnversion, OS-version, etc., skriv in:

cat /etc/cpuinfo 
uname -a

Om du vill lära dig mer om CPU-arkitektur, använd kommandot lscpu:

lscpu

2. Processuppräkning

Processer är program som körs. Att känna till den kompletta listan över processer på ett Linux-system, tillsammans med några andra uppräkningstaktik som nämns i den här guiden hjälper dig att identifiera potentiellt sårbara processer och utnyttja dem för att lyfta privilegium.

Till exempel, om du hittar en process som körs med root-privilegier, kanske du kan injicera godtycklig kod i den, vilket kan leda till framgångsrik eskalering av privilegier.

Du kan använda kommandot ps med aux flaggor för att lista alla processer i systemet:

ps aux

3. Uppräkning av användare och grupper

Användar- och gruppuppräkning är viktig för att ta reda på vem som har tillgång till vilken del av systemet. Att veta det gör att du kan avgränsa dina mål effektivt och bygga en effektiv attackstrategi. Dessutom kan du skapa korrekta mappningar och förstå rollerna och privilegierna för varje konto på djupet.

Genom att ha synlighet för privilegierade konton kan du prova kända kombinationer av användarnamn och lösenord. Du kan skriva ut innehållet i /etc/passwd och /etc/group filer för att komma åt listan över användare. Alternativt kan du också använda kommandot gegent.

Till få listan över användare på Linux:

getent passwd

För att få listan över grupper:

gegent grupp

4. Utreder för känsliga filer

Känsliga filer som t.ex /etc/passwd och /etc/shadow kan potentiellt läcka mycket information. Från /etc/shadow du kan hitta hasharna för användarnas lösenord och försöka knäcka dem med ett hash-cracking-verktyg som Hashcat eller John the Ripper.

Det finns också /etc/sudoers fil, som, om du kan redigera den på något sätt, gör det möjligt att ändra sudo-behörigheterna för användare och grupper.

5. Kontrollerar sudo-behörigheter

Korrekt hantering av sudo-behörigheter är avgörande för säkerheten för ett Linux-system. Genom att analysera sudo-behörigheterna får du insikt i potentiella vektorer för privilegieskalering. Om det finns felkonfigurationer som att vissa program har en alarmerande nivå av privilegier, kanske du kan utnyttja dem för att få root-åtkomst.

Detta är bara ett exempel på de många attackvägar som kan öppnas när du har klarhet i sudo-behörigheterna i Linux-systemet. Ett annat exempel skulle vara att missbruka LD_PRELOAD-bibliotekets förladdningsmekanism, som du kan räkna upp genom att titta på sudo-behörigheter.

sudo -l

6. Hitta Linux Kernel Exploits

Utnyttjande av Linuxkärna är dödliga eftersom de attackerar kärnan i operativsystemet som körs på det komprometterade systemet. Med ett kritiskt kärnfel kommer du att kunna göra nästan vad som helst med systemet.

För att hitta kärnexploater, ta först reda på kärnversionen och använd sedan ett verktyg som searchsploit eller, med Google Dorks, hitta en lämplig exploatering som påverkar den exakta versionen av kärnan som körs på systemet.

7. Utnyttja SUID-binärer

SUID är förkortningen för Set Owner User ID vid körning. Det är en speciell typ av filbehörighet som, när den är inställd, exekverar ett program med dess ägares rättigheter.

Om ett program skapades av root-användaren och SUID-biten ställdes in för det, skulle programmet, när det körs, ha root-privilegier. Hur kan SUID missbrukas? Det är enkelt.

Räkna upp för alla binärer med SUID-bitar, leta igenom listan, hitta en binär som du har skrivbehörighet för och redigera dess källa för att lägga till din nyttolast. Du kan använda kommandot find för att leta efter SUID-binärer och omdirigera standardutdata till /dev/null:

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

8. Kapning av bibliotek

Ibland kan det finnas program som körs på systemet som använder bibliotek som inte är skrivskyddade. I ett sådant scenario kan du enkelt skriva över biblioteket som används och ta kontroll över programmets funktionalitet.

Om du har tur och hittar ett program som körs som root, kan du kapa biblioteket det beror på och potentiellt få tillgång till root-skal.

9. Undersöka och kapa miljövariabler

Miljövariabler är speciella typer av variabler som till viss del definierar hur systemet och programmen fungerar. En viktig miljövariabel är PATH-variabeln.

Den lagrar platsen för alla körbara binärer i systemet. Du kan manipulera PATH-variabeln och kedja den med andra sårbarheter som bibliotekskapning för att få root-åtkomst.

Anta till exempel att det finns en körbar fil med en SUID-bituppsättning. För att fungera korrekt anropar den en binär utan att definiera dess fullständiga sökväg.

Du kan dra fördel av detta genom att skapa en dubblett, skadlig version av binären och uppdatera PATH-variabeln med platsen för den skadliga binärfilen så när SUID körbar körs, kommer din skadliga binär att köras som root, och du kommer att kunna skapa ett rotskal.

Dessutom finns det också en god chans att hitta hemliga nycklar och lösenord genom att helt enkelt titta igenom miljövariablerna. Du kan skriva ut alla miljövariabler med kommandot env:

env

10. Hitta artefakter i Bash History

Ofta raderas inte historiken för den aktuella användaren. Du kan missbruka detta för att potentiellt få tillgång till känslig information eller köra om tidigare kommandon med modifierade parametrar.

Även om dessa förmodligen inte kommer att leda till privilegieeskalering, är det en bra källa till informationsläckor för att ge dig klarhet i vad användaren vanligtvis gör på systemet.

11. Kapning av sårbara Cron-jobb

Cron-jobb är en inbyggd och mycket resursrik funktion i Linux. Om du har migrerat från Windows kan ett cron-jobb jämföras direkt med en schemalagd uppgift på Windows.

Den körs regelbundet och kör kommandon. Både tidpunkten när den kommer att köras och de kommandon den kommer att utföra är fördefinierade av användaren. Ibland kan du hitta några cron-jobb som är sårbara för attacker som jokerteckeninjektion eller är skrivbara av användaren du har loggat in som.

Du kan missbruka dessa sårbarheter för att få root-åtkomst till systemet. För att utnyttja ett cron-jobb måste du först hitta ett sårbart. Här är kommandona för att lista för närvarande pågående cron-jobb och annan relevant data:

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

12. Lista föråldrade paket

När du har etablerat åtkomst till ett system är ett av de första stegen du bör ta att lista alla installerade programvarupaket och räkna deras installerade versioner med deras senaste utgåva.

Det finns en möjlighet att något obskyrt paket är installerat som kanske inte används så mycket men som ändå är ytterst sårbart för en privilegieskaleringsattack. Du kan sedan utnyttja det paketet för att få root-åtkomst.

Använd kommandot dpkg med -l tagg för att lista installerade paket på Debian- och Ubuntu-baserade system:

dpkg -l

För RHEL/CentOS/Fedora-system, använd detta kommando för att lista installerade paket:

rpm -qa 

Nu vet du hur man manuellt räknar upp Linux för privilegieskalering

Privilegeeskalering beror enbart på uppräkning. Ju mer information du har tillgång till, desto bättre kommer du att kunna planera dina attackstrategier.

Effektiv uppräkning är nyckeln till att etablera fotfäste, eskalera privilegier och framgångsrikt fortsätta på ditt målsystem. Även om det hjälper att göra saker manuellt, kan vissa av uppgifterna tilldelas automatiserade verktyg för att spara tid och ansträngning. Du måste känna till de bästa säkerhetsverktygen för att skanna ett system efter sårbarheter.