Análisis de volcado de memoria en investigaciones forenses computacionales

human brain on white background

Los atacantes informáticos mejoran sus técnicas día con día para lograr penetrar, incluso en los sistemas informáticos mejor protegidos, los cuales son custodiados fuertemente por una gran cantidad de controles administrativos, técnicos y por un equipo de administradores especialistas en respuesta y análisis de incidentes informáticos. En esta carrera, solo triunfarán aquellos con la capacidad para dominar los métodos, técnicas y herramientas más avanzadas para superar a los adversarios.

Algunas de las armas más poderosas de los atacantes son los rootkits, que son malware que permite ocultar los procesos maliciosos, puertas traseras y archivos que se utilizan para tomar control de los sistemas comprometidos. Según Hoglund y Butler,[1] los rootkits consisten en uno o más programas y código que permiten mantener acceso permanente e indetectable en una computadora. Jesse D. Kornblum[2], uno de los pioneros del análisis forense computacional, indica que son programas maliciosos que subvierten silenciosamente un sistema operativo para ocultar procesos, archivos y actividad.

Hay dos tipos de rootkits: los de nivel de usuario y los de nivel de kernel. Algunos investigadores[3] consideran otros tipos adicionales: los que afectan el BIOS (bootkit) y los basados en virtualización. Sin embargo, nos enfocaremos a tratar los dos primeros.

Los rootkits a nivel de usuario tienen como objetivo reemplazar programas del sistema por versiones modificadas que ocultan información relacionada con la actividad maliciosa del intruso informático. Por ejemplo, un rootkit de nivel de usuario puede ser un programa llamado “netstat”, especialmente diseñado para ocultar una conexión de red que es utilizada como puerta trasera por el atacante. Este tipo de rootkits son fácilmente detectados por programas como TripWire, que revelan modificaciones en los programas del sistema.

Los rootkits a nivel de kernel alteran estructuras clave ubicadas en el espacio de kernel (como la tabla de llamadas al sistema), así no requieren modificar los programas del sistema para alterar el resultado que éstos muestran al usuario final. Esta característica dificulta que sean detectados por herramientas de seguridad, administradores de sistemas y especialistas en seguridad informática.

¿Cómo detectar estas perversas y poderosas herramientas?

Existen tres opciones: la primera -y más sencilla- es ejecutar programas especializados en la detección de rootkits, como Rootkit Hunter, Chkrootkit (para sistemas basados en UNIX) o rootkitrevealer (para Windows XP y Server de 32 bits). Algunos de estos programas, además de ser capaces de detectar rootkits conocidos, incorporan alguna funcionalidad genérica para detectar nuevas amenazas. Sin embargo, no existe la seguridad de que un nuevo rootkit utilice esas funcionalidades genéricas, por lo tanto, no hay garantía de que estas herramientas logren detectarlos.

Para explicar la segunda opción, es necesario  mencionar la forma en la que se ligan los programas, los cuales pueden estar compilados de forma dinámica o estática.

De forma dinámica, los programas usan bibliotecas del sistema, que son porciones de código externas ubicadas en el sistema operativo. Si por el contrario, están compilados estáticamente, los programas contienen en sí mismos todo el código necesario para su funcionamiento.volcadosmem2

La forma de compilación más común es la dinámica, pues diferentes programas comparten alguna biblioteca del sistema, y esto permite optimizar el espacio en disco.  Sin embargo, si alguna de las bibliotecas compartidas es alterada por malware (incluyendo rootkits), el resultado de ejecutar un programa que haga uso de dicha biblioteca, también se vería afectado por esta alteración.

Realizar un diagnóstico, utilizando programas de auditoría compilados de forma estática, evitará que el resultado que producen sea alterado por rootkits a nivel de usuario que hayan alterado bibliotecas del sistema. Pero esta técnica no es efectiva contra rootkits a nivel de kernel.

La tercera y última opción, además de ser la que ofrece una mayor posibilidad de detectar rootkits a nivel de kernel, es el análisis del volcado de memoria[4]. Para explicar cómo funciona, recordaremos algunos conceptos de arquitectura de computadoras.

Una computadora tiene dos tipos de memorias, principal y secundaria. La primera es la de mayor velocidad de lectura, intercambia datos constantemente con el procesador y es de menor tamaño que la memoria secundaria. Almacena la información de forma temporal mientras la computadora se encuentra encendida y, en cuanto se apaga, la información se pierde.

Volcar la memoria consiste en copiar el contenido de la memoria principal en un archivo, el cual puede ser analizado posteriormente para obtener información del estado de la computadora en el momento del volcado.

volcadosmem3

¿Por qué es tan importante incluir el análisis de volcado de memoria en una investigación forense computacional hacia atacantes informáticos de alto perfil? Porque este tipo de intrusos utilizan el cifrado y ofuscación para protegerse. Los más sofisticados, incluso utilizan herramientas que nunca escriben información en memoria secundaria. Sin importar qué tan perfeccionadas sean las técnicas empleadas por los atacantes informáticos, todo programa que se ejecuta en una computadora, en algún momento se almacena en memoria principal. Por esa razón, es muy probable que el volcado de memoria contenga los programas utilizados por los atacantes informáticos o, al menos, rastros de ellos.

Desde hace años, los analistas forenses computacionales han capturado el contenido de la memoria. Su análisis consistía en la extracción de cadenas de texto para luego buscar direcciones IP o URLs que podían dar un gran contexto al investigador forense, pero no se lograba obtener otras estructuras de la memoria.

En 2007 se creó Volatility, una herramienta para interpretar el contenido de la memoria, que va mucho más allá de las técnicas tradicionales de búsqueda de cadenas de texto. Este poderoso programa tiene la capacidad de interpretar las estructuras internas de memoria que almacena, entre otras cosas, la información de los procesos en ejecución y conexiones de red que estaban activas en el momento en que se capturó la memoria. Incluso proporciona información de conexiones de red y procesos ya finalizados para el momento en que se realizó la captura. Los cuales pueden ser indicios claves para resolver un caso.

En sistemas operativos Windows, particularmente, esta herramienta tiene la capacidad de mostrar  las sentencias exactas ejecutadas en la terminal de comandos cmd.exe que, en la mayoría de las ocasiones, no es posible obtener con el análisis de memoria secundaria, ya que no se encuentra habilitado de forma predeterminada ninguna bitácora que almacene esta información.

revista17btn_descarga(opt)_3Entre otras herramientas se encuentra Red Line, la cual tiene interfaz gráfica desarrollada por la compañía Mandiant. Ésta se enfoca exclusivamente al análisis de volcados de memoria de sistemas operativos Windows. También está Volatility, que es una herramienta de código abierto con interfaz por línea de comandos desarrollada en el lenguaje Python que permite analizar volcados de memoria de sistemas operativos Windows, GNU/LINUX, Mac OS y Android. Gracias a que esta herramienta es de código abierto, tiene una gran comunidad de desarrolladores que extienden continuamente su capacidad por medio de módulos o plugins[5].

