Mostrando entradas con la etiqueta Excel. Mostrar todas las entradas
Mostrando entradas con la etiqueta Excel. Mostrar todas las entradas

viernes, febrero 06, 2026

Smuggling de imágenes Píxel a Píxel en LLMs

Cuando estaba escribiendo este artículo me he acordado de la historia que os conté de una de las pruebas de acceso que hacía a los chavales que querían acceder al programa Talentum. En aquel momento, como quería saber cuáles eran sus capacidades programando les ponía problemas curiosos. Uno de ellos consistía en pintar un recta píxel a píxel. Esa es exactamente la idea de esta prueba que hice con ChatGPT  para pasar de contrabando imágenes por los Guardrails.

Figura 1: Smuggling de imágenes Píxel a Píxel en LLMs

La idea es sencilla, si ChatGPT me pilló con el Guardarraíl cuando la imagen estaba a punto de salir, lo que tendría que hacer es saltarme ese control haciendo que por allí no pasara una imagen. Por supuesto no iba a ser sencillo. 

Como veis en estas dos imágenes cuando la imagen es generada, antes de que yo pueda ver el resultado, el Guardarraíl que analiza el resultado y me lo bloquea. No ha sido el Guardarraíl de ida, no ha sido el Harmful Mode, ha sido el Guardarraíl de análisis de respuesta.
Y como os conté, cuando pensé en encadenar un KROP para hacer Jailbreak, con una respuesta en cifrada como os conté ayer en el artículo de "Cyphering Prompts & Answers para evadir guardarraíles". 

Pero ChatGPT detecta estas técnicas y las tiene ya protegidas, o aparentemente, que al final di con un truco que parece que funciona bien. Lo depuro y os lo cuento.

No obstante, como soy un cabezón, decidí darle otra vuelta e intentar hacer un proceso de confusión distinto. 

Sacando las imágenes píxel a píxel

Abrí nueva sesión, y le pedí hacer un proceso automático de QA con el análisis de imágenes, a ver si cambiando radicalmente su atención era capaz de lograr sacar las imágenes píxel a píxel.

Figura 6: Pásame las imágenes píxel a píxel

Para hacer la prueba usé imágenes muy pequeñas de 50x50 píxeles, así que no os esperéis resultados en HD en la salida, que el objetivo era ver si este proceso acaba funcionando. Primero le pedí círculos, cuadrados, etc.. y luego ya empecé a pedirle cosas más cercanas al Harmful Mode.

Figura 7: Para que me la diera completa en la respuesta la bajé a 25x25 píxeles

Como podéis ver tuve que hacer pruebas de ajustes de tamaño, y cambiar diferentes peticiones de contenido en las imágenes, para ir ajustando el tiro.

Figura 8: en 100x100 píxeles en un CSV

Ahora, pidiéndole una imagen del cantante que más discos ha vendido de la historia - que es Michael Jackson - a ver qué me hacía en 50x50 y en 100x100 píxeles, me devuelve un CSV. Ese fichero lo abrí con Numbers / Excel, ( ¡Qué recuerdos las veces que he usado el EXCEL para cosas de hacking!) y pinté yo las celdas siguiente los números.

Figura 9: La imagen decodificada con mis colores

Me estuve riendo un rato yo solo mientras lo veía. Está claro que, ver en esos colores a Michael Jackson sería tener una imaginación descontrolada, pero desde luego es una imagen conceptual de alguien cantando hecha con un 50x50 píxeles. A saber qué gaitas ha pensado en su origen y qué proceso ha seguido para enviar esa imagen píxel a píxel.

Figura 10: Probando el KROP con los píxeles

La última prueba era ver si el Knowledge Return Oriented Prompt Attack funcionaba ahora que tenía el sistema haciendo imágenes píxeles a píxeles, y me generó esta imagen en formato CSV que no he pintado porque se ve suficientemente bien. Maravilloso.

Figura 11: Las tres imágenes. Brutal XD

Al final no he sacado una imagen ilegal de lo que buscaba - ¿o sí? - pero desde luego esta forma de codificar imágenes me ha dado mucho juego. La idea de los Prompts y las respuestas cifradas que hacíamos en la investigación del problema de los prisioneros y el policía, y que también usa MetaCypher tiene su utilidad, clarísimamente.

