RSPET, una shell inversa que te ayudará en la post-explotación

RSPET (Reverse Shell and Post Exploitation Tool) es una shell inversa basada en Python y equipada con funcionalidades que ayudan en un escenario de post-explotación. Actualmente la incluyen las distros BlackArch Linux (desde 2016.04.28) y ArchStrike. Sus características actuales son:

- Ejecución remota de comandos
- Cifrado TLS de la comunicación cliente-servidor
- Transferencia de archivos/binarios (en ambos sentidos) sobre el tráfico cifrado enmascarado
- Herramienta de flooding UDP
- Herramienta de spooofing UDP: usa RAW_SOCKETS por lo que para utilizarla el cliente debe ejecutarse en un sistema operativo que los admita (la mayoría basados en Unix) y con privilegios de root. También hay que tener en cuenta que la mayoría de los ISP tienen implementaciones que eliminarán o reestructurarán los paquetes falsificados
- Administración de hosts; transferencias y flooding UDP desde varios o todos los hosts conectados
- Diseño de código modular para permitir una fácil personalización
- El script de cliente ha sido probado y es compatible con PyInstaller (se puede convertir en .exe)
- Soporte completo del plugins del lado del servidor (ver documentación online)
- Administración de plugins, incluida la capacidad de instalar (descargar) y cargar dinámicamente plugins.
- RESTful API para el módulo de servidor

Despliegue:

rspet_server.py se encuentra en la máquina del atacante y se ejecuta para aceptar conexiones
rspet_client.py se encuentra en la(s) máquina(s) infectada(s) e iniciará la conexión y esperará el input.

Buscando "Shadows Admins" en el DA con ACLight

ACLight de Asaf Hecht (@Hechtov) de CyberArk Labs es un script para la búsqueda avanzada de cuentas privilegiadas incluidos los llamados "Shadows Admins" o "Administradores en la Sombra", cuentas ocultas y privilegiadas que ignoran las organizaciones y que suponen un riesgo para toda la red. Se dice que estas cuentas están "ocultas" porque no son miembros de grupos privilegiados del DA, si no que han ganado sus privilegios a través de la asignación directa de permisos (usando ACLs sobre los objetos del DA).


Desde el punto de vista del atacante estas cuentas son muy "golosas" porque facilitan privilegios administrativos de manera casi desapercibida. Es decir, en vez de crear una nueva cuenta en el grupo "Domain Admins", es mucho más discreto usar un usuario existente y asignarle permisos directamente sin añadirle a ningún grupo.

ACLight ayuda a encontrar estos "Shadows Admins" consultando al Active Directory (AD) por las ACL de sus objetos y luego filtrando y analizando los permisos sensibles de cada uno. El resultado es una lista de cuentas privilegiadas de dominio en la red (desde la perspectiva avanzada de ACL del AD).

Además se puede ejecutar el escaneo con cualquier usuario normal (podría ser un usuario no privilegiado) y escanear automáticamente todos los dominios del bosque de la red auditada.

Su uso es muy sencillo:

Opción 1:
- doble clic en "Execute-ACLight.bat".

Opción 2:
- Abrir PowerShell (con el parámetro -ExecutionPolicy Bypass)
- Ir a la carpeta de "ACLight"
- “Import-Module '.\ACLight.psm1'”
- “Start-ACLsAnalysis”

Una vez ejecutado, encontraremos los siguientes archivos de resultados:

"Accounts with extra permissions.txt": es una lista directa e importante de las cuentas privilegiadas que se descubrieron en la red escaneada.
- "All entities with extra permissions.txt": el archivo enumera todas las entidades privilegiadas que se descubrieron, incluyendo no solo las cuentas de usuario sino también otras entidades "vacías" como grupos vacíos o cuentas antiguas.
- "Privileged Accounts Permissions - Final Report.csv": ieste es el informe de resumen final: en este archivo, encontraremos cuáles son los permisos sensibles exactos que tiene cada cuenta.
- "Privileged Accounts Permissions - Irregular Accounts.csv" : Similar al informe final pero solo las cuentas privilegiadas que tienen asignaciones directas de permisos de ACL (no a través de su membresía grupal).
- "[Domain name] - Full Output.csv" - ACLs en raw para cada dominio explorado.