No cabe duda de que, tanto los atacantes informáticos como los investigadores forenses digitales, tendrán que mejorar sus técnicas, métodos y herramientas constantemente, con el fin de mantener la ventaja en la guerra cibernética, la guerra de la era digital.

El análisis de volcado de memoria será cada vez más importante para resolver con éxito los casos de intrusiones informáticas avanzadas.

Referencias

Greg Hoglund y James Butler, “Rootkits, Subverting the Windows Kernel”, Addison-Wesley, 2009, ISBN 0-321-294319-9.

Kornblum, Jesse, Exploiting the Rootkit Paradox with Windows Memory Analysis , en: http://www.utica.edu/academic/institutes/ecii/publications/articles/EFE2FC4D-0B11-BC08-AD2958256F5E68F1.pdf

Pär Österberg Medina, Detecting Rootkits in Memory Dumps, en: http://www.terena.org/activities/tf-csirt/meeting27/oesterberg-rootkits.pdf

http://code.google.com/p/volatility/

http://code.google.com/p/volatility/wiki/Plugins

http://code.google.com/p/volatility/wiki/VolatilityIntroduction


[1] Hoglund y James Butler, “Rootkits, Subverting the Windows Kernel”, Addison-Wesley, 2009.

[2] Kornblum, Exploiting the Rootkit Paradox with Windows Memory Analysis  http://www.utica.edu/academic/institutes/ecii/publications/articles/EFE2FC4D-0B11-BC08-AD2958256F5E68F1.pdf

[3] Pär Österberg Medina, Detecting Rootkits in Memory Dumps, http://www.terena.org/activities/tf-csirt/meeting27/oesterberg-rootkits.pdf

[4] Kornblum, Jesse,  Ibidem.

[5] http://code.google.com/p/volatility/wiki/Plugins Volatility Project

[ Read More ]

10 consejos para mantener nuestra seguridad en el celular

Ahora que el Banco Mundial reporta más teléfonos celulares que personas en el mundo[1], la gente se ha acostumbrado a confiar mucha información personal en los dispositivos móviles. En un celular se encuentran contactos de familiares y amigos, entradas directas a redes sociales y multitud de aplicaciones con información personal, bancaria, agendas y documentos laborales. Al descuidar éste tipo de información es relativamente sencillo comprometer la seguridad del equipo y de sus propietarios. En este artículo se listan 10 consejos para proteger nuestra información y flanquear los peligros más comunes.

1. Activa el acceso a tu dispositivo mediante el PIN (número de identificación personal) y un código de seguridad de uso.

consejoscel1

El número de identificación personal (PIN, por sus siglas en inglés Personal Identification Number) está registrado en el «chip» o tarjeta SIM (Suscriber Identity Module, módulo de identidad del suscriptor) como medida para proteger los datos si se reinicia el equipo o cuando se cambia el chip del dispositivo. Cuando esto sucede, se activa un menú para ingresar el PIN. Si se opta por este método, es importante guardar en un lugar seguro la tarjeta plástica que acompañaba a la SIM en el momento de su compra, pues allí también está el código PUK (PIN Unlocked Key, clave para desbloquear el PIN) en caso de que el equipo se bloqueé.

Además del PIN, puede activarse un mecanismo de seguridad para usar el equipo. De acuerdo con cada fabricante, puede ser un número, una secuencia de movimientos, un tono de voz o una palabra clave. Esto será una barrera adicional y sencilla para proteger los datos ante cualquiera que tome el teléfono.

2. Realiza una copia de seguridad de los datos del dispositivo.

consejoscel2

Respaldar es extremadamente importante, porque permite guardar la información del móvil en caso de falla, pérdida de datos o borrados accidentales. Hay varias formas para hacer respaldos. Una opción rápida es la copia a la tarjeta de expansión o mediante el software de sincronización del fabricante, que también puede respaldar datos como favoritos o las contraseñas Wi-Fi. Dicho software de sincronización hace copias de seguridad periódicas con los datos y ajustes en aplicaciones, mensajes, diccionarios del teclado, entre otras configuraciones. Al conectar el equipo para recargarlo a la PC se puede realizar el respaldo.

Otra alternativa son los servicios en la nube para respaldar en Internet fotos o archivos conforme se generan, éstos pueden ser aplicaciones en línea que guardan datos, agendas y contactos. Lo importante es tener un esquema de respaldo disponible por cualquier imprevisto.

3. Activa las conexiones por Bluetooth, infrarrojos y WiFi solo cuando vayas a utilizarlas.

consejoscel3

Las ventajas de comunicación mediante los puertos Bluetooth, infrarrojo o Wi-Fi son evidentes: facilitan usar un manos libres en el auto, conectarse con impresoras, otros móviles y enviar texto o imágenes a otras personas, entre otras. Pero tenerlas encendidas todo el tiempo tiene dos consecuencias: en poco tiempo acaban con la batería del teléfono y propician la fuga de datos.

Al estar abierta alguna señal del teléfono, usuarios malintencionados pueden aprovecharse para transmitir virus o conectarse al dispositivo y obtener contraseñas o contactos, dependiendo el modelo y sistema del equipo. Al conectarse a redes WiFi públicas o inseguras, se puede interceptar con relativa facilidad la información que viaja desde nuestro teléfono. Otra práctica común es el bluejacking (la recepción de mensajes o archivos indeseados): cualquier persona que vea nuestro dispositivo con los puertos Bluetooth o infrarrojo habilitados puede, desde gastar una broma o iniciar conversaciones aparentemente inocentes, hasta emplear ingeniería social para cometer posteriormente un robo. Como buena práctica, es mejor evitar que sepan que se posee un buen equipo móvil.

4. Asegúrate de que la información transmitida o recibida esté libre de malware.

consejoscel4

Según el sistema operativo de cada teléfono, existe una variedad de malware que puede afectar su funcionalidad. Para combatirlo, instala un paquete antivirus y utiliza los antivirus de tus aplicaciones en línea para comprobar los archivos que se transmiten. Asimismo, cuida los archivos que se instalan o se usen en el teléfono. Un análisis del antivirus nunca está de más cuando se reciben archivos de otras personas.

5. Descarga aplicaciones solo de sitios de confianza.

consejoscel5

La seguridad de datos en tu teléfono es el blanco preferido de programas que sustraen tus preferencias y configuraciones. Existe una cantidad enorme de aplicaciones con funciones ocultas para crear desperfectos en un teléfono o para enviar hábitos de consumo y preferencias a agentes publicitarios. La recomendación es solo instalar una aplicación cuando se corrobore la confiabilidad de su procedencia y se esté seguro de que se utilizará.

