4.recoleccion Datos Volatiles Windows
4.recoleccion Datos Volatiles Windows
4.recoleccion Datos Volatiles Windows
Taller Práctico
(Recolección de Datos Volátiles y NO volátiles en sistemas operativos Windows)
1. Recomendaciones
1. Para la recolección de este tipo de datos debe tomar nota de cada uno de los pasos que
está realizando (Puede ser con pantallazos), para que de esta manera pueda ir
construyendo la bitácora de cada unos de los datos recolectados, y pueda por un lado
demostrar lo que hizo y por otro, que cualquier persona pueda reproducir lo que usted hizo,
en caso de requerir una auditoria al proceso.
http://technet.microsoft.com/en-us/sysinternals/bb842062
Para realizar esa recolección debemos seguir cada uno de los pasos que a continuación se
describen, adicionalmente debe ser ordenado en la recolección de los datos, cree una o
más carpetas de acuerdo a su criterio y debería crear un hash md5 a cada archivo:
NOTA: Todos los comandos los DEBE guardar en un archivo, para su posterior análisis, vea el
siguiente punto para que aprenda como capturar la salida.
10
3. Guía.
a) Como utilizar md5sum:
25f77551a9477f3f0bc7d0a138a59061 miarchivo.txt
<hash del archivo> <Nombre del archivo>
md5sum -c miarchivo.md5
miarchivo.txt: OK
En muchas ocasiones uno debe recolectar la evidencia y enviarla a otra máquina sin
necesidad de guardarla en la misma máquina del incidente. Para este tipo de escenarios
existen dos herramientas de transmisión de información a través de la línea de comandos,
una es Netcat (http://www.downloadnetcat.com/) y la Otra Cryptcat
(http://sourceforge.net/projects/cryptcat/ ), la primera transmite sin encripción y la
segunda con encripción.
Como utilizar:
1. Debe estar situado en el directorio donde está el aplicativo, porque ese ejecutable
necesita las librerías que allí se encuentran.
2. En el Host ejecutar la siguiente instrucción, para ejecutar el servidor a donde vamos a
transmitir el archivo:
-v : Verbose mode
-l : Listening mode
-p : Port listeninig
archivo.txt : El nombre del archivo donde van a recibir los datos por red.
Una vez lo ejecuten y si el firewall esta activo, debe desbloquear el Puerto, a través de
un mensaje que allí aparece.
3. En la maquina cliente ejecutar el siguiente comando para capturar la información del
sistema (deben tener el nc.exe):
4. Ejecutar el comando Psinfo.exe. La salida del comando debe ser algo similar a esto:
10
2. Ejecutar “net statistics workstation “Si esta en un servidor cambio workstation por
“server”
1. Con el comando “netstat –an” muestra las conexiones TCP/IP actuales, el protocolo
de conexión, la dirección local (MAC address), la IP y el estado de la conexión.
10
Al ver la columna de estado nos damos cuenta que conexiones están activas, cuando
la descripción de una línea está marcada con “ESTABLISHED”. Por favor lea la
documentación el comando. Ver http://es.wikipedia.org/wiki/Netstat para más
información.
Con “netstat –an” también podemos ver los puertos abiertos en una maquina con el fin
de determinar que puertos pueden denotar una posible puerta trasera, por ejemplo.
10
Para examinar un poco más los puertos abiertos, deberíamos encontrar que
aplicaciones son las que están abriendo los puertos. Esto con el fin de determinar si en
realidad las aplicaciones que corren en esos puertos son las que deberían estar allí.
Utilizar el comando fport.exe, el cual lo pueden encontrar en
“http://www.mcafee.com/us/downloads/free-tools/fport.aspx”
10
Este comando nos permite ver los puertos abiertos TCP/IP y UDP, además muestra que
aplicación lo está utilizando, el PID, nombre del proceso, y ruta.
Los sistemas Windows posteriores a 2003, guardan las conexiones específicas por
nombre de NetBIOS en lugar de la dirección IP. Como investigador, eso no es bueno.
Un atacante puede cambiar fácilmente su nombre de NetBIOS para dañar o penetrar el
sistema. Y al momento de revisar los logs encontraremos el nombre errado y no el real.
Por ejemplo si cambiamos el nombre NetBIOS por “ATACANTE”, en los logs siempre
aparecerá que quien estaba conectado era “ATACANTE”.
La tabla no siempre está llena, eso depende de las conexiones. Solo muestra la tabla de
nombres NetBIOS y no la historia completa de las conexiones.
http://technet.microsoft.com/en-us/library/bb490938.aspx
http://foro.portalhacker.net/index.php/topic,5422.0.html
1. Usuarios Locales, con el comando local “net users” puede obtener las cuentas
locales de la maquina.
2. Este comando determina quien está usando los recursos en su computador local y a
que recurso esta compartido.
C:\Documents and
Settings\prueba\Escritorio\Herramientas\SysinternalsSuite>psloggedon.exe
Una de las formas más fáciles en que un atacante pueda redirigir el trafico de un
servidor o una estación, es alterando las tablas de enrutamiento. Para ello debemos
obtener esa información para su análisis, el comando utilizado es:
netstat -rn
10
j. Procesos en ejecución
1. Ejecutar el comando “netstat –b”, (Ejecute este comando en la maquina local) para
determinar que archivo ejecutable tiene un determinado número de proceso (PID).
10
usage: pslist [-?] [-d] [-m] [-x][-t][-s [n] [-r n] [\\computer [-u username] [-p password]]
[[-e] name | pid]
-d This switch has PsList show statistics for all active threads on the system, grouping threads
with their owning process.
-m This switch has PsList show memory-oriented information for each process, rather than the
default of CPU-oriented information.
-x With this switch PsList shows CPU, memory and thread information for each of the processes
specified.
-p Specifies optional password for user name. If you omit this you will be prompted to enter a
hidden password.
Instead of listing all the running processes in the system, this parameter narrows PsList's scan
to those processes that begin with the name process. Thus:
name
pslist exp
would statistics for all the processes that start with "exp", which would include Explorer.
-e Use the -e switch if you want the process name to be treated as an exact match instead of a
partial match.
Instead of listing all the running processes in the system, this parameter narrows PsList's scan
to the process that has the specified PID. Thus:
pid
pslist 53
would dump statistics for the process with the PID 53.
4. También se puede determinar qué tanta memoria virtual utiliza dicho proceso. Con
la opción “pslist –me <proceso>. Ejemplo: pslist –me winlogon
k. Servicios en ejecución
Con este comando podemos examinar todos los servicios en una maquina
“C:\Documents and
Settings\prueba\Escritorio\Herramientas\SysinternalsSuite>psservice.exe”.
10
l. Tareas programadas
usage: pPsfile [\\RemoteComputer [-u Username [-p Password]]] [[Id | path] [-c]]
-p Specifies optional password for user name. If you omit this you will be prompted to enter a
hidden password.
Id Identifier (as assigned by PsFile) of the file for which to display information or to close.
Path Full or partial path of files to match for information display or close.
n. Histórico de comandos
La historia de comandos ejecutados en Windows es virtual, mientras que en Linux es
persistente.
El comando “dir” con algunos parámetros nos puede mostrar los últimos tiempos de
acceso en archivos y fólderes. Para este ejemplo ejecute el comando “dir” sobre un
directorio y observe la salida, luego ejecuta el comando:” dir /t:a /a /s /o:d”
Con este programa puede ver todos los procesos, fólder/archivos de arranque, etc… El
primer programa “C:\Documents and
Settings\prueba\Escritorio\Herramientas\SysinternalsSuite>autoruns.exe” que lanza una
interfaz grafica, y el segundo “C:\Documents and
Settings\prueba\Escritorio\Herramientas\SysinternalsSuite>autorunsc.exe” lo hace en
modo texto.
10
10
Como este tipo de volcados de memoria se escriben al disco duro, debemos pensar en
disminuir el impacto tanto como sea posible en el sistema sospechoso, como estos
volcados escriben archivos muy grandes en el disco, podemos probablemente borrar
material valiosos de los espacios sin localizar (Unallocated Space). Es por eso que debemos
pensar en conectar una unidad de red directamente al sistema afectado. Usando el
comando:
pmdump.exe
Por el momento podemos revisar el archivo .txt generado con cualquier editor de texto.
Userdump.exe
Este comando habilita la captura del espacio en memoria utilizado por cualquier proceso
en ejecución. Puede capturar uno o más procesos en una sola línea de comandos. Vea la
ayuda que sigue a continuación y explore las opciones.
Explicación:
http://support.microsoft.com/kb/241215/es
Descargar:
http://www.microsoft.com/downloads/details.aspx?FamilyID=E089CA41-6A87-40C8-BF69-
28AC08570B7E&displaylang=en
userdump8.1\x86>userdump.exe
1. Ejecute el comando “userdump –p” para que salga una lista de todos los procesos del
sistema, y pueda escoger el PID del proceso a volcar.
10
dumpchk.exe
Dumpchk es una utilidad de la línea de comandos que puede utilizar para comprobar que
se ha creado un archivo de volcado de memoria correctamente. Dumpchk no requiere
acceso a símbolos.
Explicación:
http://support.microsoft.com/kb/156280/es
Descargar:
http://www.microsoft.com/download/en/details.aspx?id=18546
La salida del comando anterior confirma el nombre del archivo su ubicación y provee
una lista de las DLL asociadas, tienen además una estampilla de tiempo.
3. Si sale el siguiente mensaje debe consultar las siguientes direcciones para solucionar el
problema, o sencillamente para que se entere de cómo debería solucionar el problema.
http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx
http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx
10
strings.exe
Podemos examinar el volcado del proceso en memoria para buscar información adicional.
Para ello utilizamos el comando “strings.exe” y le pasamos como parámetro el archivo
.dmp que creamos. El resulta serán todas las palabras bien formadas dentro de dicho
archivo, eliminando así todo lo demás que puede ser basura. Lo que allí encontrará será
todo lo que ese proceso ha colocado en memoria.
http://technet.microsoft.com/en-us/sysinternals/bb897439
Este programa no lo utilizaremos en este taller, pero puede ser de ayuda en alguna
investigación futura. Vea toda la descripción del programa en el siguiente enlace:
http://www.microsoft.com/downloads/details.aspx?familyid=E84D3B35-63C3-445B-810D-
9FED3FDEB13F&displaylang=en
10
Para realizar el volcado completo de la memoria, vamos a utilizar una herramienta muy
conocida en ambientes Linux, “dd” la cual nos sirve para realizar el volcado completo de la
memoria.
1. Para utilizar esta herramienta ejecute el siguiente comando para ver los parámetros del
comando, puede bajar la herramienta de:
http://uranus.chrysocome.net/linux/rawwrite/
dd.exe --help
2. Para realizar el volcado de la memoria debemos realizar lo siguiente. (Una Vez realizado
el volcado, puede utilizar el comando “string”, para realizar búsquedas.