Si te interesa la IA y la Ciberseguridad, tienes en este enlace todos los postspapers y charlas que he escrito, citado o impartido sobre este tema: +300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, septiembre 16, 2025

Cómo construir un Doom-Like usando sólo Lenguaje SQL (o en Excel)

El juego de DOOM es un clásico entre los clásicos en el mundo del PC. Y es una referencia para muchos de nosotros cada vez que queremos probar algo con la tecnología de aquella época, especialmente porque John Carmack innovó y de qué manera en sus juegos, creando una nueva generación de juegos. Y hoy os quería hablar de otro vuelto de tuerca jugando a ser el máster en Lenguaje SQL creando un juego tipo DOOM.

Figura 1: Cómo construir un Doom-Like usando sólo Lenguaje SQL (o en Excel)

El juego DOOM es el primero que me vino a la mente a mí cuando quería probar a ejecutar programas MS-DOS en iPhone, y fue con el que hice la prueba del emulador, como recordaréis, que os publiqué hace un año en el artículo: "Cómo jugar al DOOM de MS/DOS en iPhone & iPad (o cualquier otro DOS Game) con iDOS

El DOOM también es el juego que utilizaron los investigadores de Google para demostrar cómo la IA podría crear Mundos Virtuales en tiempo real con GenAI, que luego usaron para lanzar Genie 3.0 y dejar impresionado al mundo, en el artículo:"Diffusion Models Are Real-Time Game Engines".

No es casualidad esto. Al final DOOM es un ejemplo de calidad de código, de innovación, de jugabilidad, de optimización de los algoritmos, y un montón más de excelencias, que usarlo como referencia es siempre muy atractivo.

DuckDB DOOM on the browser

En este caso, PatrickTrainer ha creado un juego tipo DOOM construido para jugar en el navegador, pero construido enteramente en Lenguaje SQL, y eso mola todo. Lo que ha hecho ha sido construir un mundo basado en caracteres ASCII almacenados con tablas SQL sobre la base de datos DuckDB que corre en el navegador usando las librerías WASM, para describir el mapa de un juego tipo DOOM, meter enemigos, marcados con la letra E y tener a un jugador moviéndose por el mundo, marcado con el carácter @.

Figura 4: DuckDB Doom

Y por debajo, toda la representación en pantalla son ejecución de comandos del Lenguaje SQL que le permiten, utilizando Vistas, implementar el algoritmo Z-Buffer para poder tener la perspectiva del mapa desde el punto de vista del jugador, localizar a los enemigos, y disparar su proyectil (*). 
Con que te bajes un el fichero Index.html y Demo.html podrás correr en cualquier sitio este juego, que como ejercicio de programación es maravilloso.

DOOMQL: Multiplayer

Y como suele suceder, una idea inspira otras ideas. En este caso Lukas Vogel ha publicado la semana pasada DOOMQL, un juego tipo DOOM, multiplayer, construido íntegramente con Lenguaje SQL en la base de datos CedarDB. Repito: multiplayer. Pero también a 30 Frames per Second y con menos de 200 líneas de código.

Figura 6: DoomQL

Tienes un artículo titulado: "DOOMQL: A DOOM-like multiplayer shooter in pure SQL" en el que explica en detalle todo el proceso, incluyendo el algoritmo de pintar el "3D", o el Raycasting para disparar los proyectiles. Mola todo, que además ha dejado publicados los cheat codes
Como en el caso anterior, tienes todo el código disponible y documentado en el GitHub de este proyecto: DoomQL en GitHub. Todo son TablasVistas y consultas en Lenguaje SQL. Te va a sorprender la simplicidad y elegancia del código final logrado por el programador.

Lenguaje SQL

Me han hecho especial cariño estos dos proyectos, porque como cuento siempre, yo entré en el mundo del hacking y la ciberseguridad casi de casualidad. Lo que yo sabía era programar, y especialmente mucho de bases de datos, que es en todo lo que me centré en mi vida. Os conté esa historia en el artículo de "El amo de lo datos". 


Bonus Track: Doom en EXCEL

