Meterpreter-Shell und System-Shell definieren?
Von der Offensive Security Metasploit Unleashed Website:
Meterpreter ist eine fortschrittliche, dynamisch erweiterbare Nutzlast, die speicherinterne DLL-Injektionsstager verwendet und zur Laufzeit über das Netzwerk erweitert wird. Er kommuniziert über den Stager-Socket und bietet eine umfassende clientseitige Ruby-API. Es verfügt über eine Befehlshistorie, Tab-Vervollständigung, Kanäle und mehr.
Mehr Details aus der ursprünglichen Spezifikation:
Abstract: Meterpreter, kurz für The Meta-Interpreter, ist eine erweiterte Nutzlast, die im Metasploit Framework enthalten ist. Sein Zweck ist es, komplexe und fortgeschrittene Funktionen bereitzustellen, die andernfalls nur mühsam in Assembler zu implementieren wären. Dies wird dadurch erreicht, dass Entwickler ihre eigenen Erweiterungen in Form von gemeinsam genutzten Objektdateien (DLL) schreiben können, die hochgeladen und in einen laufenden Prozess auf einem Zielcomputer injiziert werden können, nachdem der Angriff stattgefunden hat. Meterpreter und alle von ihm geladenen Erweiterungen werden vollständig aus dem Speicher ausgeführt und kommen nie mit der Festplatte in Berührung, so dass sie unter dem Radar der Standard-Anti-Viren-Erkennung ausgeführt werden können.
Und:
Auf den ersten Blick sieht Meterpreter einem typischen Befehlsinterpreter ähnlich. Er hat eine Befehlszeile und eine Reihe von Befehlen, die ausgeführt werden können. Der augenfälligste Unterschied besteht darin, dass der meterpreter-Client den Befehlssatz steuern kann, indem er neue Erweiterungen in Echtzeit einfügt. Da die Erweiterungen potenziell architektur- und plattformübergreifend anwendbar sind, kann der Meterpreter-Client dieselbe Client-Schnittstelle (und denselben Befehlssatz) verwenden, um die Erweiterungen unabhängig davon zu steuern.
Man kann es sich also als erweiterbare Befehlsshell vorstellen, die plattformübergreifend dieselbe Schnittstelle bietet. Sie fügt sich in einen bestehenden Prozess auf dem Ziel ein und spinnt normalerweise keine neuen Prozesse ab. Einige der eingebauten Befehle ermöglichen das Hoch- und Herunterladen von Dateien und die Einrichtung von Portweiterleitungen durch das Ziel. Meterpreter unterstützt auch verschlüsselte Kommunikation. Sie können unter den oben genannten Links mehr darüber lesen.
Eine „System-Shell“ hat viel weniger Funktionen, außer denen, die Sie bereits durch Shell-Befehle erhalten. Ein Benutzer könnte bemerken, dass Ihre Shell oder ihre Kindprozesse auf dem Zielrechner laufen. Es gibt möglicherweise keine Verschlüsselung, es sei denn, Sie haben sie selbst eingerichtet. Das Hochladen/Herunterladen von Dateien kann auf Kopieren und Einfügen beschränkt sein.