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

jueves, abril 18, 2024

El uso de LLMs como Copilot en la Seguridad Ofensiva (y el Cibercrimen) para hacer malware

El uso de LLMs para seguridad ofensiva ya es un tema recurrente. Os hablé de ello en el artículo de "Cómo usar LLMs en Ciberataques: Cibercrimen, Ciberespionaje, Ciberguerra o Red Team" donde Microsoft hacía un recorrido de los usos que ataques de ciberespionaje y ciberguerra, que iban desde el reconocimiento de objetivos, hasta la creación de piezas de software necesarias para crear exploits o herramientas de persistencia.

Figura 1: El uso de LLMs como Copilot en la Seguridad Ofensiva
(y el Cibercrimen) para hacer malware

Para tener un "Copilot" para técnicas de seguridad ofensiva, cuando se utilizan modelos generalistas que viene con la detección del "Harmful Mode", exige realizar un Jailbreak antes de poder ser utilizadas, y por eso han aparecido soluciones como WormGTP o FraudGPT en el underground, o servicios como 0dAI para el mundo del pentesting o el Red Team.

Recientemente, los investigadores de Proofpoint hablaban de que al analizar un ataque habían notado que el dropper del malware estaba escrito en un PowerShell que parecía haber sido creado por un LLM por la forma en la que está escrito, por los comentarios, la elección de las variables, el código auto-explicativo, etcétera, aunque es una especulación más que una certeza.
Lo cierto es que hacer piezas de software que puedan utilizarse en un esquema de ataque es algo muy difícil de controlar por el "Harmful Mode", ya que si tu pides código para funciones concretas cualquier sistema te ayuda con ellas.

En el pasado ya vimos cómo era posible utilizar ChatGPT para hacer las herramientas necesarias para hackear una red WiFi, en un artículo que os publiqué hace ya un tiempo, y hacer un Dropper en PowerShell que pueda ser utilizado en un esquema de distribución de malware es bastante sencillo.

Figura 5: Pidiéndole un dropper en PowerShell a ChatGPT

En la imagen anterior le estoy pidiendo, con muy buenos modales, que me haga un dropper en PowerShell, y ChatGPT me lo hace muy diligente.

Figura 6: Pidiéndole que me lo haga en inglés y sin imprimir nada por pantalla

Como quería ver si se podía hacer algo similar al del ataque, le voy a pedir que me lo haga en inglés, pero que no me imprima nada por pantalla, que se supone que el dropper no debe alertar a la víctima cuando se ejecute.

Figura 7: Ahora le pedimos que el fichero lo baje en BASE64 para que no sea un binario

Ahora pedimos que el fichero lo descargue codificado en BASE64 para que no sea un binario lo que pase por cualquier firewall o WAF que haya por medio, sino una cadena de texto codificada. Algo muy común en transferencias web.

Figura 8: Que borre el fichero una vez ejecutado, para hacer más difícil la detección

Ahora le pedimos como se ve en la imagen anterior que borre el fichero, y como podéis ver en la imagen siguiente, que ofusque el código para que sea más complejo su análisis.

Figura 9: Le pedimos que ofusque el código

Para ir terminando la prueba, vamos a pedirle que reduzca el tamaño para que ocupe pocos bytes y su transmisión sea lo más rápida posible.

Figura 10: Que reduzca el número de bytes que ocupa

Y como detalle final, que las variables solo tengan una letra de longitud, para que sea aún menos legible y más pequeño aún el tamaño del código de este dropper.

Figura 11: Variables de un sólo carácter de longitud

Al final, la gracia está en que no ha saltado ningún "Harmful Mode" y como es una pieza de código genérica que puede ser un dropper o un actualizador de software, cualquiera lo puede utilizar para hacer el bien o para hacer el mal, así que todos lo usarán. Si aún no usas los LLMs en tus pentesting... estás quedándote desactualizado.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


miércoles, enero 03, 2024

Cómo detectar amenazas y proteger tu Windows con los registros del sistema

Se dice que toda información puede ser un arma de doble filo, y los registros de Windows no son la excepción. Con la evolución de la informática, los sistemas y la programación a lo largo de las décadas, el registro de eventos se ha convertido en un recurso esencial. Esto es tanto para mantener la seguridad y estabilidad de un sistema, como cuenta Sergio de lo Santos en su libro "Máxima Seguridad en Windows: Secretos Técnicos" como para descubrir las tácticas de aquellos que buscan infiltrarse en él, como hace el Malware Moderno.