No puedo escribir un artículo sobre como ser el máster de algo para hacer un proyecto como un juego de DOOM, sin hablar el trabajo que hizo c Bell hace ya muchos años para hacer un DOOM-Like en Excel sin utilizar VBA, que es una pasada.

Y es que, si con Lenguaje SQL Se pueden hacer "locuras" con un EXCEL en las manos la cosa puede desmadrarse. De hecho, hay un MS Excel World Championship que se celebra en Las Vegas donde los expertos de Excel deben resolver problemas híper-complejos.
Este año debían resolver retos como este "Temple of the Golden Idol", para conseguir, sólo utilizando fórmulas de EXCEL que los animales resolvieran los laberintos.

Me encantan estas cosas. Son el tipo de PoCs & Hacks Just for Fun que tanto nos gusta, como cuando quisimos hacer el Copilot para AMSTRAD CPC 6128 con el objetivo de poder desarrollar programas den BASIC usando GenAI, o cuando conectamos el Apple Macintosh a la nube.. Simplemente por que mola todo.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, agosto 19, 2024

(Tu) MetaShield Clean-Up Online: Descubre qué datos exponen tus documentos

Uno de los proyectos que hemos comenzando este años a cuidar desde Tu.com es MetaShield Protector. La familia MetaShield Protector ayuda a las empresas y particulares a evitar las fugas de información de la compañía por medio de la limpieza de los metadatos, la información oculta y los datos perdidos. Mucho he hablado de esto durante años en este blog y en muchas conferencias.
Para los nuevos - y para los no tan nuevos - quería hacer este artículo para informaros que tenéis el servicio de MetaShield Clean-Up Online disponible en la nueva URL, que es: https://metashieldclean-up.tu.com, donde lo podéis utilizar gratis para saber qué datos filtran tus documentos ofimáticos, tus fotografías, o los archivos que compartes en general con personas a través del correo electrónico, o con todo el mundo a través de la publicación de los mismos en la web.

Para que veáis cómo funciona este servicio, he buscado un fichero Excel que he recibido recientemente y lo he subido para analizar.

En él podéis ver cómo hay un montón de información, como por ejemplo el nombre del usuario del sistema que creó dicho archivo.
También aparece información de la compañía que licenció la versión de Excel con la que se creó este documento, lo que es bastante curioso y puede dar más información de la necesaria.
Otro de los datos es quién modificó el documento, que es otro usuario de la compañía diferente a quién lo creó, lo que nos da un historial de edición del archivo, y dos nombres de usuarios de dicha compañía, sólo con haber recibido un documento Excel.
Pero la información que aparece no se queda ahí, y podemos descubrir marcas y modelos de impresoras, así como versiones de software.
Ya he hablado mucho de la importancia de esta información que muchas veces las empresas entregan sin ningún cuidado, y cómo una compañía que comparte decanas, o centenares de documentos al día, está filtrando mucha información de la estructura de red y de seguridad de la empresa.
En Tu Metashield tenemos además soluciones para aplicar en el correo electrónico de Office 365, en la gestión en los servidores web, e incluso para utilizar vía API en tus propias aplicaciones de gestión documental, así que si quieres ver posibilidades de colaboración, o quieres usar nuestros servicios, puedes contactar con nosotros.

Todas estas herramientas, son fundamentales para implementar una Política de Seguridad de Metadatos para cumplir al Esquema Nacional de Seguridad, marcado por el CCN-CERT nacional en España, y para política similares a lo largo del mundo entero.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, mayo 07, 2019

EvilClippy: Crea documentos Office maliciosos multiplataforma en un Ethical Hacking #pentest

En esta última semana he estado ojeando diferentes herramientas del ámbito del Ethical Hacking y he llegado a una que me ha ganado por dos cosas. La primera por su logotipo. Simplemente espectacular. Los que recordamos a Clippy como el gran asistente de una época dorada de MS Office tendremos nostalgia al ver el logo de la herramienta del artículo de hoy. Clippy nos acompañó durante muchos años, y muchos también le conocíamos como Clipo, en su traducción al castellano.

Figura 1: EvilClippy: Crea documentos Office maliciosos multiplataforma en un Ethical Hacking

