Conferencia de DEFCON 18. Usted ha gastado todo este dinero, pero ellos lo siguen teniendo. Parte 2

Conferencia de DEFCON 18. Usted ha gastado todo este dinero, pero ellos lo siguen teniendo. Parte 1

Utilizo algo interesante de Gary O'Leary-Steele llamado Unicod-fun, que es bastante bueno para una utilidad escrita en Ruby. Sabes que mis herramientas deben escribirse exclusivamente en Python, por lo que tradujimos esto a Python. Ahora podemos aplicar una codificación diferente para herramientas diseñadas para atacar aplicaciones web y que forman parte del marco WAF.



El marco WAF incluye WAF Fun y WAFWOOF y funciona sobre la base de la codificación múltiple y la información recibida del proxy, y puede funcionar a través de proxies Tor o GLib en el proceso de hacer todas estas cosas diferentes. Esto es realmente algo útil para obtener la información que necesita.

Hablamos sobre atacar sitios web a través de Tor; hablé sobre esto en detalle el año pasado. La siguiente diapositiva muestra los scripts para tal ataque:

alias hide='su -c "/home/j0e/dumbscripts/hide.sh"' $ cat /home/j0e/dumbscripts/hide.sh #!/bin/bash # Startup privoxy /usr/sbin/privoxy /etc/privoxy/config # Start Tor /usr/bin/tor $ hide 

También se debe mencionar el complemento, que está incrustado como un botón Tor en el navegador Firefox.
No sé si alguno de ustedes ha trabajado con el DotNet Defender WAF utilizado por estas malditas compañías. Descubrimos que es capaz de proteger el servidor de la inyección SQL. En la diapositiva verá el resultado de generar un ataque de secuencias de comandos entre sitios: dotDefender bloqueó nuestra solicitud.



A continuación, verá un intento de eludir este tipo de protección mediante inyección SQL sin ninguna codificación. Y DotNet Defender no pudo hacer nada al respecto.



El hecho es que bloquea solo ciertas inyecciones SQL, que contienen principalmente la palabra select. Este es el pináculo de la tecnología de seguridad: bloquee la palabra select. Si está encriptando en Unicode, puede pasar a este defensor, por lo que corrigió esta vulnerabilidad el año pasado, pero no hizo nada contra otros estándares de codificación. Por lo tanto, si usa una codificación diferente, puede omitir fácilmente DotNet Defender. Esto me permitió restablecer el hash de contraseña de administrador sin ninguna codificación.



Lo siento, muchachos del DotNet Defender, pero deben arreglar su mierda.

Entonces, lo importante que logré hacer fue penetrar la LAN a través de Internet. Esto es bastante difícil, pero aún es posible. Para esto utilicé una herramienta simple en Perl, tuve que aguantar, aunque soy un seguidor ardiente de Python. Funciona muy bien, gracias a él puede cargar la interfaz de red de shell netcat o meterpreter a través de un túnel DNS. Este es un gran proyecto y recientemente se ha lanzado una nueva actualización para él.



La siguiente es una forma de inyectar SQL utilizando la herramienta de Mapa SQL. Esta herramienta, escrita en Python, le permite descargar os-shell o meterpreter. También tiene su propio os-shell, con el que puedes jugar. Por lo tanto, puede ingresar los comandos necesarios para controlar el sistema, configurar netcat o ingresar directamente el shell de meterpreter, por lo que uso esta herramienta con bastante frecuencia.

Y ahora pasaremos a material más importante. El nombre oficial de esta parte del informe es ¡no te dejes atrapar! ¡No seas un tigre!



Todo lo que hago es no ser atrapado. Quien es tigre Es un punk, maldito punk, ¿quién está de acuerdo conmigo? Si valgo mil millones de dólares, y tú eres una estrella porno, sabes que tengo personas que están listas para matarte si lo dejas pasar. Estas de acuerdo conmigo

Entonces, lo más importante para no quedar atrapado es definir filtros de intrusión. Muchas personas prueban diferentes opciones. El primero es el filtrado del lado del cliente. Esto es malo Esto es malo Y cinco veces más, ¡esto es malo! No use scripts JavaScript o VB, ni nada en el lado del cliente para intentar filtrar la entrada que llega a una aplicación importante. O si usa un marco como J2EE que crea estos JavaScripts, tendrá que escribir un código del lado del servidor que verifique que todo lo que vino del cliente está bien.