Las tiendas de aplicaciones del fabricante de tu equipo o del sistema operativo de éste, son ideales para instalar aplicaciones. Para llegar a ellas solo debes registrarte, la mayoría de las descargas son gratuitas. También hay sitios (como foros y blogs) que hablan sobre aplicaciones móviles que desarrollan gente y empresas entusiastas que tienen buenas opciones para tu equipo. Es cuestión de buscar referencias adicionales en Internet y obtenerlas de su sitio oficial.

Descargar aplicaciones crackeadas (liberadas del mecanismo que comprueba si fueron adquiridas legalmente) puede tener consecuencias, como descargar software defectuoso o programas espía. Además, hay que vigilar los permisos de las aplicaciones que se instalan: aunque vengan de una fuente de fiar, pueden solicitar más permisos de los necesarios.

De igual manera, nunca hay que abrir enlaces facilitados a través de mensajes SMS/MMS no solicitados que impliquen la descarga de contenidos en el equipo. Ésta es una forma popular para propagar aplicaciones que dañan dispositivos móviles como parte de una cadena por Internet. Por mucho que digan que vienen de parte de tu operador de telefonía, es mejor desconfiar.

6. Cierra todas las sesiones iniciadas al terminar de usarlas.

consejoscel6

Nunca se sabe cuándo se puede perder el teléfono o cuándo pueda caer en manos equivocadas, aunque sea solo por unos minutos. Una persona que utiliza tu teléfono después de ti, tiene la facilidad de acceder a las páginas que hayas visitado y a la información personal que dejes abierta. Emplea contraseñas seguras y nunca las facilites a terceros.

7. Mantén el software del dispositivo siempre actualizado.

consejoscel7

Al mantener actualizado el software del equipo se evitan fallos de seguridad y se agregan y optimizan características ante problemas potenciales que los fabricantes encuentran. Las actualizaciones menores van enfocadas a resolver fallos y mejorar la seguridad, por lo tanto siempre es buena idea instalarlas. En cambio, las actualizaciones mayores suponen modificaciones relevantes en el software, las cuales pueden requerir mejores prestacionesde hardware, por lo que es importante verificar en las notas de actualización y en foros que el equipo mantendrá su rendimiento después de incorporar nuevas funciones y utilidades.

Evitamodificaciones de software extraoficiales[2] para garantizar que, cuando se actualice el equipo, siga funcionando correctamente a buena velocidad y con el esquema de seguridad que proporciona el fabricante. Una actualización homebrew puede ser divertida o provechosa de momento, pero puede representar un hueco de seguridad a futuro o vacío al agregar nuevas aplicaciones.

8. Instala una aplicación de borrado de datos remoto.

consejoscel8

Instalar una aplicación para borrar los datos remotamente es una buena idea en el caso de extraviar el celular. Con alguna de estas aplicaciones se puede activar el celular mediante un mensaje de texto antes o después del robo o extravío y, de esa manera, se borra la información privada. Entre las características adicionales, según el paquete que se instale, se puede: localizar el móvil incluso si el GPS está desactivado, producir fuertes alarmas (aunque el equipo esté en modo silencioso), obtener una copia de seguridad y bloquear el dispositivo al conectarse desde cualquier navegador web después del incidente.

9. Guarda el número IMEI.

consejoscel9

Una forma para ayudar a detener el robo de equipos celulares es mediante el código IMEI. La Identidad Internacional de Equipo Móvil (IMEI por sus siglas en inglés) es un código pregrabado en los teléfonos móviles que identifica unívocamente a nivel mundial a cada equipo. Éste se transmite por el aparato a la red cuando se conecta con su operador de telefonía.revista17btn_descarga(opt)_4

Busca el IMEI en la parte posterior del teléfono, debajo de la pila o tecleando *#06# si está encendido. Es un número de 15 a 18 dígitos y se asocia por las siglas IMEI. Anótalo y guárdalo con la factura y su caja: te será de gran utilidad a futuro. Desde el 1 de septiembre de 2012, entró en vigor un convenio por América Móvil (Telcel), Iusacell, Nextel y Telefónica Movistar para compartir los IMEI que hayan sido robados o extraviados, para evitar que se utilicen en otras compañías. Si confirmas que tu número ha sido robado o extraviado, ve a un centro de atención de tu compañía y rinde informe del hecho. Solicita el bloqueo total de la línea, del chip y del IMEI, para que no se pueda reactivar ni desbloquear el proveedor de telefonía (así se evita que el celular acepte chips de otras compañías)[3], o reutilizar en posibles actos delictivos. Al bloquear el equipo telefónico mediante el IMEI, el aparato queda inservible.

10. Cuida a quién le prestas tu celular.

consejoscel10

Por último, cuida a quién le prestes tu teléfono celular, aunque sea por unos instantes. En la escuela, en la calle, un lugar público o una reunión privada, una inocente llamada puede significar el robo de tu información, un secuestro virtual o la pérdida de tu teléfono, en el caso de que la supuesta persona solicitante de ayuda corra repentinamente con el celular en mano.

Estos consejos pueden aplicarse a teléfonos tradicionales e inteligentes. Las amenazas de seguridad siempre estarán latentes, pero haciendo conciencia con nosotros mismos y con la gente que nos rodea, se puede reducir enormemente la cantidad de información que pueda comprometerse. Nada es infalible, pero con acciones sencillas se pueden evitar posteriores dolores de cabeza. La protección de nuestros datos debe ser una acción constante, que con el tiempo se vuelve algo natural y cotidiano.

Referencias:

Apple Support, Qué es el PIN de la SIM, https://support.apple.com/kb/HT1316?viewlocale=es_ES&locale=es_ES (30 de marzo de 2013).

Cibergeek, Código PUK, http://cibergeek.com/codigo-puk/ (3 de abril de 2013).

Hernández, J, Ventajas y desventajas de Bluetooth, https://junihh.wordpress.com/2007/06/02/ventajas-y-desventajas-de-blueto... (26 de marzo de 2013).

Killer Startups, Keep yor Mobile Data Secure. (29 de marzo de 2013), http://www.killerstartups.com/mobile/mobical-net-keep-your-mobile-data-s... (30 de marzo de 2013).

Más celulares, Virus para teléfonos móviles, http://mascelulares.blogspot.mx/2007/06/virus-para-telfonos-mviles.html (1 de abril de 2013).

Mi próximo móvil, Se unen para crear lista negra de teléfonos robados en América Latina, http://www.miproximomovil.com/2012/07/se-unen-para-crear-lista-negra-de-... (3 de abril de 2013).

Rosen, R (2012), A World With More Phones Than People, The Atlantic, http://www.theatlantic.com/technology/archive/2012/07/a-world-with-more-... (2 de abril de 2013).


[1] Rosen, R (2012), A World With More Phones Than People, The Atlantic, http://www.theatlantic.com/technology/archive/2012/07/a-world-with-more-...

[2] También se conoce en inglés como homebrew, el cual es software casero desarrollado por aficionados.

[3] La acción de configurar un móvil para que admita chips de otras compañías se le denomina flexear, el cual es más un término coloquial que técnico.

