Análisis Forense en Windows. Montado, navegación y búsqueda a través de una imagen clonada

¡Muy buenos días a todos! Poco a poco estamos comenzando a tener una serie de conocimientos sobre análisis forense de entornos Windows. Esto nos va a permitir empezar a movernos con cierta soltura por estas movedizas y no suficientemente conocidas tierras del análisis forense. En este post voy a explicar de un modo muy sencillo como:

  1. Montar una imagen forense en el punto que deseemos de nuestro equipo de trabajo.
  2. Una vez montado, nos va a permitir movernos por todo/as las capetas y directorios de nuestra imagen forense, tan fácilmente como si lo hiciéramos por nuestro sistema de ficheros propio.
  3. Podremos movernos como deseemos, tanto por linea de comandos, como a través de nuestro explorador (si gustamos de apreciar la interfaz gráfica) .
  4. ¿Para que hacerlo? Bueno, podemos buscar ciertos registros o datos de un modo muy visual,  esto luego nos puede ayudar para explicar los pasos realizados a personas menos preparadas de una manera mas sencilla de asimilar.

Quisiera dejar claro un par de aclaraciones antes de continuar:

  1. Hay herramientas “automágicas” que hacen esto de manera automática y totalmente transparente para el usuario, funcionan muy bien y son totalmente recomendables y absolutamente fiables (este punto debe quedar claro). Por poner un ejemplo y para su uso en entornos Windows me viene a la cabeza la herramienta FTK Imager Lite.
  2. ¿Por qué hacerlo de esta manera? Muy sencillo, porque una vez que se explica no es tan complicado (lo vas a poder ver en breve) y porque la herramientas “automágicas” están muy bien, pero se puede llegar a perder de vista lo que ocurre por debajo si se usan de continuo. Al realizarlo como se va a explicar, somos conscientes en todo momento de lo que está pasando, sabemos donde estamos, que hacemos y porque lo hacemos. Una vez se llega a este punto con total normalidad, podremos empezar a trabajar con la tranquilidad que da el conocer el terreno que estamos pisando y esto, amigos lectores, no hará mejores y mas fiables profesionales.
  3. Cualquier herramienta que se utilice, en cualquier entorno que se utilice, puede llegar a ser perfectamente válida, tan solo debemos pensar antes de utilizarla que queremos, si esta herramienta nos lo puede dar y si entendemos lo que esta haciendo. Si la respuesta a estas tres presuntas es si, adelante. Nosotros somos personal técnico, los programas y sistemas que utilicemos para trabajar son eso, herramientas de trabajo,nada mas. En mi caso me desenvuelvo muy bien  en entornos Unix, me gusta mucho Unix, pero si tengo que trabajar en entornos Windows, no me supone mayor problema.

En el siguiente ejemplo, vamos a montar nuestra ya familiar imagen de Windows 7 pro de 64 Bits y a continuación navegaremos por su interior, tanto por consola como por interfaz gráfica (usando nuestro explorador de archivos).

Como máquina de trabajo, usaremos una distro Ubuntu (versión 16.04) a la que tan solo le hemos instalado unos iconos mas a mi gusto, un tema mas claro y nuestra ya conocida suite sleuthkit.

version

Comenzamos…

Abrimos una terminal y nos movemos al directorio Escritorio (podría ser perfectamente cualquier otro, /tmp por ejemplo, en este caso, por ser mas visual se creará en el Escritorio).

Creación Punto de montaje
Creación Punto de montaje

Este será nuestro punto de montaje de la imagen.

El segundo paso es tan sencillo como localizar el offset de inicio de Windows, para ello usamos la herramienta mmls

mmlsUna vez localizado el offset de Windows en el disco duro, se debe calcular el sector donde se inicia la partición por la cantidad de bytes asignada a cada sector (que en este caso son 512), por tanto…

calc

Una vez calculada la cifra, usaremos el comando mount

Con el comando mount realizaremos el montado de la imagen en la carpeta creada anteriormente en el Escritorio como punto de montaje (monta).

mount

sudo mount -o loop,offset=2151677952,ro,noexec,show_sys_files,streams_interface=windows ‘/media/itzala/WD/FORENSE/windows7.001’ /home/itzala/Desktop/monta/

