Este blog ya no está activo, sigue informándote aquí:

Mostrando entradas con la etiqueta WinDbg. Mostrar todas las entradas
Mostrando entradas con la etiqueta WinDbg. Mostrar todas las entradas

viernes, 20 de diciembre de 2013

WinDbg.- Interceptar Rutinas A Través De SSDT

Me encanta aprender cada día mas sobre el tema de los Rootkits y su detección. La verdad es que cada vez que me pongo con esta serie de entradas aprendo mucho y la verdad es que me divierto intentándolo entender todo. Hoy entraremos un poco en el mundo de la interceptar de rutinas a través del SSDT. 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Peleándonos con los RootKits
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////


SSDT (System Service Descriptor Table) es una mesa de atención de servicios del sistema que contiene las direcciones del punto de entrada de los servicios del núcleo NT. De esta manera, un rootkit puede controlar las rutinas del sistema, la filtración de datos "no deseados".

El flujo de código mediante la rutina de escritura de archivo del SSDT puede ser modificado. Esto puede conducir a la activación de rootkit.

Todos los punteros se hace referencia en SSDT deben hacer referencia a las rutinas implementadas en cualquiera "nt" o biblioteca "win32k". Por lo tanto, al comprobar estos punteros para intercepciones, se debe verificar si los punteros SSDT se refieren en realidad a una de esas áreas de memoria. La secuencia de comandos devuelve una lista de todos los punteros SSDT, así como los módulos de memoria que se refieren. Si el script detecta una biblioteca de terceros en lugar de un sistema de una sola, que marcará estos hechos con la palabra "Hook".

Espero que lo hayáis entendido todo y espero ya yo tambien xD Sed Buenos ;) 

martes, 17 de diciembre de 2013

WinDbg e IDT

Hoy seguimos peleándonos contra RootKits y buceando un poco mas en WinDbg que, como ya dije,  es una de las tantas áreas que no había tocado y tenia ganas de aprender muchísimo mas. 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Peleándonos con los RootKits
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Las aplicaciones en modo de usuario que solicita la ejecución de una función a nivel del sistema tendrán que elevar su nivel de privilegios.Esto se implementa a través de las interrupciones del programa.

En Windows NT, una petición del sistema se inicializa ejecutando el comando "int 2e". El comando "int" hace que la CPU genere una interrupción del programa, en referencia al índice de IDT "2e" y la lectura de los datos de esa dirección. El procesador establece valor del puntero a la desviación de la rutina de servicio de interrupción almacenada en la tabla. (uffff eh xDD ya os dije que las entradas que venían eran duras) Las llamadas al sistema estarán utilizando KiSystemService.

En WinDbg, el "idt! 2e" es el comando muestra el valor del puntero de rutina. Normalmente, el puntero de rutina se establece en la dirección de KiSystemService. Si este no es el caso, la rutina ha sido interceptada.

viernes, 13 de diciembre de 2013

Introducción a WinDbg.

Como sabéis llevo una semana dándole duro al tema de los RootKits y después de haber dado un [rápido repaso por los tipos de volcado de memoria] es el momento de introducirnos en el mundo de WinDbg. Esta sera una serie mas de entradas pero es una parte que yo no había tocado en absoluto y ahora veo que es de lo mas fundamental para pelearnos contra RootKits.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Peleándonos con los RootKits
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////


WinDbg es una herramienta de depuración multifuncional proporcionado por Microsoft con Microsoft Windows. Se puede utilizar para depurar aplicaciones, controladores o el propio sistema operativo en modo kernel. WinDbg ofrece una cómoda (no es todo lo que me gustaría, pero cómoda lo es) interfaz gráfica de usuario. 

WinDbg trabaja exclusivamente con los volcados del tipo crash dump. Aunque, cualquier otro tipo de volcado de memoria se puede convertir a ese formato con [Memory MoonSols].

Enfocando un poco el uso de WinDbg para detectar rootkits en volcados de memoria debemos saber que Windows contiene varias tablas de puntero para manejar petición redirecciones. Estas tablas incluyen IDT (Interrupt descriptor table), SSDT (System Service Descriptor Table) y IAT (Import Address Table). Aunque un rootkit puede modificar cualquier puntero en estas tablas, o cambiar la propia tabla.

Creo que hasta aquí esta bien para todos, Sed Buenos ;)