Hace casi dos años, en el mundo del software, vimos cómo una vulnerabilidad como Log4Shell, proveniente de una dependencia de logs de Java (Log4J), puso en riesgo la seguridad de muchos sistemas. Hace casi ya dos años Chema Garabito habló y demostró cómo explotar Log4Shell en servidores de Minecraft.


Hoy en este artículo, exploraremos en profundidad la naturaleza de los logs de Windows, cómo interpretarlos, y cómo extraer información valiosa haciendo uso de Python, entre otras herramientas. Además, descubriremos cómo los “malos” emplean estos registros para ocultar su malware, mientras que los “buenos” los utilizan para detectar y prevenir amenazas.

¿Qué son los logs de Windows?

El visor de eventos es un componente de los sistemas operativos Windows que permite a administradores y usuarios ver lo que pasa en un sistema. Todas las acciones realizadas en Windows quedan registradas de forma que mediante el visor de eventos se puedan leer.

Figura 3: Libros de Python para Pentesters y Hacking con Python
de Daniel Echeverri publicados en 0xWord.

Por ejemplo, cuando iniciamos sesión, el código que se ejecuta en las entrañas de nuestro sistema, a su vez, deja un rastro por donde ha pasado; y, por ende, por donde hemos pasado nosotros como usuarios. Gracias a los registros de Windows, podemos saber en qué momento y donde se ejecutó un binario especifico y que procesos desencadenó el mismo.

Figura 4: Registros EVTX en la carpeta C:\Windows\System32\winevt\Logs

Si visitamos esta ruta (C:\Windows\System32\winevt\Logs) en nuestro sistema, podremos multitud de ficheros, cada uno de ellos se trata de un fichero de logs relativo a un módulo de nuestro sistema. Por ejemplo, vemos Powershell, HyperV, NTFS, etcétera. Sin embargo, existen tres ficheros de logs, esenciales, comunes al resto que son:
  • Seguridad: Eventos relacionados con la seguridad del sistema, como inicios de sesión de usuarios, intentos de acceso no autorizado, cambios en políticas de seguridad y otras actividades de seguridad.
  • Aplicaciones: Eventos generados por aplicaciones y servicios instalados en el sistema. Estos registros pueden incluir errores de aplicaciones, advertencias y eventos informativos relacionados con aplicaciones específicas.
  • Sistema: Eventos relacionados con el funcionamiento del sistema operativo en sí, como fallos de hardware, problemas de inicio del sistema, cambios en la configuración del sistema, entre otros.
Al examinar detenidamente estos archivos, notamos que su extensión es "EVTX". Esta extensión se refiere al formato Windows XML EventLog, que Windows utiliza para almacenar información desde que se introdujo por primera vez en Windows Vista y Windows Server 2008. Desde entonces, se incluye en todas las versiones. Cada evento en una entrada de logs contiene la siguiente información:
  • Nivel: Gravedad del evento (information, critical, warning, error, verbose).
  • Fecha: Fecha en que ocurrió un evento.
  • Hora: Hora en que ocurrió un evento.
  • Origen: Programa o componente que causó el evento.
  • ID del evento: Un número de identificación de Windows que especifica el tipo de evento. Microsoft recoge en este apéndice gran parte de estos identificadores.
  • Categoría de tarea: Tipo de registro de evento registrado.
  • Usuario: Nombre de usuario del usuario conectado a la máquina cuando ocurrió el evento.
  • Computadora: Nombre de la computadora.
Que estos archivos tengan este formato permite al visor de eventos tres principales ventajas frente a otros formatos: Rollover (se divide en fragmentos y los nuevos fragmentos pueden sobrescribir los antiguos limitando el tamaño máximo), compresión (como veremos más adelante, si convertimos con Python, el fichero de EVTX a JSON, el tamaño pasa de 18,5 MB a más de 60 MB, lo que significa un aumento del 324% de su tamaño) y uso de tipos sólidos (permite filtrar y seleccionar con rapidez los eventos, evitando tener que recorrer todo el archivo).