Ahora se pasa a desglosar cada una de las opciones selecionadas de este comando:

Con la  opción -o utilizan  las siguientes opciones separadas por comas unas de  otras:

  1. Opción ro para realizar el montado en modo de solo lectura,no se podrá efectuar ningún cambio sobre la imagen (fundamental para un análisis forense)
  2. Con la opción noexec no se  permite la ejecución de binarios ejecutables en el sistema de archivos montado
  3. Opción loop para realizar el montado sobre el dispositivo
  4. Con la opción show_sys_files se muestran los archivos meta del volumen (ntfs en este caso)
  5. Se usa streams_interface=windows para utilizar flujos de datos alternos (ADS)
  6. Con offset=2151677952 le indicamos el inicio de la partición que nos interesa (en el caso de tratarse de  una unidad física) para realizar el montado a partir del byte ahí indicado.
  7. Indicamos el path de ma imagen a montar (en este caso /media/itzala/WD/FORENSE/windows7.001)
  8. Por último le indicamos el punto de montaje (/home/itzala/Desktop/monta)
  9. ¡Y ya está montado en donde le indicamos! ¿No ha sido tan difícil verdad?

interior-monta

Ya lo tenemos montado y lo podemos ver tanto desde nuestro explorador de archivos como en el caso de la imagen anterior (podemos incluso ver la copia de la $MFT que hablábamos en posts anteriores)…

terminal1

Nos colocamos con el terminal en en punto donde hemos montado la imagen y nos podemos mover sin ningún problema por todo el sistema de ficheros vía terminal…

interior_

Como se aprecia en las dos imágenes anteriores nos podemos mover sin modificar nada de la evidencia tanto por interfaz gráfica como vía terminal.

Resumiendo, de un modo muy sencillo hemos montado y accedido con total seguridad a una imagen forense y nos hemos movido con total libertad por su estructura de ficheros.  No es nada difícil y una vez se controla esto, podemos usar cualquier herramienta ya que, al conocer lo que va por debajo, no tenemos ninguna limitación. Podremos automatizar procesos con scripts con una velocidad pasmosa y llegar hasta donde nosotros deseemos.

Recuerda amigo lector, en nuestro mundo el límite es nuestra imaginación y nuestra capacidad de renovación.

¡Hasta la próxima!

 

P.D: Para que se vea que en este mundo hay opciones para todo y para mostrar las posibilidades de Linux, aquí esta una imagen de FTK Imager Lite corriendo en Ubuntu gracias a la magia de Wine.

Desktop

¿Como compartir una carpeta desde línea de comandos?

jeje bueno esto a algunos les parecerá incómodo pero para la gente que tiene o estandarizar instalaciones a lo mejor le es útil tener un bat con las carpetas típicas o simplemente quiere hacerlo por cojones desde la línea de comandos (PORQUE NO? yo lo hago 🙂 ) BUENO AQUI VIENE NUESTRO AMIGO NET SHARE.

bueno para empezar probaremos de crear una carpeta que se llame PRUEBA (que original e? )

c:\>md prueba

y a continuación seguiremos con el gran NET SHARE.

c:\>net share prueba=c:\prueba /GRANT:usuario,FULL

AU ya tenemos la carpeta prueba compartida para el usuario “usuario” con acceso total, hay 2 opciones más que son READ, CHANGE imagino que no hace falta que lo traduzca no?

net share prueba /UNLIMITED

con este comando le decimos que pueden acceder infinitos usuarios, falso pero bueno nos lo creemos. YA TENEMOS LA UNIDAD COMPARTIDA PERO ADEMÁS LE VAMOS A PONER UN COMENTARIO AL RECURSO COMPARTIDO.

NET SHARE prueba /REMARK:"JATEMATE"

Si escribimos ahora solo net share nos aparecerán todos los recursos compartidos del equipo, y podemos comprobar que está todo ok.

Bueno hasta aquí hemos llegado hoy, hay mucho trabajo que hacer y poco tiempo para hacerlo todo al final me tendré que comprar una agenda para organizarme un poquito mejor 😀

El comando NETSTAT en windows, conoce el tráfico de tu equipo…

Hay muchos de vosotros que ya tenéis muy machacado el comando netstat, pero tanto para los que lo conocen como para aquellos que no lo conocen os recomiendo que os leáis este post, hasta el final.

