Želite pridobiti superuporabniški dostop do sistema Linux? Tukaj je nekaj najboljših načinov za oštevilčenje stroja Linux.

Štetje je ena ključnih stopenj penetracijskega testiranja. To je prva stvar, ki jo morate storiti, ko ogrozite ciljni sistem kot preizkuševalec penetracije. Čeprav obstaja množica orodij za avtomatizacijo tega postopka, je vedno priporočljivo, da ročno prebrskate in dvakrat preverite sistem za morebitne vektorje stopnjevanja privilegijev.

Oglejmo si različne načine za ročno oštevilčenje sistema Linux za stopnjevanje privilegijev.

Zakaj je oštevilčenje pomembno za stopnjevanje privilegijev?

Stopnjevanje privilegijev, znano tudi kot stopnjevanje privilegijev (EOP), je osrednja komponenta testiranja prodora in metodologije testiranja prodora. Kot že ime pove, je to stopnja, ko poskušate povišati svoje privilegije na skrbnika ali, v sistemih Linux, na korenskega uporabnika.

Če želite pridobiti korenske pravice, morate najprej najti ranljivost v sistemu. Tu nastopi naštevanje. Čeprav obstajajo orodja za avtomatizacijo oštevilčenja, lahko ročno in temeljito oštevilčenje pogosto odkrije napačne konfiguracije in druge ranljivosti, ki jih orodja ne zaznajo.

1. Sistemsko štetje

Prva stvar, ki jo morate narediti, potem ko pridobite prvotno oporo, je, da se poučite o sistemu, do katerega imate dostop. To vam bo pomagalo optimizirati koristne obremenitve, da se bodo ujemale z arhitekturo, in zagotovile največjo združljivost vaših koristnih obremenitev s ciljnim sistemom.

Na primer, če imate 64-bitno izkoriščanje, bi ga morali spremeniti, če vaš ciljni sistem podpira samo 32-bitno programsko opremo, saj obstaja razlika med 32-bitnimi in 64-bitnimi sistemi.

Poleg tega vam bo poznavanje različice jedra v pomoč pri iskanju izkoriščanj v spletu, če ugotovite, da je različica zastarela in ranljiva za javno izkoriščanje. Tukaj je nekaj ukazov, ki vam bodo pomagali pridobiti sistemske informacije:

Če želite najti informacije o sistemu, kot so različica jedra, izdaja OS itd., vnesite:

mačka /etc/cpuinfo 
uname -a

Če želite izvedeti več o arhitekturi procesorja, uporabite ukaz lscpu:

lscpu

2. Postopek oštevanja

Procesi so programi v izvajanju. Poznavanje celotnega seznama procesov v sistemu Linux, skupaj z nekaj drugimi taktikami oštevanja omenjeno v tem priročniku vam bo pomagalo prepoznati potencialno ranljive procese in jih uporabiti za dvig privilegij.

Na primer, če ugotovite, da se proces izvaja s korenskimi pravicami, boste morda lahko vanj vstavili poljubno kodo, kar bi lahko vodilo do uspešnega stopnjevanja pravic.

Lahko uporabiš ukaz ps z pom zastavice za seznam vseh procesov v sistemu:

ps pom

3. Štetje uporabnikov in skupin

Štetje uporabnikov in skupin je pomembno za ugotovitev, kdo ima dostop do katerega dela sistema. Poznavanje tega vam omogoča učinkovito zajemanje ciljev in izgradnjo učinkovite strategije napada. Poleg tega lahko ustvarite ustrezne preslikave in poglobljeno razumete vloge in privilegije vsakega računa.

Vidnost privilegiranih računov vam omogoča, da preizkusite znane kombinacije uporabniškega imena in gesla. Vsebino lahko natisnete /etc/passwd in /etc/group datoteke za dostop do seznama uporabnikov. Lahko pa uporabite tudi ukaz getent.

Za dobite seznam uporabnikov v Linuxu:

getent passwd

Če želite pridobiti seznam skupin:

skupina getent

4. Preiskovanje občutljivih datotek

Občutljive datoteke, kot npr /etc/passwd in /etc/shadow lahko potencialno odteče veliko informacij. Od /etc/shadow lahko poiščete zgoščene vrednosti gesel uporabnikov in jih poskusite razbiti z orodjem za razbijanje zgoščenih vrednosti, kot sta Hashcat ali John the Ripper.

Obstaja tudi /etc/sudoers datoteko, ki bo, če jo lahko nekako uredite, omogočila spreminjanje dovoljenj sudo za uporabnike in skupine.

5. Preverjanje dovoljenj sudo

Pravilno upravljanje dovoljenj sudo je ključnega pomena za varnost sistema Linux. Analiza dovoljenj sudo vam bo omogočila vpogled v možne vektorje za stopnjevanje privilegijev. Če pride do napačnih konfiguracij, na primer, da imajo nekateri programi alarmantno raven privilegijev, jih boste morda lahko izkoristili za pridobitev korenskega dostopa.

To je samo primer številnih napadalnih poti, ki se lahko odprejo, ko imate jasna dovoljenja sudo v sistemu Linux. Drug primer bi bila zloraba mehanizma prednalaganja knjižnice LD_PRELOAD, ki ga lahko naštejete tako, da pogledate dovoljenja sudo.

sudo -l

6. Iskanje izkoriščanj jedra Linuxa

Izkoriščanja jedra Linuxa so smrtonosna, ker napadejo jedro operacijskega sistema, ki se izvaja v ogroženem sistemu. S kritično napako v jedru boste s sistemom lahko naredili skoraj vse.