Figura 5: Comparación del contenido de un fichero EVTX
en crudo y convertido a formato JSON

De forma nativas, se pueden visualizar los archivos EVTX, haciendo uso del visor de eventos de Windows (eventvwr), el cual incluye funcionalidades como filtrado, búsqueda avanzada, vistas personalizadas, suscripción a eventos, entre otros.

El doble filo de los registros de eventos de Windows: Anatomía de amenazas y herramientas de defensa

Las estafas que se valen de los eventos de Windows como anzuelo para engañar a los usuarios han sido notorias. En el pasado, hubo casos de llamadas de supuestos técnicos de "Microsoft" que dirigían a las personas a ver registros de eventos con errores triviales para dar credibilidad a la estafa.


En una técnica más sofisticada, se descubrió que los registros de eventos de Windows, específicamente en los registros de Key Management Services (KMS), se usaron como escondite para ocultar código malicioso. 


Esto se lograba inyectando "shellcode" en estos registros, aprovechando la carga de código malicioso mediante la manipulación de archivos legítimos del sistema. Si quieres ampliar la información sobre esta técnica, puedes visitar el artículo de SecureList by Kaspersky que habla de ello.


Pero no todo es negativo: estos eventos de Windows también han sido vitales para combatir el malware y ransomware. Los investigadores de seguridad hacen uso a menudo de estos registros —entre otros— para rastrear, entender y desarrollar herramientas que descifren y reviertan los daños causados por estos ataques, proporcionando soluciones para desbloquear archivos afectados.

Figura 9: Trazas de algunos eventos ejecutados por un malware o actor malicioso

En un ataque ransomware, podríamos observar algunos logs como los siguientes, donde el actor hace uso de ScreenContent.ClientService.exe para transferir archivos y ejecutar comandos maliciosos, esto podría indicarnos la etapa inicial del ataque.

Manipular y automatizar la seguridad a partir de los eventos de Windows

Previamente, mencionamos que los archivos EVTX pueden ser visualizados y manipulados desde el visor de eventos de Windows. Aunque este cuenta con muchas características útiles, es importante considerar las limitaciones del visor de eventos, como la falta de replicación de registros entre computadoras en una red y la dificultad para agregar registros de múltiples sistemas.

Por esta razón, vamos a explorar cómo exprimir la monitorización de eventos en tu sistema o red corporativa al máximo, ya que es posible manipular los eventos mediante el uso de Python y/u otras herramientas disponibles. Vamos al turrón:

Stack ELK

El conjunto de herramientas del stack ELK, compuesto por Elasticsearch, Logstash y Kibana, proporciona una solución robusta y flexible para la recopilación, análisis y visualización de datos, incluidos los eventos de Windows. Esta combinación potente permite la manipulación eficiente de eventos y la automatización de los registros de eventos de Windows.


Sin embargo, eso no sería posible sin Winlogbeat, se trata de un agente ligero y eficiente diseñado para enviar registros de eventos desde sistemas Windows a Elasticsearch o Logstash para su análisis posterior. Su capacidad para leer eventos de varios registros, filtrarlos según criterios definidos por el usuario y enviar los datos a los destinos configurados lo convierte en una herramienta fundamental en la monitorización de eventos en entornos Windows. La instalación de Winlogbeat es sencilla:
  • A continuación, en una ventana de Powershell como administrador se ejecuta el script de instalación: “.\install-service-winlogbeat.ps1”
  • Es importante configurar adecuadamente las conexiones a Elasticsearch o Logstash en el archivo de configuración winlogbeat.yml. Para ello, puedes encontrar más información en la documentación de Winlogbeat
  • Por último, para iniciar Winlogbeat, ejecuta el siguiente comando: “net start winlogbeat”
Una vez que los eventos de Windows se han indexado en Elasticsearch, podemos usar Kibana para visualizarlos y Python para interactuar con ellos. Las bibliotecas como elasticsearch-py nos permiten realizar consultas avanzadas a Elasticsearch desde Python, lo que facilita el análisis y la manipulación de los datos. Esto nos permite llevar el análisis de los eventos de Windows hasta el límite de lo que podamos imaginar.

python-evtx

