Ønsker du å få superbrukertilgang til et Linux-system? Her er noen av de beste måtene å telle opp en Linux-maskin.

Opptelling er et av nøkkelstadiene i penetrasjonstesting. Det er det første du må gjøre når du har kompromittert et målsystem som penetrasjonstester. Selv om det finnes en mengde verktøy for å automatisere denne prosessen, anbefales det alltid å lete gjennom og dobbeltsjekke systemet for potensielle vektorer for privilegieeskalering.

La oss se på de forskjellige måtene å manuelt telle opp et Linux-system for rettighetseskalering.

Hvorfor er oppregning viktig for privilegieopptrapping?

Privilege-eskalering, også kjent som Escalation of Privilege (EOP) er en kjernekomponent i penetrasjonstesting og penetrasjonstestmetoden. Som navnet antyder, er det et stadium når du prøver å heve rettighetene dine til administratoren eller, i Linux-systemer, root-brukeren.

For å få root-privilegier må du først finne en sårbarhet i systemet. Det er her oppregning kommer inn. Selv om det finnes verktøy for å automatisere opptelling, oftere enn ikke, kan manuell og grundig opptelling avdekke feilkonfigurasjoner og andre sårbarheter som ikke fanges opp av verktøy.

1. Systemoppregning

Det første du bør gjøre etter å ha fått et første fotfeste er å lære om systemet du har etablert tilgang til. Dette vil hjelpe deg med å optimalisere nyttelastene dine for å matche arkitekturen og sikre maksimal kompatibilitet av nyttelastene dine med målsystemet.

For eksempel, hvis du har en 64-biters utnyttelse, må du endre den hvis målsystemet ditt kun støtter 32-biters programvare, da det er forskjell mellom 32-biters og 64-biters systemer.

Å kjenne til kjerneversjonen vil også hjelpe deg å lete etter utnyttelser på nettet i tilfelle du finner ut at versjonen er utdatert og sårbar for en offentlig utnyttelse. Her er noen kommandoer som vil hjelpe deg å hente systeminformasjon:

For å finne systeminformasjon som kjerneversjon, OS-utgivelse osv., skriv inn:

cat /etc/cpuinfo 
unavn -a

Hvis du vil lære mer om CPU-arkitektur, bruk lscpu-kommandoen:

lscpu

2. Prosessoppregning

Prosesser er programmer i utførelse. Kjenne til den komplette listen over prosesser på et Linux-system, kombinert med noen få andre oppregningstaktikker nevnt i denne veiledningen vil hjelpe deg med å identifisere potensielt sårbare prosesser og utnytte dem til å heve privilegium.

For eksempel, hvis du finner en prosess som kjører med root-privilegier, kan du kanskje injisere vilkårlig kode i den som kan føre til vellykket eskalering av privilegier.

Du kan bruke ps-kommandoen med aux flagg for å liste alle prosessene i systemet:

ps aux

3. Oppregning av brukere og grupper

Oppregning av brukere og grupper er viktig for å finne ut hvem som har tilgang til hvilken del av systemet. Å vite det gjør at du kan scope målene dine effektivt og bygge en effektiv angrepsstrategi. Dessuten er du i stand til å lage riktige tilordninger og forstå rollene og privilegiene til hver konto i dybden.

Å ha synlighet av privilegerte kontoer lar deg prøve kjente brukernavn-passord-kombinasjoner. Du kan skrive ut innholdet i /etc/passwd og /etc/group filer for å få tilgang til listen over brukere. Alternativt kan du også bruke gegent-kommandoen.

Til få listen over brukere på Linux:

godt passwd

For å få listen over grupper:

gegent gruppe

4. Undersøker for sensitive filer

Sensitive filer som f.eks /etc/passwd og /etc/shadow kan potensielt lekke mye informasjon. Fra /etc/shadow du kan finne hashen til brukernes passord og forsøke å knekke dem med et hash-cracking-verktøy som Hashcat eller John the Ripper.

Det er også /etc/sudoers fil, som, hvis du kan redigere den på en eller annen måte, vil tillate å endre sudo-tillatelsene for brukere og grupper.

5. Sjekker sudo-tillatelser

Riktig administrasjon av sudo-tillatelser er avgjørende for sikkerheten til et Linux-system. Å analysere sudo-tillatelsene vil gi deg innsikt i potensielle vektorer for rettighetseskalering. Hvis det er feilkonfigurasjoner som at visse programmer har et alarmerende nivå av privilegier, kan du kanskje utnytte dem for å få root-tilgang.

Dette er bare et eksempel på de mange angrepsveiene som kan åpne seg når du har klarhet i sudo-tillatelsene i Linux-systemet. Et annet eksempel vil være misbruk av LD_PRELOAD-bibliotekets forhåndsinnlastingsmekanisme, som du kan telle opp ved å se på sudo-tillatelser.

sudo -l

6. Finne Linux-kjerneutnyttelser

Linux-kjerneutnyttelser er dødelige fordi de angriper kjernen av operativsystemet som kjører på det kompromitterte systemet. Med en kritisk kjernefeil vil du kunne gjøre omtrent hva som helst med systemet.

