Superuser hozzáférést szeretne szerezni egy Linux rendszerhez? Íme néhány legjobb módja a Linux-gépek felsorolásának.
A felsorolás a penetrációs tesztelés egyik kulcsfontosságú szakasza. Ez az első dolog, amit meg kell tennie, ha penetrációs tesztelőként kompromittál egy célrendszert. Bár számos eszköz létezik ennek a folyamatnak a automatizálására, mindig ajánlott manuálisan átkutatni és kétszer is ellenőrizni a rendszert a jogosultságok eszkalációjának lehetséges vektoraira.
Nézzük meg a Linux-rendszerek manuális felsorolásának különböző módjait a jogosultságok kiterjesztéséhez.
Miért fontos a felsorolás a jogosultságok eszkalációjához?
A privilégiumok eszkalációja, más néven a privilégiumok eszkalációja (EOP), a penetrációs tesztelés és a penetrációs tesztelési módszertan alapvető összetevője. Ahogy a neve is sugallja, ez egy olyan szakasz, amikor megpróbálja felemelni a jogosultságait az adminisztrátorra, vagy Linux rendszereken a root felhasználóra.
A root jogosultságok megszerzéséhez először meg kell találnia a rendszer biztonsági rését. Itt jön képbe a felsorolás. Bár léteznek eszközök a felsorolás automatizálására, a kézi és alapos felsorolás leggyakrabban olyan helytelen konfigurációkat és más sebezhetőségeket tár fel, amelyeket az eszközök nem észlelnek.
1. Rendszerfelsorolás
Az első dolog, amit meg kell tennie a kezdeti láb megszerzése után, hogy megismerje a rendszert, amelyhez hozzáférést biztosított. Ez segít optimalizálni a hasznos terheket, hogy azok illeszkedjenek az architektúrához, és biztosítsák a hasznos terhek maximális kompatibilitását a célrendszerrel.
Például, ha van egy 64 bites exploitja, akkor módosítania kell azt, ha a célrendszere csak a 32 bites szoftvert támogatja, mivel különbség van a 32 bites és a 64 bites rendszerek között.
Ezenkívül a kernelverzió ismerete segít a weben való kizsákmányolásban, arra az esetre, ha úgy találná, hogy a verzió elavult, és ki van téve egy nyilvános kizsákmányolásnak. Íme néhány parancs, amelyek segítenek a rendszerinformációk lekérésében:
A rendszerinformációk, például a kernel verziója, az operációs rendszer kiadása stb. megkereséséhez írja be:
cat /etc/cpuinfo
uname -a
Ha többet szeretne megtudni a CPU architektúráról, használja az lscpu parancsot:
lscpu
2. Folyamat Felsorolás
A folyamatok végrehajtás alatt álló programok. A Linux rendszeren futó folyamatok teljes listájának ismerete, néhány egyéb felsorolási taktikával párosítva Az ebben az útmutatóban említett lépések segítenek azonosítani a potenciálisan sérülékeny folyamatokat, és felhasználni őket a javításukra kiváltság.
Például, ha olyan folyamatot talál, amely root jogosultságokkal fut, akkor tetszőleges kódot fecskendezhet bele, ami a jogosultságok sikeres eszkalációjához vezethet.
Te tudod használni a ps parancsot a... val aux jelzők a rendszer összes folyamatának felsorolásához:
ps aux
3. Felhasználók és csoportok felsorolása
A felhasználók és csoportok felsorolása fontos annak megállapításához, hogy ki férhet hozzá a rendszer mely részéhez. Ennek ismerete lehetővé teszi a célpontok hatékony behatárolását és hatékony támadási stratégia felépítését. Ezenkívül megfelelő leképezéseket hozhat létre, és alaposan megértheti az egyes fiókok szerepeit és jogosultságait.
A privilegizált fiókok láthatósága lehetővé teszi az ismert felhasználónév-jelszó kombinációk kipróbálását. Kinyomtathatja a tartalmát /etc/passwd és /etc/group fájlokat a felhasználók listájának eléréséhez. Alternatív megoldásként használhatja a getent parancsot is.
Nak nek kapja meg a Linux felhasználók listáját:
getent passwd
A csoportok listájának megtekintéséhez:
getens csoport
4. Érzékeny fájlok keresése
Érzékeny fájlok, mint pl /etc/passwd és /etc/shadow potenciálisan sok információ szivároghat ki. Tól től /etc/shadow megtalálhatja a felhasználók jelszavának kivonatait, és megkísérelheti feltörni azokat egy hash-feltörő eszközzel, mint például a Hashcat vagy John the Ripper.
Ott van még a /etc/sudoers fájl, amely, ha valahogy szerkeszthető, lehetővé teszi a felhasználók és csoportok sudo engedélyeinek módosítását.
5. A sudo engedélyeinek ellenőrzése
A sudo engedélyek megfelelő kezelése kulcsfontosságú a Linux rendszer biztonsága szempontjából. A sudo-engedélyek elemzése betekintést nyújt a jogosultságok eszkalációjának lehetséges vektoraiba. Ha hibás konfigurációk vannak, például bizonyos programok riasztó szintű jogosultságokkal rendelkeznek, akkor előfordulhat, hogy ezeket kihasználva root hozzáférést szerezhet.
Ez csak egy példa a számos támadási útvonalra, amelyek megnyílhatnak, ha tisztában vagyunk a Linux rendszer sudo engedélyeivel. Egy másik példa az LD_PRELOAD könyvtár előbetöltési mechanizmusával való visszaélés, amelyet a sudo engedélyek alapján sorolhat fel.
sudo -l
6. Linux kernel exploit keresése
A Linux kernel exploitjai halálosak, mert megtámadják a feltört rendszeren futó operációs rendszer magját. Egy kritikus kernelhibával szinte bármit megtehet a rendszerrel.
A kernel exploitjainak megtalálásához először keresse meg a kernel verzióját, majd egy olyan eszközzel, mint a searchsploit vagy a Google Dorks használatával, találjon megfelelő exploitot, amely a rendszeren futó kernel pontos verzióját érinti.
7. A SUID binárisok kihasználása
A SUID a Set Owner User ID rövidítése végrehajtáskor. Ez egy speciális típusú fájljogosultság, amely beállításakor a tulajdonosának jogaival hajt végre egy programot.
Ha egy programot a root felhasználó hozott létre, és a SUID bit be van állítva, akkor a program végrehajtásakor root jogosultságokkal fog rendelkezni. Hogyan lehet visszaélni a SUID-dal? Ez egyszerű.
Sorolja fel az összes SUID bitkészlettel rendelkező bináris fájlt, böngéssze át a listát, keresse meg azt a bináris fájlt, amelyhez írási hozzáférése van, és módosítsa a forrását a hasznos terhelés hozzáadásához. A find paranccsal megkeresheti a SUID binárisokat, és átirányíthatja a szabványos kimenetet ide /dev/null:
find / -perm -4000 2>/dev/null
8. Könyvtárak eltérítése
Előfordulhat, hogy a rendszeren olyan programok futnak, amelyek nem írásvédett könyvtárakat használnak. Ilyen esetben könnyen felülírhatja a használatban lévő könyvtárat, és átveheti az irányítást a program működése felett.
Ha szerencséje van, és talál egy programot, amely rootként fut, eltérítheti a könyvtárat, amelytől függ, és potenciálisan root shell hozzáférést kaphat.
9. Környezeti változók vizsgálata és eltérítése
A környezeti változók speciális típusú változók, amelyek bizonyos mértékig meghatározzák a rendszer és a programok működését. Fontos környezeti változó a PATH változó.
Tárolja a rendszerben lévő összes végrehajtható bináris fájl helyét. A PATH változót manipulálhatja, és más sérülékenységekkel láncolhatja, például könyvtár-eltérítéssel, hogy root hozzáférést kapjon.
Tegyük fel például, hogy van egy végrehajtható fájl SUID bitkészlettel. A megfelelő működéshez egy binárist hív meg anélkül, hogy meghatározná a teljes elérési utat.
Kihasználhatja ezt a bináris fájl duplikált, rosszindulatú verziójának létrehozásával, és a PATH változó helyének frissítésével. a rosszindulatú bináris, így amikor a SUID végrehajtható fájl fut, a rosszindulatú binárisod rootként fog futni, és képes leszel root shellt létrehozni.
Ezen túlmenően jó esély van titkos kulcsok és jelszavak megtalálására is, ha egyszerűen átnézi a környezeti változókat. Az összes környezeti változót kinyomtathatja az env paranccsal:
env
10. Keressen műtermékeket a Bash History alkalmazásban
Gyakran előfordul, hogy az aktuális felhasználó előzményei nem törlődnek. Ezzel visszaélve érzékeny információkhoz juthat hozzá, vagy a korábbi parancsokat módosított paraméterekkel újra futtathatja.
Bár ezek valószínűleg nem vezetnek a jogosultságok eszkalációjához, jó információforrást jelentenek a kiszivárogtatások számára, hogy egyértelművé tegyék, mit csinál a felhasználó általában a rendszeren.
11. Sebezhető Cron Jobs eltérítése
A Cron jobok a Linux beépített és rendkívül ötletes szolgáltatásai. Ha a Windows rendszerről költözött, a cron-feladat közvetlenül összehasonlítható a Windows ütemezett feladatával.
Időnként fut, és parancsokat hajt végre. Mind a futásának időpontját, mind a végrehajtandó parancsokat a felhasználó előre meghatározza. Néha előfordulhat, hogy néhány cron-feladat sebezhető olyan támadásokkal szemben, mint a helyettesítő karakterek befecskendezése, vagy a bejelentkezett felhasználó írhatja őket.
Ezekkel a biztonsági résekkel visszaélve root hozzáférést szerezhet a rendszerhez. Egy cron feladat kihasználásához először találni kell egy sebezhetőt. Az alábbi parancsok listázzák a jelenleg futó cron-feladatokat és egyéb releváns adatokat:
ls /etc/cron.d/
crontab -l -u
12. Elavult csomagok listázása
Ha létrehozta a hozzáférést egy rendszerhez, az egyik első lépés, amelyet meg kell tennie, hogy felsorolja az összes telepített szoftvercsomagot, és összevegye a telepített verzióikat a legújabb kiadásukkal.
Fennáll annak a lehetősége, hogy olyan homályos csomagot telepítenek, amelyet esetleg nem használnak túl sokat, de kritikusan ki vannak téve a jogosultság eszkalációjának. Ezután a csomagot kihasználva root hozzáférést szerezhet.
Használja a dpkg parancsot a -l címke a telepített csomagok listázásához Debian és Ubuntu alapú rendszereken:
dpkg -l
RHEL/CentOS/Fedora rendszerek esetén használja ezt a parancsot a telepített csomagok listázásához:
rpm -qa
Most már tudja, hogyan kell manuálisan felsorolni a Linuxot a jogosultságok eszkalációjához
A privilégiumok kiterjesztése kizárólag a felsorolástól függ. Minél több információhoz fér hozzá, annál jobban meg tudja tervezni támadási stratégiáit.
A hatékony felsorolás kulcsfontosságú a támaszpont megteremtésében, a jogosultságok növelésében és a célrendszeren való sikeres fennmaradásban. Bár a dolgok manuális elvégzése segít, a feladatok egy része automatizált eszközökhöz rendelhető, így időt és energiát takaríthat meg. Ismernie kell a legjobb biztonsági eszközöket a rendszer sebezhetőségeinek kereséséhez.