Otra alternativa a Winlogbeat y ELK es crear nuestro propio agente mediante el uso de la librería python-evtx, que nos permite analizar y manipular eventos de Windows. Se trata de una biblioteca de Python que permite acceder a la estructura interna de los archivos EVTX, los cuales contienen los registros de eventos de Windows y volcar los datos correspondientes en un fichero JSON (como el que veíamos al comienzo de este artículo). Con unas pocas líneas podremos hacer uso de python-evtx, previa instalación con “pip install python-evtx xmltodict”. Puedes comenzar a analizar eventos de Windows utilizando el ejemplo de la imagen siguiente.

Figura 12: Ejemplo de código para convertir de forma
simple un fichero EVTX a formato JSON

Estas son solo algunas de las posibilidades que ofrece python-evtx para analizar y manipular eventos de Windows. Para realizar análisis más complejos, crear herramientas personalizadas para la monitorización de eventos o automatizar tareas, visita su repositorio para conocer más.

Conclusión

En resumen, los registros de eventos de Windows son una fuente invaluable de información, revelando tanto la salud del sistema como posibles amenazas. Aunque han sido utilizados para esconder y ejecutar malware, también son la clave para la detección y defensa contra ataques. Herramientas como ELK y python-evtx ofrecen formas poderosas de interpretar y manipular estos registros, permitiendo análisis detallados y protección proactiva.

miércoles, marzo 22, 2023

"iBombShell: Revolution". Sólo para Pentesters!

El pasado día 10 de Marzo participamos en RootedCON 2023 dónde tuvimos la oportunidad de presentar el trabajo que hemos trabajado desde hace un tiempo. La idea es la de proporcionar a los pentesters y desarrolladores el potencial de iBombShell y poder integrarlo con sus herramientas. 

Figura 1: "iBombShell: Revolution". Sólo para Pentesters!

De este modo podemos decir que iBombShell o el Core de ésta es una API que permitirá a los usuarios poder integrar lo que ellos quieran. Damos un pequeño repaso a esta presentación, comentando las principales novedades de iBombShell: Revolution.

¿Qué era iBombShell y que ha cambiado?

Ya se ha hablado largo y tendido sobre iBombShell en este blog, desde Euskalhack 2018 dónde mostramos la idea de lo que queríamos hacer, pasando por técnicas de post-explotación y el desarrollo de nuevos módulos para esta herramienta Open Source. Sin olvidarnos de uno de los momentos más importantes para iBombShell que fue la presentación en la BlackHat Eruope 2018 en Londres. O la incorporación de iBombShell a la C2Matrix, un hito más que interesante de este proyecto, el cual nos llena de orgullo y nos rellena la barra de la ilusión para hacer nuevas cosas.

Figura 2: iBombShell en GitHub

iBombShell Legacy tenía dos modos de funcionamiento, el llamado “Everywhere”, que permitía descargar a memoria, en apenas 4 pasos, una consola PowerShell con funciones útiles y dinámicas para un pentester, y que estuviera disponible en cualquier momento y en cualquier lugar.
Y, por otro lado, también se contaba con el llamado modo “Silently” que permitía conectar una instancia de iBombShell a un C2 escrito en Python y que podía ordenar de manera remota instrucciones creadas en los módulos de PowerShell.

Figura  4: iBombShell Legacy y sus modos Everywhere y Silently

Para la renovación de iBombShell, se quería cambiar completamente el modo de trabajo, centrándonos en hacer una herramienta más sencilla, fácilmente extensible, integrable con varios clientes y que fuera un componente que estuviera centralizado, de tal manera que un equipo de trabajo pueda utilizar una misma instancia de iBombShell para realizar sus pruebas. De esta manera, queremos destacar como principales novedades de la versión Revolution:
  • Nuevo iBombShell "apificado": Como se ha comentado anteriormente, iBombShell ahora es una gran API a la que llamamos Core. ¿Cómo interactuar con el Core? Vamos a desarrollar algunos clientes “oficiales” del proyecto, pero cualquier desarrollador o pentester podrá integrar sus necesidades directamente con el Core gracias al uso de la API.
  • Gestión total desde el CORE: El Core gestiona todo lo que sucede en iBombShell, es decir, si hay que cargar un módulo, si hay que ejecutarlo, si llega la conexión de un nuevo warrior, etcétera.
  • Gestión de usuarios: El Core es una plataforma multiusuario, pero de esto hablaremos en otro artículo para explicar cómo funcionan los roles y los usuarios en iBombShell.
  • Autenticación (JWT): Toda acción que deba ser autorizada utilizará un JWT. Esto es algo que creemos que es importante para la gestión de usuarios y lo que cada uno puede hacer.
  • Generación warriors (code / file): La generación de los Warriors, tal como ocurría en la ‘Legacy’ iBombShell se puede hacer tanto en código como en un fichero. Iremos mostrando algunos ejemplos de uso para que se entienda mejor.
  • Nueva consola para los warriors (PowerShell): Se ha implementado una nueva consola en Powershell para interactuar con el nuevo Core.
  • Facilidad de integración.
