28
Análisis Forense. Escenario Malware en entornos Windows Juan Garrido Consultor Seguridad I64 [email protected] Código: HOL-SEG03

Código: HOL-SEG03. ► Tipos de Troyanos Troyanos de conexión directa Troyanos de conexión inversa ► Herramientas Netcat Crypcat ► Rootkits Rootkits

Embed Size (px)

Citation preview

Page 1: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Análisis Forense.Escenario Malware en

entornos Windows

Juan GarridoConsultor Seguridad [email protected]

Código: HOL-SEG03

Page 2: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Agenda Nivel I

► Tipos de Troyanos Troyanos de conexión directa Troyanos de conexión inversa

► Herramientas Netcat Crypcat

► Rootkits Rootkits modo usuario Rootkits modo Kernel

► Phishing Tipos de Phishing Troyanos bancarios

Page 3: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Agenda Nivel II

►Análisis MalwareAnálisis estáticoAnálisis dinámico

►Análisis RAM MemoryVolcados de memoriaVolcados de procesos

►Tipos de Herramientas

Page 4: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Agenda Nivel III

►Malware IndetectableAntivirus

Verificación firmasHeurística

Técnicas utilizadasEncriptaciónMorphingModificación firmasBinders

Detección de firmasHerramientas

Page 5: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Introducción

• Los troyanos no son nada nuevoDesde los 70 ya se conocían troyanos que imitaban

la pantalla de Login. ►La profesionalización del crimen online los ha

“resucitado” como herramienta de fraude. ►En el mercado hay tal cantidad de malware, que para

las empresas antivirus es prácticamente imposible analizarlas todas.

Page 6: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Introducción

►Los métodos tradicionales han ido pasando a la historia

►Hoy en día lo que se lleva son los troyanos personalizados y específicos

Están desarrollados pensando en un fin específicoDiversidad en el código fuente (Malware

multiplataforma)Capacidad para adaptarse al entorno (conexiones

inversas)

Page 7: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Tipos de Conexión

►Conexión directaGran auge en los 80El atacante tenía que establecer la conexiónGran facilidad en aquella época (Usabilidad VS

Seguridad)Se ha ido perdiendo con el paso de los años

►Conexión InversaLa seguridad ha avanzado mucho (FW, IDS, etc..)El troyano se conecta directamente al atacanteFacilidad para pasar Firewalls, burlar antivirus, etc..En algunos casos se requiere conocer cómo

funciona internamente un SO.

Page 8: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Herramientas

►NetcatLa navaja suiza de los administradoresHerramienta adoptada por los atacantesDetectada por algunos antivirus como Hack-ToolPermite ejecutar Shell RemotasCapacidad para compartir conexión con otras

aplicacionesMuy difícil de detectar en ciertas configuraciones

►CrypcatSu homólogo en versión cifrada

Page 9: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Rootkits

Objetivo Ocultación total Muy extendidos En poco tiempo se han convertido en la primera

línea de ataqueTécnicas

Inyección DKOM

Tipos Usuario Kernel

Page 10: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Técnicas y Objetivos (Inyección)

►Conocer qué aplicación llama a determinada API del sistema

►Utilizada ampliamente por spyware y rootkits►Los objetivos son varios

Escuchar mensajes de la aplicaciónModificar datos de la aplicaciónOcultación de todo tipo de elementos del SOAplicación original ejecute código nuestro

Page 11: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Arquitectura Windows

► La arquitectura i386 admite hasta 4 anillos o niveles de privilegios (0,3)

► Impide que código con privilegios inferiores sustituya código y datos de sistema (0)

► Anillo 0.- El más elevado► Anillo 3.- Menos elevado (UserLand)► Windows emplea dos niveles de privilegio (0 y 3)► Se diseñó así para que se pudiese ejecutar en arquitecturas que

no admitiesen los 4 anillos o niveles

Page 12: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Ejemplos

► Nivel 3 (UserLand) Internet Explorer Word Notepad Etc…

►Nivel 0 Controladores (drivers) Plug & Play Memoria virtual Etc…

Page 13: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Cómo funciona

► Aplicaciones de usuario solicitan constantemente información a la capa de Kernel, y ésta al hardware

► Estas peticiones se realizan mediante llamadas al sistema. Todo ello conforma el subsistema Win32

User32.dll Gdi32.dll Kernel32.dll Shell32.dll Etc…

Page 14: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Caminos a recorrer

► Llamada al subsistema Gestiona la solicitud de forma local, sin realizar llamadas al kernel Realizar la llamada a un proceso de la capa de usuario (csrss.exe), responsable de

mantener todo el susbistema Win32. Éste mantiene la información de los procesos Win32 y se los devuelve a la API que ha efectuado la llamada

Envía una llamada de procedimiento remoto (RPC) para que actúe como enlace (Ej.- Recursos compartidos)

Llama a alguna API que necesite servicios de Kernel. Realizará una llamada a una librería de sistema (ntdll.dll)

Ntdll.dll.- Librería especializada que contiene funciones de soporte interna, distribución de servicios

