viernes, marzo 01, 2019

ibombshell y la ayuda de la comunidad: El módulo para RID Hijacking y una GUI en .NET

La semana pasada fue intensa en lo que se refiere al proyecto de ibombshell. Tuvimos dos buenas noticias provenientes de gente de la comunidad. Por un lado, mi amigo de Colombia Sebastián Castro, investigador autor del RID Hijacking, nos ha hecho un “pull request” proporcionándonos el código de implementación del módulo de RID Hijacking para ibombshell. Interesante técnica que permite conseguir persistencia en el sistema.

Figura 1: ibombshell y la ayuda de la comunidad:
El módulo para RID Hijacking y una GUI en .NET

Por otro lado, tenemos la colaboración de un joven de 15 años llamado Gaizka y que ha creado un proyecto propio donde ha implementado una GUI en .NET. para ibombshell. La colaboración nos ha llenado de orgullo, ya que la calidad de su trabajo es grande. Queremos hacer algunas modificaciones para poder pasar esta GUI al proyecto oficial y ofrecer una alternativa de C2 en .NET, al ya conocido C2 implementado en Python.

Antes de empezar, una breve historia

Antes de continuar quería contar una situación que se dio en la Morteruelo de este año. El pasado viernes 22 de febrero di una charla sobre OAuth como amenaza fantasma. Antes de mi turno, presentaban un espacio dedicado a ‘The Rookie’, un espacio que propone la Morteruelo en la que un joven da una charla sobre algo en concreto en temas de ciberseguridad. Este año le tocó a David Ojeda, de 17 años. Este chico impartió una charla llamada ‘No te fíes ni de tus amigos’ en la que contaba la experiencia vivida en sus comienzos en la ciberseguridad.

Figura 2: Charla de David Ojeda en MorterueloCON

Durante su exposición trató el tema de Metasploit y como lo usó en su día en clase. Mi sorpresa fue cuando vi aparecer el módulo de Metasploit de eternalblue_doublepulsar. Al principio no me di cuenta, pero cuando afiné la vista, ya que estaba atrás del todo en el auditorio, los atributos del módulo empezaron a sonarme mucho, el nombre del módulo también y descubrí que era el módulo que el equipo de Ideas Locas había implementado hace casi un par de años, junto a mi excompañera Sheila A. Berta. Cosas que hacíamos para el hacking con Metasploit.

Figura 3: Libro de Hacking con Metasploit de 0xWord

En ese instante pensé, ¿Por qué no usa el módulo oficial del repositorio de Rapid7? Llegó el turno de preguntas. Le hicieron un par de preguntas interesantes y decidí levantar la mano. En ese momento Rafa Otal me indico que yo debería hacerle entrega del premio ‘The Rookie’, el cual les da pie a dar una charla en la Morteruelo. Una vez entregado el premio, no se quedó sin mi pregunta: ¿Por qué has utilizado un módulo no oficial y no el oficial de Metasploit? La respuesta de David muy clara:
‘El oficial no me funcionaba bien, encontré éste en Internet y funcionaba a la primera’.
Nos reímos. Gracias David por tu sincera respuesta y por hacer uso de nuestro módulo. Una breve historia que me recuerda a cuando un par de personas nos preguntaron a mi compañero Álvaro Nuñez-Romero y a mí sobre ese módulo en la BlackHat Europa de 2018. Uno nunca sabe hasta dónde puede llegar un pequeño código que empieza con un objetivo sencillo y que acaba siendo utilizado en diferentes lugares.

RID Hijacking en ibombshell

Continuando con el foco de este artículo quería presentaros el trabajo y módulo de Sebastián Castro. Sebastián hizo el pull y nos ha dejado algo de documentación sobre qué es RID Hijacking, en qué sistemas operativos funciona, que son todos los últimos Windows, y cómo ejecutar el módulo y opciones de éste.

Figura 4: Módulo de RID Hijacking

Como se puede ver en la Figura 4, se dispone de una serie de atributos. El típico atributo de warrior que identifica la sesión con el warrior que se ejecuta en el sistema correspondiente. El resto de opciones son propias del módulo:

  • RID: Identifica la cuenta.
  • User: Nombre de usuario del RID.
  • Password.
  • Useguest: Relaciona el RID con la cuenta de invitado.
  • Enable.

El módulo se encuentra en la ruta modules/persistence/invoke-ridhijacking. En la siguiente imagen, se puede ver un ejemplo de ejecución del módulo y del funcionamiento de la técnica con ibombshell.

Figura 5: Ejecución del módulo de RID Hijacking

Un C2 con GUI en .NET


Gaizka nos envió su propuesta de un Command and Control con GUI para ibombshell escrita en .NET. Lo subió a su Github y me envió un correo. Él quizá no fue consciente pero su gesto y su forma de actuar es diferenciadora. Demostró ganas de hacer cosas, ganas de mostrarlo, ganas de ponerse a prueba y no tener ningún tipo de miedo a hacerlo.

En su propuesta le indicamos que estaba bastante bien, que era interesante y que si se mejoraban algunas cosas la queríamos pasar al proyecto oficial. Al final su solución presentaba una GUI que tiraba de la rama master del Github de ibombshell y levantaba un listener en un puerto para recibir las conexiones de los Warrior.

Figura 6: C2 GUI para ibombshell en .NET

En el momento que se recibe la conexión del warrior, la GUI pinta las posibles acciones que se pueden hacer, con las diferentes carpetas de los módulos y las posibilidades que éstos ofrecen. La configuración de los atributos es sencilla y muy visual. Sin duda, una idea interesante la que has aportado. Esperamos que los detalles se puedan mejorar y poder incorporar al proyecto esta GUI en .Net.

Figura 7: Rama Dev de ibombshell

Como se puede ver, las ideas abundan, pero hay que ponerlas en marcha, no basta con pensarlas, hay que moverse y hacerlo. Poco a poco, ibombshell sigue cogiendo su forma, pronto liberaremos una nueva versión, muchas de las cosas pueden verse en la rama Dev del Github, y mostraremos nuevos artículos con las nuevas funcionalidades. Y para completar todo sobre iBombShell os dejo las referencias a los artículos que hemos publicado, con ejemplos de uso y ampliación:

- [GitHub] iBombShell
- [White Paper] iBombShell: Dynamic Remote Shell
- [Blog Post] Pentesting MacOS & Windows with iBombShell
- [Blog Post] iBombShell: Tu Shell de pentesting en MacOS con PowerShell
- [Blog Post] iBombShell: Creando una función para MacOS
- [Blog Post] iBombShell: Environment Injection in Windows 10
- [Blog Post] iBombShell: Crear módulo para extracción de claves SSH privadas
- [Blog Post] iBombShell: UAC Bypass con Mocking Trusted Directories
- [Blog Post] iBombShell: Nuevas funciones presentadas en BlackHat Europe 2018
- [Blog Post] iBombShell: Cómo saltarse AMSI y Windows Defender
- [Blog Post] iBombShell: Cómo hacer un popup phishing
- [Blog Post] BlackHat Arsenal: Tools for Research & Pentesting -> iBombshell
- [Blog Post] iBombShell: Módulo de RID Hijacking & C2 GUI en .Net

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

2 comentarios:

  1. Chema, soy Venezolano viviendo en Argentina, trabajo en una empresa de servicios de IT pero me cuesta mucho "desarrollar" un "departamento de ideas locas". La verdad imagino que has publicado respecto a cómo has llegado a donde estás, pero podrías hacer una especie de "Resumen inspirador"? Te mando un abrazo!!

    ResponderEliminar