Empezaré diciendo que el comando netstat nos da información sobre las conexiones entrantes y salientes desde y hacia nuestro equipo, si bien es cierto que existen aplicaciones gráficas que facilitan este trabajo, para cualquier sysadmin o usuario que quiera saber que ocurre en sus equipos, es de obligado cumplimiento el conocer aunque sea un poco esta herramienta.

Para saber que opciones podemos utilizar, os invito a abrir una ventana cmd y escribáis: netstat -h

netstatH

NOTA: Para este post estoy usando Windows 8.1 puede que las opciones cambien o tengan menos opciones en otras versiones de Windows, cosa que cambia si estáis usando linux, pero bueno empezaremos poco a poco.

Sigamos, en la ventana cmd podemos ejecutar lo siguiente: netstat -a

netstatA

Como se puede observar, veremos que nos aparecen un montón de datos (protocolo utilizado, dirección local, dirección remota, estado), y según la cantidad de aplicaciones que tengamos arrancadas accediendo a internet y/o red local, el resultado puede ser muy largo. La opción -a tal y como dice la ayuda del comando nos muestra todas las conexiones y puertos a la escucha.

TIP: Recordad que siempre que lo necesitéis podéis volcar el resultado en un fichero para revisar tranquilamente, para ello ejecutaremos lo siguiente: netstat -a resultado.txt y después con un “notepad resultado.txt” podréis abrir el fichero y ver los resultados con detenimiento.

Puede ser que el resultado obtenido no sea todo lo completo que necesitéis pero por ahora iremos viendo más opciones con las que iremos mejorando la cantidad y calidad de información que necesitéis en cada momento.

Por ejemplo, en mi caso me gusta que me muestre los datos identificando la ip y puertos en lugar de que me muestre los nombres, para ello utilizaremos la opción -an tal y como podemos observar en la siguiente imagen.

netstatAN

TIP: Nos puede pasar que queramos ver por ejemplo todas las conexiones que utilicen el puerto 80, para ello podemos utilizar el pipe y concatenarlo con el comando find, por ejemplo: netstat -an | find :80

Ya vamos conociendo algunas opciones, y algunas formas de filtrar la información que recibimos por pantalla, seguimos….

Nos podría interesar saber que PID tiene el proceso que está a la escucha o esta estableciendo una comunicación, ¿para que?, se me ocurre por ejemplo para comprobar que aplicación la tiene abierta, esto lo podremos ver con la opción -o donde nos muestra el PID del proceso y posteriormente podremos ver que aplicación es con el comando tasklist. Veamos la consecución de los comandos.

netstatANO

tasklist

NOTA: Las opciones -ano la uso siempre en este orden porque me es fácil de recordar, no por otros motivos .…  X      🙂

Veamos otras opciones, por ejemplo -r :

netstatR

El resultado de este comando es exactamente igual que si ejecutásemos el comando “route print”, y nos muestra la tabla de enrutamiento local, con las redes destino, mascaras, puertas de enlace, interfaz y métrica, y paro de explicar mas cosas sobre el significado de estos datos, ya que tengo planificado hacer un post sobre el comando route donde realizaré varios ejemplos y quedarán más claros.

Ahora me gustaría hacer hincapié sobre una de las opciones del comando netstat que muchos olvidamos que existe, y que en determinadas situaciones me han ayudado mucho, justamente es la opción “interval”, la cual, podemos especificar una cantidad en segundos para que se ejecute de nuevo el comando con lo que la información se refresca y nos muestra los nuevos datos, esta opción si la redireccionamos a un archivo nos puede ayudar a ver que es lo que ha ido ocurriendo durante el arranque de una aplicación, el comando sería el siguiente:

netstat -ano 2 >>resultado.txt

El 2, significa que se ejecutará el netstat cada 2 segundos.

TIP: Cuando queramos parar la ejecución del comando, hay que pulsar CTRL+C. Y posteriormente podrémos analizar el resultado.txt con nuestro editor favorito.

El resto de opciones, aunque son menos utilizadas en general, no son por ello menos interesantes, pero os las dejo para que las exploréis vosotros.

Espero que este POST os haya gustado y sobre todo que os sea útil   🙂