Hechas las presentaciones hoy quiero hablaros de EvilClippy, una nueva herramienta de Hacking en Windows, GNU/Linux e incluso Hacking MacOS - aunque estar centrada en archivos Microsoft Office - orientada a la creación de documentos ofimáticos maliciosos. En otras palabras, una herramienta que permite utilizar diferentes técnicas para generar documentos con un payload, el cual se ejecutará al interaccionar con el documento.

Figura 2: EvilClippy en GitHub

De este modo puede utilizarse para evaluar la concienciación de los empleados ante diferentes situaciones. El caso de evaluación clásico es el envío de un e-mail con un archivo adjunto. Este vector sigue siendo de los más utilizados cuando en lugar de una evaluación de concienciación es un ataque recibido en la empresa.

Figura 3: Manual de Ethical Hacking en 0xWord

La herramienta es un asistente sencillo para crear documentos MS Office, el cual puede ocultar VBA macros, Stomp código VBA y ofuscar macros. La herramienta puede ser ejecutado sobre diversas plataformas: Microsoft Windows, GNU/Linux y MacOS & Mac OS X. El investigador Stan Hegt publicó las presentaciones que se hizo sobre la herramienta en BruCON y en DerbyCON, sin duda, más que interesante.


Figura 4: Presentación de Stan Hegt sobre EvilClyppy

Desde el Github del proyecto se puede descargar el código fuente, escrito en C#, u obtener la versión preparada con la DLL necesaria para poder ejecutar la aplicación. En la siguiente imagen se pueden ver las opciones que dispone el binario. 

Figura 5: Opciones de EvilClippy

Detección de EvilClippy

En cualquier proceso de Ethical Hacking la detección y la evasión son factores fundamentales. Seguramente nos causa dudas saber cuánta detección tiene esta herramienta. La experiencia nos dice que al ser una herramienta pública y utilizada en este tipo de procesos será bastante detectada, pero también hay que tener en cuenta que cuanto más se actualice y más al día esté, mayor será el ratio de evasión.

Así suele pasar, pero esto supone un gran trabajo. Un ejemplo de esto era The Shellter.  Para este caso, en particular, la herramienta puede utilizar una Macro de Cobalt Strike para hacer bypass de la mayoría de productos antivirus. Para ello utiliza VBA Stomping y combina nombres de módulos de forma aleatoria. 

Casos de Uso

Como comentaba anteriormente, y se puede ver detallado en el artículo del investigador Stan Hegt, se puede utilizar una macro de Cobalt Strike antes de aplicar EvilClippy. Este es un proceso de inyección básico, el cual es detectado en un gran ratio. 

Figura 6: Detección con macro de Cobalt Strike

Después de aplicar EvilClippy al documento se puede ver el siguiente resultado. Para ejecutar EvilClippy sobre el documento se puede ejecutar la siguiente instrucción.
evilclippy.exe –s fake.vbs –g –r [documento ofimático]. 
Figura 7: Aplicación de EvilClippy a un documento y evasión de detección

EvilClippy solo focaliza su estrategia en la no detección estática. Es decir, si una vez se ejecuta el payload y es detectado no es un tema que trate la herramienta. La herramienta puede ser utilizada en procesos de Red Team, en los cuales hay que abrir una brecha y evitar la detección desde el primer momento. Además, se puede juntar con técnicas de bypassing de AMSI en VBA

VBA Stomping 

La técnica más potente que utiliza EvilClippy es VBA Stomping. Esta técnica se aprovecha de una característica, la cual no está oficialmente documentada. Se trata de una ‘PerformanceCache’ de cada flujo de módulo contiene un pseudo-código compilado, también conocido como código-P, para el motor de VBA. Si la versión de MS Office especificada en la secuencia _VBA_PROJECT coincide con la versión de MS Office del programa, entonces se ignorará el código fuente de VBA y ejecuta el código-P en su lugar. 

Si se conoce la versión de MS Office de una máquina destino se podrá reemplazar el código fuente de VBA con un código falso, y el código malicioso se ejecutaría a través del código-P. Además, cualquier herramienta que analice el código fuente de VBA es completamente engañado, porque está analizando un código que no se va a ejecutar posteriormente. No se evalúa el que se debería. El investigador Vesselin Bontchev fue el primero en documentar públicamente esta técnica. 