Fuentes:
- Shadow Admins – The Stealthy Accounts That You Should Fear The Most
- Presentación en la conferencia InfoSecurity
- Repositorio Github: https://github.com/cyberark/ACLight

La lista de comprobaciones básica para programar de forma segura y evitar la mayoría de vulnerabilidades del TOP10 de OWASP

Recientemente veíamos una entrada en Digital Munition en el que se muestran diferentes malas prácticas en programación vistas en aplicaciones Java EE. Estas malas prácticas se derivan en vulnerabilidades comunes, muchas de ellas en el top 10 de OWASP. La siguiente tabla sintetiza las causas principales de estas vulnerabilidades con las técnicas de mitigación correspondientes, un imprescindible para el desarrollo seguro:

1. Autenticación

Prácticas inseguras Prácticas seguras
Concatenación de peticiones SQL para validación de login.

La concatenación de cadenas con los datos proporcionados por el usuario es siempre propensa a permitir ataques de inyección de SQL.


String username=request.getParameter(“username”);
String password=request.getParameter(“password”);
String query = “SELECT * FROM users WHERE username = “+username+” AND password=”+password;
Statement st = con. createStatement();
Results res = st.executeQuery(query);
Uso de peticiones parametrizadas o precompiladas.

Para evitar inyecciones SQL se recomienda el uso de sentencias preparadas y consultas parametrizadas.


String username=request.getParameter(“username”);
String password=request.getParameter(“password”);
String query = “SELECT * FROM users WHERE username =? ANDpassword=?“;
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, username);
ps.setString(2, password);
Results res = ps.executeQuery();
Falta de autenticación en el acceso a páginas/acciones internas.

Muchas veces, las aplicaciones no implementan autenticación para las páginas/acciones internas, lo que da como resultado el acceso a páginas/acciones internas sin iniciar sesión/una sesión válida.
Implementar código de autenticación en todas las páginas internas haciendo uso de variables de sesión

// Después de iniciar sesión con éxito. Establecer la identidad del usuario en una variable de sesión.
session.setAttribute(“username”, username);
// En cada solicitud, verificar si la identidad del usuario está presente en la sesión.
String username = (String)session.getAttribute(“username”);
if(username == NULL)){
response.sendRedirect(“ErrorPage.java”);
return; }
No restricción de los intentos fallidos de inicio de sesión.


Si la aplicación no restringe los intentos de inicio de sesión inválidos, permitirá que el usuario pueda hacer un ataque de fuerza bruta y comprometa otras cuentas de usuario.
Realizar un seguimiento y restringir los intentos fallidos de inicio

Mantener una lista de intentos fallidos de inicio de sesión por parte de un usuario.

Establecer un límite de umbral de intentos no válidos como por ej. a 5.

Bloquear temporalmente al usuario al superar el límite de umbral.

El protocolo WPA2 de Redes Wifi ha sido hackeado: KRACK (Key Reinstallation Attack)

El investigador Mathy Vanhoef de la Universidad KU de Leuven ha descubierto una manera de vulnerar el protocolo WPA2 de la redes Wifi (IEEE 802.11i), el más extendido y seguro por defecto, que puede derivar en el descifrado, duplicación e inyección de paquetes, el secuestro de conexiones TCP y/o la inyección de contenido HTTP en la red wifi sin necesidad de conocer la contraseña de la misma.

Dicho fallo de seguridad ha sido bautizado como KRACK (Key Reinstallation Attack) por el tipo de ataques realizados contra las redes WPA2.

Las vulnerabilidades descubiertas se encuentran en la etapa del Handshake de la Wifi, cuyos objetivos son el descubrimiento de red, la autenticación mutua entre cliente y router o punto de acceso (AP) y la negociación de las keys de sesión, y la selección de la suite y el algoritmo de cifrado de los data frames. Durante este proceso de intercambio de claves es posible lograr que los clientes reinstalen una clave ya intercambiada, que debería ser de un solo uso, permitiendo así reiniciar los parámetros asociados a la conexión, y esto se consigue forzando el reenvío de ciertos paquetes del Handshake por parte del AP.  Los ataques se producen debido a la reutilización de la misma clave con valores "Nonce" utilizados previamente en las comunicaciones entre cliente y AP, y de esta forma mensajes con contenidos conocidos son reenviados y se podrían descifrar al utilizar la misma clave.