For å finne kjerneutnyttelse må du først finne ut kjerneversjonen og deretter bruke et verktøy som searchsploit eller, bruker Google Dorks, finn en passende utnyttelse som påvirker den eksakte versjonen av kjernen som kjører på systemet.

7. Utnytter SUID-binærer

SUID er forkortelsen for Set Owner User ID ved utførelse. Det er en spesiell type filtillatelse som, når den er satt, kjører et program med rettighetene til eieren.

Hvis et program ble opprettet av root-brukeren og SUID-biten ble satt for det, ville programmet, når det kjøres, ha root-privilegier. Hvordan kan SUID misbrukes? Det er enkelt.

Oppregne for alle binærfiler med SUID-bitsett, søk gjennom listen, finn en binær som du har skrivetilgang til, og rediger kilden for å legge til nyttelasten din. Du kan bruke find-kommandoen til å se etter SUID-binærfiler og omdirigere standardutdata til /dev/null:

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

8. Kapring av biblioteker

Noen ganger kan det være programmer som kjører på systemet som bruker biblioteker som ikke er skrivebeskyttet. I et slikt scenario kan du enkelt overskrive biblioteket som er i bruk og ta kontroll over programmets funksjonalitet.

Hvis du er heldig og finner et program som kjører som root, kan du kapre biblioteket det avhenger av og potensielt få root-shell-tilgang.

9. Undersøke og kapre miljøvariabler

Miljøvariabler er spesielle typer variabler som til en viss grad definerer hvordan systemet og programmene fungerer. En viktig miljøvariabel er PATH-variabelen.

Den lagrer plasseringen til alle de kjørbare binærfilene i systemet. Du kan manipulere PATH-variabelen og lenke den sammen med andre sårbarheter som bibliotekkapring for å få root-tilgang.

Anta for eksempel at det er en kjørbar fil med et SUID-bitsett. For å fungere ordentlig, kaller den en binær uten å definere den fullstendige banen.

Du kan dra nytte av dette ved å lage en duplikat, ondsinnet versjon av binæren, og oppdatere PATH-variabelen med plasseringen til den ondsinnede binærfilen, så når den kjørbare SUID-filen kjøres, vil din ondsinnede binære fil kjøres som root, og du vil kunne skape et rotskall.

Dessuten er det også en god sjanse for å finne hemmelige nøkler og passord ved ganske enkelt å se gjennom miljøvariablene. Du kan skrive ut alle miljøvariablene ved å bruke kommandoen env:

env

10. Finn gjenstander i Bash History

Ofte slettes ikke historien til den nåværende brukeren. Du kan misbruke dette for å potensielt få tilgang til sensitiv informasjon eller kjøre tidligere kommandoer på nytt med modifiserte parametere.

Selv om disse sannsynligvis ikke vil føre til rettighetseskalering, er det en god kilde til informasjonslekkasjer for å gi deg klarhet i hva brukeren vanligvis gjør på systemet.

11. Kapring av sårbare Cron-jobber

Cron-jobber er en innebygd og svært ressurssterk funksjon i Linux. Hvis du har migrert fra Windows, kan en cron-jobb sammenlignes direkte med en planlagt oppgave på Windows.

Den kjører med jevne mellomrom og utfører kommandoer. Både tidspunktet når det skal kjøres og kommandoene det skal utføre er forhåndsdefinert av brukeren. Noen ganger kan du finne noen få cron-jobber som er sårbare for angrep som jokertegninjeksjon eller kan skrives av brukeren du har logget på som.

Du kan misbruke disse sårbarhetene for å få root-tilgang til systemet. For å utnytte en cron-jobb, må du først finne en sårbar. Her er kommandoene for å liste opp cron-jobber som kjører og andre relevante data:

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

12. Oppføring av utdaterte pakker

Når du har etablert tilgang til et system, er et av de første trinnene du bør ta å liste opp alle de installerte programvarepakkene og sammenstille deres installerte versjoner med deres nyeste utgivelse.

Det er en mulighet for at en obskur pakke er installert som kanskje ikke blir brukt mye, men som er kritisk sårbar for et privilegieeskaleringsangrep. Du kan deretter utnytte den pakken for å få root-tilgang.

Bruk dpkg-kommandoen med -l tag for å liste installerte pakker på Debian- og Ubuntu-baserte systemer:

dpkg -l

For RHEL/CentOS/Fedora-systemer, bruk denne kommandoen for å liste installerte pakker:

rpm -qa 

Nå vet du hvordan du manuelt teller opp Linux for privilegieeskalering

Eskalering av privilegier avhenger utelukkende av oppregning. Jo mer informasjon du har tilgang til, jo bedre vil du være i stand til å planlegge angrepsstrategiene dine.

Effektiv opptelling er nøkkelen til å etablere fotfeste, eskalere privilegier og forbli på målsystemet. Selv om det hjelper å gjøre ting manuelt, kan noen av oppgavene tildeles automatiserte verktøy for å spare tid og krefter. Du må vite om de beste sikkerhetsverktøyene for å skanne et system for sårbarheter.