Para poder reemplazar el código fuente de VBA en el documento ofimático con un código falso y conseguir que el código-P malicioso se ejecute se debe escribir en EvilClippy lo siguiente:
evilclippy.exe –s fakecode.vba –t 2016x86 [documento]
dónde 2016 es la versión de Office y x86 la arquitectura. Después de esto, se crea un archivo llamado macrofile_EvilClippy.doc

Es una técnica potente, pero debemos tener claro que necesitamos conocer la versión de MS Office del objetivo. 

¿Cómo podemos saber o identificar la versión destino de MS Office? 

EvilClippy también puede automatizar y ayudar a esto. El truco es sencillo y sigue los siguientes pasos: 
1. Se crea una plantilla de MS Word, la cual incluye una macro maliciosa. 
2. Ejecuta la herramienta EvilClippy con la opción –webserver. Apunta a la plantilla creada anteriormente. A continuación, la herramienta activa un servidor web que escucha las conexiones entrantes en el puerto que se especifica. 
3. Posteriormente, se crea otro documento que apunta al documento de la plantilla a través de una URL. 
4. Si se abre el archivo, MS Office se comunicará con el servidor web para buscar la plantilla. EvilClippy identificará la versión de MS Office por el protocolo HTTP. 
Una forma sencilla y fácil de detectar la versión y poder utilizar la técnica VBA Stomp 

Figura 8: Detección de versiones

Una herramienta interesante para llevar en la mochila, ya que puede ser utilizada en diferentes ámbitos de un proceso de Ethical Hacking. Hay que tener mucho cuidado cuando se abre un documento ofimático y ver qué tipo

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.

viernes, abril 26, 2019

Hacking Windows 10: Más técnicas para saltarse AMSI (Anti Malware Scan Interface) con VBA y las Macros de Office

Hace unas semanas hablábamos sobre AMSI (Anti Malware Scan Interface) y el porqué de este mecanismo de protección que Microsoft liberó. El juego del gato y del ratón comentamos en su momento. Así parece seguir. AMSI puede ser aplicado a diferentes lenguajes de scripting, entre ellos el potente lenguaje de administración y pentesting: Powershell.

Figura 1: Hacking Windows 10: Más técnicas para saltarse AMSI
(Anti Malware Scan Interface) con VBA y las Macros de Office

Tal y como vimos hace unas semanas, había métodos clásicos y sencillos para jugar y conseguir el bypass de AMSI y otros métodos no tan sencillos, los cuales hablan de parchear el proceso para que el buffer de lectura siempre valga 0. Es un juego interesante y que dará que hablar, como en su día lo hizo el UAC o AppLocker. De este modo, la seguridad mejorará, ya que el encontrar caminos que hacen que una protección falle ayuda a mejorar su seguridad.

Figura 2: Libro de Hacking Windows: Ataques a sistemas y redes Microsoft

Hoy vamos a ver más técnicas de Hacking Windows que puedan ayudar en un proceso de pentesting, que puedan usarse para evadir AMSI cuando sea necesario. Hay que recordar que AMSI es una protección joven, la cual aparece en Windows 10. Es una característica de seguridad que actúa entre los intérpretes de scripting y el motor de antivirus.

AMSI en Windows

Los lenguajes de scripting que soportan AMSI son Powershell, Windows Script Host (wscript.exe y cscript.exe) y, recientemente, Visual Basic for Applications o VBA. El flujo es sencillo, cuando se ejecuta un comando en uno de estos intérpretes, los comandos son enviados a la interfaz de AMSI. Si el antivirus está ‘hookeado’, éste podrá recibir la ejecución y decidir si bloquear o permitir lo ejecutado. De este modo, se puede detectar ejecución en memoria de código malicioso y bloquear este comportamiento.

La idea del bypass es sencilla, intentar evitar que los comandos que son ejecutados a través del intérprete sean detectados como algo malicioso. Como ya comenté arriba, ya hemos visto ejemplos de bypass de AMSI en Powershell. En septiembre de 2018, Microsoft anunció la implementación de AMSI para VBA, incluyendo la característica para MS Office 365, release de enero de 2019. Hoy en día cualquier usuario de Office 365 debería ejecutar Office con AMSI habilitado para evitar las macros maliciosas.

