Ønsker du at få superbrugeradgang til et Linux-system? Her er nogle af de bedste måder at opregne en Linux-maskine på.

Optælling er et af de vigtigste stadier af penetrationstestning. Det er den første ting, du skal gøre, når du har kompromitteret et målsystem som penetrationstester. Selvom der er et væld af værktøjer til at automatisere denne proces, anbefales det altid manuelt at gennemsøge og dobbelttjekke systemet for potentielle vektorer for privilegieeskalering.

Lad os se på de forskellige måder at manuelt opregne et Linux-system til privilegieeskalering.

Hvorfor er optælling vigtig for privilegie-eskalering?

Privilege-eskalering, også kendt som Escalation of Privilege (EOP) er en kernekomponent i penetrationstestning og penetrationstestmetoden. Som navnet antyder, er det et trin, hvor du forsøger at ophøje dine privilegier til administratoren eller, i Linux-systemer, root-brugeren.

For at opnå root-privilegier skal du først finde en sårbarhed i systemet. Det er her, opregning kommer ind i billedet. Selvom der er værktøjer til at automatisere optælling, kan manuel og grundig optælling oftest afsløre fejlkonfigurationer og andre sårbarheder, der ikke opfanges af værktøjer.

instagram viewer

1. Systemoptælling

Det første du skal gøre efter at have fået fodfæste er at lære om det system du har etableret adgang til. Dette vil hjælpe dig med at optimere dine nyttelaster, så de matcher arkitekturen og sikre maksimal kompatibilitet af dine nyttelaster med målsystemet.

For eksempel, hvis du har en 64-bit udnyttelse, skal du ændre den, hvis dit målsystem kun understøtter 32-bit software, da der er forskel på 32-bit og 64-bit systemer.

At kende kerneversionen vil også hjælpe dig med at jage efter udnyttelser på nettet, hvis du finder ud af, at versionen er forældet og sårbar over for en offentlig udnyttelse. Her er nogle kommandoer, der hjælper dig med at hente systemoplysninger:

For at finde systemoplysninger såsom kerneversion, OS-udgivelse osv. skal du indtaste:

kat /etc/cpuinfo 
unavn -a

Hvis du vil lære mere om CPU-arkitektur, skal du bruge kommandoen lscpu:

lscpu

2. Procesoptælling

Processer er programmer i udførelse. At kende den komplette liste over processer på et Linux-system, kombineret med et par andre opregningstaktikker nævnt i denne guide vil hjælpe dig med at identificere potentielt sårbare processer og udnytte dem til at løfte privilegium.

For eksempel, hvis du finder en proces, der kører med root-privilegier, kan du muligvis injicere vilkårlig kode i den, hvilket kan føre til en vellykket eskalering af privilegier.

Du kan bruge ps kommandoen med aux flag for at vise alle processer i systemet:

ps aux

3. Opregning af brugere og grupper

Bruger- og gruppeopregning er vigtig for at finde ud af, hvem der har adgang til hvilken del af systemet. At vide det giver dig mulighed for at scope dine mål effektivt og opbygge en effektiv angrebsstrategi. Desuden er du i stand til at oprette korrekte kortlægninger og forstå hver kontos roller og privilegier i dybden.

At have synlighed af privilegerede konti giver dig mulighed for at prøve kendte brugernavn-adgangskode-kombinationer. Du kan udskrive indholdet af /etc/passwd og /etc/group filer for at få adgang til listen over brugere. Alternativt kan du også bruge kommandoen gegent.

Til få listen over brugere på Linux:

getent passwd

Sådan får du listen over grupper:

dygtig gruppe

4. Undersøgelse for følsomme filer

Følsomme filer som f.eks /etc/passwd og /etc/shadow potentielt kan lække en masse information. Fra /etc/shadow du kan finde hasherne til brugernes adgangskode og forsøge at knække dem med et hash-cracking-værktøj som Hashcat eller John the Ripper.

Der er også /etc/sudoers fil, som, hvis du kan redigere den på en eller anden måde, vil tillade ændring af sudo-tilladelserne for brugere og grupper.

5. Kontrollerer sudo-tilladelser

Korrekt styring af sudo-tilladelser er afgørende for sikkerheden i et Linux-system. Analyser af sudo-tilladelserne vil give dig indsigt i potentielle vektorer til privilegie-eskalering. Hvis der er fejlkonfigurationer, såsom at visse programmer har et alarmerende niveau af privilegier, kan du muligvis udnytte dem til at få root-adgang.

Dette er blot et eksempel på de mange angrebsveje, der kan åbne sig, når du har klarhed over sudo-tilladelserne i Linux-systemet. Et andet eksempel ville være misbrug af LD_PRELOAD-bibliotekets forudindlæsningsmekanisme, som du kan opregne ved at se på sudo-tilladelser.

sudo -l

6. Sådan finder du Linux-kerneudnyttelser

Linux-kerneudnyttelser er dødelige, fordi de angriber kernen af ​​det operativsystem, der kører på det kompromitterede system. Med en kritisk kernefejl vil du være i stand til stort set alt med systemet.