Verifique el código fuente de cualquier parámetro que pase por el sitio que pueda filtrarse usando JavaScript o script VB, y elimínelos. Guarde la página localmente y elimine los scripts apropiados de JavaScript o VB o use un proxy local como Paros, Web Scarab, Burp Suite.

Si acaba de hacer este jodido trato con una persona, tenga en cuenta que todo lo malo sucede en la máquina del cliente, por lo que debe enseñar estas pequeñas lecciones a los desarrolladores. Les digo: "OK, desarrollador, ¡quiero que lo piensen, porque van a colocar toda esta seguridad en una computadora portátil hacker!" ¿Crees que esto es correcto? Por lo tanto, muchachos, ¡no utilicen filtros en el lado del cliente!

Las siguientes son restricciones de la lista negra. A menudo las personas intentan restringir el uso de caracteres especiales. Bueno, supongamos que no puede enviar un signo igual, signos menos y cosas similares.



Pero con respecto a la sintaxis de SQL, no tiene que indicar que 1 = 1. Por ejemplo, en la solicitud http: // [sitio] /page.asp?id=2 o 1 como 1, generalmente puede evitar el uso del signo igual y el operador o reemplazándolos en la barra de direcciones con las palabras "y" y " como ", por ejemplo," y 1 como 1 "," y 1 como 2 "y así sucesivamente:

http: // [sitio] /page.asp?id=2 y 1 como 1
http: // [sitio] /page.asp?id=2 y 1 como 2

De hecho, las inyecciones SQL en la mayoría de los casos no usan caracteres especiales.
A continuación, considere los IDS basados ​​en firmas. Dime, ¿cuál de ustedes tiene esa mesa en el mouse pad? Si tiene una tabla de códigos decimales ASCII o HEX, rasgue con este tapete.



¡Lo que aprendí anoche cuando estaba borracho en la plantilla es que ASCII realmente funciona! Entonces, cuando se trata de IDS y recibe una alerta TCP desde cualquier IP, desde cualquier puerto, llegando al puerto de nuestro servidor web, busque un tipo de datos especial 1 = 1. Pensemos, ¿cuántos piratas informáticos pudieron detectar esto? Pensemos en ello.



2 es 2? ¿Cuarenta onzas equivalen a cuarenta onzas? 1 = 1 no es la única forma de crear una solicitud para la que puede obtener una respuesta de "verdadero", puede enviar una solicitud del tipo "2 = 2", "1 <2" y así sucesivamente. Si las firmas son tan fáciles de mover, ¿por qué son necesarias? La respuesta es para herramientas automáticas y niños.

La siguiente diapositiva muestra mi visión IDS basada en la firma: este es el portero que atrapó 1 bola mientras cientos de bolas volaban a través de la portería.



La utilidad pentester llamada sqlmap omite esta protección que le mostré por defecto, ¡y también está escrita en Python!

Algo similar se muestra en la siguiente diapositiva. Aquí, para una solución alternativa, utilicé la técnica 2 o 2 y seleccioné al usuario.



En este caso, presenté toda la expresión en código hexadecimal, pero puede hacerlo en Unicode, utf7, utf-8, utf-16, en cualquier codificación, no importa, este método aún funciona y le permite omitir muchos WAF.

Hay otro producto en el campo de PHP: este es PHP IDS, creo que es genial que ahora tengan una demostración de sus capacidades en el sitio. Si va a demo.phpids.net, puede probar la prueba de humo. Este Smoketest le permite probar todas sus inyecciones SQL, secuencias de comandos entre sitios o ataques a aplicaciones web y le muestra qué firmas detectan estos ataques, para que pueda continuar practicando kung fu en Internet.



Por ejemplo, puede aplicar algún efecto, obtener una firma, probar con otro, obtener otro conjunto de firmas, etc. Continúas trabajando y trabajando hasta que este chico malo dice que todo está en orden, eludiste la defensa y nada más te "fuma". Así que perfeccionas tus habilidades de kung fu hasta que encuentres algo que pueda eludir la mayoría de las reglas.



Ahora Modsecurity se ha asociado con PHP IDS, y tienen su propia prueba de humo. No lo agregué a mis diapositivas debido a una resaca matutina, pero diré que lograron combinar el conjunto de reglas Modsecurity con el conjunto de reglas IDS de PHP en una interfaz web, por lo que simplemente inserta tus exploits allí hasta que pases por alto todas las reglas. En resumen, los IDS basados ​​en firmas son solo una broma estúpida. Al menos no tenía clientes que supieran acerca de estos productos, pero de todos modos los compraron. Pero esta es una historia ligeramente diferente.