Todas las redes Wifi WPA2 utilizan estos handshake por lo que todas están afectadas.

En este enlace se encuentra la presentación del mismo autor en la pasada Asia CCS sobre vulnerabilidades en el 4-way Handshake en Wifi WPA2 descubiertas con anterioridad y que han acabado llevando a KRACK: http://papers.mathyvanhoef.com/asiaccs2017-slides.pdf

La investigación sobre KRACK será presentada oficialmente este otoño en las conferencias Computer and Communications Security (CCS) y Black Hat Europe, aunque todo su trabajo se encuentra explicado en la siguiente página web: 
 

Impacto

El siguiente gráfico sacado del White Paper oficial en el que se presenta la vulnerabilidad resume el impacto de los Key Reinstallation Attack para todos los crifrados WPA2 (WPA-TKIP, AES-CCMP, y GCMP) usados en los distintos tipos de Handshake disponibles: 
- 4-way Handshake
- Fast BSS Transition (FT) handshake
- Group Key Handshake.

Lo que faltaba a tu arsenal de DoS... ¡llegan las bombas git!

Kate Murphy ha publicado un interesante repositorio al que podríamos llamar "bomba git" el cual es imposible clonar porque el proceso del Git quedará colgado hasta cerrarse o, peor, porque nos quedaremos sin memoria hasta incluso tener que reiniciar...

$ git clone https://github.com/Katee/git-bomb.git

Si navegais por el repositorio, os dareis cuenta de que está formado por sólo 12 objetos. Entonces, ¿cómo un repositorio tan pequeño hace que git se quede sin memoria? El secreto es que git desduplica "blobs" (que se utilizan para almacenar archivos) para hacer los repositorios más pequeños y permite el uso del mismo blob cuando un archivo permanece sin cambios entre commits; y lo mismo con objetos "árbol" o tree (que definen la estructura de directorios en un repositorio).
'git-bomb' trata de hacer mil millones de archivos, sin embargo, sólo tiene 10 referencias a la blob de archivos y sólo tiene 10 objetos de árbol en total.
Es muy parecido al ataque de "mil millones de risas" también llamado "bomba XML", de ahí el nombre de "bomba git".

Estructura

En la parte inferior hay un archivo de blob que contiene "one laugh":
$ git show 5faa3895522087022ba6fc9e64b02653bd7c4283
one laugh

Luego hay un objeto de árbol que se refiere a este blob 10 veces:
$ git ls-tree 6961ae061a9b89b91162c00d55425b39a19c9f90
100644 blob 5faa3895522087022ba6fc9e64b02653bd7c4283    f0
100644 blob 5faa3895522087022ba6fc9e64b02653bd7c4283    f1
# … snipped
100644 blob 5faa3895522087022ba6fc9e64b02653bd7c4283    f9

En el medio tendremos 9 capas de objetos de árbol que se refieren al objeto de árbol debajo de ellos (aquí está el objeto del árbol superior):
$ git ls-tree 106d3b1c00034193bbe91194eb8a90fc45006377
040000 tree 8d106ebc17b2de80acefd454825d394b9bc47fe6    d0
040000 tree 8d106ebc17b2de80acefd454825d394b9bc47fe6    d1
# … snipped
040000 tree 8d106ebc17b2de80acefd454825d394b9bc47fe6    d9

Finalmente la referencia maestra sólo apunta al objeto de árbol de la parte superior:
$ git log --pretty=format:"%s | tree: %T"
Create a git bomb | tree: 106d3b1c00034193bbe91194eb8a90fc45006377

Ejecución de comandos en Ms Word sin macros (DDE)

Hace un par de días en un post de Sensepost hablaban de un sencillo método para ejecutar comandos en MsWord sin necesidad de usar macros ni ninguna vulnerabilidad de corrupción de memoria...¿magia? No, se trata de DDE...

    "Windows proporciona varios métodos para transferir datos entre aplicaciones. Un método consiste en utilizar el protocolo Dynamic Data Exchange (DDE). El protocolo DDE es un conjunto de mensajes y directrices. Envía mensajes entre aplicaciones que comparten datos y utiliza memoria compartida para intercambiar datos entre aplicaciones. Las aplicaciones pueden utilizar el protocolo DDE para transferencias de datos únicas y para intercambios continuos en los que las aplicaciones envían actualizaciones entre sí a medida que se disponen de nuevos datos".

