Lehetséges egy internetre kapcsolt pc-be betrni és ott parancsokat indítani anélkül hogy a gépere akármi telepítve legyen?
Lehetséges. Ehhez a célrendszeren léteznie kell egy távoli kódfuttatást lehetővé tevő sérülékenységnek - ilyen sajnos sok van. Keress csak rá Microsoftos frissítések kódjaira, és nézd meg, hány darabnál szerepel a "remote code execution" kifejezés. Íme, egy példa, bár ehhez pont szükség van egy fájl átvitelére: [link]
Bármilyen, az internet felé "látható" szolgáltatásban előfordulhat olyan hiba, amely lehetővé tesz egy ilyen típusú támadást.
Hogy ezt konkrétan hogyan, milyen úton lehet kihasználni, az esetenként változó, azonban általánosságban elmondható, hogy egy megfelelően előkészített és át-/bevitt adatsorral tetszőleges utasítások végrehajtására lehet rávenni a CPU-t. Ez leggyakrabban nem maga a futtatni kívánt (rosszindulatú) szoftver, hanem egy rövid utasítássor, amely feladata mindössze annyi, hogy a támadó által meghatározott, tetszőleges másik programot töltsön le és futtasson, természetesen mindezt a felhasználó tudta nélkül.
A legnagyobb probléma akkor áll elő, ha a kérdéses sérülékenység egy CPL0 szinten futó kódban található, ezek a szoftverek ugyanis korlátlan hatalommal rendelkeznek a hardver felett (érzékeltetésképpen, ha az admint a nagyfőnökhöz hasonlítjuk, akkor a CPL0 szintű szoftver maga Zeusz). Ha egy ilyen programkód tartalmaz RCE sérülékenységet, az nagy valószínűséggel azt jelenti, hogy a tetszőlegesen beinjektált utasítássor is ezekkel a privilégiumokkal fog rendelkezni, amiből kifolyólag olyan dolgokhoz is hozzáfér, amelyekről te még csak nem is tudod, hogy léteznek. Értelemszerűen ez magában foglalja azt is, hogy egy ilyen processz bármilyen másik programnak megadhatja ugyanezeket a jogosultságokat. Az ilyen sérülékenység szerencsére jóval ritkább, bár sajnos nem példa nélküli.
Remélem, sikerült kimerítő választ adnom a kérdésedre.
Rendszergazdai joggal -most Windowsról beszélek, alapjáraton lehetséges minden user módú program memóriaterületének olvasása írása. Már önmagában ezzel is össze lehet omlasztani egy gépet, ha pl. explorer.exe-be írogat az ember bele, ilyen kódot ami ezt lehetővé teszi, vagy egyszerűen hibás értelmetlen gép kódokat írkál az ember bele stb. Így működnek jegyzem meg a rootkitek egy része, amik képesek látszólag a feladatkezelőből, illetve a windowsból is elrejteni magukat - rendszergazdai módban megnyitják ezeket a folyamatokat, és írnak bele egy olyan kódot ami az adott függvények futását filterezik le úgy, hogy a listából kiveszi a program rootkit nevét és egyéb paramétereit.
De rendszergazdai módban a registry is írhatóvá válik, amivel szintén össze lehet omlasztani a rendszert. De ha kell valakinek a kernel mód is, akkor ír a támadó egy drivert és kész is a full elérés a fizikai memóriához.
Linuxon ugyanez a helyzet csak annyi különbséggel, hogy ott nem registry van hanem cfg állományok amikbe irásával szintén össze lehet omlasztani a rendszert,a programok elindításakor( dehát ha már van root hozzáférés akkor semmibe nem telik újraindítani azokat)és alapjáraton "isten" a rendszergazda, full hozzáférése van a hardverhez -persze szigorúan csak a kernelen keresztül, de vannak olyan rendszerhívások amivel el lehet érni a kernel módú memóriát is. De ugyanúgy adhat hozzá -vehet el kernel modulokat is, újrafordíthatja a kernelt, esetleg olyan kernelt fordít ami nem tartalmaz drivert -ez pl kinyirná a linuxot teljesen -persze csak újraindítás után.
De vannak olyan sérülékenységek is amik az adott program működését vagy maga az operációs rendszer futását "gátolják", azaz lokálisan csinál egy DoS támadást: azaz szolgáltatás megtagadást csinál. Ez akár magát az operációs rendszert is tudja összeomlasztani.
A rendszergazda csak egy felhasználó. Egy felhasználó, aki számos jelentős jogosultsággal bír, de korántsem fér hozzá abszolút mindenhez. Direkt hozzáférése a hardverhez például nincs; igaz, telepíthet/felhasználhat egy drivert, aminek már van, de az a driver is (Windows) CPL0 szinten fut.
Leegyszerűsítve, a rendszergazda bármit megtehet a _rendszerrel_, a nullás ringen futó kód pedig bármit megtehet a _géppel_.
Egy esetleges támadás során természetesen sohasem az a cél, hogy ezen a szinten futó szoftverünk garázdálkodjon a gépen, csupán annyi, hogy az adott célnak megfelelő lépéseket megtehessük, ehhez legalább elégséges jogosultságaink legyenek. Az általad vázolt támadáshoz akár egy teljesen mezei felhasználó jogosultságai is elegendőek lehetnek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!