The Dog Whisperer’s Handbook: una guía para BloodHound

La semana pasada, en la Cumbre de seguridad de Active Directory de ERNW Insight que tuvo lugar en Heidelberg (Alemania), Enno Rey (@Enno_Insinuator) y Walter Legowski (@SadProcessor) impartieron un taller de BloodHound. La mayoría de los mortales no tuvimos suerte de poder asistir al mismo, pero durante el mismo se comprometieron con los alumnos a escribir una Guía de capacitación que luego compartirían con la Comunidad... Y aquí está, recién sacada del horno y disponible para descargar: 

The Dog Whisperer’s Handbook – A Hacker’s Guide to the BloodHound Galaxy.
Este PDF es una colección de fragmentos y piezas que se dispersaron por la web y que recogieron en los últimos dos años mientras escribían el módulo CypherDog.

En el encontraremos una buena cantidad de información sobre cómo comenzar con BloodHound y Cypher y un montón de enlaces a recursos para llevar nuestro conocimiento aún más lejos.

El resumen del contenido de esta guía es el siguiente:

A - Concepto de BloodHound y evolución de la herramienta
B - Instalación de BloodHound e interfaz de usuario
C - Recopilación de datos e ingesta
D - Cypher básico y consultas comunes
E - Cypher avanzado y manipulación de DB
F - API REST y otras cosas interesan

Además, para aquellos que quieran jugar con BloodHound pero que no tienen un AD a mano para recopilar datos, también crearon algunos Datos de AD de ejemplo para alimentar a BloodHound.

Ahora ya no tienes excusas para sacar a pasear al perro ...

Sliver: un framework para implants muy interesante

Sliver es un sistema de Comando y Control (C2) creado para pentesters, redteamers y APTs avanzadas. Genera implants o implantes (slivers) que pueden ejecutarse en prácticamente todas las arquitecturas, y administrar estas conexiones de forma segura a través de un servidor central.

Sliver admite varios protocolos de callback, incluidos DNS, TCP y HTTP(S), para simplificar la conexión callback, incluso cuando esos molestos equipos azules bloquean dominios. También es posible tener múltiples operadores (jugadores) al mismo tiempo al mando de tu ejército de slivers.



¿Por qué Sliver y no Cobalt Strike, Metasploit u otros sistemas C2?

Sliver tiene muchas características que otras herramientas C2 no tienen, como:

- Generación de código dinámico con ofuscación por binario (en tiempo de compilación).
- Inyección de procesos local o remota.
- Asegura las conexiones cifradas del implante al servidor C2 (mTLS, HTTP(S) y DNS) y anti-anti-anti-forensics.
- Migración de procesos de Windows y manipulación de tokens de usuario.
- Soporta múltiples operadores controlando simultáneamente sus implantes.
- Autocompletado. Registro de auditoría completo en el lado del servidor.
- Múltiples y extensibles protocolos egress.
- Integración con Let's Encrypt.
- Ejecución en memoria .NET assembly.
- DNS Canary Blue Team Detection
- Es completamente de código abierto (licencia GPLv3).

Instalación del servidor

El servidor es compatible con Linux, Windows y MacOS. Sin embargo, se recomienda ejecutar el servidor en un host Linux porque algunas funciones pueden ser más difíciles de ejecutar en un servidor Windows o MacOS, aunque todas las funciones básicas integradas deberían funcionar bien.

Hay dos opciones, descargar la última versión para nuestra plataforma y simplemente ejecutar el binario o compilarlo nosotros mismos desde la fuente:

1. https://github.com/BishopFox/sliver/releases   
2. https://github.com/BishopFox/sliver/wiki/Compile-From-Source

La primera vez que ejecutemos el servidor tendrá que desempaquetar algunos activos, lo que puede demorar un minuto o dos, los inicios posteriores deben ser más rápidos.

"Hackeando" los avisadores de restaurantes con HackRF

Este video muestra cómo usar HackRF, ya sabéis nuestro sistema SDR de facto, para activar los típicos avisadores de restaurantes, esos que pitan para avisarnos que nuestro pedido está listo. También conocidos en inglés como 'restaurant pagers', los que se muestran en este video son fabricados por Long Range Systems y su frecuencia de operación es de 467.750 Mhz. Eso sí, tened en cuenta que este video no muestra ningún fallo de seguridad, HackRF simplemente genera el mismo paquete de datos que la estación base para activar los avisadores.


Referencias:

Nueva vulnerabilidad en "Vim" y "Neovim" permite la ejecución de comandos

No hace mucho el investigador Armin Razmjou descubrió un fallo que hace vulnerable a cualquier Linux que cuente con el famoso y querido editor de texto "Vim" y su Fork "Neovim", vulnerabilidad registrada como CVE-2019-12735.

(Si no eres de este mundo) Pero ... ¿Qué es Vim?

Vim, por sus siglas en Ingles "Vi improved" es una versión mejorada del editor de texto vi, presente en todos los sistemas UNIX. Su autor, Bram Moolenaar, presentó la primera versión en 1991, fecha desde la que ha experimentado muchas mejoras.

Vulnerabilidad

Este fallo es debido a una característica llamada "modelines", que básicamente le permite al editor de texto (incluyendo Neovim) cargar desde cualquier fichero una configuración personalizada.

Esta característica viene habilitada por defecto en estos editores que, si el usuario lo desea, la puede desactivar. El problema yace es que la mayoría de usuarios no lo hacen, ocasionando un posible control total a un atacante.

Como apoda el título de este artículo con un simple archivo de texto con un modeline específico y simple es posible conseguir ejecutar código directamente en la memoria del sistema. Aunque Vim y Neovim pueden ejecutar los comandos peligrosos dentro de un sandbox, al utilizar "source" en la línea del código se consigue salir de este aislamiento.