Fuente: http://goo.gl/t8KvLh

[ Read More ]

¿Qué es y cómo funciona un ataque DDoS?

En términos coloquiales un ataque de Denegación de Servicio Distribuido (Distributed Denial of Service) se puede explicar de la siguiente forma:

Éstos ataques se pueden explicar de diversas formas, por ejemplo imaginen un estadio de futbol que albergará la final del campeonato mundial, el estadio cuenta con diversas puertas para que los aficionados ingresen al estadio, 1 hora antes de inicio del juego la gente ingresa de forma ordenada al estadio a un ritmo lento pero constante, las personas ubicadas en las puertas encargadas de revisar la fiabilidad de los boletos están muy cansadas pero no se detienen en su labor, de pronto, faltando 5 minutos para el inicio del juego, una gran cantidad de personas con boletos falsos, arriban al estadio al mismo tiempo, los encargados de revisar los boletos no se dan abasto en atender a tanta gente, las personas que cuentan con su boleto auténtico no pueden entrar al estadio.

Los responsables de restringir el acceso al estadio se ven imposibilitados para diferenciar los boletos auténticos de los falsos y además están exhaustos, la carga de trabajo es excesiva. Se les explica que llevará más tiempo de lo previsto para ingresar, pues se tienen que revisar a detalle cada uno de los boletos, ante este anuncio las personas que no tienen boleto auténtico intentan ingresar al mismo tiempo de forma desorganizada y por la fuerza, por varios minutos los accesos se ven saturados, muy pocas personas logran ingresar, y por el contrario miles de personas se pierden el gran partido aun cuando tenían boleto auténtico. ¿Qué sucedió? pues ocurrió una Denegación de Servicio Distribuido de acceso al Estadio.

Un sitio Web es como una puerta de acceso, sólo puede dar servicio a un número limitado de personas al mismo tiempo, por tanto si recibe más solicitudes de las que puede atender, el servicio se bloquea, nada entra ni sale.

img1_art3
Esquema de un ataque DDoS

¿Cómo se hace un DDoS?

Para que el ataque sea realmente efectivo se debe contar con muchas maquinas que envíen peticiones a la página Web. Existen personas que seimg2_art3 dedican a infectar equipos y crear grandes redes de equipos “zombie” (botnets) y posteriormente rentarlas. El precio de renta depende de distintos factores como el tamaño de la botnet (número de equipos infectados), el tipo de ataque, su duración, etc. Según un estudio realizado por eweekeurope en el 2010, rentar una botnet para efectuar un ataque de DDoS por 24 horas puede oscilar entre los 50 y varios miles de Dólares. De esta forma no es necesario tener conocimientos para realizar un ataque de DDoS sino una cartera con al menos 50 Dólares.

En la siguiente imagen se muestra una interface de un sitio Web que renta botnets, el precio depende del número de equipos infectados y cuántos de ellos están en línea.

img3_art3

Número de equipos infectados por país.

En el párrafo anterior se mencionaba que existen diversos tipos de ataques de DDoS, a continuación se explicarán los más comunes.

Tipos más comunes de ataques DDoS

Syn Flood (inundación de paquetes Syn): El más común de todos, este ataque se basa en la esencia del protocolo de conexión TCP, el cual requiere una conexión de tres pasos, si el paso final nunca llega se queda una conexión abierta en el servidor por un lapso de tiempo, es decir si una persona estira sus manos para saludar a dos personas diferentes y estas lo dejan con la mano estirada por 1 minuto, nadie más podrá saludar a ésta persona hasta que ella decida terminar el saludo.

Connection Flood (inundación de conexión): Explota la dificultad del servidor para atender un gran número de peticiones al mismo tiempo, si un atacante realiza 10,000 peticiones al servidor este estará ocupado por un período de tiempo, conforme caduquen las conexiones el atacante vuelve a establecer más conexiones impidiendo así que los clientes utilicen el servicio.

ICMP Flood (inundación ICMP): Éste ataque también es conocido como “Ping-Pong”, imaginen una conversación por MSN donde ustedes son los encargados de hablar y contestarle siempre a las personas que lo solicitan, entonces reciben un mensaje que dice: ¿estás? y ustedes responden: Sí, y les vuelven a decir ¿estás? y responden: Sí y así continúan por varios minutos, de pronto empiezan a recibir cientos de mensajes del mismo tipo, entonces ustedes empiezan a cerrar las ventanas del chat y estas se vuelven a abrir.  Lo que pasa es que realmente la conexión se lleva a cabo pero se desperdicia el recurso. Lo mismo pasa con los servidores, se satura la línea con conexiones correctas pero todas ellas de tipo “basura”, las cuales impiden que las conexiones de clientes verdaderos se concreten.

UDP Flood (inundación UDP): se utiliza el protocolo de conexión UDP para enviar una gran cantidad de paquetes al servidor utilizando muchas conexiones al mismo tiempo, ocasionando que los recursos (Memoria RAM, Procesador) del servidor sean insuficientes para manipular y procesar tal cantidad de información, en consecuencia el sistema se bloquea.

Evitar que un ataque de DDoS ocurra es como querer evitar que un soldado de infantería salga a la guerra y nadie le dispare. Lo que sí podemos hacer es ponerle un casco y un chaleco antibalas para mitigar el riesgo de que muera si es alcanzado por una bala. De forma general la estrategia de defensa consiste en identificar las direcciones IP (balas) causantes de ataque y bloquearlas (chaleco antibalas), utilizar otros servidores como balanceadores de carga distribuyendo así el trabajo del servidor crítico y por último colocar una versión ligera de la página del sitio atacado lo que permitirá reducir el tiempo de respuesta y minimizar la carga de procesamiento del servidor.

Para finalizar, ¡una imagen de reflexión!

img4_art3

Glosario:

Botnets: Conjunto de computadoras infectadas por un malware que permite que un servidor (Command & Control) las manipule remotamente para realizar trabajos de forma distribuida.

UDP: Por sus siglas en inglés “User Datagram Protocol” un protocolo no orientado a conexión, se utiliza sobre todo cuando la velocidad es un factor importante en la transmisión de la información.

TCP: Por sus siglas en inglés “Transmission Control Protocol” es un protocolo orientado a conexión, el protocolo asegura que los datos serán entregados a su destino sin errores lo que lo hace más lento a diferencia del protocolo UDP.

ICMP: Por sus siglas en inglés “Protocolo de Mensajes de Control de Internet” su función básica es el control y notificación de errores del Protocolo de Internet IP.

Referencias:

[ Read More ]

DDoS actualidad, taxonomía y contramedidas

