Meterpreter shell and system shell define?
From the Offensive Security Metasploit Unleashed website:
A Meterpreter egy fejlett, dinamikusan bővíthető hasznos teher, amely memórián belüli DLL-injekciós stagereket használ, és futásidőben a hálózaton keresztül bővül. A stager socket-en keresztül kommunikál, és átfogó kliensoldali Ruby API-t biztosít. Rendelkezik parancstörténettel, lapkakiegészítéssel, csatornákkal és egyebekkel.
Több részlet az eredeti specifikációból:
Abstract: A Meterpreter, a The Meta-Interpreter rövidítése, egy fejlett hasznos teher, amely a Metasploit keretrendszerben található. Célja, hogy olyan összetett és fejlett funkciókat biztosítson, amelyeket egyébként fárasztó lenne pusztán assemblyben megvalósítani. Ezt úgy éri el, hogy lehetővé teszi a fejlesztők számára, hogy saját bővítményeket írjanak megosztott objektum (DLL) fájlok formájában, amelyeket feltölthetnek és beilleszthetnek a célszámítógépen futó folyamatba, miután a kihasználás megtörtént. A meterpreter és az általa betöltött bővítmények teljes egészében a memóriából kerülnek végrehajtásra, és soha nem érintik a lemezt, így lehetővé téve, hogy a szokásos vírusirtók radarja alatt fussanak.
És:
A meterpreter magas szinten egy tipikus parancsértelmezőhöz hasonlít. Van egy parancssora és egy sor futtatható parancs. A legszembetűnőbb különbség az, hogy a meterpreter kliense a parancskészletet menet közbeni új bővítmények befecskendezésével szabályozhatja. Mivel a bővítmények potenciálisan architektúrák és platformok között alkalmazhatók, a meterpreter kliens ugyanazt az ügyfélfelületet (és parancskészletet) használhatja a bővítmények vezérlésére, függetlenül attól.
Szóval, úgy gondolhatunk rá, mint egy bővíthető parancsértelmező shellre, amely ugyanazt a felületet biztosítja minden platformon. Beilleszti magát egy meglévő folyamatba a célponton, és általában nem indít új folyamatokat. Néhány beépített parancs lehetővé teszi a fájlok feltöltését/letöltését és a porttovábbítás beállítását a célponton keresztül. A Meterpreter támogatja a titkosított kommunikációt is. Bővebben az előző linkeken olvashatsz.
A “system shell” sokkal kevesebb funkcióval rendelkezik, kivéve azt, amit a shell parancsokon keresztül már megkaptál. Egy felhasználó észreveheti, hogy a shell vagy annak gyermekfolyamatai futnak a célponton. Lehet, hogy nincs titkosítás, hacsak nem te magad állítottad be. A fájlok feltöltése/letöltése másolásra és beillesztésre korlátozódhat.