Mostrando entradas con la etiqueta adquisición. Mostrar todas las entradas
Mostrando entradas con la etiqueta adquisición. Mostrar todas las entradas

viernes, 16 de septiembre de 2016

Volcado de memoria #RAM en #Linux - #LiME

Hola secuaces:

En primer lugar, igual que hice en la entrada anterior “Volcado de memoria RAM en Windows – OSForensics”, voy a recordar la importancia de las buenas prácticas, recordando la necesidad de conocer y seguir la RFC 3227, que lleva por título “Guidelines for Evidence Collection and Archiving”, (Directrices para la recolección y archivo de la Evidencia). Vuelvo a decir: recomiendo encarecidamente su lectura.

En esta ocasión, vamos a realizar un volcado de memoria de un sistema Linux.

Para ello, vamos a usar LiME, (Linux Memory Extractor). LiME es una herramienta desarrollada por 504ensics Labs, de código abierto, que permite la adquisición de la memoria volátil de sistemas Linux y dispositivos basados en Linux, como Android, y que trabaja a nivel de kernel.

Como viene siendo habitual en mí, y como pienso que la documentación de una aplicación se ha hecho para ser leída, pierdo unos minutos en leer el doc de esta maravillosa herramienta ;)

Para su uso, lo primero que vamos a hacer es clonar, (o descargar), la herramienta. Ello se hace con

git clone https://github.com/504ensicsLabs/LiME.git


Una vez que se ha descargado, procedemos a verificar que se ha realizado correctamente, mediante la línea

ls -R -l LiME


LiME precisa de tres paquetes, (make, build-essential y linux-headers). Los instalamos mediante

sudo apt-get install make build-essential linux-headers


Con la instalación de linux-headers será necesario conocer qué versión de kernel estamos usando.


Podemos averiguarlo con la orden

uname -r


Hecho esto, nos dirigimos a ‘src’ porque toca compilar y generar el módulo

cd LiME/src
make


Tras esta orden, se ha compilado y se ha generado un nuevo fichero, con nombre ‘lime-versiondekernel-generic’, con extensión ‘.ko’, “Kernel Objet”. En mi caso es ‘lime-3.16.0-77-generic.ko’.

Vale. Ya tenemos la herramienta lista para ser usada. Fácil, ¿Verdad?

Pero, ¿Ahora qué? ¿Adquisición en local o en remoto? Pues depende del caso, podría interesar adquirir la memoria en local, o por el contrario, debiéramos proceder en remoto. Personalmente, si puedo, trabajo en remoto y me evito sustos innecesarios.

Vamos a volcar la memoria de las dos formas.

Para realizar el volcado de la memoria en modo local, basta con ejecutar

sudo insmod lime-3.16.0-77-generic.ko “path=/home/marcos/Evidencias/MemLub1404 format=raw”


Verificamos que se ha generado correctamente el fichero del volcado, a través de

ls -l /home/marcos/Evidencias


Ahora vamos con la adquisición en remoto, que es mi método favorito. La adquisición remota se realiza en dos fases, la ejecución de LiME en la máquina objeto de la extracción y la ejecución de nc o de ncat en la máquina forense.

Para ello, igual que en caso anterior, clonamos la herramienta en el sistema objeto de la extracción de memoria, mediante

git clone https://github.com/504ensicsLabs/LiME.git


Hecho esto, seguimos igual que en caso anterior, compilando con

cd LiME/src
make


Vale. Estamos listos para trabajar.

Lo primero que tenemos que saber es la dirección IP de la máquina. Para ello ejecutamos un

ifconfig


Tras averiguar la IP de la máquina, procedemos con LiME, que permanece a la escucha, con

sudo insmod LiME/src/lime-3.16.0-77-generic.ko “path=tcp:4444 format=raw”


Hecho esto, mientras la máquina objeto de la extracción de memoria permanece a la escucha, tenemos que irnos a la máquina forense, la que va a adquirir el volcado.

En este punto, tenemos dos opciones para realizar el volcado. A través de nc, (netcat), o a través de ncat, (nmap). Vamos a realizarlo con los dos.

Para el caso de ncat debemos instalar nmap y ejecutar ncat para realizar así la extracción a través de

sudo apt-get install nmap


ncat 192.168.1.33 4444 > MemLubuntu1404


Para el caso de nc debemos instalar netcat y ejecutar nc para realizar así la extracción a través de

sudo apt-get install netcat


nc 192.168.1.33 4444 > MemLubuntu1404.raw


Y con esto, se adquiere un volcado de memoria RAM en Linux.

Ahora bien, ¿Ya está? ¿Eso es todo? como este proceso suele ser largo, y Linux da muchísimo juego, yo tengo por costumbre ejecutar algunas órdenes más.

¿Qué es lo que quiero y qué es lo que hago?