Una denegación de servicio o “DoS” (Denial of Service), es el vector de ataque que busca como objetivo principal, realizar la saturación o la explotación de alguna vulnerabilidad en un servicio que opere en equipos o infraestructuras de telecomunicaciones, dando como resultado la degradación, caída o falla del mismo. Una nueva modalidad de este vector de ataque es conocido como DDoS (Distributed Denial of Service), que por sus siglas en inglés se refiere a un ataque de denegación de servicio distribuido, el objetivo principal de este vector es la de utilizar un gran flujo de tráfico que es generada desde diferentes puntos de conexión, ya sea de internet o de una red de datos local con el mismo fin, la de deteriorar un servicio hasta hacerlo fallar.

articulo_DDoS

Recientemente hemos escuchado sobre las operaciones grupos Hacktivistas, mismos que han realizado ataques de este tipo, principalmente hacia portales WEB de entidades gubernamentales y algunos cuantos del sector privado, es por este tipo de ataques que el INFOTEC se ha visto en la necesidad de incursionar e investigar estas nuevas tendencias de ataques, debido que nuestra visión es innovar y desarrollar servicios que puedan ser utilizados y aprovechados por ambos sectores ya sea gobierno o iniciativa privada.

En las operaciones cielito lindo, tequila, independencia y en la ultima llamada operación tranzas el principal objetivo de ataque ha sido el sector gobierno, entidades como la sedena, gobernación, el senado, la cámara de diputados por mencionar algunos, se han visto como víctimas de este grupo de atacantes, que en momentos vemos como son superados los controles de seguridad por el gran número de atacantes; dejando en claro lo vulnerable y débil que son las infraestructuras y las arquitecturas de comunicaciones y seguridad en México. Lo que podemos notar, es que el modus operandi de estos grupos es de carácter político, religioso o social y el número de ataques aumenta hacia el sector gobierno siendo esta de un 52% de ataques de este tipo, le sigue la iniciativa privada y al final y no por eso no ser atacadas, se encentran las instituciones académicas.

infotec_logoEntonces los ataques DDoS, representan una amenaza muy real para los negocios en línea, más aún cuando la disponibilidad del servicio es una función esencial del negocio. En la actualidad los firewalls tradicionales y dispositivos de protección perimetrales o controles de seguridad, pueden proporcionar un cierto grado de protección contra ataques de ancho de banda relativamente bajos, sin ser óptimos ni confiables. Cabe mencionar que es difícil defenderse de estos ataques, pero mediante una planificación cuidadosa y contando con el apoyo de especialistas y de los proveedores de servicios de internet (ISP), es posible proporcionar un nivel óptimo de protección frente a los ataques de denegación de servicio.

En conclusión, los ataques de denegación de servicios continúan siendo un problema y una gran preocupación para las empresas, gobiernos y proveedores de servicios, sobre todo en su forma distribuida (DDoS), principalmente por su fácil implementación, por lo devastador que puede ser el ataque y la mutación constante de sus procedimientos, pero no por eso es imposible detectarlos, mitigarlos, prevenirlos y detenerlos, si contamos con los especialistas, tácticas, proveedores y una infraestructura solida y en constante revisión lo podemos lograr, en INFOTEC ya contamos con casos de éxito vs DDoS/DoS, por lo que podemos apoyarte en la mitigación de este vector de ataque. INFOTEC su socio tecnológico.

[ Read More ]

Pruebas de penetración para principiantes: explotando una vulnerabilidad con Metasploit Framework

pen_test_01_opt

La versión gratuita y limitada de Metasploit framework Community es una herramienta que permite ejecutar y desarrollar exploits contra sistemas objetivos. Actualmente se encuentra integrado con Kali Linux, una distribución de Linux con diversas herramientas orientadas a la seguridad y es ampliamente utilizado para realizar pruebas de penetración. En la revista anterior mencionamos algunas de las herramientas más importantes para adentrarse en el mundo de las pruebas de penetración. Ahora, utilizaremos Metasploit para mostrar paso a paso la explotación de un servidor vulnerable.

¿Qué etapas se contemplan durante una prueba de penetración?

Para realizar una prueba de penetración es necesario considerar diferentes etapas. La primera de ellas consiste en recopilar información sobre el sistema objetivo y comúnmente se le conoce como etapa de reconocimiento. A partir de los datos obtenidos, se tomarán las decisiones acordes y los pasos a seguir en etapas posteriores. Una vez que los datos han sido recopilados y analizados, se procede a la instancia donde se realizará la explotación sobre el sistema objetivo. La selección de los exploits que se utilizarán dependerá exclusivamente de la información obtenida en la etapa anterior. Finalmente, una vez realizado el ataque, se analiza el impacto, posiblemente, se realizarán nuevas acciones a partir de este último.

La documentación y la generación de reportes concluyen las pruebas de penetración y suelen reflejar el trabajo completo por parte del pentester (persona que lleva a cabo la prueba de penetración).

Existen diferentes metodologías que pueden implementarse para realizar pruebas de penetración, donde cada una de las variantes difiere principalmente en las técnicas y métodos para llevar a cabo las respectivas tareas. Algunas metodologías son del tipo blackbox, donde básicamente no se conoce ningún tipo de información sobre el sistema objetivo. En contraposición, están las de whitebox, donde se tiene información sobre el sistema objetivo, como puede ser código fuente de aplicaciones, configuraciones, entre otras alternativas. A su vez, existen diferentes etapas de acuerdo a la metodología utilizada.

En este caso, sin realizar distinción de la metodología, haremos foco sobre la etapa de reconocimiento. Dentro de ésta existen dos formas de recopilar la información, ya sea de forma activa o pasiva. En el primer caso la información se obtiene directamente del sistema objetivo y en el segundo de forma indirecta. Finalmente ejecutaremos la etapa de explotación, ya que nos permitirá obtener un panorama general de lo que realmente involucra una prueba de penetración. Asimismo, un análisis completo involucra otras etapas, tales como la de enumeración, acceso, entre otras.

¿Cómo comenzar?

Para que los lectores puedan hacer el ataque paso a paso deberían instalar dos máquinas virtuales conectadas entre sí. Para ello es posible utilizar VMWare o en su defecto VirtualBox, en realidad existen otras alternativas, aunque estas dos son las más populares. Las dos máquinas virtuales que deben instalarse son las siguientes:

  • Kali Linux: como mencionábamos en el número anterior de la revista, es la distribución para pruebas de penetración por excelencia bajo la licencia GPL, se puede descargar desde:
    http://www.kali.org/
  • Metasploitable 2: es una máquina creada con fines académicos, que ya posee varias vulnerabilidades que permiten que sea sencillo realizar pruebas sobre la misma, se puede descargar desde:
    http://sourceforge.net/projects/metasploitable/files/Metasploitable2/

Para continuar, es importante verificar que ambas máquinas tengan visibilidad entre sí (es decir, que puedan comunicarse). Esto puede corroborarse con un simple ping entre las dos.

Después, desde la máquina en Kali Linux (todo el ejercicio se desarrolla en esta máquina, la segunda solo oficia como objetivo del ataque, pero no se realizarán acciones en ésta más allá de prenderla para “atacarla”) utilizaremos la consola de Metasploit (msfconsole) de donde se lanzarán todos los comandos correspondientes sobre el servidor en el que se desea realizar la prueba de penetración. Para abrir la consola, solo hace falta el comando