Figura 3: AMSI en Macros VBA de Office

Según la teoría, cualquier método COM y llamadas a la API Win32 debería acabar siendo tratada por el sistema Behavior Log. Además, llamadas específicas son marcadas como triggers. La ejecución de una macro será pasada a AMSI para tomar una decisión. Por defecto, la configuración de AMSI no está habilitada para todas las macros de los documentos. Su política está configurada para documentos de baja confianza. Es decir, documentos cuya confianza es dudosa, ya sea por no estar firmado o por haber sido descargado de Internet.


Algunos bypasses de AMSI con VBA
Se han ido publicando algunos bypasses de AMSI para VBA. Algunos se han recopilado en un magnífico artículo de Pieter Ceelen, dónde se detalla el ámbito de ejecución de AMSI con VBA y los bypasses.

Bypass 1: Attack without VBA

El primer bypass es un ataque denominado ‘Attack without VBA’, por lo que parece que de primeras no tendremos a VBA. Está orientado al uso de macros: ‘Excel 4.0 macros’. En Excel hay un segundo motor de macros específico para Excel 4.0 macros. Este motor está implementado en Excel.exe y no utiliza el motor de VBA, el cual se encuentra en la DLL VBE7.dll.

Figura 4: Excel 4.0 Macro

Como el motor de AMSI solo ‘hookea’ a VBA, Excel 4.0 proporciona un vector de ataque. Sobre el ataque de Excel 4.0 se puede leer más en un interesante artículo de Stan Hegt. El resumen es rápido y sencillo, la idea es crear una macro para MS Excel 4.0 Macro.

Figura 5: Ejemplo de Macro usando las API de Win32

Una vez realizada la macro y configurada con el Auto_open se tiene todo lo necesario. En el artículo de Stan Hegt se muestra un ejemplo básico para la apertura de la calculadora o cómo hacer uso de la API de Win32 y conseguir un ataque más completo y potente.

Bypass 2: Macro Runtime Scope & Abusing Trust

El segundo bypass que vamos a tratar es el denominado Macro Runtime Scope & Abusing Trust. ¿En qué consiste? Microsoft hizo varias excepciones sobre el scope o ámbito de ejecución de AMSI. Especialmente las excepciones para documentos categorizados como de confianza y ubicaciones de confianza.

Si pruebas con un documento de confianza y una macro verás que todo fluye normal pasando por AMSI, aunque quizá no debería. Esto es prueba y error. Por otro lado, el investigador Pieter Ceelen se dio cuenta que con los documentos de ubicaciones de confianza se excluían de AMSI en la configuración predeterminada.

Figura 6: PoC del Bypass 2 en GitHub

Se puede utilizar una PoC (Prueba de Concepto) desde el Github del investigador. La idea era sencilla: lo primero es que, con el documento abierto, se guarda el documento actual como una plantilla hacia la ubicación de confianza.

Después, se abre un nuevo archivo basado en esa plantilla que activará un evento document_new desde una ubicación confiable. El script que se proporciona en el Github tiene tres semanas, por lo que sigue siendo muy funcional.

Bypass 3: Innocent COM functions

El tercer bypass es denominado como ‘Innocent COM functions’. Microsoft hace distinción entre ‘InnocentCOM. Algunos ejemplos de funciones Innocent COM que permiten abusar de no lanzar AMSI son:
• Instanciación de Excel y llamar a ExecuteExcel4Macro o DDEInitialize. 
• Utilizar WMI y SpawnInstance.
Figura 7: Ejemplo por DarkOperator

Esto está documentado por Carlos Pérez o DarkOperator, genialmente, para que puedas probarlo con un paso a paso.

Bypass 4: Non-Win32API/COM functions that have side effects

El cuarto bypass es denominado ‘Non-Win32API/COM functions that have side effects’. Hay varias funciones integradas en Word y Excel que pueden proporcionar la ejecución de código o provocar el desactivar AMSI.