Como soy un paranoico de los tiempos, la primera orden que doy es time; después, realizo el volcado de la memoria; después, realizo un backup del fichero generado, (no me gusta marcharme del sitio sin una copia de la adquisición hecha); después, calculo la firma en SHA-1; después, muestro en pantalla ese cálculo; y por último, realizo una captura de pantalla de todo este proceso, que adjunto al informe pericial. Todo ello con


time ncat 192.168.1.33 && cp MemLubuntu1404 MemLubuntu1404.bak && ls -l && sha1sum MemLubuntu1404 MemLubuntu1404.bak > HashMemLubuntu.txt && cat HashMemLubuntu.txt


Después de esto, me voy a tomar un café y a hacer algo de networking, y cuando vuelvo, me encuentro con todo hecho.

Esto es todo, por ahora. Nos leemos en la siguiente entrada. Se despide este minion, entregado y leal, de vosotros… por ahora.

Marcos

lunes, 5 de septiembre de 2016

Inyecciones sin agujas con SQLMap



Buenas a todxs,

Tras unas merecidas vacaciones he decidido volver a escribir una nueva entrada. Esta vez os mostraré la herramienta SQLMap.



SQLMap es una herramienta para la automatización de ataques SQLi, lo cual facilita bastante la tarea del auditor a la hora de buscar este tipo de vulnerabilidades y poder posteriormente explotarlas.
Está desarrollada en python y se encuentra ya instalada en distribuciones como Kali, aunque también podéis descargarla desde https://github.com/sqlmapproject/sqlmap/wiki/Usage. Es bastante completa, pero en esta publicación veremos los aspectos más básicos.

Para usar la herramienta sin necesidad de probar las comodidades que nos ofrece la Guardia Civil o Policía en uno de sus lujosos y bien acondicionados calabozos, probaremos a ejecutarla en DVWA (una plataforma de pruebas ya comentada en anteriores post como: https://fwhibbit.blogspot.com.es/2016/07/poc-evitando-filtros-anti-xss.html y https://fwhibbit.blogspot.com.es/2016/03/guia-metasploitable-2-parte-2.html).

Ejecutamos la plataforma, obtenemos la dirección IP donde se aloja y entramos en ella seleccionando el nivel intermedio.


Nos vamos a la pestaña de "SQL Injection" y probamos a introducir un número cualquiera para comprobar el funcionamiento, a la vez que obtenemos información de la Cookie generada (nos será necesaria más adelante para lanzar SQLMap).

Para obtener la Cookie abrimos el inspector del navegador y accedemos a las pestaña que puede verse en la siguiente imagen:


En este punto (siento por haber ido tan rápido hasta aquí, pero quería centrarme en SQLMap y no en DVWA) empezaremos con lo interesante.

Para ejecutar la herramienta utilizaremos el comando "sqlmap" en una consola con la opción "u" para introducir la URL vulnerable (habiendo introducido antes un ID en la web), con el parámetro "--cookie" insertaremos la sesión que obtuvimos con anterioridad y por último el parámetro "--dbs" para mostrar las bases de datos contenidas en la web.


El resultado será el siguiente:


A partir de aquí, se abrirá ante nosotrxs un abanico de oportunidades para obtener información.

Como era de esperar, podemos indagar un poco más buscando en las tablas de las bases de datos mediante parámetros como "-D" para seleccionar la base de datos y "--tables" para mostrar las tablas contenidas.


Obteniendo como resultado:


Ahora que nos sentimos como auténticos juankers, tras ver lo intuitivo y sencillo que es el manejo de esta herramienta tan potente, el siguiente paso no podría ser otro que mostrar las columnas de una de las tablas obtenidas con los parámetros "-T" para seleccionar la tabla y "--columns" para mostrarlas.


Por cada columna se nos facilitará información sobre el tipo de dato que contiene.


Para sacar la información de las columnas user, first_name, last_name y password, lo haremos de una forma bastante complicada. Sólo algunos juankers como yo podrán hacerlo a través de años de experiencia y estudios... Usando el parámetro "--dump"



Todo esto está muy bien, pero las posibilidades de SQLMap son mas variadas que los gorros de Chema Alonso. ¡No preocuparse primoh!

Algunos parámetros como "--current-user" nos dará información sobre el usuario que se está ejecutando en el servidor.


En nuestro caso, es el usuario "root".


Otra cosa que suele partir ojetes, sería ejecutar el parámetro "--file-read" para leer algo tan interesante como /etc/passwd.



El fichero se guardará en la ruta que nos indica: root/.sqlmap/output/192.168.1.105/files/_etc_passwd


Por último y no menos importante, siempre nos quedará para todo lo demás Mastercard y el parámetro "--help".

No olvidéis que todo esto se trata de información para utilizarla de forma responsable, profesional, académica, blah, blah, blah y debéis NO debéis utilizarlo para liarla pardísima por servidores ajenos sin un permiso correspondiente.



"La revolución empieza por casa SQLMap."

Pablo Lorenzo.



viernes, 2 de septiembre de 2016

Volcado de memoria #RAM en #Windows - #OSForensics


Hola secuaces:

Cuando se procede a la recolección de evidencias se hace necesario conocer y seguir una serie de buenas prácticas. Para ello, se dispone de una guía, muy cortita pero muy importante. Se trata de la RFC 3227, que lleva por título “Guidelines for Evidence Collection and Archiving”, (Directrices para la recolección y archivo de la Evidencia). Os recomiendo encarecidamente su lectura.

En el punto 2 - “Guiding Principles during Evidence Collection”, (Principios rectores durante la recolección de evidencia), en su párrafo 11, (el último de ese punto), dice “Proceed from the volatile to the less volatile”, (Proceder desde la volátil a la menos volátil).

Para cumplir esa 'norma', en su punto 2.1 se establece un orden de volatilidad, donde figura la memoria.

En el punto 3.2 - “Collection Steps”, (Pasos de recolección), en su último párrafo, dice “Where feasible you should consider generating checksums andcryptographically signing the collected evidence, as this may make it easier to preserve a strong chain of evidence”, (Cuando sea factible, deberías considerar la generación de checksums y firmar criptográficamente las pruebas recogidas, ya que esto, podría hacer que sea más fácil preservar una fuerte cadena de custodia).

¿Por qué hago referencia a estos puntos? Porque, cuando se recogen evidencias, se hace necesario calcular su huella digital. Y si se realiza esta operación con la misma herramienta con la que se ha recogido la evidencia, mejor que mejor. Aquí es donde entra en juego OSForensics.

Existen decenas de utilidades para realizar el volcado de la memoria, (ya habló el compañero Naxhack5 en su entrada "Análisis Forense II - Adquisición de memoria RAM" de algunas de ellas), y existen algunas más para el cálculo de la firma digital. Una ventaja que tiene OSForensics es que realiza ambas.

Visto esto, entramos en materia.

OSForensics, de PassMark, es una completa suite para el análisis informático forense. Ofrece múltiples funciones y varias herramientas forenses libres, tales como: OSFMount, OSFClone, ImageUSB, etc. Ofrece también la posibilidad de integrarlo con otras herramientas, como Volatility o RegRipper y WinPE.

Cuando pruebo alguna herramienta, me gusta leer el contenido de la página. Los manuales y las FAQ han sido hechas para leerse ;)