Winp: Una botnet desde tu casa

No hace mucho hice un pequeño aporte a la comunidad enseñando mi mini-proyecto para la creación de una botnet: "https://underc0de.org/foro/hacking/winp-una-botnet-desde-tu-casa!/", pocos usuarios pero con palabras que debo escuchar, requerían de documentación o algún tutorial acerca de esto, así que les traigo "Tutorial de Winp".

Antes de seguir debemos saber ... ¿Que es una botnet?

Una pequeña definición según wikipedia:

"Botnet es un término que hace referencia a un conjunto o red de robots informáticos o bots, que se ejecutan de manera autónoma y automática.​ El artífice de la botnet puede controlar todos los ordenadores/servidores infectados de forma remota."

¿Que es Winp?

Winp, es un proyecto de código abierto para la interacción múltiple de varias terminales remotas o... básicamente un script para la creación de una botnet.

Características

* - Cifrado híbrido (AES256 y RSA)
* - Múltiples conexiones
* - Uso de un proxy o Tor en el cliente
* - Auto-completado semi-inteligente
* - Uso sencillo y de forma simplificada
* - Rápido
* - Probado en Android (Userland), Linux y Windows (Por lo tanto esta disponible para dos plataformas muy usadas)

Instalación
Windows:

pip install win-inet-pton
pip install pyreadline
PyCrypto en windows se tiene que instalar "manualmente". Puedes descargarlo desde http://www.voidspace.org.uk/python/modules.shtml#pycrypto

Linux:

pip install readline
pip install pycrypto

Los dos:

pip install PySocks
pip install rsa
pip install terminaltables
git clone https://github.com/DtxdF/Winp 

Ofuscar código python con Intensio-Obfuscator

Intensio-Obfuscator es una herramienta, todavía en beta, para ofuscar código fuente en python. Reemplaza el nombre de las variables, clases y funciones por caracteres aleatorios de longitud definida, elimina comentarios, saltos de línea y agrega a cada línea un script aleatorio con valores siempre diferentes. Requiere Python >= 3.5 pero puede ofuscar python 2.x y 3.x.

Instalación

git clone https://github.com/Hnfull/Intensio-Obfuscator.git
cd Intensio-Obfuscator/intensio/

Caraterísticas

Param. Descripción
Replace Cambia todos los nombres de las variables, clases y funciones definidas y elimina los saltos de línea.
Padding Añade scripts aleatorios después de cada línea y elimina todos los saltos de línea.
Remove Borra todos los comentarios y los saltos de línea.
Secret Sólo para curiosos :)
Mixer lower
Genera palabras con 32 caracteres que reemplazan variables, clases y funciones definidas en el código fuente y en scripts aleatorios si se especifican las características 'replace' o 'padding'.
Mixer medium Genera palabras con 64 caracteres que reemplazan variables, clases y funciones definidas en el código fuente y en scripts aleatorios si se especifican las características 'replace' o 'padding'.
Mixer high Genera palabras con 128 caracteres que reemplazan variables, clases y funciones definidas en el código fuente y en scripts aleatorios si se especifican las características 'replace' o 'padding'.

Uso

-h, --help              -> show this help message and exit.
-f, --onefile           -> if only one file.
-d, --multiplefiles     -> if multiple files (project).
-i, --input             -> source file or directory - if multiple files indicate a directory that contain all your files.
-c, --code              -> language used in input file or directory. value: [python]
-o, --output            -> output file or directory that will be obfuscated - if multiple file indicate a empty directory that will contain all your files.
-m, --mixer             -> length level of variables mix output. values: [lower,medium,high]
-r, --replace           -> activate the 'replace' obfuscation feature.
-p, --padding           -> activate the 'padding' obfuscation feature.
-rm, --remove           -> activate the 'remove' obfuscation feature.
-s, --secret            -> activate the 'secret' bullshit feature.

Se pueden excluir variables, clases o funciones para que no sean tratadas por 'replace' editando intensio/exclude_python_words.txt.
Si por el contrario quieres incluir variables, clases o funciones que no están incluidos en la función 'replace', edita intensio/include_python_words.txt.

Es importante no poner los mismos nombres de variables locales, clases o funciones que los de keywords y/o librerías importadas de python.

Ejemplos
  • Múltiples archivos básico: python3.x intensio_obfuscator.py -d -i test/python/multiplefiles/basic/input/basicRAT -c python -o test/python/multiplefiles/basic/output/basicRAT -m lower -r -rm
  • Múltiples archivos avanzado: python3.x intensio_obfuscator.py -d -i test/python/multiplefiles/advanced/input/basicRAT -c python -o test/python/multiplefiles/advanced/output/basicRAT -m high -r -p -rm
  • Si solo se trabaja con un archivo el comando es el mismo que para varios, simplemente no hay que apuntar a un directorio sino a un archivo de Python directamente con los parámetros -i y -o, luego cambiar el parámetro -d por el parámetro -f.
Posibles fallos
  • Si una variable, clase o función tiene un nombre idéntico a una palabra entre '' o "" en una función print(), el texto tendrá el mismo valor que las variables, clases o funciones mezcladas.
  • Si una variable, clase o función tiene un nombre idéntico con una palabra después de # (comentario), el texto tendrá el mismo valor que las variables, clases o funciones mezcladas, pero si está entre """ or ''' sin una variable antes no se realiza ninguna sustitución.
  • Si se nombró una variable, clase o función de la misma manera que alguna palabra clave de python o nombre de función/clase de librerías de python importadas, puede aparecer un error. Hay que editar intensio/excluded_python_words.txt para agregar las variables para no ofuscar o cambiar los nombres.
Proyecto: https://github.com/Hnfull/Intensio-Obfuscator