Es posible utilizar una macro para editar el contenido de un archivo de Word y almacenarlo como archivos de texto con extensión REG o BAT, por ejemplo, disableamsi.reg o disableamsi.bat. Con estos ficheros se puede deshabilitar AMSI a través de la configuración macroruntimescope en el hive HKCU. Teniendo en cuenta, y esto es importante en el Ethical Hacking, que la mayoría de las empresas no van a configurar por GPO la configuración de macroruntimescope, se podrá sobrescribir en HKCU.

Figura 8: Macros para hacer estas pruebas

En el mismo archivo BAT se podrá hacer que se inicie Word sin el splash screen de bienvenida. Es un método interesante, y se puede hacer muy silencioso. Se puede descargar desde Github el código de la macro.

Conclusión

AMSI es una protección que está aquí para, en principio, estar en las nuevas generaciones de Microsoft Windows. Es una protección ambiciosa y que debe cubrir una serie de vectores de ataque muy amplios y complejos. Veremos cómo avanza el juego del gato y del ratón en los próximos meses que seguro que es divertido.

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.

miércoles, marzo 06, 2019

Hacking Windows 10: Lateral Movements using DCOM Objects

Hace un par de semanas hablamos sobre la importancia de las técnicas DCOM para lograr un movimiento lateral que pasa, en muchos casos, desapercibido. Además, hablamos de alguna herramienta como DCOMrade que permite ver posibles vías para lograr el éxito en el movimiento lateral. Este tipo de técnicas, quizá un poco más avanzadas o quizá más desconocidas, en lo que a movimiento lateral se refiere, son técnicas que aportan un gran potencial en un Ethical Hacking.

Figura 1: Hacking Windows 10: Lateral Movements using DCOM Objects

Además, algo que está resultando interesante es el uso que se le puede dar en un Hacking de sistemas Windows 10 y redes Microsoft, con las protecciones que éste tiene y el juego del gato y el ratón que se presenta de forma constante. Sin duda, el movimiento lateral es una técnica imprescindible en el pentesting.

Figura 2: Libro de Hacking Windows

Nosotros no hemos dejado pasar la oportunidad de implementar alguna de estas técnicas en nuestra navaja suiza de Pentesting con Powershell: Nuestra querida ibombshell. En la rama Dev, la cual pronto se convertirá en rama estable y liberaremos nueva versión, podemos encontrar dos movimientos laterales basados en DCOM. Estamos deseando liberar la nueva versión, que, aunque sigue siendo beta y mejoramos en los ratos libres que se tiene, traerá nuevas funcionalidades que serán del gusto de los usuarios y mejoras de estabilidad y uso de la línea de comandos.

Figura 3: Encontrar lateral movements

Hoy quería mostrar algunas técnicas más utilizadas para hacer movimiento lateral a través de DCOM. En este genial artículo se muestra un recopilatorio de algunas de ellas, basadas en investigaciones de Matt Nelson y Cybereason. Las técnicas que se explicarán hoy son:
  • DDE con Microsoft Excel.
  • MMC20.Application.
  • ShellBrowserWindow.
  • Outlook y la ejecución con el método CreateObject.
Antes de empezar con las cuatro técnicas que se quieren mostrar hoy, quería añadir que la técnica MMC20 ya está disponible en la rama Dev de iBombShell en su Github.

MMC20.Application

Fue publicada por primera vez por el investigador Matt Nelson en su blog. La técnica es muy similar a la que vimos hace unas semanas sobre ShellWindows. Para poder utilizar esta técnica, lo primero es crear una instancia MMC20.Application. Después de ello, se puede utilizar el método ExecuteShellCommand, el cual se encuentra en la propiedad Document.ActiveView.

De esta forma se puede ejecutar el comando que se quiera sobre la máquina. El comando ejecutado correrá como un proceso hijo del proceso mmc.exe. Hay que indicar que la ejecución de mmc.exe vía COM es extraño, por lo que puede generar ruido y alertas a través de los mecanismos de protección de Windows.

Figura 4: Comprobación de métodos disponibles

