Meterpreter shell och system shell definiera?
Från Offensive Security Metasploit Unleashed webbplats:
Meterpreter är en avancerad, dynamiskt förlängningsbar nyttolast som använder in-memory DLL injection stagersoch förlängs över nätverket vid körning. Den kommunicerar över stager-sockeln och tillhandahåller ett omfattande Ruby-API på klientsidan. Den har kommandohistorik, tabkomplettering, kanaler med mera.
Mer detaljer från den ursprungliga specifikationen:
Abstrakt: Meterpreter, som är en förkortning för The Meta-Interpreter, är en avancerad nyttolast som ingår i Metasploit Framework. Dess syfte är att tillhandahålla komplexa och avancerade funktioner som annars skulle vara tråkiga att implementera enbart i assembler. Detta sker genom att låta utvecklare skriva egna tillägg i form av DLL-filer (delade objekt) som kan laddas upp och injiceras i en pågående process på en måldator efter det att exploateringen har ägt rum. Meterpreter och alla tillägg som den laddar in exekveras helt och hållet från minnet och rör aldrig disken, vilket gör att de kan exekveras under radarn för standard Anti-Virus-detektering.
Och:
På en hög nivå liknar meterpreter en typisk kommandotolk. Den har en kommandorad och en uppsättning kommandon som kan köras. Den mest synliga skillnaden är att meterpreter-klienten kan styra uppsättningen kommandon genom att injicera nya tillägg i farten. Eftersom tilläggen potentiellt kan tillämpas på olika arkitekturer och plattformar kan meterpreter-klienten använda samma klientgränssnitt (och kommandomängd) för att styra tilläggen oavsett.
Så man kan se det som ett utbyggbart kommandoshell som ger samma gränssnitt på olika plattformar. Det injicerar sig självt i en befintlig process på målet och startar vanligtvis inga nya processer. Några av de inbyggda kommandona gör det möjligt att ladda upp/ned filer och ställa in port forwarding genom målet. Meterpreter har också stöd för krypterad kommunikation. Du kan läsa mer på de tidigare länkarna.
Ett ”systemskal” har mycket färre funktioner, förutom det som du redan får genom skalkommandon. En användare kan lägga märke till ditt skal eller dess barnprocesser som körs på målet. Det kanske inte finns någon kryptering om du inte har ställt in den själv. Uppladdning/nedladdning av filer kan vara begränsad till kopiera och klistra in.