Entiendo perfectamente a aquellos de ustedes que son analistas de IDS y WAF. Sé que hablo mucho, pero siento tu dolor porque solía hacer tu trabajo, y no hay suficiente alcohol en el mundo para soportar el trabajo que haces.



Entonces, la gran mayoría de las cosas que acabo de mostrar se hacen a través de la red. Como dije, interactúas con IDS e IPS de forma remota, cargando varios exploits. Cuántos de ustedes han tratado con JBoss, un servidor de aplicaciones de código abierto, saben que la mayoría de los archivos se descargan con él. La inyección SQL simplemente codifica algunas rutas que puedo ingresar, lo que generalmente me da acceso al shell y DMZ, y trato de trabajar desde allí.

Después de eso, hago algo increíble y envío un correo electrónico al cliente porque funciona. Su lado del cliente con el marco Metasploit se ve maravilloso, por lo que puede elegir todo lo que sea compatible con el último explorador, PDF, ActiveX o explotación de archivos, asegúrese de que invierte el shell TCP, después de lo cual Metasploit convierte este mensaje en HTTPS. Todo es genial, lo único malo es que está escrito en Ruby. Pero la herramienta SET de Python es un nivel completamente nuevo de pentesting.



Esta herramienta te permite hacer cosas increíbles. SET fue creado por David Kennedy del grupo ReLic, aplaudímoslo por esto. Esto es exactamente lo que necesitamos para ilustrar la esencia de lo que está sucediendo. Los hackers ya no escanean los puertos de su red, si no están tratando de hacer esto, entonces, en cualquier caso, probablemente no se harán cargo del shell. Los hackers intentan descargarle algo malicioso usando el correo electrónico o algo así.

Por lo tanto, es necesario que el cliente comprenda que durante el pentesting es necesario probar su sistema para determinar la resistencia a los efectos de sitios fraudulentos, phishing y similares. Especialmente si te encuentras con un cliente como el que tuve, él se puso de pie y dijo: "OK, Joe, no voy a pagarte por consejos para enseñar a los empleados de la compañía cómo usar la red correctamente". Por lo tanto, debe reproducir todas las amenazas reales en el lado del cliente para que comprenda cuán grave es esto.

Entonces, la siguiente etapa del pentesting es el Pivot Attack, o "ataque giratorio", en el que un host pirateado se usa para atacar a otros hosts. "Turning Attack" en la LAN es una parte importante del pentesting del lado del cliente.



Metasploit admite Pivot, y si no tengo la capacidad de descargar el archivo .cab con todos los archivos ejecutables que se compilaron estáticamente por adelantado, entonces no hay necesidad de instalar nada. Utilizo esto en mi taller para hacer un lanzamiento de Pivot en una LAN, así que "salto" a él y empiezo a moverme desde allí.

Lo siguiente que estoy considerando son soluciones de seguridad generales para la LAN. Esta falta de DHCP, es decir, direcciones IP estáticas, direcciones MAC DHCP, seguridad de puertos, soluciones NAC, son cosas que me impiden acceder a la red. Entonces, ¿qué hago si no puedo acceder a la red?

Si falta DHCP y las direcciones IP son estáticas, entonces robo una dirección IP válida del host. Mis hijos me enseñaron esto porque las direcciones IP estáticas son algo increíblemente ineficiente. Espero que no tenga clientes que digan que van a detener a los hackers que usan direcciones IP estáticas. Hago lo mismo en presencia de direcciones MAC de DHCP: robo una dirección MAC válida. Si tenemos un puerto seguro, también robo una dirección IP o MAC válida. Finalmente, si hay soluciones NAC, simplemente puede levantar la computadora, darle la vuelta y mirar su dirección MAC, o tratar de encontrar excepciones de protocolo 802.1x, es decir, dispositivos que no son compatibles con 802.1x, como impresoras, copiadoras, bastidores de CD-ROM y teléfonos VoIP.

Todos estos métodos funcionan para mí, y los mejores dispositivos para penetrar LAN son los teléfonos VoIP. Tenía muchos clientes que usaban la autorización automática de teléfonos VoIP en la red de voz según la dirección MAC y la etiqueta VLAN. Por lo tanto, puede hacer una "caja" de Linux similar a un teléfono VoIP y chocar con una red LAN de voz virtual, evitando las soluciones NAC.

