Una de las familias de rootkits que siempre ha dado que hablar es TDL o TDSS. Este tipo de rootkit siempre ha destacado por su técnica de ocultación en disco. Podemos ver su evolución en un post que escribió DiabloNova.
Su última versión que salió a finales del año pasado fue TDL3. El análisis TDL3: Part I Why so serious? Let’s put a smile …” muestra detalladamente el comportamiento y características de este rootkit.
Una de las cosas que me ha llamado la atención es lo que en el análisis anterior llama "Anti-Hook detection". Es decir, donde y como TDL3 pone los hooks para que éstos no sean detectados por las herramientas antirookit. El TDL3 utiliza estos hooks para permanecer oculto en el disco como otros rootkits, como por ejemplo el mebroot :
TDL3 concretamente utiliza las dispatch routines de atapi.sys para poner sus hooks. Una herramienta antirookit que detecta los hooks en las dispatch routines de los drivers es rootkit unhooker aka rkuk. Examinamos una máquina infectada por TDL3 con rkuk y vemos como TDL3 hace correctamente su labor de ocultar el hook:
¿Cuál es el motivo por el cual TDL3 no es detectado por las herramientas antirookit? Examinamos el hook en la dispatch routine para conocer la respuesta:

La técnica de poner uno o varios saltos en el módulo a hookear( con el fin de hacer ver a las herramientas antirookit que no es un hook ) es bastante común, y las herramientas antirookit incorporan su detección para seguir hooks en apis en ring3 o ring0 pero no ha sido empleado para seguir hooks en las dispatch routine.
Vemos que hubiera pasado si no hubiera utilizado esta técnica y hubiera puesto el hook directamente en la dispatch routine, como indica el siguiente escenario:
Alonso Candado Sánchez
S21Sec e-crime











2 comentarios:
ostias, muy guapo tio! :-)
mu guapo :)
Publicar un comentario en la entrada