Arquitectura de iBomShell

La nueva arquitectura de iBombShell cuenta con una pieza central: el core. Este elemento realiza toda la gestión de los usuarios, los módulos, los warriors y las tareas. Para almacenar la información se apoya en una base de datos local SQLite, además de algunos diccionarios para almacenar en memoria los usuarios activos y los warriors en ejecución.


Todo esto es accesible y gestionable desde la API, de tal manera que es posible integrar distintos clientes como web, interfaces gráficas de usuario para distintas plataformas, consolas, o automatizar la generación de warriors y creación de tareas con scripts en Bash, Python, JavaScript…

Figura 6: Arquitectura de iBombShell

La API se ha dividido en 4 principales tags, los mismos que gestiona el core y, a través de la especificación OpenAPI, se puede acceder a su documentación y prueba de la misma. Algunas de las peticiones que se tienen disponibles a través de la API son:
  • /auth: Permite la autenticación de usuarios y la obtención de un JWT para usar la API.
  • /get_modules: Permite obtener los módulos, ordenados por categorías.
  • /generate: Solicita la generación de un nuevo warrior.
  • /create_task: Crea una nueva tarea asociada a un warrior.
  • /get_task_warrior: Solicitado por un warrior para obtener su tarea a ejecutar.
  • /put_task: Utilizado por el warrior para guardar los resultados de una tarea ejecutada.
  • /get_task_results: Utilizado por un cliente para obtener los resultados de una tarea ya ejecutada.
Iremos publicando más información sobre la API y la doc de ésta, cuando se libere el proyecto. A día de hoy, queremos implementar clientes oficiales para que el core de lo mejor de sí. 

Figura 7: Documentación de la API de iBombShell

Para la charla de RootedCON todo lo mostramos de integración fue desarrollado con pocos días para mostrar a los desarrolladores el potencial que la Apificación del Core de iBombShell proporcionaba y cómo podían integrar fácilmente scripts u otro tipo de herramientas.

Workflows

Para darle un sentido a todo, es necesario contar con algunos flujos de trabajo. Por ejemplo, en primer lugar, contar con un Token JWT para acceder a gran parte de la API. Para realizar esto, haremos una petición a /auth con un usuario y contraseña válidos, y obtendremos el JWT que utilizaremos, a partir de ahora, en la cabecera Authorization [Bearer] para hacer el resto de peticiones.



Figura 8: Flujo de trabajo de la autenticación del cliente

A continuación, podemos leer todos los módulos disponibles, definir los valores necesarios para utilizar distintos módulos u optar por generar un nuevo guerrero. Una vez que se dispone de un guerrero en ejecución es posible asignar tareas y esperar a que el warrior descargue las instrucciones para ejecutarse y devolver los resultados.

Figura 9: Flujo de trabajo de creación de nuevas tareas

El workflow del warrior es bastante sencillo ya que se basa en, primero el registro del nuevo warrior, y después hacer peticiones constantes al listener de iBombShell (Core) para consultar si tiene nuevas tareas asociadas a su identificador para descargarlas, ejecutarlas y mandar los resultados de nuevo al listener.

Figura 10: Flujo de trabajo del Warrior

Y esto es, a grandes rasgos, las novedades del nuevo iBombShell. Pronto tendremos más novedades e iremos mostrando algunas cosas. Este año es el año en el que iBombShell se reinventa y viene con la capacidad de dar el control al desarrollador. En el siguiente vídeo tienes una demostración completa de siete minutos de las principales funciones de iBombShell Revolution mezclada con Kali Linux y Metasploit. Sólo para pentesters.



