Meterpreter shell og system shell definere?
Fra Offensive Security Metasploit Unleashed hjemmeside:
Meterpreter er en avanceret, dynamisk udvidelig nyttelast, der bruger in-memory DLL injektion stagersand udvides over netværket på køretid. Den kommunikerer over stager-socket og giver en omfattende Ruby API på klientsiden. Den har kommandohistorik, fanebladkomplettering, kanaler og meget mere.
Mere detaljer fra den oprindelige specifikation:
Abstrakt: Meterpreter, en forkortelse for The Meta-Interpreter, er en avanceret nyttelast, der er inkluderet i Metasploit Framework. Dens formål er at levere komplekse og avancerede funktioner, som ellers ville være kedelige at implementere udelukkende i assembler. Den måde, den opnår dette på, er ved at give udviklere mulighed for at skrive deres egne udvidelser i form af DLL-filer (shared object), der kan uploades og injiceres i en kørende proces på en målcomputer, efter at udnyttelsen har fundet sted. Meterpreter og alle de udvidelser, som den indlæser, udføres udelukkende fra hukommelsen og rører aldrig disken, hvilket gør det muligt for dem at udføre under radaren for standard Anti-Virus-detektion.
Og:
På et højt niveau ligner Meterpreter en typisk kommando-interpreter. Den har en kommandolinje og et sæt af kommandoer, der kan køres. Den mest synlige forskel er, at meterpreter-klienten kan styre sættet af kommandoer ved at injicere nye udvidelser undervejs. Da udvidelserne potentielt kan anvendes på tværs af arkitekturer og platforme, kan meterpreter-klienten bruge den samme klientgrænseflade (og kommandosæt) til at styre udvidelserne uanset
Så man kan betragte det som en udvidelig kommandoskal, der giver den samme grænseflade på tværs af platforme. Den injicerer sig selv i en eksisterende proces på målet og spinder normalt ikke nye processer ud. Nogle af de indbyggede kommandoer gør det muligt at uploade/downloade filer og opsætte port forwarding gennem målet. Meterpreter understøtter også krypteret kommunikation. Du kan læse mere på de foregående links.
En “system shell” har langt færre funktioner, bortset fra det, du allerede får gennem shell-kommandoer. En bruger kan bemærke din shell eller dens børneprocesser, der kører på target. Der kan ikke være kryptering, medmindre du selv har sat det op. Uploading/downloading af filer kan være begrænset til kopiering og indsættelse.