Lo más visto del 2019 en Hackplayers

En esta época de arraigada tradición no quería dejar escapar las últimas horas de este año 2019 sin publicar el top 50 de entradas más vistas en el blog, excusa como siempre para hacer un brevísimo balance y desearos a todos un feliz y próspero 2020.

Creo que este año ha sido un buen año para la Comunidad, empezando por el reconocimiento en MundoHacker como impulsores de talento, el vuestro, el de todos los que estáis leyendo y que de alguna manera habéis participado contribuyendo y debatiendo todo lo relacionado con la temática que nos apasiona: el hacking y la in-seguridad informática. A todos vosotros un guiño de complicidad y muchas gracias por estar siempre ahí.

Pero no puedo despedirme de este año sin hacer también mención especial como siempre a la familia (a mis niñas) y a los que habéis estado más cerca, a los compis del curro con los que he trabajado codo con codo y viajado a otras conferencias y jugado en algún CTF que otro. También a los de los grupos de Telegram, sobretodo a los de mi equipo de gigantes de L1k0rd3b3ll0t4 y a los organizadores y resto de staff de h-c0n que en esta nueva edición la estamos preparando buena... Así que a los que estéis el 31 de enero y 1 de febrero en Madrid espero veros allí y, a los que no podáis, pues seguir escribiéndonos y viéndonos virtual o físicamente, compartiendo experiencias, anécdotas y más de una cerveza, que es de lo que se trata... ;)

¡Gracias y a por el 2020!

1 El abc para desproteger un Excel con contraseña
2 Listado de códigos secretos de Android
3 Grupos de Telegram sobre hacking y seguridad informática en español
4 8 servicios proxy gratuitos para evitar restricciones y mantener el anonimato y la privacidad : hackplayers
5 Ya llega BlueKeep... aka ejecución remota de código en RDP
6 Taller para escalar privilegios en Windows/Linux
7 hackplayers: Blogroll en español
8 iDict, una herramienta de fuerza bruta para obtener contraseñas de usuarios de iCloud
9 100 grupos de hackers famosos
10 Cómo clonar la tarjeta SD de la Raspberry Pi

Aprovechando el Directorio Activo como C2 (Command & Control)

En un directorio activo, por defecto, todos los usuarios autenticados tienen acceso de escritura a algunos de sus propios atributos y acceso de lectura a los atributos de otros usuarios. Por increíble que parezca, se puede abusar de los atributos de usuario con acceso de lectura/escritura para almacenar payloads y convertir así al directorio activo en un auténtico C2.

La idea no es nueva, de hecho ya la expuso harmj0y en su blog en 2016, que además creó un script en powershell para usar la propiedad 'msmqsigncertificates' para escribir el payload en el atributo del usuario. La ventaja de usar 'msmqsigncertificates' es que tiene un tamaño máximo de 1 MB y también tiene el PAS (Partial Attribute Set), es decir, los payloads almacenados en 'msmqsigncertificates' se propagarán a todas las copias del catálogo global en el bosque.

Entonces básicamente el procedimiento será el siguiente: un usuario cambia su propiedad mientras que otro usuario consulta continuamente la información que se puede leer por todos y luego informa los resultados a sus propios "certificados de msmqsignce". Es decir, tenemos un canal de datos bidireccional de 1 MB.


En el escenario propuesto por akijos, Aki (el atacante) creará un payload utilizando el cmdlet 'New-ADPayload'. El payload se comprimirá utilizando la compresión .NET [IO.Compression.DeflateStream] y luego los datos en Base64 se almacenarán en el atributo 'msmqsigncertificates'. Esto también creará como resultado un script en Powershell que debe ejecutarse en la máquina Victim (Tom Hanks).

Writeup CTF clasificatorio HTB x UNI

El pasado 20 de noviembre tuvo lugar el HTB x UNI CTF, el primer CTF de HackTheBox orientado exclusivamente a equipos de distintas universidades de todo el mundo. En este caso, el CTF era una competición clasificatoria de la cual saldrían clasificados para la final los 15 equipos universitarios con mejor puntuación. El CTF tenía una duración de 24 horas y constaba de 18 retos de categorías como reversing, exploiting, hacking web, blockchain, criptografía, hardware, forense y miscelanea.

Personalmente, tuve el placer de participar junto a algunos compañeros de mi universidad y lograr clasificar para la final del HTB x UNI CTF con un cuarto puesto.


Uno de los requisitos para poder clasificarse a la final, en el caso de encontrarse entre los 15 mejores equipos, era elaborar un write-up (solucionario) de los retos realizados por el equipo. Tras la publicación de los equipos ganadores y el visto bueno por parte de la organización de publicar las soluciones de los retos, aquí dejo las soluciones de los retos del CTF realizados por mi equipo "RWX", junto a las explicaciones y el proceso que hemos llevado a cabo para solventarlos.

¡Feliz navidad!

Reto 31: hc0n Christmas CTF

Llega la Navidad y con ella César Calderón aka @_Stuxnet y Ayushman Dubey aka
@D4mianWayne nos traen un reto para entretenernos. Se trata de un CTF 'boot2root': una máquina que tendréis que pwnear para obtener acceso primero como usuario local "normalucho" y luego como root escalando privilegios.

Esta vez la máquina estará disponible online en la plataforma TryHackMe, una nueva plataforma para enseñar y aprender hacking que permite crear 'salas virtuales' y otras opciones que la hacen muy interesante.

Para ingresar en la habitación o sala de la máquina de este reto concreto, debéis primero estar registrados en el sitio y haber descargado el archivo vpn correspondiente que se encuentra la parte de "access".