> msfconsole

Information gathering

Para recopilar información es posible utilizar Nmap desde la propia consola de Metasploit. Para ello, basta con solo invocar el comando “db_nmap. Los parámetros que pueden utilizarse son los mismos que acepta Nmap. De esta manera, los resultados serán almacenados en la base de datos de Metasploit.

Para obtener una observación rápida del sistema objetivo, se ingresa el siguiente comando:

> db_nmap {dirección ip} -p 1-65535

La dirección IP de la máquina objetivo es posible averiguarla mediante el comando ifconfig (este comando se utiliza en las distribuciones de Linux para conocer las direcciones IP de las diferentes interfaces de red).

imagen01_3

Con el comando anterior se realiza un escaneo sobre todos los puertos del sistema objetivo. De esta manera, tal como se especificó anteriormente, los resultados serán almacenados en la base de datos. Para consultarlos, es necesario ingresar alguno de los siguientes comandos:

·  Hosts: Imprime por pantalla información de todos los sistemas que fueron analizados.

·  Services: Imprime por pantalla todos los puertos y servicios asociados que fueron descubiertos durante el análisis con Nmap.

·  Vulns: Describe las vulnerabilidades que fueron descubiertas durante el análisis.

Sin embargo, en esta instancia es posible que no se cuente con demasiada información sobre los servicios descubiertos en el sistema objetivo. De esta manera, utilizando la misma herramienta (Nmap) es posible determinar, por ejemplo, la versión específica de un servicio. Esto se puede lograr mediante el siguiente comando:

> db_nmap –sV {dirección ip} –p {puerto de interés}

El parámetro “sV” indica que examine la versión específica del servicio. A modo de ejemplo, ejecutamos el siguiente comando para averiguar la versión sobre el servicio que se está ejecutando en el puerto 21, utilizado comúnmente por el servicio FTP.

> db_nmap –sV 172.16.1.119 –p 21

Si ahora se ejecuta el comando “services”, nuevamente, se obtendrá información específica del servicio analizado.

imagen02_3

Explotación

Suponiendo que se ha encontrado información de un servicio en especial, es posible determinar a partir de ésta, si el mismo es vulnerable. Utilizando la consola, se realiza una búsqueda de un exploit en particular para ese servicio y luego se llevará a cabo la explotación del mismo. Para realizar la búsqueda se ingresa el siguiente comando:

> search {cadena}
(para buscar una cadena específica que corresponda a un exploit en particular)

> search cve:{código CVE}
(para buscar un exploit en particular a partir del identificador CVE)

Asimismo, si se desea conocer todos los posibles parámetros de búsqueda, es posible acceder a la ayuda mediante el siguiente comando:

> help search

Tal como se muestra en el comando anterior, si se conociera el identificador OSVDB de una vulnerabilidad, entonces será posible buscar el exploit para dicho identificador. Esto también puede llevarse a cabo utilizando otros identificadores, como por ejemplo, el CVE.

pen1 (3)

Para seleccionar el exploit se introduce el comando “use” seguido de la ruta del exploit seleccionado. En este caso el comando sería el siguiente:

> use exploit/unix/ftp/vsftpd_234_backdoor

Una vez seleccionado el exploit que se va a utilizar, se deben configurar aquellos parámetros necesarios a través de la consola. Para ver las opciones, se debe ingresar el comando “show options”, el cual enumera todos los parámetros indicando si son opcionales u obligatorios mediante el campo “required”.

pen1 (4)

En esta instancia, ya es posible configurar los parámetros. Para realizar esta tarea se debe utilizar el comando “set” seguido del parámetro y el valor que se desea establecer. Para este ejemplo, el comando es el siguiente:

> set RHOST 172.16.1.119

Payload

Básicamente, el payload es la secuencia de instrucciones que se ejecutarán una vez que se haya explotado con éxito la vulnerabilidad. Metasploit Framework posee diversos payloads con diferentes funcionalidades para cada tipo de arquitectura. Mediante el comando “show payloads” se pueden visualizar cuáles son compatibles. De esta forma, se utiliza el siguiente comando para establecer el payload:

pen1 (5)

En este caso hemos elegido el payload cmd/unix/interact. Sin embargo, para conocer todos los payloads que son compatibles con el exploit que se va a utilizar, existe un comando para realizar el listado correspondiente:

> show payloads

De la misma manera, si se desea conocer cuáles son los parámetros configurables del payload seleccionado, es posible ejecutar el comando:

> show options

Luego de que todos los parámetros ya han sido configurados, será posible llevar a cabo la explotación. Para ello, basta con ejecutar el comando “exploit” y esperar que Metasploit haga su trabajo.

En esta instancia, si todo ha resultado bien, se obtiene una shell de comandos sobre el sistema que ha sido atacado, permitiendo ejecutar cualquier comando en dicho sistema. Por ejemplo, a continuación se puede observar un comando de listado de directorios:

pen1 (6)

Conclusión

En este caso se obtuvo acceso a un servidor a través de un servicio FTP vulnerable. Mediante la identificación de la versión del servicio se pudo encontrar el exploit adecuado. De la misma manera, se inyectó un payload capaz de disponer una shell de comandos a merced del atacante.

Si bien este es un ejemplo específico, donde el acceso se logró a través de una vulnerabilidad conocida por una versión antigua del software Vsftpd, también es posible que esto ocurra en un escenario real. Asimismo, los ataques reales pueden ser más complejos o combinados. Sin embargo, esto es un buen comienzo para tener noción sobre cómo se realizan ataques con Metasploit.

Finalmente, vale la pena destacar que no existe una herramienta capaz de ejecutar automáticamente una prueba de penetración de calidad. El auditor, es decir, quien realiza las pruebas de penetración (pentester), siempre debe recurrir al uso de su imaginación y conocimiento, cualidades que pondrán a su disposición una gama de herramientas que le permitirán ejecutar una prueba precisa y contundente sobre el sistema para obtener resultados de calidad.

Fuente: http://goo.gl/kjb4da

[ Read More ]

Conociendo Metasploit – Parte III – Meterpreter básico

Buenas a todos a este nuevo post de la serie “Conociendo metasploit”. Este post será de introducción a los comandos básicos de meterpreter, el cual como hemos estado viendo en los anteriores post es uno de los payloads más potentes que trae el framework de Metasploit.

En este caso tenemos como objetivo la misma máquina virtual que en los anteriores posts, cuya configuración de red es la siguiente…

portscan_2-1024x699

Ahora tendremos que ejecutar Metasploit y configurarlo para que lance el exploit ms08_067_netapi (Ya vimos en post anteriores que la maquina era vulnerable) junto al payload meterpreter como se muestra en la siguiente imagen (En este caso utilizaremos una conexión inversa para el payload)…