Lo primero que se puede comprobar son los métodos que tiene el objeto. Para ello ejecutamos:
$mmc = [Activator]::CreateInstance([type])::GetTypeFromProgID(“MMC20.Application”, “[dirección IP]”).
Cuando uno ya tiene la posibilidad de ser admin y hacer ese movimiento, como si de PtH se tratase, puede hacer uso de esto para ejecutar comandos en remoto. En este caso se muestra como hacer la ejecución en remoto sobre un Windows 10, desde el objeto $mmc que ya tenemos creado.

Figura 5: Ejecución de calc.exe desde el objeto $mmc

En el siguiente vídeo se puede ver el proceso completo desde un Windows 7 a un Windows 10 y la ejecución de código remoto. Lógicamente, se debe disponer ya de un admin en el sistema Windows 7.

Figura 6: PoC de Lateral Movement usando MMC20.Application

ShellBrowserWindow

Esta técnica es similar a la de ShellWindows que se comentó hace unas semanas. Para poder utilizar esta técnica se debe crear una instancia del objeto ShellBrowserWindow y revisando, como hicimos en el caso anterior, los métodos disponibles encontraremos ShellExecute, dentro de la propiedad Document.Application.

Figura 7: Comprobación del método ShellExecute

En el siguiente vídeo se puede ver los detalles para lograr la ejecución del movimiento lateral. Hay que indicar que en Windows 7 puede haber ciertas limitaciones, aunque, como se puede ver en el vídeo, se puede ejecutar el código de esta forma.

Figura 8: PoC de Lateral Movement usando ShellBrowserWindow

Outlook y la ejecución con el método CreateObject

Esta técnica es un derivado de las de Matt Nelson. El objeto Outlook permite la instalación e interacción con objetos COM. Esto es realizado a través del método CreateObject. Este hecho permitiría a un atacante interactuar con los objetos COM en remoto, mediante DCOM.

La creación del objeto Outlook sería a través de la siguiente instrucción de PowerShell
$outlook = [Activator]::CreateInstance([type])::GetTypeFromProgID(“Outlook.Application”, “[dirección IP]”)
Desde este objeto se puede hacer uso del método CreateObject para crear una Shell.Application, de la siguiente manera:
$shell = $outlook.CreateObject(“Shell.Application”)
En ese punto solo tendríamos que ejecutar:
$shell.ShellExecute(“[comando a ejecutar en remoto]”)
El comando se ejecuta sobre el Windows 10 como un hijo del proceso Outlook.

Figura 9: Ejecución de calc con el objeto $Shell creado

Esta técnica permite sustituir Shell.Application por Wscript.Shell, ya que hay casos que pueden resultar de interés.

DDE con Microsoft Excel

Esta técnica fue publicada por Cybereason y proporciona un método con el que conseguir movimiento lateral a través del uso del Excel. La técnica utiliza el Direct Data Exchange Inter-Process Communications de Excel. Y todo esto lo podemos automatizar con un poco de Pentesting con Powershell.

Figura 10: Libro de Pentesting con PowerShell

Con esto se puede ejecutar un comando arbitrario. Lo primero, es crear una instancia del objeto Excel.Application, el cual es un objeto COM asociado con el Excel. Esto se logra con la instrucción:
$excel = [Activator]::CreateInstance([type])::GetTypeFromProgID(“Excel.Application”, “[dirección IP]”)
Una vez que se tiene el objeto, se puede hacer uso del Direct Data Exchange o DDE. A través de la instrucción:  $excel.DDEInitiate(“cmd”,”/c calc.exe”)


Figura 11: Ejecución de cmd.exe vía $excel

Sin duda, son métodos interesantes de conocer y que desde la parte de mitigación deben trabajar bien a lo largo del dominio. La identificación de la ejecución remota por DCOM puede ser un indicio para un IoC. Este tipo de técnicas no son vulnerabilidades, pero si hacen un abuso de una funcionalidad legítima.

Figura 12: Libro de Máxima Seguridad en Windows [4ª Edición]

El acceso a los objetos “peligrososDCOM debería ser prohibido por política y aplicar una lista blanca a los que se puedan utilizar si quieres tener un sistema en el que aplicas la Máxima Seguridad en Windows posible. Seguiremos avanzando en mostrar este tipo de técnicas e ir añadiéndolas a nuestra iBombShell para ir mejorando esta herramienta Open Source de Ethical Hacking.

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.

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares