Cómo hacer una autopsia de un hack de servidor

29

Tengo una máquina Windows Server 2003 SP2 con IIS6, SQL Server 2005, MySQL 5 y PHP 4.3 instalados. Esta no es una máquina de producción, pero está expuesta al mundo a través de un nombre de dominio. El escritorio remoto está habilitado en la máquina y hay dos cuentas administrativas activas en él.

Esta mañana descubrí que la máquina había cerrado la sesión con un nombre de usuario desconocido todavía en el cuadro de texto de inicio de sesión. Tras una investigación más profunda, descubrí que se han creado dos usuarios de Windows, se ha desinstalado el antivirus y se han dejado caer algunos archivos .exe en la unidad C :.

Lo que me gustaría saber es qué pasos debo seguir para asegurarme de que esto no vuelva a suceder, y en qué áreas debo concentrarme para determinar la vía de entrada. Ya he revisado netstat -a para ver qué puertos están abiertos, y nada parece extraño allí. Encontré archivos desconocidos en la carpeta de datos de MySQL, que creo que podría haber sido el punto de entrada, pero no estoy seguro.

Realmente agradecería los pasos para realizar una buena autopsia de un hack de servidor para poder evitar esto en el futuro.

Revisión posterior a la investigación

Después de una investigación, creo que descubrí lo que sucedió. Primero, la máquina no ha estado en línea durante el período de agosto de 2008 a octubre de 2009. Durante ese período de tiempo se descubrió una vulnerabilidad de seguridad, la vulnerabilidad MS08-067 . "Esta es una vulnerabilidad de ejecución remota de código. Un atacante que aprovechara esta vulnerabilidad podría tomar el control completo de un sistema afectado de forma remota. En sistemas basados ​​en Microsoft Windows 2000, Windows XP y Windows Server 2003, un atacante podría explotar esta vulnerabilidad sobre RPC sin autenticación y podría ejecutar código arbitrario ". Esta vulnerabilidad fue corregida con la actualización de seguridad KB958644 que salió en octubre de 2008.

Debido a que la máquina estaba desconectada en ese momento y se perdió esta actualización, creo que esta vulnerabilidad fue explotada poco después de que la máquina volviera a estar en línea en octubre de 2009 Encontré referencias a un programa bycnboy.exe que se ha descrito como un programa de puerta trasera que luego crea muchos estragos en un sistema infectado. Poco después de que la máquina estuvo en línea, las actualizaciones automáticas instalaron el parche que cerró la capacidad de tener control remoto del sistema. Debido a que la puerta trasera ahora estaba cerrada, creo que el atacante creó cuentas físicas en la máquina y pudo utilizar la máquina durante una semana más hasta que me di cuenta de lo que estaba sucediendo.

Después de buscar agresivamente el código malicioso, .exes y .dlls, eliminar sitios web de alojamiento propio y cuentas de usuario, la máquina vuelve a funcionar. En el futuro cercano estaré monitoreando el sistema y revisando los registros del servidor para determinar si está ocurriendo una repetición del incidente.

Gracias por la información y los pasos que se proporcionaron.

Chris
fuente

Respuestas:

28

Hacer una autopsia es un arte negro en sí mismo. Es un poco diferente cada vez porque realmente no hay dos robos iguales. Con eso en mente, a continuación se incluye una descripción básica de mi proceso recomendado, con algunas notas específicas sobre su situación:

  1. Desconecte físicamente la máquina de la red. (Realmente. Hazlo ahora).
  2. Paso opcional: haga una copia de imagen binaria del disco duro para uso futuro.
  3. Haga una copia de todos los archivos de registro, datos valiosos, etc. en un disco duro extraíble
    • Opcionalmente, copie también cualquier "herramienta de hacker" que encuentre
  4. Comience la autopsia real. En tu caso:
    • Tenga en cuenta las cuentas de usuario nuevas o faltantes. Vea si sus carpetas de inicio tienen algún contenido "interesante".
    • Tenga en cuenta los programas / archivos binarios / datos nuevos o faltantes.
    • Verifique primero los registros de MySQL: busque algo "inusual"
    • Verifique el resto de los registros del servidor. Vea si puede encontrar los nuevos usuarios que se están creando, las direcciones desde las que iniciaron sesión, etc.
    • Busque evidencia de daño o robo de datos
  5. Cuando encuentre la causa del problema, tenga en cuenta cómo evitar que vuelva a suceder.
  6. Limpie el servidor: formatee y vuelva a instalar todo, restaure sus datos y conecte el agujero original con sus notas del # 5

Por lo general, realiza el paso 2 si va a involucrar a la policía. Realice el Paso 3 para poder revisar la información después de que el servidor se reconstruya sin tener que leer la copia de la imagen que realizó en el paso 2.

La forma en que se detalla el paso 4 depende de sus objetivos: simplemente tapar el agujero es un tipo diferente de investigación que rastrear quién robó algunos datos valiosos :)

El paso 6 es en mi humilde opinión crítico. No "arregla" un host comprometido: lo limpia y comienza de nuevo desde un buen estado conocido. Esto asegura que no se perderá alguna pepita de desagradable que queda en la caja como una bomba de tiempo.

Esto de ninguna manera es un esquema post-mortem completo. Estoy marcando esto como wiki comunitario, ya que siempre estoy buscando mejoras en el proceso. No lo uso a menudo :-)

voretaq7
fuente
3
No tengo experiencia en hacer algo como esto, pero el consejo de Security Monkey si va a tomar una imagen de una máquina para investigar es tirar del cable de alimentación, tomar una imagen del disco duro y luego comenzar a investigar. (Security Monkey: it.toolbox.com/blogs/securitymonkey )
MattB
1
Security Monkey está muerto: desea congelar la máquina en frío (tirar del cable de alimentación) cuando vaya a la imagen. el apagado y / o el inicio pueden disparar el código de autodestrucción o limpieza, y quitar la corriente evita que eso suceda antes de que pueda hacer su imagen.
voretaq7
2
Además, diría que no debe confiar en los resultados de los comandos "integrados" en el sistema pirateado como netstat (o dir, etc.) Nuevamente, no tengo experiencia directa con esto a nivel empresarial, pero recuerdo haber sido pirateado en máquinas personales donde parte del truco era reemplazar las herramientas incorporadas para enmascarar lo que realmente estaba sucediendo.
MattB
44
+1 el paso 6 es vital, no sabes si netstat te está mostrando la verdad sin analizar el tráfico real de la red, y eso en sí mismo puede ser bastante complicado y una prueba de paciencia ... así que límpialo. Ya no es tu caja. Analiza la imagen todo lo que quieras, pero limpia la maldita máquina;)
Oskar Duveborn
1
Yo diría que probablemente sea mejor que hagas el paso 2 cada vez, ya que no estás completamente seguro de lo que encontrarás durante tu investigación. Tener imágenes binarias también significa que puedes tener diferentes personas mirando diferentes cosas, usando una copia de cada una.
Vatine