Kernel32.dll.- Se suele confundir con el kernel de Windows. En realidad es una librería que opera en Ring 3 y únicamente transmite la información o llamadas a la librería ntdll.dll, también cargada en Ring3

Ntoskrnl.exe.- Contiene las funciones de kernel. Coopera internamente con otro driver de sistema (win32k.sys)

Page 15: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Rootkits

► Deben alterar este camino o flujo de ruta para conseguir sus objetivos, sean cuales sean

► Este modo de alteración o modificación se puede realizar a través de un proceso llamado “enganche” o “hooking”

► La propia arquitectura de Windows permite una rápida implementación de este tipo de técnica, lo que permite flexibilidad y capacidad de ampliación a una herramienta, sea cual sea su fin

► Por regla general los rootkits modifican los datos que devuelven las llamadas de funciones del sistema de Windows para ocultar procesos, entradas de registro, etc…

Page 16: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Tipos de Hooks

►Los más conocidosSystem Hooks (Inyección)IAT Patching

►Información sobre Hookshttp://msdn2.microsoft.com/en-us/library/ms6449

90.aspxhttp://msdn2.microsoft.com/en-us/library/ms9975

37.aspx

Page 17: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Hooks propiamente dichos

►Un hook (gancho) es un mecanismo por el cual una función puede interceptar eventos antes de llegar a su destino, llegando en algún caso a poder modificar el evento.

►Hay muchos tipos de hooksDe tecladoDe ratónDe mensaje a ventanaDe evento a ratónEtc…

Page 18: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Hooks propiamente dichos

►Las funciones que reciben los eventos son llamadas funciones filtro y se clasifican de acuerdo al tipo de evento que interceptan.

►Para mantener y acceder a este tipo de funciones, las aplicaciones utilizan las siguientes funciones:

SetWindowsHookExUnHookWindowsHookEx

Page 19: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Hooks en Windows

► Las aplicaciones basadas en Windows utilizan las siguientes funciones: SetWindowsHookEx UnhookWindowsHookEx CallNextHookEx

HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORDdwThreadId);

Page 20: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Algunos tipos de Inyección

►Inyecciones DLL►Proxy DLL►Parchear llamadas►Parchear la API►Romper las barreras del espacio de memoria►Winsock Hooking

Page 21: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Proxy DLL

► Uno de los más fáciles► Muy antiguo► Se logra muy fácilmente creando un proxy dll, la cual contendrá

funciones exportadas de la librería original de Windows (Winsock). Si renombramos esta librería a la original de Windows (wsock32.dll) y enlazada en el mismo directorio, la intercepción de mensajes ocurre al instante.

► Como contrapartida cabe decir que muchas de las funciones de la librería Winsock de Microsoft, no están documentadas, por lo que una copia de ésta restaría funcionalidad al sistema, siendo más fácil su detección.

► +Info: http://www.microsoft.com/msj/0997/hood0997.aspx

Page 22: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Inyección DLL

► Nuestro código (el maligno), debe estar en el mismo espacio de memoria que el ejecutable o dll a inyectar

Podemos modificar la librería del ejecutable legítimo Crear Hilos de forma remota (CreateRemoteThread) http://msdn2.microsoft.com/en-us/library/ms682437.aspx

► Inyección a través de extensión de aplicaciones Su diseño (IE, Explorador de Windows, etc…) permite que se puedan

“extender” sus funcionalidades.

► HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_DLLs

Page 23: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

Rootkits Modo Kernel

► Programación en modo kernel la utilizan habitualmente aplicaciones legítimas (drivers, antivirus, etc…)

► Los rootkits en modo kernel necesitan cargarse en el espacio de memoria reservado para el kernel

► Una vez que están instalados funcionan de manera similar a como si lo estuviesen haciendo en Ring3, pero con la salvedad de que se están ejecutando en un espacio “reservado” para el Kernel

► Entra en juego nuevas técnicas Modificación de la tabla de descriptores del sistema (SSDT)

Ej.- Crear Carpeta (NTcreateFile)Kernel32.dll ntdll.dllntoskrnl.exeSSDTCrea CarpetaRootkit modificaría la tabla SSDT para que apunte a una función específica del rootkitSe descubren fácilmenteSe puede comparar la tabla SSDT con el TaskManager para ver los procesos en ejecución

Page 24: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

DKOM

► Direct Kernel Object Manipulation Modifica los objetos del kernel directamente Muy peligroso Puede dar pantallas azules (BSOD) Llama directamente al administrador de objetos de Windows (Se puede ver

con WinObj) Al modificar directamente los objetos, éste puede ocultar directamente los

procesos sin que pasen a formar parte de una lista interna

Page 25: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

http://Windowstips.wordpress.com

Page 26: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

http://legalidadinformatica.blogspot.com

Page 27: Código: HOL-SEG03. ► Tipos de Troyanos  Troyanos de conexión directa  Troyanos de conexión inversa ► Herramientas  Netcat  Crypcat ► Rootkits  Rootkits

TechNews de Informática 64

►Suscripción gratuita en [email protected]