For at finde kerneudnyttelser skal du først finde ud af kerneversionen og derefter bruge et værktøj som searchsploit eller, ved hjælp af Google Dorks, find en passende udnyttelse, der påvirker den nøjagtige version af kernen, der kører på systemet.

7. Udnyttelse af SUID-binære filer

SUID er forkortelsen for Set Owner User ID ved udførelse. Det er en speciel type filtilladelse, der, når den er indstillet, udfører et program med ejerens privilegier.

Hvis et program blev oprettet af root-brugeren, og SUID-bitten blev indstillet til det, ville programmet, når det blev udført, have root-privilegier. Hvordan kan SUID misbruges? Det er simpelt.

Opregn for alle binære filer med SUID-bitsæt, søg gennem listen, find en binær, som du har skriveadgang til, og rediger dens kilde for at tilføje din nyttelast. Du kan bruge kommandoen find til at søge efter SUID-binære filer og omdirigere standardoutput til /dev/null:

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

8. Kapring af biblioteker

Nogle gange kan der være programmer, der kører på systemet, som bruger biblioteker, der ikke er skrivebeskyttede. I et sådant scenarie kan du nemt overskrive biblioteket i brug og tage kontrol over programmets funktionalitet.

Hvis du er heldig og finder et program, der kører som root, kan du kapre det bibliotek, det afhænger af, og potentielt få root shell-adgang.

9. Undersøgelse og kapring af miljøvariabler

Miljøvariable er specielle typer variabler, der til en vis grad definerer, hvordan systemet og programmerne fungerer. En vigtig miljøvariabel er PATH-variablen.

Det gemmer placeringen af ​​alle de eksekverbare binære filer i systemet. Du kan manipulere PATH-variablen og kæde den sammen med andre sårbarheder som bibliotekskapring for at få root-adgang.

Antag for eksempel, at der er en eksekverbar fil med et SUID-bitsæt. For at fungere korrekt kalder den en binær uden at definere dens fulde sti.

Du kan drage fordel af dette ved at oprette en dublet, ondsindet version af den binære version og opdatere PATH-variablen med placeringen af den ondsindede binære fil, så når den eksekverbare SUID køres, vil din ondsindede binære fil blive kørt som root, og du vil være i stand til at skabe en root shell.

Desuden er der også en god chance for at finde hemmelige nøgler og adgangskoder ved blot at se miljøvariablerne igennem. Du kan udskrive alle miljøvariabler ved hjælp af kommandoen env:

env

10. Find artefakter i Bash History

Ofte slettes den nuværende brugers historie ikke. Du kan misbruge dette til potentielt at få adgang til følsomme oplysninger eller genkøre tidligere kommandoer med ændrede parametre.

Selvom disse sandsynligvis ikke vil føre til privilegieeskalering, er det en god kilde til informationslækager for at give dig klarhed over, hvad brugeren normalt gør på systemet.

11. Kapring af sårbare Cron-jobs

Cron-job er en indbygget og meget ressourcestærk funktion i Linux. Hvis du har migreret fra Windows, kan et cron-job sammenlignes direkte med en planlagt opgave på Windows.

Den kører med jævne mellemrum og udfører kommandoer. Både det tidspunkt, hvor det vil køre, og de kommandoer, det vil udføre, er foruddefineret af brugeren. Nogle gange kan du finde et par cron-job, der er sårbare over for angreb som jokertegninjektion eller kan skrives af den bruger, du har logget ind som.

Du kan misbruge disse sårbarheder for at få root-adgang til systemet. For at udnytte et cron-job skal du først finde et sårbart. Her er kommandoerne til at vise aktuelt kørende cron-job og andre relevante data:

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

12. Liste over forældede pakker

Når du har etableret adgang til et system, er et af de første skridt, du bør tage, at liste alle de installerede softwarepakker og sammenholde deres installerede versioner med deres seneste udgivelse.

Der er en mulighed for, at der er installeret en obskur pakke, som måske ikke bliver brugt meget, men alligevel er kritisk sårbar over for et privilegie-eskaleringsangreb. Du kan derefter udnytte den pakke til at få root-adgang.

Brug kommandoen dpkg med -l tag for at liste installerede pakker på Debian- og Ubuntu-baserede systemer:

dpkg -l

For RHEL/CentOS/Fedora-systemer, brug denne kommando til at liste installerede pakker:

rpm -qa 

Nu ved du, hvordan du manuelt opregner Linux for privilegie-eskalering

Privilegeeskalering afhænger udelukkende af opregning. Jo flere oplysninger du har adgang til, jo bedre vil du være i stand til at planlægge dine angrebsstrategier.

Effektiv optælling er nøglen til at etablere fodfæste, eskalere privilegier og med succes fortsætte på dit målsystem. Selvom det hjælper at gøre ting manuelt, kan nogle af opgaverne tildeles automatiserede værktøjer for at spare tid og kræfter. Du skal kende til de bedste sikkerhedsværktøjer til at scanne et system for sårbarheder.