InicioHazlo Tu MismoCómo sacar la clave Gmail desde la RAM en Firefox

Cómo sacar la clave Gmail desde la RAM en Firefox

Hazlo Tu Mismo1/29/2016
Cómo sacar la contraseña de Gmail de la memoria del proceso de Firefox usando Metasploit



Esta no era más que una prueba de concepto para mostrar cómo funcionan estas técnicas con Metasploit, y entender algunas otras técnicas que se pueden utilizar para extraer información de memoria.



Hablando con Chema me propuso crear un script continuo para optimizar o mejorar la búsqueda de expresiones o cadenas en proceso de memoria RAM durante un pentesting. ¿Por qué no hacer que Meterpreter monitorice un proceso concreto o varios en busca de diferentes patrones mientras seguimos con el trabajo? Decidí hacer una aproximación a este sano ejercicio de pentest y ponerme manos a la obra. Al script lo llamé process_monitor.rb.

El script de Meterpreter


Meterpreter puede ejecutar diferentes scripts en paralelo, lo que hace que de una forma sencilla podamos añadirle funcionalidades a nuestro trabajo. Realmente podemos verlo como un intérprete de Ruby y podríamos incluso abrir la herramienta irb e ir indicándole a Meterpreter las órdenes una a una que queremos que ejecute. El objetivo era automatizar lo máximo el proceso de monitorización. Para ello decidí reutilizar el código de proc_memdump que permite realizar un volcado de un proceso de memoria RAM, entre otras cosas.



Esta función la utilizaremos de forma iterativa para monitorizar uno o varios procesos. Una vez tenemos esto claro hay que ver las diferentes opciones del módulo que pueden servirnos para mejorarlo. Los scripts de Meterpreter tienen algo en común y es que se debe incluir un objeto opts. Este objeto de tipo Parser::Arguments permite simplificar el menú de ayuda con la información que se debe ejecutar en función de cada parámetro. Este script de Meterpreter presenta diferentes opciones que son las siguientes:

• “-h”. Mostrará la ayuda del script.
• “-p”. Permite indicar el PID del proceso a monitorizar.
• “-i”. Permite indicar el intervalo en segundos entre cada volcado de proceso.
• “-m”. Permitiría indicar si en el momento que haya un “match” entre el contenido y el patrón buscado se dejaría de llevar a cabo el proceso de monitorización. Es un valor booleano, al fin y al cabo.
• “-e”. Permite indicar el patrón buscado. A día de hoy es tan sencillo como un string, pero se podría evolucionar a una expresión regular, dotándole de mayor potencial.

Cuando se crea el objeto opts se utiliza el constructor new y se le pasan los argumentos. Los argumentos tienen un campo dónde se indica mediante un valor booleano si éste irá acompañado de un valor o no. Como se puede visualizar en la imagen “-h” tiene un valor false asociado, esto quiere decir que si el usuario lanza run process_monitor –h dicho parámetro no se acompaña de un valor. Sin embargo, run process_monitor –p se le debe especificar el PID.



Por último, el cuerpo del script consta de un sencillo algoritmo. Este irá dumpeando el proceso indicado a través del parámetro –p, en un intervalo indicado por el parámetro –i y se buscará lo que se indique en el parámetro –e. A continuación se hace un esbozo en pseudocódigo de dicho algoritmo.

Mientras no_salir
-----Dump de memoria
----- Mientras leer dumpeo
----------Si línea incluye patrón buscado
---------------Imprimir “Yeah”
----------Fin si
-----Fin Mientras
Fin mientras

Como se puede ver, el pseudocódigo es muy sencillo. Su código en Ruby también. El script puede descargarse desde mi Github de Metasploit: process_monitor.rb

Prueba de concepto


Para la prueba de concepto utilicé Firefox como proceso a monitorizar. Según he ido viendo con Firefox, cuando un usuario se loguea incorrectamente en su cuenta de correo, toda la petición HTTPs queda en claro almacenada en RAM, por lo que se pueden encontrar datos interesantes. En el caso de realizar un login correcto dicha información no se almacena.




En este caso el patrón de búsqueda es Passwd, el cual se conoce que cuando nos conectamos al correo electrónico de Gmail es el parámetro dónde se indica la contraseña. Es importante no quedarse solo en este ejemplo de prueba de concepto, y dejar que vuestros pensamientos más oscuros fluyan hacia cosas que se pueden obtener de un proceso de aplicación que esté siendo utilizada por un usuario… Las ideas surgen a partir de semillas, utilicemos esto de semilla.

Cuando el dumpeo finaliza, se analizará el fichero con el dump en busca del patrón concreto. Si se encuentra alguna coincidencia se mostrará por pantalla, aunque también se podría modificar para que se almacenase en un fichero. Además, si se encuentra una coincidencia se podría notificar al pentester de algún modo.



Se puede observar en la imagen anterior la petición realizada y que se alojaba en el dump del proceso. Información útil y monitorizada, que una vez estando dentro de una máquina se puede tener. ¿Qué más cosas buscarías en los procesos de una máquina comprometida por el auditor durante la realización de un pentesting que puedan dar resultados efectivos?
Datos archivados del Taringa! original
1puntos
101visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

Y
YoAxel25🇦🇷
Usuario
Puntos0
Posts2
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.