Če želite poiskati izkoriščanja jedra, najprej poiščite različico jedra in nato z orodjem, kot je searchsploit ali z uporabo Google Dorks, poiščite primerno izkoriščanje, ki vpliva na točno različico jedra, ki se izvaja v sistemu.

7. Izkoriščanje binarnih datotek SUID

SUID je okrajšava za Set Owner User ID upon execution. To je posebna vrsta dovoljenja za datoteko, ki, ko je nastavljeno, izvaja program s privilegiji lastnika.

Če je program ustvaril korenski uporabnik in je bil zanj nastavljen bit SUID, bi imel program ob izvajanju korenske pravice. Kako se lahko SUID zlorabi? Enostavno je.

Oštevilčite vse binarne datoteke z nastavljenim bitjem SUID, pobrskajte po seznamu, poiščite dvojiško datoteko, za katero imate dostop za pisanje, in uredite njen izvor, da dodate svoj tovor. Z ukazom find lahko poiščete dvojiške datoteke SUID in preusmerite standardni izhod /dev/null:

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

8. Ugrabitev knjižnic

Včasih se lahko v sistemu izvajajo programi, ki uporabljajo knjižnice, ki niso zaščitene pred pisanjem. V takem scenariju lahko preprosto prepišete knjižnico v uporabi in prevzamete nadzor nad funkcionalnostjo programa.

Če imate srečo in najdete program, ki se izvaja kot root, lahko ugrabite knjižnico, od katere je odvisen, in potencialno pridobite korenski dostop lupine.

9. Preiskovanje in ugrabitev spremenljivk okolja

Spremenljivke okolja so posebne vrste spremenljivk, ki do določene mere določajo delovanje sistema in programov. Pomembna spremenljivka okolja je spremenljivka PATH.

Shranjuje lokacijo vseh izvršljivih binarnih datotek v sistemu. Lahko manipulirate s spremenljivko PATH in jo povežete z drugimi ranljivostmi, kot je ugrabitev knjižnice, da pridobite korenski dostop.

Na primer, predpostavimo, da obstaja izvršljiva datoteka z nastavljenim bitom SUID. Za pravilno delovanje kliče dvojiško datoteko, ne da bi definirala celotno pot.

To lahko izkoristite tako, da ustvarite podvojeno zlonamerno različico binarne datoteke in posodobite spremenljivko PATH z lokacijo zlonamerno dvojiško datoteko, tako da se bo vaša zlonamerna dvojiška datoteka, ko se zažene izvedljiva datoteka SUID, izvajala kot root, vi pa boste lahko ustvarili korensko lupino.

Poleg tega obstaja tudi dobra možnost, da s preprostim pregledovanjem spremenljivk okolja najdete skrivne ključe in gesla. Z ukazom env lahko natisnete vse spremenljivke okolja:

okolj

10. Poiščite artefakte v Bash History

Pogosto zgodovina trenutnega uporabnika ne bo izbrisana. To lahko zlorabite, da potencialno pridobite dostop do občutljivih informacij ali znova zaženete prejšnje ukaze s spremenjenimi parametri.

Čeprav to verjetno ne bo vodilo do stopnjevanja privilegijev, je dober vir uhajanja informacij, ki vam daje jasnost, kaj uporabnik običajno počne v sistemu.

11. Ugrabitev ranljivih opravil Cron

Opravila Cron so vgrajena in zelo iznajdljiva funkcija Linuxa. Če ste se preselili iz sistema Windows, lahko opravilo cron neposredno primerjate z načrtovanim opravilom v sistemu Windows.

Periodično se izvaja in izvaja ukaze. Tako čas, ko se bo izvajal, kot ukaze, ki jih bo izvajal, vnaprej določi uporabnik. Včasih boste morda našli nekaj opravil cron, ki so ranljiva za napade, kot je vstavljanje nadomestnih znakov, ali pa jih lahko piše uporabnik, kot ste prijavljeni.

Te ranljivosti lahko zlorabite za pridobitev korenskega dostopa do sistema. Če želite izkoristiti opravilo cron, morate najprej najti ranljivo. Tu so ukazi za seznam trenutno izvajajočih se opravil cron in drugih ustreznih podatkov:

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

12. Prikazovanje zastarelih paketov

Ko vzpostavite dostop do sistema, je eden od prvih korakov, ki ga morate storiti, seznam vseh nameščenih programskih paketov in primerjava njihovih nameščenih različic z njihovo najnovejšo izdajo.

Obstaja možnost, da je nameščen nek nejasen paket, ki se morda ne uporablja pogosto, vendar je kritično ranljiv za napad z eskalacijo privilegijev. Ta paket lahko nato izkoristite za pridobitev korenskega dostopa.

Uporabite ukaz dpkg z -l oznaka za seznam nameščenih paketov v sistemih, ki temeljijo na Debianu in Ubuntuju:

dpkg -l

Za sisteme RHEL/CentOS/Fedora uporabite ta ukaz za seznam nameščenih paketov:

vrtljajev -qa 

Zdaj veste, kako ročno našteti Linux za stopnjevanje privilegijev

Stopnjevanje privilegijev je odvisno izključno od naštevanja. Več informacij, do katerih imate dostop, bolje boste lahko načrtovali svoje strategije napada.

Učinkovito oštevilčenje je ključnega pomena za vzpostavitev opore, stopnjevanje privilegijev in uspešno vztrajanje v vašem ciljnem sistemu. Čeprav ročno opravljanje stvari pomaga, lahko nekatere naloge dodelite avtomatiziranim orodjem, da prihranite čas in trud. Morate poznati najboljša varnostna orodja za skeniranje sistema za ranljivost.