meterpreter_1-1024x702

Una vez tenemos configurado el exploit lo lanzamos y vemos que nos devuelve la shell de meterpreter…

meterpreter_2-1024x698

Antes de seguir con la presentación vamos a ver un poco que es el payload meterpreter y los comandos que nos permite ejecutar…

Meterpreter el uno de los payloads por excelencia de Metasploit, el cual nos permite tener un control prácticamente completo de la maquina vulnerada, pudiendo realizar todo tipo de acciones como obtener las cuentas de usuario, realizar todo tipo de comandos en el SO, utilizar un keylogger, activar y tomar fotos de la webcam, activar el escritorio remoto, utilizar un sniffer en la maquina victima para sniffar todo el trafico de su red, saltarnos antivirus, pivoting y una inmensa cantidad de acciones más que veremos parte en este post, y otra gran parte en el siguiente donde nos centraremos en la fase de post explotación mediante scripts para este payload.

La lista de comandos más comunes que trae el payload meterpreter una vez se han listado las diferentes librerías es la siguiente (Comando y descripción):

meterpreter > help
Core Commands
=============
Command Description
------- -----------
? -> Help menu
background -> Backgrounds the current session
bgkill -> Kills a background meterpreter script
bglist -> Lists running background scripts
bgrun -> Executes a meterpreter script as a background thread
channel -> Displays information about active channels
close -> Closes a channel
disable_unicode_encoding -> Disables encoding of unicode strings
enable_unicode_encoding -> Enables encoding of unicode strings
exit -> Terminate the meterpreter session
help -> Help menu
info -> Displays information about a Post module
interact -> Interacts with a channel
irb -> Drop into irb scripting mode
load -> Load one or more meterpreter extensions
migrate -> Migrate the server to another process
quit -> Terminate the meterpreter session
read -> Reads data from a channel
resource -> Run the commands stored in a file
run -> Executes a meterpreter script or Post module
use -> Deprecated alias for 'load'
write -> Writes data to a channel

Stdapi: File system Commands
============================
Command Description
------- -----------
cat -> Read the contents of a file to the screen
cd -> Change directory
download -> Download a file or directory
edit -> Edit a file
getlwd -> Print local working directory
getwd -> Print working directory
lcd -> Change local working directory
lpwd -> Print local working directory
ls -> List files
mkdir -> Make directory
mv -> Move source to destination
pwd -> Print working directory
rm -> Delete the specified file
rmdir -> Remove directory
search -> Search for files
upload -> Upload a file or directory

Stdapi: Networking Commands
===========================
Command Description
------- -----------
arp -> Display the host ARP cache
ifconfig -> Display interfaces
ipconfig -> Display interfaces
netstat -> Display the network connections
portfwd -> Forward a local port to a remote service
route -> View and modify the routing table

Stdapi: System Commands
=======================
Command Description
------- -----------
clearev -> Clear the event log
drop_token -> Relinquishes any active impersonation token.
execute -> Execute a command
getpid -> Get the current process identifier
getprivs -> Attempt to enable all privileges available to the current process
getuid -> Get the user that the server is running as
kill -> Terminate a process
ps -> List running processes
reboot -> Reboots the remote computer
reg -> Modify and interact with the remote registry
rev2self -> Calls RevertToSelf() on the remote machine
shell -> Drop into a system command shell
shutdown -> Shuts down the remote computer
steal_token -> Attempts to steal an impersonation token from the target process
suspend -> Suspends or resumes a list of processes
sysinfo -> Gets information about the remote system, such as OS

Stdapi: User interface Commands
===============================
Command Description
------- -----------
enumdesktops -> List all accessible desktops and window stations
getdesktop -> Get the current meterpreter desktop
idletime -> Returns the number of seconds the remote user has been idle
keyscan_dump -> Dump the keystroke buffer
keyscan_start -> Start capturing keystrokes
keyscan_stop -> Stop capturing keystrokes
screenshot -> Grab a screenshot of the interactive desktop
setdesktop -> Change the meterpreters current desktop
uictl -> Control some of the user interface components

Stdapi: Webcam Commands
=======================
Command Description
------- -----------
record_mic -> Record audio from the default microphone for X seconds
webcam_list -> List webcams
webcam_snap -> Take a snapshot from the specified webcam

Priv: Elevate Commands
======================
Command Description
------- -----------
getsystem -> Attempt to elevate your privilege to that of local system.

Priv: Password database Commands
================================
Command Description
------- -----------
hashdump -> Dumps the contents of the SAM database

Priv: Timestomp Commands
========================
Command Description
------- -----------
timestomp -> Manipulate file MACE attributes

Espia Commands
==============
Command Description
------- -----------
screengrab -> Attempt to grab screen shot from process's active desktop

Incognito Commands
==================
Command Description
------- -----------
add_group_user -> Attempt to add a user to a global group with all tokens
add_localgroup_user -> Attempt to add a user to a local group with all tokens
add_user -> Attempt to add a user with all tokens
impersonate_token -> Impersonate specified token
list_tokens -> List tokens available under current user context
snarf_hashes -> Snarf challenge/response hashes for every token

Mimikatz Commands
=================
Command Description
------- -----------
kerberos -> Attempt to retrieve kerberos creds
livessp -> Attempt to retrieve livessp creds
mimikatz_command -> Run a custom commannd
msv -> Attempt to retrieve msv creds (hashes)
ssp -> Attempt to retrieve ssp creds
tspkg -> Attempt to retrieve tspkg creds
wdigest -> Attempt to retrieve wdigest creds

Sniffer Commands
================
Command Description
------- -----------
sniffer_dump -> Retrieve captured packet data to PCAP file
sniffer_interfaces -> Enumerate all sniffable network interfaces
sniffer_release -> Free captured packets on a specific interface instead of downloading them
sniffer_start -> Start packet capture on a specific interface
sniffer_stats -> View statistics of an active capture
sniffer_stop -> Stop packet capture on a specific interface

Una vez hemos visto la lista de comando de meterpreter (Tiene muchísimas más acciones gracias a los scripts que veremos más adelante), vamos a ver ahora la ejecución de algunos de los más importantes…

Lo primero podríamos sacar el usuario que somos una vez explotada la vulnerabilidad, sacar algo de información del sistema y listar los procesos (Con el fin de luego poder migrar meterpreter a otro proceso evitando que se cierre la sesión como veremos más adelante)…

meterpreter_3-1024x700

Vamos a ver ahora que con meterpreter podríamos de la misma forma que lo haríamos en un linux cambiar de directorio en la maquina vulnerada, listar dicho directorio, comprobar en que directorio estamos y leer un archivo…

meterpreter_4-1024x700

Por otro lado también podríamos ejecutar ciertas funciones de red como por ejemplo consultar la tabla ARP o mostrar la configuración de red como vemos a continuación…

meterpreter_5-1024x699