Usar el contexto DDE en Excel o en Word con propósitos maliciosos puede ser bastante útil porque evita el filtrado de macros de los gateways de correo y las políticas corporativas de VBA. Además, la investigación de Sensepost arroja que usar DDE en MSWord es tan sencillo como agregar un campo y hacer lo siguiente:

- Vamos a "Insertar", "Elementos rápidos", "Campo":



- Elegimos "= (Formula)" y Ok:


** Cómo método alternativo simplemente podemos añadir un campo pulsando CTRL+F9

WINspect: un script en PowerShell para la auditoría de Windows

WINspect del francés Amine Mehdaoui aka A-mIn3 es un script en PowerShell v2.0 que, según reza en el README de su repositorio en Github, forma parte de un proyecto más grande para auditar diferentes áreas de entornos de Windows. Se centra en enumerar diferentes partes de una máquina Windows para identificar debilidades de seguridad y apunta a los componentes que necesitan una fortificación adicional.

Características

La versión actual de WINspect admite las siguientes características:

- Comprobación de los productos de seguridad instalados.
- Comprobación de la "secuestrabilidad" de las DLL (en el contexto de seguridad de los Usuarios autenticados).
- Comprobación de la configuración del Control de cuentas de usuario (UAC).
- Comprobación de restos de instalaciones desatendidas.
- Enumeración de partes del sistema local de archivos expuestos al mundo.
- Enumeración de usuarios y grupos de dominio con pertenencia a grupos locales.
- Enumeración de autorun de registro.
- Enumeración de servicios locales configurables por los miembros del grupo Usuarios autenticados.
- Enumeración de servicios locales para los cuales el binario correspondiente es escribible por los miembros del grupo Usuarios autenticados.
- Enumeración de  Windows Hosted Services no pertenecientes a system32 y sus DLL asociadas.
- Enumeración de servicios locales con rutas sin entrecomillar (path unquoted).
- Enumeración de tareas no programadas del sistema.

Lista TODO

- Controles de políticas de seguridad local.
- Config de parches administrativos.
- DLL cargadas.
- Conexiones establecidas/escuchando.
- Scripts de GPO expuestos.

Secuestrando una estación de radio FM con tan sólo una Raspberry Pi

Una de las bondades de las Raspberry Pi (en adelante RPi) es la capacidad de transmitir una señal de radio FM usando uno de los pines análogicos de la GPIO. Muchos hackers y fabricantes lo utilizan para la construcción de transmisores FM de corto alcance, e incluso se podría utilizar para televisión de barrido lento (Slow ScanTV, SSTV), un método de transmisión de imágenes utilizado principalmente por radioaficionados para transmitir y recibir imágenes estáticas, en blanco y negro o en color a través de la radio.

Todo lo que necesitamos es una RPi, un trozo de alambre para una antena y un poco de software.
Si bien esto se utiliza principalmente para proyectos digamos "honestos", también puede ser utilizado para fines más nefastos. WONDERHOWTO ilustra esto en un artículo bien detallado sobre cómo se puede utilizar las capacidades de transmisión FM de un RPi para secuestrar una estación de radio. Esto se conoce como "intrusión de señal de difusión", y funciona básicamente sobrepoderando la señal de una estación existente. La infame transmisión de Max Headroom que ocurrió en Chicago, Illinois en 1987 es probablemente el ejemplo más conocido de la intrusión de señales de transmisión.

Para lograr esto con una RPi, realmente sólo necesitamos un trozo de cable de unos pocos metros de largo para actuar como antena, algo de software y, opcionalmente, un dongle RTL-SDR. Todo lo que tenemos que hacer es crear un archivo de audio WAV y transmitirlo. Si la antena es lo suficientemente buena y el objetivo está lo suficientemente cerca, superará la señal de la frecuencia que está transmitiendo. Esta técnica se puede utilizar para denegar al objetivo la información que se está transmitiendo en esa frecuencia, o incluso a inyectar sin problemas información propia para engañar a los mismos. Por supuesto, esto es ilegal... ;)

