Sobre El Metasploit Meterpreter
De www.metasploit-es.com.ar
Contenido |
Sobre el Meterpreter de Metasploit
Meterpreter es un avanzado y dinamicamente extensible payload que utiliza stagers de inyeccion DLL en memoria que se extiende sobre la red en tiempo de ejecucion. Se comunica con el socket del stager y provee una comprensiva API Ruby del lado-cliente. Posee caracteristicas de historial de comandos, completado con tabulador, canales y mas. Meterpreter fue originalmente escrito por skape para Metasploit 2.x, se le mezclaron extensiones comunes para 3.x y actualmente esta siendo rediseñado para Metasploit 3.3. La parte de servidor ha sido implementada en C llano y ha sido compilada con MSVC, haciendolo portable. El cliente puede escribirse en cualquier lenguaje pero Metasploit tiene un cliente API Ruby repleto de caracteristicas.
Como Funciona el Meterpreter
El objetivo ejecuta el stager inicial. Normalmente suele ser un bind, reverse, findtag, passivex, etc. El stager carga la DLL preseleccionada con Reflective, que maneja la carga/inyeccion de la DLL. La base del Meterpreter inicializa, establece un enlace TLS/1.0 sobre el socket y envia un GET. Metasploit recibe este GET y configura el cliente. Finalmente, Meterpreter carga las extensiones. Siempre cargara stdapi y cargara priv si el modulo proporciona derechos administrativos. Todas estas extensiones son cargadas sobre TLS/1.0 utilizando el protocolo TLV.
Objetivos del Diseño del Meterpreter
"Cauteloso"
Meterpreter reside enteramente en memoria y no escribe nada en el disco. No se crea ningun proceso nuevo ya que Meterpreter se inyecta a si mismo en el proceso comprometido y puede migrar facilmente a otro proceso en ejecucion. Por defecto, Meterpreter utiliza comunicaciones cifradas. Todo esto proporciona evidencia forense e impacto limitados en la maquina victima.
"Poderoso"
Meterpreter utiliza un sistema canalizado de comunicacion. El protocolo TLV tiene pocas limitaciones.
"Extensible"
Se pueden aumentar las caracteristicas en tiempo de ejecucion y son cargadas sobre la red. Se pueden añadir nuevas caracteristicas al Meterpreter sin tener que reconstruirlo.
Añadiendo Caracteristicas en Tiempo de Ejecucion
Se añaden nuevas caracteristicas al Meterpreter cargando extensiones.
El cliente carga la DLL sobre el socket. El servidor que se ejecuta en la victima carga la DLL en memoria y la inicializa. La nueva extension se registra a si misma con el servidor. El cliente en la maquina atacante carga la extension API local y puede llamar las funciones de las extensiones.
El proceso entero es sutil y tarda aproximadamente un segundo en completarse.
© Offensive Security 2009
Original de www.offensive-security.com Traducido por cbk999