Se podrían sacar también las conexiones existentes en la maquina vulnerada, así como su tabla de rutas para IPv4 e IPv6…

meterpreter_6-1024x702

meterpreter_7-1024x702

Veamos ahora como podríamos listar los privilegios que tenemos así como el usuario actual que somos…

meterpreter_9-1024x705

Vamos a ver ahora un rápido ejemplo de cómo utilizar el Keylogger. Como se ve en las imágenes, se activa el KeyLogger, en la maquina vulnerada escribimos cualquier cosa, después volcamos el buffer del Keylogger que ha ido almacenando y lo detenemos, viendo como nos muestra todo lo que el usuario a escrito…

meterpreter_10-1024x695

meterpreter_11-1024x695

Por otro lado y como hemos dicho anteriormente, podríamos hacerlo un pantallazo a la maquina vulnerada desde meterpreter utilizando únicamente el comando “screeshot”, esto nos guarda la foto en nuestro PC y nos la habré como vemos a continuación…

meterpreter_12-1024x533

Por ultimo y ya para terminar este post vamos a ver dos formas que tendríamos para listar los usuarios así como sus hashes mediante los comandos “hashdump” y “msv”…

meterpreter_13-1024x698 meterpreter_14-1024x700

Con esto hemos llegado al final de este post que como habéis visto a sido prácticamente ver un poco los comandos básicos que podemos utilizar con meterpreter. Así que… A partir de ahora los post de esta serie comenzaran a ser de un nivel superior pues lo básico ya está visto.

Espero que os haya gustado!

Un saludo, a


Eduardo – eduardo@highsec.es – @_Hykeos


por este excelente aporte a la comunidad, y por ende me veo en obligaion de compartir su gran trabajo en mi blog.. un saludo a mi hermano desde aqui en Colombia Elpaisa13

[ Read More ]

Conociendo Metasploit – Parte II – Algunas funciones básicas

Buenas a todos, aquí os traigo la segunda parte de la serie “Conociendo Metasploit”. Este post es la continuación de la primera parte donde explicamos que era el framework de Metaploit, como trabajaba, de que módulos constaba… Que podéis encontrar aquí.

En este nuevo post vamos a ver algunas funciones básicas que podemos utilizar con el framework de Metasploit, concretamente vamos a ver cómo podríamos realizar un escaneo de puertos, como añadir un usuario una vez explotado una vulnerabilidad y como obtener una VNC del equipo vulnerado.

Para empezar vamos a ver como se podría realizar un escaneo de puertos. Debido a que es una de las primeras técnicas de reconocimiento activo que se suele llevar a cabo en un test de intrusión, Metasploit trae incorporada esta funcionalidad y otras muchas más como iremos viendo a lo largo de los post en esta serie.

Vamos a ver los pasos que serian necesarios, lo primero ejecutamos msfconsole en un terminal para poder acceder a Metasploit…

portscan_1[1]

Ahora os voy a mostrar la configuración de red de la maquina vulnerable, la cual tiene las IP 10.0.2.15 y 192.168.56.101…

portscan_2-1024x699

Para poder lanzar el escaneo de puertos a la maquina vulnerable seguimos los siguientes pasos…

portscan_3[1]

Como podemos observar, a diferencia de lo que hacíamos en el primer post ahora no estamos utilizando un exploit, sino un modulo auxiliar que será el que se encarga de realizar el escaneo de puerto que está configurado para escanear del 1 al 1024 y utilizando para ello 10 hilos. Otra diferencia importante está en que como no es un exploit para poder ejecutar el modulo auxiliar debemos de ejecutar el comando “run”. Una vez lo ejecutamos vemos que aparecen los puertos que tiene la maquina objetivo abiertos…

portscan_4[1]

Como veis es realmente sencillo, aunque de por si no es una tarea demasiado compleja. Ahora vamos a pasar a las otras dos pruebas.

En la siguiente prueba básica vamos a ver cómo podríamos utilizar un payload “single”, que son aquellos que ejecutan una simple acción, a diferencia de otros payloads mucho más complejos como meterpreter que veremos más adelante, el cual necesita establecer una conexión y mantenerla con la maquina del atacante, etc… En este caso el payload que vamos a ver es “adduser”, el cual nos permite añadir un usuario nuevo a la maquina vulnerada.

Para poder ejecutar el payload necesitamos lanzar a la maquina objetivo un exploit, en este caso, la maquina Windows XP es vulnerable al conocido ms08_067_netapi gracias a que en el primer post de la serie realizamos un escaneo con Nessus y así nos lo indico. Por ello vamos a configurar el exploit junto al payload que tienen las siguientes opciones…

adduser_1[1]

Una vez sabemos las opciones vamos a configurarlas como se muestra a continuación, definiendo el usuario, su pass, la IP del equipo…

adduser_3[1]

Un problema que puede surgir  cuando ejecutemos “exploit” es el siguiente…

adduser_4[1]


Como podemos ver nos indica que la complejidad de la contraseña no puede ser tan baja, por lo tanto lo único que tenemos que hacer es modificarla por una más compleja como la siguiente…

adduser_5[1]

Una vez hecho esto ahora si ejecutamos “exploit” y como podemos observar en la VM de la izquierda (El equipo vulnerable) se ha creado un nuevo usuario llamado highsec, por lo tanto ya habríamos conseguido crear un nuevo usuario con este payload…

adduser_6-1024x534

Una vez hemos terminado con este payload muy básico vamos a ver el ultimo sobre cómo podríamos ejecutar un payload en el equipo victima para que nos devuelva un escritorio remoto mediante una VNC. Para ello tenemos que modificar el payload y como vemos a continuación rellenar todos los campos necesarios para el exploit y el payload…

vnc_1-1024x699

Una vez tenemos todos los datos configurados lanzamos el exploit y vemos que nos aparece lo siguiente…

vnc_2-1024x531

Como vemos en la imagen el exploit se a lanzado y ejecutado correctamente, después lanza el vncviewer y configura todo para poder utilizar el tightVNC con el que podemos manejar como vemos en la siguiente imagen la maquina vulnerada…

vnc_3-1024x533

Esto como prueba de concepto no está mal, pero este payload tiene un inconveniente, y es la ventana azul que nos abre al ejecutar el payload. Como veremos más adelante hay otros muchos payload, algunos de ellos nos permiten también obtener un escritorio remoto pero de una forma mucho más silenciosa.

Hasta aquí el post de hoy, que como habéis visto era muy sencillito porque era el “primero” después de la explicación de que era Metasploit, pero como iréis viendo durante estos días que continuemos la serie, Metasploit trae mucho y muuuy potentes payloads.

Espero que os haya gustado!

Un saludo, a

Eduardo – eduardo@highsec.es – @_Hykeos

por este excelente aporte a la comunidad, y por ende me veo en obligaion de compartir su gran trabajo en mi blog.. un saludo a mi hermano desde aqui en Colombia Elpaisa13

[ Read More ]