Fuente: https://blog.hackster.io/hijack-fm-radio-with-a-raspberry-pi-f31f41a205f2

Las resacas de Navaja Negra #nn7ed

Llámalo condescendencia o milagro, o quizás se han alineado los astros, pero este año (y por fín) como hidalgo que cabalga a La Mancha he podido escaparme a la séptima conferencia de Navaja Negra, 5 y 7 de octubre de 2017, ¡volví a Al3acete!

Edificio José Prat, paraninfo de la UCLM de Albacete, con capacidad para 720 pax.
Para ésta mi pequeña crónica, no voy a hacer una caracterización de cada una de las charlas y talleres puesto que el formato de la conferencia y la carencia del don de la bilocación no lo permiten. Es decir, no pudimos disfrutar de todo porque se trataba de tracks muchos simultáneos repartidos entre las charlas del paraninfo y talleres en algunas de las aulas de la UCLM de Albacete. De esta manera digamos que cada uno ha de ir balontado y escribiendo su propia "aventura" de Navaja Negra. Si además añadimos el CTF tipo Jeopardy de Ka0labs nos adentramos en una auténtica encrucijada de difíciles elecciones casi cada hora. ¿Charla, taller o CTF?

En el CTF se podía participar en remoto o presencialmente pero sólo los que lo hacían de esta última forma podían optar a los premios. En mi opinión hubiese estado mejor hacerlo una semana antes, en formato abierto online y que los que optaran a los premios lo hicieran si iban a asistir al congreso, por ejemplo introduciendo algún código generado durante la compra del ticket. De esta manera los participantes del CTF tendrían la opción de asistir también a las charlas y/o los talleres durante el evento y recogerían igualmente su premio en la ceremonia de clausura correspondiente. Anyway, los que participaron salieron bastante contentos y al primer puesto volvió a ser para Patatas.

"La razón de la sinrazón que a mi razón se hace, de tal manera mi razón enflaquece, que con razón me quejo de la vuestra fermosura".

FLARE VM, distribución Windows para diseccionar malware

A muchos de nosotros seguramente nos habrá llegado alguna vez algún email con archivos adjuntos que olían a chamusquina o nos ha saltado alguna web intentando descargar alguna clase de ejecutable que olía peor que un calcetín sudado, una gran parte de estos, seguramente borraron el email con el adjunto factura_del_gas.exe con su icono de un pdf y cerraron la web que te descargaba la imagen de Ramona en paños menores (también en formato .exe, para no variar), pero muchos otros tuvieron el valor de descargarlos, ya sea con la intención de ver a Ramona o pagar la factura, o para analizar dichos binarios en busca de algo sospechoso que huele de lejos, también llamado malware.

Para analizar cualquier archivo sospechoso es muy recomendado hacerlo siempre desde una máquina virtual emulando un sistema víctima para así poder observar el comportamiento de ese malware en el entorno virtualizando, a pesar de que alguna clase de malware sea capaz de detectar su ejecución en una maquina virtual (comúnmente por procesos creado por el software de virtualización) y alterar su comportamiento para pasar desapercibido, esto no suele ser lo más común pero podría ocurrir, aún así los análisis se deben realizar en un entorno virtualizado para así también evitar que el sistema anfitrión se vea afectado por alguna de las pruebas como un análisis dinámico.

También necesitaremos para el análisis del malware diversas herramientas como desensambladores, decompiladores, software para la monitorización, debuggers... Como ya bien sabrá cualquier aficionado al reversing y al análisis de malware.

Pues gracias a FLARE VM podremos olvidarnos de tirar nuestro preciado tiempo configurando e instalando herramientas para analizar malware, ya que esta herramienta creada por la gente de FireEye se encargará de descargarnos un montón de herramientas dedicadas al análisis de malware, reversing, análisis forense...

FLARE VM es una especie de máquina virtual que se basa en Windows 7 o superior y que se encargará de armar nuestro laboratorio para el análisis de malware principalmente con herramientas para el debugging, desensamblado, decompiladores, herramientas para el análisis estático y dinámico, análisis y manipulación de red, análisis web, explotación, análisis de vulnerabilidades en aplicaciones...