RootkitRevealer v1.71
Készítette: Mark Russinovich
Közzétéve: 2006. november 1.
RootkitRevealer letöltése (231 KB)
Futtassa most a Sysinternals Live-ból.
A RootkitRevealer egy speciális rootkitészlelési segédprogram. Windows XP (32 bites) és Windows Server 2003 (32 bites) rendszeren fut, és a kimenete felsorolja a beállításjegyzék és a fájlrendszer API-eltéréseit, amelyek felhasználói módú vagy kernel módú rootkit jelenlétére utalhatnak. A RootkitRevealer sikeresen észlel számos állandó rootkitet, köztük az AFX-et, a Vanquish-t és a HackerDefendert (megjegyzés: A RootkitRevealer nem olyan rootkiteket észlel, mint a Fu, amelyek nem próbálják elrejteni a fájljaikat vagy a beállításkulcsaikat). Ha a rootkit jelenlétének azonosítására használja, kérjük, tudassa velünk!
Ennek az az oka, hogy már nincs parancssori verzió, hogy a kártevő-szerzők a végrehajtható név használatával kezdték meg a RootkitRevealer vizsgálatának célzását. Ezért frissítettük a RootkitRevealert, hogy végrehajtsa a vizsgálatát egy véletlenszerűen elnevezett példányból, amely Windows-szolgáltatásként fut. Az ilyen típusú végrehajtás nem kedvez a parancssori felületnek. Vegye figyelembe, hogy parancssori beállításokkal automatikus vizsgálatot hajthat végre egy fájlba naplózott eredményekkel, ami egyenértékű a parancssori verzió viselkedésével.
A rootkit kifejezés azokat a mechanizmusokat és technikákat írja le, amelyekkel a kártevők, köztük a vírusok, kémprogramok és trójaiak megpróbálják elrejteni jelenlétüket a kémprogram-blokkolók, a víruskereső és a rendszerfelügyeleti segédprogramok elől. Számos rootkit-besorolás létezik attól függően, hogy a kártevő túléli-e az újraindítást, és hogy felhasználói vagy kernel módban fut-e.
Állandó Rootkits
Az állandó rootkit egy olyan kártevőhöz van társítva, amely a rendszer minden indításakor aktiválódik. Mivel az ilyen kártevők olyan kódot tartalmaznak, amelyet minden rendszernek automatikusan végre kell hajtania, vagy amikor egy felhasználó bejelentkezik, egy állandó tárolóban kell tárolnia a kódot, például a beállításjegyzékben vagy a fájlrendszerben, és konfigurálnia kell egy metódust, amellyel a kód felhasználói beavatkozás nélkül végrehajtható.
Memóriaalapú Rootkits
A memóriaalapú rootkits olyan kártevő, amely nem rendelkezik állandó kóddal, ezért nem éli túl az újraindítást.
Felhasználói módú Rootkits
Számos módszer létezik, amellyel a rootkits megpróbálja elkerülni az észlelést. Egy felhasználói módú rootkit például elfoghatja a Windows FindFirstFile/FindNextFile API-k összes hívását, amelyeket a fájlrendszer-felderítési segédprogramok ( köztük az Explorer és a parancssor) használnak a fájlrendszerkönyvtárak tartalmának számbavételéhez. Ha egy alkalmazás olyan címtárlistát végez, amely egyébként olyan eredményeket ad vissza, amelyek a rootkithez társított fájlokat azonosító bejegyzéseket tartalmaznak, a rootkit elfogja és módosítja a kimenetet a bejegyzések eltávolításához.
A natív Windows API a felhasználói módú ügyfelek és a kernel módú szolgáltatások, valamint a kifinomultabb felhasználói módú rootkits interfészként szolgál a natív API fájlrendszeri, beállításjegyzéki és folyamat-enumerálási funkciói között. Ez megakadályozza az észlelést olyan szkennerekkel, amelyek összehasonlítják a Windows API-számbavétel eredményeit a natív API-számbavétel által visszaadottakkal.
Kernel módú Rootkits
A kernelmódú rootkitek még hatékonyabbak lehetnek, mivel nem csak kernel módban képesek elfogni a natív API-t, hanem közvetlenül is manipulálhatják a kernel módú adatstruktúrákat. A kártevő-folyamatok jelenlétének elrejtésére gyakran használt módszer a folyamat eltávolítása a kernel aktív folyamatainak listájából. Mivel a folyamatkezelési API-k a lista tartalmára támaszkodnak, a kártevő-folyamat nem jelenik meg a folyamatkezelő eszközökben, például a Feladatkezelőben vagy a Folyamatkezelőben.
Mivel az állandó rootkitek úgy működnek, hogy módosítják az API-k eredményeit, hogy az API-kat használó rendszernézet eltér a tárterület tényleges nézetétől, a RootkitRevealer összehasonlítja a rendszervizsgálat eredményeit a legmagasabb szinten a legalacsonyabb szinttel. A legmagasabb szint a Windows API, a legalacsonyabb szint pedig a fájlrendszerkötet vagy a beállításjegyzék-hive nyers tartalma (a hive-fájl a beállításjegyzék lemezen tárolt tárolási formátuma). Így például a RootkitRevealer a Windows API által visszaadott információk és a FAT- vagy NTFS-kötet fájlrendszerstruktúráinak nyers vizsgálatában látható információk közötti eltérésként fogja látni a Windows API-t vagy a natív API-t módosító rootkiteket, amelyek a jelenlétüket eltávolítják a címtárak listájából.
Elrejthető a RootkitRevealer
Elméletileg lehetséges, hogy a rootkit elrejtse a RootkitRevealer elől.
Ehhez a RootkitRevealer a beállításjegyzék hive-adatainak vagy fájlrendszeradatainak olvasását, valamint az adatok tartalmának olyan módosítását igényelné, hogy a rootkit beállításjegyzék-adatai vagy fájljai ne legyenek jelen. Ehhez azonban a rootkitekben eddig nem látott kifinomultságra lenne szükség.
Az adatok módosítása megköveteli az NTFS, FAT és Registry hive formátumok intim ismeretét, valamint az adatstruktúrák olyan módosításának lehetőségét, hogy elrejtik a rootkitet, de nem okoznak inkonzisztens vagy érvénytelen struktúrákat vagy a RootkitRevealer által megjelölt mellékhatásokat.
Létezik-e biztos módszer a rootkit jelenlétének megismerésére?
Általában nem egy futó rendszerből. A kernelmódú rootkitek a rendszer viselkedésének bármely aspektusát szabályozhatják, így bármely API által visszaadott információk, köztük a Registry hive nyers olvasásai és a RootkitRevealer által végzett fájlrendszeradatok sérülhetnek. Míg egy rendszer on-line vizsgálatának és egy biztonságos környezetből, például a rendszerindításból a CD-alapú operációs rendszer telepítésébe történő off-line vizsgálat összehasonlítása megbízhatóbb, a rootkits az ilyen eszközöket megcélozza, hogy még ők is elkerüljék az észlelést.
A lényeg az, hogy soha nem lesz univerzális rootkit scanner, de a legerősebb szkennerek lesznek on-line/off-line összehasonlító szkennerek, amelyek integrálhatók a víruskeresővel.
A RootkitRevealer megköveteli, hogy az a fiók, amelytől a futtatása hozzá lett rendelve, a Biztonsági mentési fájlok és könyvtárak, az Illesztőprogramok betöltése és a kötetkarbantartási feladatok végrehajtása (Windows XP és magasabb szintű) jogosultságokkal rendelkezzen. A Rendszergazdák csoport alapértelmezés szerint ezekhez a jogosultságokhoz van hozzárendelve. A hamis pozitív értékek minimalizálása érdekében futtassa a RootkitRevealert egy tétlen rendszeren.
A legjobb eredmény érdekében lépjen ki az összes alkalmazásból, és a Rendszer egyébként tétlen maradjon a RootkitRevealer vizsgálati folyamata során.
Ha kérdése vagy problémája van, látogasson el a Sysinternals RootkitRevealer fórumára.
A rendszer vizsgálatához indítsa el a rendszeren, és nyomja le a Vizsgálat gombot. A RootkitRevealer megvizsgálja a rendszer műveleteit az ablak alján található állapotterületen, és rögzíti a kimeneti listában szereplő eltéréseket. A konfigurálható beállítások:
- NTFS metaadatfájlok elrejtése: ez a beállítás alapértelmezés szerint be van kapcsolva, és a RootkitRevealer nem jeleníti meg a Standard NTFS metaadatfájlokat, amelyek el vannak rejtve a Windows API-ból.
- Beállításjegyzék vizsgálata: ez a beállítás alapértelmezés szerint be van kapcsolva. A kijelölés megszüntetésekor a RootkitRevealer nem végez beállításjegyzék-vizsgálatot.
A RootkitRevealer számos lehetőséget támogat az automatikus beolvasási rendszerekhez:
Használat: rootkitrevealer [-a [-c] [-m] [-r] outputfile]
Paraméter | Leírás |
---|---|
-egy | Ha elkészült, automatikusan beolvassa és kilép. |
-c | A kimenet formázása CSV-ként. |
-m | NTFS-metaadatfájlok megjelenítése. |
-r | Ne vizsgálja meg a beállításjegyzéket. |
Vegye figyelembe, hogy a fájl kimeneti helyének helyi köteten kell lennie.
Ha megadja a -c beállítást, az nem jelenti az előrehaladást, és az eltéréseket CSV formátumban nyomtatja a rendszer az adatbázisba való egyszerű importálás érdekében. A távoli rendszerek vizsgálatához hajtsa végre a Sysinternals PsExec segédprogrammal a következő parancssort:
psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log
Ez egy képernyőkép a RootkitRevealerről, amely észleli a népszerű HackerDefender rootkit jelenlétét. A beállításkulcs eltérései azt mutatják, hogy a HackerDefender eszközillesztőjét és szolgáltatásbeállításait tároló beállításkulcsok nem láthatók a Windows API-ban, de megtalálhatók a beállításjegyzék hive-adatainak nyers vizsgálatában. Hasonlóképpen, a HackerDefenderhez társított fájlok nem láthatók a Windows API-címtárakban, de a nyers fájlrendszer adatainak vizsgálatában is megtalálhatók.
Meg kell vizsgálnia az összes eltérést, és meg kell határoznia annak valószínűségét, hogy a rootkit jelenlétét jelzik. Sajnos a kimenet alapján nincs végleges mód annak meghatározására, hogy létezik-e rootkit, de minden jelentett eltérést meg kell vizsgálnia annak érdekében, hogy azok magyarázhatók legyenek. Ha megállapítja, hogy telepítve van egy rootkit, keressen rá az interneten az eltávolítási utasításokra. Ha nem biztos abban, hogy hogyan távolíthat el egy rootkitet, újra kell formáznia a rendszer merevlemezét, és újra kell telepítenie a Windowst.
A RootkitRevealer lehetséges eltérésekkel kapcsolatos alábbi információk mellett a Sysinternals RootkitRevealer fóruma az észlelt rootkiteket és konkrét hamis pozitívumokat is ismerteti.
Elrejtve a Windows API-ból
Ezek az eltérések a legtöbb rootkit által bemutatottak; Ha azonban nem ellenőrizte az NTFS-metaadatfájlok elrejtése jelölőnégyzetet, akkor várhatóan számos ilyen bejegyzés jelenik meg bármelyik NTFS-köteten, mivel az NTFS elrejti a metaadatfájlokat( például $MFT és $Secure) a Windows API-ból. Az NTFS-köteteken található metaadatfájlok az NTFS verziójától és a köteten engedélyezett NTFS-funkcióktól függően változnak. Léteznek olyan víruskereső termékek is, mint például a Kaspersky Antivirus, amelyek rootkit technikákat használnak az NTFS alternatív adatfolyamokban tárolt adatok elrejtésére. Ha ilyen vírusolvasót futtat, akkor minden NTFS-fájlban megjelenik egy Rejtett a Windows API-ból való eltérés egy alternatív adatfolyam esetében. A RootkitRevealer nem támogatja a kimeneti szűrőket, mert a rootkits bármilyen szűrés előnyeit kihasználhatja. Végül, ha a vizsgálat során törölnek egy fájlt, akkor ez az eltérés is előfordulhat.
Ez a Windows Server 2003 fájlrendszerben definiált NTFS metaadatfájlok listája:
- $AttrDef
- $BadClus
- $BadClus:$Bad
- $BitMap
- $Boot
- $LogFile
- $Mft
- $MftMirr
- $Secure
- $UpCase
- $Volume
- $Extend
- $Extend\$Reparse
- $Extend\$ObjId
- $Extend\$UsnJrnl
- $Extend\$UsnJrnl:$Max
- $Extend\$Quota
A hozzáférés megtagadva.
A RootkitRevealer soha nem jelentheti ezt az eltérést, mivel olyan mechanizmusokat használ, amelyek lehetővé teszik a rendszer bármely fájl-, könyvtár- vagy beállításkulcsának elérését.
Látható a Windows API-ban, a címtárindexben, de az MFT-ben nem.
Látható a Windows API-ban, de nem az MFT-ben vagy a címtárindexben.
Látható a Windows API-ban, az MFT-ben, de a címtárindexben nem.
A címtárindexben látható, a Windows API-ban és az MFT-ben nem.
A fájlrendszer vizsgálata három összetevőből áll: a Windows API-ból, az NTFS Master File Tableből (MFT) és az NTFS lemezen lévő címtárindex-struktúrákból. Ezek az eltérések azt jelzik, hogy egy fájl csak egy vagy két vizsgálatban jelenik meg. Ennek gyakori oka, hogy a vizsgálat során létrejön vagy törlődik egy fájl. Ez egy példa a RootkitRevealernek a vizsgálat során létrehozott fájl eltérési jelentésére:
C:\newfile.txt
2005.03.01. 17:26
8 bájt
Látható a Windows API-ban, de nem az MFT-ben vagy a címtárindexben.
A Windows API hossza nem összhangban van a nyers hive-adatokkal.
A Rootkits megpróbálhatja elrejteni magát úgy, hogy félrevezeti egy beállításjegyzék-érték méretét, hogy a tartalma ne legyen látható a Windows API-nak.
Minden ilyen eltérést meg kell vizsgálnia, bár ez a beállításjegyzék-értékek miatt is megjelenhet, amelyek a vizsgálat során változnak.
Írja be a Windows API és a nyers hive-adatok közötti eltérést.
A beállításjegyzék-értékek típusa (például DWORD és REG_SZ), és ez az eltérés azt jelzi, hogy a Windows API-n keresztül jelentett érték típusa eltér a nyers hive-adatokétól. A rootkit elfedheti az adatokat, ha például REG_BINARY értékként tárolja, és REG_SZ értéknek tekinti a Windows API-t; ha az adatok elején egy 0-t tárol, a Windows API nem fog tudni hozzáférni a további adatokhoz.
A kulcsnév beágyazott null értékeket tartalmaz.
A Windows API null értékű sztringként kezeli a kulcsneveket, míg a kernel számozott sztringként kezeli őket. Így létrehozhat olyan beállításkulcsokat, amelyek az operációs rendszer számára láthatók, de csak részben láthatók a beállításjegyzék-eszközök, például a Regedit számára. A Sysinternals Reghide-mintakódja ezt a technikát mutatja be, amelyet a kártevők és a rootkitek egyaránt használnak a beállításjegyzék adatainak elrejtéséhez. A Sysinternals RegDelNull segédprogrammal beágyazott null értékekkel törölheti a kulcsokat.
A Windows API és a nyers hive-adatok közötti adateltérés.
Ez az eltérés akkor fordul elő, ha egy beállításjegyzék-érték frissül a beállításjegyzék vizsgálata közben. A gyakran változó értékek közé tartoznak az időbélyegek, például a Microsoft SQL Server alább látható üzemideje, valamint a vírusolvasó "utolsó vizsgálat" értékei. Minden jelentett értéket meg kell vizsgálnia, hogy az érvényes alkalmazás- vagy rendszerregisztrációs adatbázis-érték-e.
HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc
2005.03.01. 16:33
8 bájt
Az alábbi webhelyek és könyvek a rootkitekkel kapcsolatos további információk forrásai:
Sony, Rootkits és Digital Rights Management Gone Too Far
Olvassa el Mark blog bejegyzését a felfedezése és elemzése egy Sony rootkit az egyik számítógépén.
Rootkits felfedése
Mark júniusi Windows IT Pro Magazine-cikke áttekintést nyújt a rootkit technológiákról és a RootkitRevealer működéséről.
Rootkits: A Windows Kernel felforgatása
Greg Hoglund és Jamie Butler könyve a rendelkezésre álló rootkits legátfogóbb kezelése.
www.phrack.org
Ez az oldal tárolja a Phrack archívumát, egy cracker-orientált magazint, ahol a fejlesztők megvitatják a biztonsággal kapcsolatos termékek hibáit, a rootkit technikákat és más kártevő trükköket.
The Art of Computer Virus Research and Defense, Peter Szor
Malware: Fighting Malware Code, by Ed Skoudis and Lenny Zeltser
Windows Internals, 4th Edition, Mark Russinovich és Dave Solomon (a könyv nem beszél rootkits, de megértése a Windows architektúra hasznos megértéséhez rootkits).
RootkitRevealer letöltése (231 KB)