La mayoría de los teléfonos de mis clientes tenían que estar conectados directamente al centro de software CallManager en la DMZ interna, porque todos los centros CallManager deberían funcionar con otros servidores, por lo que mi recepción funcionó bien para toda la red.

Hay una cosa llamada Voip Hopper que automatiza el proceso de penetrar una VLAN de voz. Puede descargar este exploit desde voiphopper.sourceforge.net y usarlo para "saltar" directamente a la VLAN.

Cuando entro en la red, generalmente primero descubro quién es el administrador del dominio. En la diapositiva, verá una lista de comandos que utilizo: set: para obtener información sobre el dominio y los usuarios, vista de red: para ver computadoras de red, dominios de usuario y otros dominios, grupo local de red: para encontrar grupos locales de computadoras, etc.



Hago esto para averiguar quién y en qué grupos trabaja en la red para intentar atacar sus computadoras. Aún mejor, si puedo obtener un administrador local o un sistema local, entonces lo siguiente que hago es escanear la red para determinar quién es el usuario específico de esta computadora.



Puede usar una variedad de secuencias de comandos para inspeccionar la red para averiguar dónde, en qué máquina se encuentra la "caja" del administrador. Si "atrapó" a un administrador local o un sistema local, puede "saltar" a su "caja" y utilizar el shell pcexec desde allí.



Después de saltar al "cuadro", empiezo a buscar una manera de aumentar mis privilegios. Construir privilegios es algo realmente difícil. En Windows XP, estas cosas funcionan incluso con el Service Pack Sp3, que utiliza esta hermosa interfaz de línea de comandos cmd.exe, que es una gran cosa.

Cuando ingresé en un banco, tuve que "matar" el servicio marco de McAfee, que se refiere al sistema de prevención de intrusiones HIPS. Para esto, utilicé el comando pskill.exe. Entonces, deshabilité McAfee, deshabilité HIPS, deshabilité el interceptor y firepm y todos los demás procesos lanzados por el sistema de prevención de intrusiones.



Otra cosa que no tuve tiempo de mostrar en la diapositiva es que cuando apaga McAfee, primero necesita aumentar los privilegios, y esto también funciona con respecto a la protección de punto final de Symantec. El hecho es que después de "matar" todos estos procesos, después de un tiempo comienzan de nuevo. Por lo tanto, debe "desenganchar" los archivos DLL en la memoria para detener el reinicio de la protección. No publiqué esto en las diapositivas, pero si recuerdas más tarde, te daré la sintaxis de este truco.
Otra cosa que acabo de aprender sobre McAfee es que los archivos en la lista de exclusión aparecen con un nombre específico, no un hash o algo similar. Por lo tanto, los archivos incluidos en la lista de exclusión de antivirus de McAfee no están protegidos contra desbordamientos del búfer, y voy a utilizar este hecho para mis propios fines.

A continuación se muestra el "asesinato" de HIPS como un sistema con Metasploit. Ahora tienen algo llamado getsystem, por lo que simplemente puede escribir Metasploit, llamar a getsystem y lo lanzará directamente al sistema utilizando uno de los cuatro métodos: detener la protección antivirus general, detener HIPS, "matar" los procesos de McAfee o "matar" Procesos HIPS.



Lo último que quería mostrar era la captura de dominio.



Tan pronto como llego a la "caja" del administrador, uso todas las fichas que he robado y empiezo a usar sus poderes. Hacerse pasar por un administrador de dominio, creo un grupo de usuarios y los agrego al grupo de administradores. Para mis propósitos, esto funciona muy bien.



En cuanto a la protección, tendré 1-2 páginas de documentación sobre protección contra cada uno de los ataques de los que hablé hoy. Dice cómo llevar a cabo un ataque y cómo defenderse de él. Entonces, si necesita dicha información, contácteme, todos los contactos están en la diapositiva.

Si no tengo preguntas, terminaré allí.



Gracias por quedarte con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes? Apóyenos haciendo un pedido o recomendándolo a sus amigos, un descuento del 30% para los usuarios de Habr en un análogo único de servidores de nivel de entrada que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de $ 20 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps hasta enero de forma gratuita al pagar por un período de seis meses, puede ordenar aquí .

Dell R730xd 2 veces más barato? ¡Solo tenemos 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV desde $ 249 en los Países Bajos y los Estados Unidos! Lea sobre Cómo construir un edificio de infraestructura. clase utilizando servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

Source: https://habr.com/ru/post/es432496/


All Articles