lunes, 15 de septiembre de 2014

Evasion de Antivirus - SignTool



Tal y como les prometí en la entrada anterior, hoy vamos a ver una herramienta con la que podamos firmar ejecutables desde Windows.

Dicha herramienta se llama SignTool y viene incorporada en la SDK de Windows.

La podremos descargar desde MSDN, pero para obtenerla debemos descargar todo el paquete SDK.

http://www.microsoft.com/en-us/download/details.aspx?id=8279



Instalación

 Lo primero que haremos será descargar el paquete SDK desde el enlace anterior.

Una vez descargado y ejecutado deberemos seguir el Wizard para dejarlo instalado:







Listo, ya tenemos instalado el paquete SDK, así que nos dirigimos al directorio de instalación para verificar que tenemos la herramienta deseada:




 Uso

 Para poder ver los comandos de los que dispone la herramienta, abriremos una consola en dicho directorio y ejecutaremos el siguiente comando:


O si lo preferís, podéis echarle un vistazo a la página de MSDN:


Una vez ya tenemos todo preparado, vamos a empezar a jugar con esta herramienta.

Si recordamos bien, en la entrada anterior utilizamos el troyano educativo Flu, por lo que para esta entrada lo volveremos a utilizar y así podréis comparar resultados.

 Para crear nuestro certificado utilizaremos dos herramientas que vienen en la SDK que hemos descargado.

Estas son:

  • makecert
  • pvk2pfx

Procedemos a crear el certificado:

makecert -sv MiCertificado.pvk -n "CN=Microsoft Corporation" MiCertificado.cer -b 09/15/2014 -e 12/30/2105 -r

pvk2pfx -pvk MiCertificado.pvk -spc MiCertificado.cer -pfx MiCertificado.pfx -po [MiContraseña]

dir MiCertifi*.*





Listo, ya tenemos nuestro certificado, ahora deberemos instalarlo antes de firmar el ejecutable con SingTool.
Para eso, simplemente debemos hacer click sobre nuestro archivo "MiCertificado.pfx" y seguir el asistente de importación de certificados:






Ahora comprobaremos que se ha realizado la instalación del certificado accediendo al almacén de certificados de Windows:




Como podemos ver se ha instalado correctamente, ya podemos firmar nuestro troyano educativo con dicho certificado:

 signtool sign /t http://timestamp.digicert.com /n "nombre del sujeto" "C:\ruta\al\ArchivoParaFirmar.exe"









Perfecto!!! Ya hemos firmado nuestro pequeño... ahora toca el veredicto de los antivirus.

Si recordamos la entrada anterior,  el mismo ejecutable firmado con OSSLSingcode, lograba bajar el ratio de detecciones a 17 / 53:





¿Pensáis que cambiará mucho el resultado?

Pues aquí lo tenéis:

https://www.virustotal.com/es/file/0c76925b7d47e962e5c468dc430968c3d8193ad6500560e3417015e812faaab7/analysis/1410811815/

¿Pensábais que por ser una herramienta de Microsoft ofrecería mejores resultados? xD

Os invito a que probéis con distintos algoritmos de cifrado con estas herramientas y comprobéis por vosotros mismos si cambian los resultados. 
 
Saludos.

Referencias
http://msdn.microsoft.com/en-us/library/windows/desktop/aa387764%28v=vs.85%29.aspx
http://msdn.microsoft.com/es-es/library/8s9b9yaz%28v=vs.110%29.aspx
http://msdn.microsoft.com/es-es/library/bfsktky3%28v=vs.110%29.aspx
https://www.digicert.com/es/codigo/certificados-ev-authenticode.htm
http://msdn.microsoft.com/en-us/library/ff699202.aspx



**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.**  




domingo, 31 de agosto de 2014

Evasion de Antivirus - OSSLSigncode




Antes de empezar quiero disculparme por haber estado tanto tiempo ausente, espero poder sacar tiempo como lo hacía antes para seguir con este blog...


Hoy vamos a ver cómo podemos evadir una protección Antivirus con tan sólo firmar digitalmente nuestro ejecutable.

Existen multitud de herramientas gratuitas que nos permiten firmar digitalmente archivos PE, incluso hay Entidades Certificadoras (CA) que emiten certificados gratuitos, pero como son bastantes las opciones, en esta entrada nos centraremos solo en una herramienta con la podremos crear nosotros mismos el certificado.
Dicha herramienta se llama OSSLSigncode.

Esta herramienta (OpenSSL-based signcode utility) es multiplataforma y utiliza OpenSSL y libcurl para firmar archivos EXE/CAB.


Instalación


Bien, lo primero que haremos será descargar OSSLSigncode desde la página del proyecto:



Una vez descargado el archivo lo descomprimimos:


Y finalmente para instalarlo debemos escribir los siguientes comandos:

./configure
make
make install


 Listo! ya tenemos instalada la herramienta, ahora toca jugar con ella...


Uso

Lo primero que haremos será generar una clave privada RSA que en este caso será de 512 bits (se puede indicar de 2048 bits si se desea) y con un algoritmo de cifrado Triple-DES.


Para comprobar que efectivamente se ha creado la clave como queríamos, podemos escribir los siguientes comandos.


 De momento todo perfecto. Seguimos.

Ahora convertiremos la clave en formato binario (.der)

 

Listo, ya tenemos creada nuestra clave privada. Turno para crear el certificado autofirmado.


Por último y antes de poder firmar nuestro ejecutable, debemos convertir el certificado autofirmado al formato CryptoAPI de Microsoft (.spc).


Perfecto!!! Ya tenemos todo listo para poder firmar nuestro ejecutable.

En mi caso utilizaré el troyano educativo Flu, de Flu-Project.

Dicho troyano tiene un nivel de deteccion bastante alto, ya que al haber sido publicado hace bastante tiempo se ha analizado bastantes veces por lo que es detectado por la mayor parte de los motores antivirus.

Bien, os dejo el reporte de dicho troyano educativo sin haberlo modificado, para que veáis cuantos motores de antivirus lo detectan:







32 motores de 54 detectan el ejecutable como malicioso, es decir, bastantes...

Veámos ahora el resultado subiendo la misma muestra pero habiendo firmado previamente el ejecutable con el certificado que hemos creado.

Para ello procedemos a firmarlo:


Subimos la muestra del troyano educativo firmado con nuestro certificado:




Pero qué co****es!!!  Hemos bajado el numero de detecciones a 17 de 53, pero no sólo eso, si no que si nos fijamos en el reporte, podremos ver que antivirus como Kaspersky, McAfee, Symantec, TrendMicro y una larga lista dan el ejecutable como bueno...



Pero ¿cúal es el motivo de este resultado?.

Pues bien, el motivo es que ciertos antivirus contienen algunas politicas que excluyen del analisis el archivo cuando está firmado digitalmente, para así, aumentar el rendimiento.
Así algunos pueden competir por ser el antivirus que menos recursos consume.  ;)

Esta es una de las cientas de formas con las que se puede evadir la proteccion de un antivirus, el proximo día veremos otra herramienta de firmado pero que valga para Windows.

Saludos!!!



Referencias
http://www.hackplayers.com/2012/11/evasion-de-antivirus-con-ejecutables-firmados.html
http://sourceforge.net/projects/osslsigncode
https://code.google.com/p/flu-project/


**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.** 


sábado, 24 de mayo de 2014

SSLstrip - Descifrando tráfico HTTPS





Hace ya una semana que en genbeta publicaron una entrada en la que comentaban la publicación que publicó Sandvine, en la que hablaban sobre que el tráfico cifrado (SSL) aumentaba considerablemente en Europa y Latinoamérica.


Esto no es algo que coja de sorpresa, ya que navegando se puede ver perfectamente cómo cada día aumenta la cifra de paginas web con cifrado web SSL.

Pero la pregunta es ¿realmente viajan seguras nuestras contraseñas porque implementen cifrado SSL servicios como google, facebook, twitter, etc...?

La respuesta dependerá como siempre de nuestro conocimiento, es decir, del factor humano.

Para entender mejor lo que quiero decir, pasemos a ver la herramienta de la que hoy os vengo a hablar, SSLstrip.


¿Qué es SSLstrip?

SSLstrip es una herramienta desarrollada en python que fué presentaba por Moxie Marlinspike allá en el 2009, en la conferencia de seguridad Black Hat.

Dicha herramienta se encarga básicamente de descifrar todo el tráfico HTTPS.

La página oficial es http://www.thoughtcrime.org/software/sslstrip/


¿Cómo funciona?

Para poder descifrar dicho tráfico es necesario que la víctima visite un enlace o realizar un ataque MitM, así SSLstrip se encargará de reemplazar todas las peticiones HTTPS por HTTP pudiendo sniffar todo el tráfico en texto plano.

No es que el protocolo SSL lo hayan roto criptográficamente (que se sepa públicamente), si no que simplemente se modifican las peticiones.

Para resultar efectivo este ataque, se requiere ser atacado mediante un enlace o una redirección, es decir, si la víctima escribe directamente la dirección https://www.pagina_web.com en la barra de direcciones no será vulnerable, siempre y cuando la redirección no sea mediante un ataque MitM ya que ahí si se podrían modificar las peticiones porque estaría pasando todo su tráfico por nuestra tarjeta de red.


Instalación

Su instalación es bastante simple.

Lo primero será descargarnos la herramienta:


Una vez descargado el archivo, lo descomprimimos:

tar zxvf sslstrip-0.9.tar.gz

Ahora lo instalamos con el siguiente comando:

sudo python ./setup.py install

Listo!!! ya tenemos instalada nuestra herramienta, veámos como funciona.



PoC

Lo primero que debemos hacer es preparar el enrutamiento, ya que si realizasemos directamente el ataque MitM dejaríamos a la víctima sin acceso a Internet y por lo tanto sería un desastre...

echo "1" > /proc/sys/net/ipv4/ip_forward

Después configuramos una IPTABLE para redirigir el tráfico del puerto 80 a otro puerto:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000


Ahora empezamos a realizar el ataque MitM:



Por último, lanzamos SSLstrip a la espera de que nuestra víctima se conecte a algún servicio con cifrado SSL.




Ahora veámos que ocurre cuando la máquina víctima intenta acceder, por ejemplo, a paypal.


 Como se puede ver, se captura sin problemas las contraseñas, y esto mientras la víctima piensa estar segura por entrar con HTTPS.

¿El problema? Damos por sentado todo sin querer entender el por qué o el cómo, otro ejemplo que demuestra claramente que si seguimos dando por sentada la seguridad, seguiremos estando expuestos por mucho que se implementen protocolos seguros, ya que la seguridad depende mayormente de nosotros mismos.


Saludos.





Referencias:
http://www.redeszone.net/seguridad-informatica/sslstrip/
http://www.thoughtcrime.org/software/sslstrip/
https://www.youtube.com/watch?v=MFol6IMbZ7Y
http://www.genbeta.com/actualidad/el-trafico-cifrado-ssl-aumenta-considerablemente-en-europa-y-latinoamerica-segun-sandvine
http://unaaldia.hispasec.com/2009/02/el-ssl-no-esta-roto-o-si-i.html
http://unaaldia.hispasec.com/2009/02/el-ssl-no-esta-roto-o-si-y-ii.html


**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.** 


miércoles, 14 de mayo de 2014

Xplico - Análisis gráfico de red.




Buenas a tod@s!


Hoy vamos a hablar de otra magnífica herramienta que hará de nuestros tediosos trabajos analizando una red, una tarea sencilla y cómoda.

Dicha herramienta se llama Xplico, y con ella podremos analizar la red gráficamente pasándole previamente una captura de red (Archivos .pcap).

Esta herramienta trabaja tanto por interfaz web como por consola, por lo que aparte de su buen diseño resulta ser bastante cómoda e intuitiva si elegimos utilizar la interfaz.

Además permite acceder con distintos usuarios, y dentro de cada usuario, podemos crear los distintos casos que necesitemos.


Instalación

Bien, para su instalación tenemos 2 opciones:
  1. Descargarse directamente una imagen de máquina virtual con Xplico ya instalado.
  2. Instalarlo manualmente en el sistema que queramos tenerlo.

Si optáis por la primera opción, ya sea por vaguería, o para simplemente probar la tool, podéis hacerlo desde aquí.

Si por el contrario optáis por la segunda opción, tan solo debemos realizar los siguientes pasos:

Ubuntu 32/64bit from 13.10 to 11.04:

sudo bash -c 'echo "deb http://repo.xplico.org/ $(lsb_release -s -c) main" >> /etc/apt/sources.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 791C25CE
sudo apt-get update
sudo apt-get install xplico
/etc/init.d/apache2 restart
/etc/init.d/xplico start

Kali Linux:

apt-get install tcpdump tshark apache2 php5 php5-sqlite build-essential perl zlib1g-dev libpcap-dev libsqlite3-dev php5-cli libapache2-mod-php5 libx11-dev libxt-dev libxaw7-dev python-all sqlite3 recode sox lame libnet1 libnet1-dev libmysqlclient15-dev
apt-get install xplico
/etc/init.d/apache2 restart
/etc/init.d/xplico start


Por si tenéis algún tipo de problema al instalarla, echarle un vistazo a la wiki.

Ahora para empezar a trabajar con la tool abriremos nuestro navegador y entraremos en la siguiente dirección: "127.0.1.1:9876".


Uso

Bueno, vamos a ver como funciona la herramienta subiendo un archivo pcap ya creado, yo ejecutaré una muestra de un Fake Antivirus que infectaba con ZeroAccess.

Lo primero que tenemos que hacer es loguearnos en el panel, las claves que vienen por defecto las encontraréis aquí.

Una vez entremos procederemos a crear un nuevo caso:



Ya tenemos nuestro primer caso abierto, ahora procederemos a crear la primera sesión para nuestro caso y subiremos el pcap a analizar.


Para saber que nuestra caputra se ha subido, tendremos que fijarnos en la parte superior izquierda, donde pone "estado", que pasará de "EMPTY" a "DECODING COMPLETED" cuando finalice.


Ahora sólo nos queda ir viendo en cada apartado (cuadro lateral izquierdo) los datos capturados:



Os dejo con un link de una demo online de esta fantástica herramienta por si decidís echarla un vistazo.

Xplico Online: http://demo.xplico.org/users/login

Y por si queréis descargaros pcap´s de muestras de malware o exploit kit´s para probar la herramienta o simplemente juguetear como queráis, os dejo el siguiente link:







Saludos!!!

Referencias:
http://www.xplico.org/
http://highsec.es/2013/09/como-analizar-el-trafico-capturado-xplico/
http://seguridadyredes.wordpress.com/2011/05/17/analisis-de-trafico-de-red-usando-xplico-en-modo-consola/
http://seguridadyredes.wordpress.com/2010/06/09/xplico-analizando-e-interpretando-nuestras-capturas-pcap/
http://seguridadyredes.wordpress.com/2010/06/11/xplico-analizando-e-interpretando-nuestras-capturas-pcap-algunas-consideraciones/ 



**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.**  






domingo, 4 de mayo de 2014

Cryptcat - Creando un chat simple, pero cifrado.




Después de que se diese a conocer el espionaje masivo que se esta haciendo en todo el mundo, la gente se ha echado las manos a la cabeza y ahora se siente todo el mundo inseguro.

Aunque profesionales de TI ya avisaban desde mucho antes que la seguridad no era ningún juego y había que tomarsela bien en serio, es a raíz de las filtraciones como las de Edward Snowden es cuando la gente ha empezado ha reaccionar y empezar a tomar medidas seguras en Internet.

Ya que está el panorama un poco revuelto... hoy os voy a hablar de Cryptcat.


¿Qué es Cryptcat?

Cryptcat es básicamente un Netcat pero encriptado, así de simple.

Algunos diréis: vale muy bien,  ¿y que c*****s es Netcat?

"Netcat es una herramienta de red que permite a través de intérprete de comandos y con una sintaxis sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP." (Véase Wikipedia)

Con Netcat toda la información viaja en texto plano, es decir, que si ponemos un sniffer en medio de la comunicación entre ambas partes podremos ver toda la información transmitida.

Para solucionar este problema, se creó Cryptcat, que aumenta la seguridad encriptando la comunicación.

Cryptcat utiliza el cifrado Twofish, el cual es un algoritmo de clave simétrica cuyo tamaño de bloque es de 128 bits y el tamaño de clave es de 256 bits (2 elevado a la 256 es el número de claves posibles),  por lo que utiliza la misma clave para cifrar y descifrar la comunicación, que si bien actualmente es considerado bastante robusto, sufre del mismo inconveniente que todos los algoritmos de este tipo, que la clave debe de ser conocida tanto por el emisor y el receptor y muchas veces el intercambio de esta clave se lleva a cabo en entornos “no seguros”.

La página oficial de Cryptcat es http://cryptcat.sourceforge.net/.


PoC

Bueno, ya sabemos un poquito más sobre esta magnífica herramienta, así que ahora pasemos a crearnos nuestro chat.

Este chat no tiene dibujitos, una interfaz gráfica, emoticonos ni nada por el estilo, ya que al ser por linea de comandos básicamente va a cumplir su función de chat encriptado y nada más, bueno sí, podremos transferir archivos.

Lo primero que haremos será ver las opciones que contiene con el parámetro "-h".


Sabiendo las opciones de las que disponemos, empezaremos poniendo en el "equipo 1" cryptcat a la escucha:


Con el parámetro "-l" indicamos que se ponga a la escucha, y con "-p 4444" indicamos que sea en el puerto 4444.

Ahora con el "equipo 2" conectaremos al "equipo 1" para establecer la comunicación y empezar a conversar.

Equipo 2 manda primer mensaje
Equipo 1 recibe mensaje y responde.
Equipo2 recibe la respuesta.

Ahora, vamos a ver como podríamos enviar un archivo:

Equipo 1 a la espera del archivo.
Equipo 2 envía el archivo.


Archivo recibido.

¿Habrá capturado algún tipo de información nuestro sniffer mientras se hacía la transferencia?


Visto lo visto podemos decir que no... xD

Espero que les haya gustado.



Saludos.



Referencias:
http://sourceforge.net/projects/cryptcat/files/cryptcat-win-1.2/1.0.0/
http://cryptcat.sourceforge.net/
http://thehackerway.com/2013/04/24/pasando-de-netcat-a-cryptcat/
http://www.g-loaded.eu/2006/11/06/netcat-a-couple-of-useful-examples/



**No me hago responsable del mal uso que se de a la información presentada. Esta información es de carácter didáctico.**