Después, en el menú tendréis la opción de "My Rooms", y cuando entréis en la parte inferior veréis un textbox donde podréis ingresar un código para poder entrar en una habitación, en este caso para nuestro CTF es 'hc0nchristmasctf'.


Una vez dentro de la sala tendréis que pulsar el botón "deploy" y tendréis la máquina levantada durante una hora. Pasado ese tiempo podréis levantar la máquina otra vez, sólo cambia la IP.

Los tres primeros en conseguir rootear la máquina e introducir las flags correspondientes en la room de la máquina conseguirán entrar en nuestro eterno hall de la fama y además obtendrán un ticket para nuestro congreso h-c0n que tendrá lugar los próximos 31 de enero y 1 de febrero en Madrid y una taza de obsequio siempre que puedan recogerla presencialmente durante el evento.

pd. veréis que está KaoRz arriba en el scoreboard, pero su posición no cuenta ya que se encargó de probar la máquina previamente y no pudo resistir el "ansia viva" de meter las flags.. xD

Así que suerte y... ¡a empezar la navidad jugando (y quién sabe, ganando)!

Detectando técnicas y tácticas ATT&CK en Linux

El australiano Krishna aka Kirtar22 ha creado un interesante proyecto en Github para asentar una buena base de conocimiento que ayude a crear/mejorar las capacidades de detección de amenazas en Linux. Los vectores de ataque están alineados con el framework ATT&CK de MITRE.
 

Lo que hizo fue usar la mayoría de los casos de prueba de ataque de Atomic Red Team y luego analizó cómo detectarlos y qué fuentes de logs serían necesarias para capturar estos ataques. Aunque es un proyecto que no ha recibido actualizaciones desde hace meses si que tiene una buena cantidad de casos de uso que todo threat hunter debe tener en cuenta ;):

defense evasion

MalwinX: un framework para aprender Malware y funciones de win32

Cuando se realiza ingeniería inversa del malware en Windows, normalmente y sobretodo al principio, se suele realizar una búsqueda individual explícita de cada función y su uso. MalwinX de Mohit Dabas es una pequeña utilidad en forma de aplicación web en Flask que nos permitirá comprender mejor el api de win32. Simplemente subiremos el binario correspondiente y podremos consultar rápidamente fragmentos de código y referencias de cada librería que carga.

Pre-requisitos

pip install flask
pip install pefile
pip install requests

Uso

$ git clone https://github.com/MohitDabas/malwinx.git
$ cd malwinx
$ python flaskapp.py

http://localhost/


Demo


Repo

https://github.com/MohitDabas/malwinx

Lista de payloads para inyecciones XXE (XML External Entity)

A estas alturas ya todos sabéis que XML external entity injection (también conocido como XXE) es una vulnerabilidad web que permite que un atacante interfiera en el procesamiento de datos XML de una aplicación. Puede permitir ver archivos del sistema o del servidor de aplicaciones e interactuar con cualquier sistema externo al que pueda acceder la propia aplicación. En algunas situaciones, podemos usar un ataque XXE para comprometer el servidor subyacente u otra infraestructura de back-end, al aprovecharlo para realizar ataques SSRF (server-side request forgery).

Hay varios tipos de ataques XXE:
  • Explotar XXE para recuperar archivos: Cuando se define una entidad externa que contiene el contenido de un archivo y se devuelve en la respuesta de la aplicación.
  • Explotar XXE para realizar ataques SSRF: donde se define una entidad externa basada en una URL o un sistema de backend.
  • Explotar Blind XXE para exfiltrar datos Out-of-Band: Cuando datos sensibles se transmiten desde el servidor de aplicaciones a un sistema que controla el atacante.
  • Explotación de XXE ciego para recuperar datos mediante mensajes de error: donde el atacante puede usar un mensaje de error para obtener datos confidenciales.
Payloads:

XXE: Ejemplo básico XML
<!--?xml version="1.0" ?-->
<userInfo>
 <firstName>John</firstName>
 <lastName>Doe</lastName>
</userInfo>

Syndicate Project: ¿Me compartes tu Botnet? - Parte #1

Fuente: onodo.org/visualizations/98748/
Syndicate es un Framework totalmente escrito en Python (3) para crear Botnets, y no es sólo para crear una botnet es para crear cientos o miles...

Plataformas:
  • De momento sólo se ha probado en Kali linux, pero se puede experimentar en otras plataformas.
  • Se recomienda si se va a probar Syndicate en Windows, usar Cygwin o WSL, aunque nos garantiza nada.
  • En Android técnicamente debería funcionar con Userland, aunque Tmux no es mala elección.
Instalación:

Primero clonamos el repositorio:
git clone https://github.com/DtxdF/Syndicate
cd Syndicate

Y luego instalamos los requisitos:

Se puede optar por una instalación fácil con PIP, pero hay algunos inconvenientes que dependen de uno mismo.

En primer lugar, lo que si es necesario ejecutar es requirements/requirements.txt:
python3 -m pip install -r requirements/requirements.txt

En el archivo podemos encontrar:
PySocks==1.7.1
pycryptodome==3.9.4
PyYAML==5.1.2
pager==3.3
requests==2.22.0
urllib3==1.25.7
certifi==2019.9.11
chardet==3.0.4
idna==2.8
pyperclip==1.7.0

Estos son los requisitos para que funcione lo principal de Syndicate, mientras que para los complementos se tendrían que seguir los siguientes pasos, no obstante no es necesario instalar para las funcionalidades anteriormente mencionadas, esto sirve para aumentar las funcionalidades...
python3 -m pip install -r requirements/requirements.complements.txt