¿Cuánto cuesta OSForensics? Mucho, aunque posiblemente sea una de las más asequibles, en lo referente a suites forenses comerciales. Pero dispone de una versión gratuita, eso sí, con limitaciones.

Tras realizar su descarga desde el sitio oficial, procedemos a su instalación, como cualquier otra herramienta de Windows. Con cinco ‘Next’, un ‘Install’, un ‘Next’ y un ‘Finish’.


Tras su instalación, y apertura del programa, se presenta la ventana que nos indica si queremos seguir usando la versión gratuita o si queremos actualizar a la versión profesional. Como soy pobre, le indico que quiero continuar con la versión gratuita.


Si ahora nos vamos al final del menú que hay en el lado izquierdo de la aplicación y clicamos en ‘About’ veremos qué versión estamos usando de este software. (Me gusta comprobar con qué versiones estoy trabajando).


Visto esto, es hora de instalar esta suite en el Dispositivo USB.

Para ello, en el menú de la pantalla principal de la aplicación, nos dirigimos a ‘Install to USB’


Ahora se nos presenta una ventana, donde elegimos el tipo de instalación, el dispositivo, (o la ruta local), y si queremos instalar la versión gratuita o la profesional.


Comienza la copia de la aplicación en la ruta que hayamos elegido y nos comunica que ha terminado satisfactoriamente.


Una vez que ha finalizado, nos dirigimos a la ruta donde se ha realizado la instalación y comprobamos que se ha hecho de forma correcta. (Soy un poco meticuloso).


Estamos listos para actuar. Volvemos a abrir la aplicación, desde el dispositivo externo, y nos dirigimos a ‘Memory Viewer’.


Ahora clicamos en ‘Dump Physical Memory’.


Se nos abrirá una nueva ventana donde debemos elegir el nombre y la ruta del fichero que se va a generar tras el volcado de memoria.


Una vez que le demos a ‘Guardar’ comenzará el volcado en la ruta indicada. Sobra decir que, mientras se realiza el volcado, NO SE TOCA NADA, ¿Verdad?


Una vez que ha finalizado la adquisición de la memoria, verificamos que se ha volcado correctamente.


Comprobada la generación del fichero, procedemos a calcular su firma digital en SHA-1, clicando en “Verify / Create Hash”.


Y cuando finaliza el cálculo del Hash, se nos muestra en pantalla. Ahora, o lo copiamos a un fichero de texto, o realizamos una captura de pantalla. Yo, personalmente, soy muy amigo de las capturas de pantalla.


Esto es todo, por ahora. Nos leemos en la siguiente entrada. Se despide este minion, entregado y leal, de vosotros… por ahora.

Marcos

Google Analytics