El repositorio oficial de iBombShell en Github mantiene la versión ‘Legacy’ sobre la que no haremos cambios hasta que publiquemos la nueva versión. Y antes de acabar… Gracias Securiters por darnos la oportunidad de presentar nuestro trabajo en vuestro track.

Happy Hacking with iBombShell!

Autores: Pablo González Pérez escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González
Contactar con Pablo González

viernes, febrero 11, 2022

Pentesting con PowerShell Silver Edition. Nuevo libro de @0xWord

Uno de los libros que más se han vendido en 0xWord, de los más demandados, es Pentesting con Powershell de Pablo González, y ya ha alcanzado la Silver Edition, algo que celebramos con alegría. La nueva versión, revisada y ampliada, ya está disponible a la venta en la tienda online de 0xWord, donde tenéis el resto de los libros.
El texto del libro de "Pentesting con PowerShell Silver Edition" se centra en cómo realizar todas y cada una de las fases de un pentesting, utilizando las herramientas que ofrece Powershell, además de usando un montón de herramientas y utilidades que todo buen pentester tiene que tener en su mochila. Aquí lo puedes comprar.
Para que puedas ver los contenidos de este texto, que está lleno de ejemplos, y demostraciones prácticas para aprender haciendo, os he subido el índice detallado de todos los capítulos de este libro, que cuenta con 250 páginas, de demostraciones sobre pentesting.

Figura 3: Índice del libro de "Pentesting con Powershell Silver Edition"

Cada vez que uno de nuestros libros alcanza un hito como este, es un motivo de mucha alegría, ya que cada vez cuesta mucho más mantener una editorial tan especializada, con costes muy controlados y con textos de calidad en el área del hacking y la seguridad informática, así que muchas gracias a todos los que compráis los libros de 0xWord y ayudáis a que siga viva. Y, además, este libro lleva también asociado Tempos de MyPublicInbox, por si luego quieres usarlos para escribir a Pablo González con alguna duda. 

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


jueves, febrero 03, 2022

Pentesting con PowerShell: Automatización de búsqueda de debilidades para escalada de privilegios #Pentest

La fase de post-explotación de un Ethical Hacking es una de las fases más completas y a la par más complejas, ya que podemos hacer muchas cosas, pero debemos disponer de una gran lista de comprobación de cosas por hacer. Por eso, el artículo de hoy pretende mostrar el potencial de Powershell y de los diferentes repositorios y herramientas que permiten la automatización de la búsqueda de debilidades, malas configuraciones, leaks o vulnerabilidades que permitan la escalada de privilegio en un sistema Windows dentro del ámbito de un pentest.

Figura 1: Pentesting con PowerShell: Automatización de búsqueda
de debilidades para escalada de privilegios #Pentest 

Antes de nada, me gustaría retomar tras unos meses la escritura de artículos técnicos y es que se echaba de menos el blog. Vuelvo con fuerza. El próximo día 4 de febrero (viernes) estaré junto a mi compañero Luis Eduardo Álvarez dando un taller sobre on-the-fly, la herramienta que IdeasLocas presentó en BlackHat Europe 2021 y en el evento de H-c0n.

Figura 2: Libro de Ethical Hacking 2ª Edición
de Pablo González en 0xWord

Además, este año tengo la suerte de volver a RootedCON, los días 8 y 9 de marzo con dos talleres. El primero está dedicado a la parte ofensiva de la ciberseguridad y al pentesting con Powershell. En este taller se entregará el libro de 0xword sobre "Pentesting con Powershell: 2ª Edcición". El segundo taller es de Practical Pentesting, una forma diferente de aprender pentesting a través del uso de escenarios y entornos virtualizados donde cualquier concepto será practicado.


Powershell está muy presente en muchos de los trabajos que hacemos o que revisamos, por lo que vamos a jugar con ello en este artículo y vamos a ver algunas herramientas de interés para la búsqueda de escalada de privilegios. No es la primera vez que hablaremos de escalada de privilegios o de hacernos una ‘checklist’ sobre ello, pero buscaremos comentar algunas de las herramientas y su potencial.

Figura 4: Pentesting con Powershell 2ª Edición
de Pablo González en 0xWord

Antes de empezar, vamos a recordar un par de artículos donde se hablan de diferentes técnicas que revisar en una post-explotación para poder lograr una escalada de privilegio en Windows. No solo se vive de vulnerabilidades, por lo que es importante el poder encontrar los fallos de configuración, esas debilidades que se han introducido al instalar un servicio, una aplicación con demasiado privilegio, un error en la configuración de permisos de una carpeta, una DLL que no se encuentra, un leak en una estructura del sistema, etcétera:

- PrivEsc: Técnicas para elevar privilegios en Windows en un test de intrusión (1 de 2)
- PrivEsc: Técnicas para elevar privilegios en Windows en un test de intrusión (2 de 2)

A continuación, vamos a ver un listado de herramientas que están escritas en Powershell o pueden ser ejecutadas desde PowerShell:
WinPEAS

WinPEAS es una de las mejores herramientas automáticas. No está escrita en Powershell, pero puede ejecutarse a través de un BAT o de un EXE. Sin duda es una herramienta a tener muy en cuenta en un proceso de post-explotación cuando se busca encontrar un camino para la escalada de privilegios. Algunas de las cosas que la herramienta recopila e informa son:
  • Información sobre el sistema buscando falta de KBs.
  • Buscar vulnerabilidades en el kernel.
  • Leaks en el historial de Powershell.
  • Información jugosa en variables de entorno.
  • Utilizar searchsploit para buscar exploits para potenciales vulnerabilidades en el kernel.
  • Realiza enumeración de recursos y chequea: LAPS, WDigest, Credentials Guard, Cached Credentiales, UAC, etcétera.
  • Chequea los privilegios actuales del proceso dónde se ejecuta.
  • Información y chequeos “típicos” sobre servicios (rutas sin comillas, permisos débiles en las carpetas de los binarios, etc).
  • DLL Hijacking.
  • Intento de recuperación de credenciales de Windows de diferentes entornos (RDCM, DPAPI, Windows Vault, almacenamiento de credenciales WiFi, etcétera).
  • Y podemos decir: etcétera.
Figura 5: WinPEAS

Ejecutando con el parámetro “log” se vuelca la salida completa a un fichero y poder analizar todo lo que se ha podido encontrar. Es una de las herramientas más completas.

Sherlock

Este herramienta escrita en Powershell permite encontrar de manera rápida la falta de ciertos parches en el sistema. Es una herramienta orientada a la falta de actualizaciones en el sistema. Se puede ver la carga de las funciones en remoto y como la función ‘Find-AllVulns’ permitiría ejecutar todas los chequeos para verificar la ausencia de algunos de esos parches, lo cual podría provocar una escalada de privilegios. 

Figura 6: Sherlock

Este tipo de herramienta, en un entorno como un Windows 10, no debería sacar nada, pero siempre hay que tenerla a mano, ya que lo podemos tomar como un chequeo más.

Watson

Esta herramienta permite enumerar los KBs que no se encuentren instalados en el sistema y, posteriormente, sugerir exploits para la escalada de privilegios. La herramienta es más actual que los chequeos de Sherlock, por lo que puede ser de más utilidad en estos sistemas.

Figura 7: Watson

De nuevo, esta herramienta busca la falta de actualizaciones para encontrar un camino, pero es importante entender que lo normal es que la escalada de privilegios venga por fallos de configuración o debilidades en el sistema. También hemos hablado de herramientas como Windows Exploit Suggester en otras ocasiones.

PowerUp

PowerUp es un repositorio con una serie de funciones enfocadas a recopilar y chequear diferentes pruebas. Similar a la herramienta WinPEAS. Es cierto que PowerUp es más antigua, pero en este caso todavía válida, ya que la verificación de debilidades no cambia en exceso de un sistema a otro.

Figura 8: PowerUP

Como se puede ver en la imagen, tras los diferentes chequeos (se puede ver la palabra “check” indicando que es lo que ha saltado y hay que revisar) se puede obtener indicios sobre el camino que se puede seguir en la escalada de privilegios.

Sin duda, la escalada de privilegios es un proceso vital en la fase de post-explotación y una parte importante y que en algunos casos puede ser bastante costosa de lograr, todo depende del sistema al que el pentester se enfrente. Herramientas útiles para tener en la mochila del pentester, siempre dentro del test de intrusión profesional.

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares