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

Como de costumbre, como el año pasado, no puedo creer que la gente realmente venga a mis presentaciones para escuchar lo que digo. El año pasado fue el domingo, a las 10 de la mañana, estaba en resaca y pensé que nadie vendría a mirarme.



Hoy es domingo otra vez, a las 4 de la tarde, hoy quería volar a casa, pero, a pesar de esto, les agradezco y realmente aprecio su atención, como el año pasado, y me encantan estas personas y DefCon.

El tema de la presentación es que gastó todo este dinero, pero continúan teniendo a usted. Realicé muchas pruebas de penetración, estuve en muchos países donde participé en el pentesting y en todas partes luché con varias herramientas de protección como firewalls, AWS y sistemas de detección de intrusos IDS y MAC. Todavía les damos una paliza, y esto es muy malo. A menudo, cuando pruebo, mi informe se convierte en un mensaje sobre incidentes, y quiero decir: "Hola amigo, pero usted es el dueño de todo esto, ¿cómo puede usar ese sedimento"? Todo un tema se dedicó a esto, pero primero déjame decirte quién soy.

Soy un experto en aplicaciones de red y enseño a la gente al respecto, y soy un tipo "negro" en las conferencias de seguridad, ¡sí, soy yo! Entonces, me rompo, me pongo feroz y bebo. Los pedidos están cambiando, pero sigo siendo el mismo. Entonces, si no te gustan los tipos como yo, puedes levantarte e irte.

Entonces, déjenme regresar un poco, unos 10 años. Siempre hago esto porque estoy especialmente nostálgico por esos tiempos. En aquellos días, el pentesting era una tarea fácil, llegamos al cliente y le dijimos: "hola, somos personas seguras", y el cliente levantó las manos, pensando: "¡demonios, las personas están a salvo aquí!"

Después de eso, pirateamos la red del cliente con herramientas de código abierto como ISS o Nessus. ¿Cuántos de ustedes recuerdan que Nessus era libre?



Entonces, llegamos al cliente con todas estas cosas y pirateamos fácilmente su sitio usando exploits como RootShell con PacketStorm: ¡levanten la mano, quién los recuerda! Escaneamos puertos para encontrar el objetivo, utilizamos todo tipo de compilaciones, punto-barra, todas estas bibliotecas y abrimos el panel de control.





Luego tomamos capturas de pantalla de la vulnerabilidad, en las que podía ver sus contraseñas y otra información confidencial, y dijimos: "Bueno, eso es todo, ¡su red ha sido tomada!"



Luego, redactamos un informe, escribimos qué red descuidada tenían y recibimos dinero por ello. "Tu red es una mierda, ¡así que pagame!"



Pero hoy, muchachos, todo es un CISSP sólido, una certificación independiente de seguridad de la información, y el tipo que los contrata cree que él sabe más que ustedes. Quiero decirle: "¿entonces qué demonios me contrataste?", Y él responde: "ya sabes, lo hicimos, y esto, tenemos IDS y MAC, tenemos esto, tenemos esto ...". Y estás girando allí con toda esta mierda.
Déjame contarte una pequeña historia. Todos los que me conocen saben que siempre tengo algún tipo de historia.

Hace unos años tuve un cliente que ordenó un pentesting. Él dijo: "OK, Joe, quiero que audites estas subredes y la lista de control de acceso de ACL para las VLAN". Probablemente algunos de ustedes ya hayan hecho ACL para VLAN, así que ustedes son más inteligentes que yo porque nunca lo hice.

Yo digo, bueno, ¿qué tipo de auditoría debo hacer? Él responde: auditoría de VLAN, está bien, creo que iré a ver su configuración de red. ¡Y aquí estoy sentado con un administrador de red y veo que tienen 90 VLAN para 300 usuarios! Estaba en estado de shock y le dije que esto era posible, pero él solo respondió: ¡bueno, sucedió! Tomé un pequeño trozo de papel y comencé a rodear a la gente, preguntando: “¿Necesitas esta red? ¿Pero necesitas esta red? ¿Quizás necesites esta red? Así que me puse en contacto con todos, descubrí lo que cualquiera necesitaba, y era una gran, maldita gran compañía. Revisé todas estas VLAN, certifiqué algunas redes y llegué a uno de los segmentos DMZ, de los cuales había 4 en la compañía. Me dije a mí mismo: "Hola amigo, todas estas cajas necesitan actualizarse, realmente necesitan ser reparadas". Fui al subdirector general y le dije que tiene todo este equipo que necesita una actualización de software, ya que perdió algunos parches SQL, parches PHP y mucho más.

Tuvieron una reunión porque se están reuniendo constantemente, y uno de los desarrolladores se levanta y dice: "No, no, no podemos actualizar esto, ¡estos son nuestros servidores de desarrollo!" (Risas y aplausos en el pasillo). ¿Cómo puedo comentar sobre el hecho de que el servidor de desarrollo está ubicado en la DMZ? Y me responden: "¡Eso está mejor!".

Entonces, sigo trabajando para el cliente, comienzo mi pequeño pentesting y "derribo" un par de bastidores, porque es fácil de hacer. El cliente pregunta por qué fue nuestro sistema IDS el que no pudo atraparlo, y yo le respondí, pero, ¿qué era IDS allí? Él dice que sí, lo usamos para monitorear la seguridad. Respondo: "bueno, probablemente porque alguien trabajó en este IDS".

Las compañías contratan a otras compañías para externalizar sus IDS, las administran, hacen informes y hacen un montón de cosas de mierda. Entonces, tuve que mirar su "caja" y le pedí al chico que me diera acceso para examinarla rápidamente. Maldición, tardé más de 2 minutos en iniciar sesión a través de SSH, y vi que esta perra es lenta hasta el infierno, así que comencé a verificar si hay rootkits. ¡Resultó que ya había 4 rootkits!



¡Así que pentesting es algo genial! Entonces, ¿qué hago cuando me opongo a estos tipos de grandes empresas, cuando audito a todos estos jodidos bancos, a todas estas jodidas compañías? Pido ayuda a Google. En primer lugar, busco mensajes de error de SQL, busco archivos para control remoto, todo eso me dará acceso rápido al shell, el lugar más vulnerable. Nunca participe en tonterías como el escaneo de vulnerabilidades, tome inmediatamente el sistema "por el cuello". Por lo tanto, siempre estoy buscando inyecciones SQL, archivos RF, secuencias de comandos crossite, y después de encontrarlas, recurro a la inteligencia pasiva y OSINT, inteligencia de código abierto, para esto utilizo Maltego. Actúo como una mujer que quiere atrapar a su marido por traición. ¡Miro a todas partes! Estoy tratando de averiguar qué subredes tienen, dónde se encuentran todas estas cosas, utilizo esta increíble herramienta llamada Firefox. ¡Créame, se sorprenderá de lo que puede hacer!

La inteligencia pasiva es la herramienta principal que realmente debes probar. Estoy seguro de que la mayoría de ustedes ya lo están usando, esta técnica definitivamente debería usarse. Luego busco equilibradores de carga, ahora paso por los equilibradores de carga aproximadamente el 30% de mis pruebas de penetración, esto es realmente algo conveniente. Configuro la carga en el "cuadro" y averiguo si es el equilibrio de carga DNS o HTTP. Por ejemplo, cuando envía paquetes y se dispersan por todas estas rutas, esto hace que las pruebas sean un poco más difíciles.



Luego vuelvo al impresionante navegador Firefox y cambio el contenido del encabezado de la barra de búsqueda de Encabezados HTTP en tiempo real. Esto le permite enviar algunas solicitudes generales al servidor.



Entonces, si envía el primer paquete y se le devuelve "5", entonces envía otro paquete a la misma casilla y devuelve "6", por lo que tiene un equilibrio de carga. Lo mismo con el equipo de excavación y Netcraft.

Netcraft es generalmente una cosa asombrosa. Por ejemplo, busca algo como "F5 BigIP" y obtiene direcciones IP con una carga ya equilibrada. Durante el pentesting, fue muy importante para mí. El equilibrador de carga es detectado por un script de shell o usando Halberd, es un script de Python que hace lo mismo. Entonces, estas son cosas realmente buenas que lo ayudan a determinar la IP real del host que pretende atacar y que está detrás del equilibrador de carga.



Lo siguiente que encontré es determinar si hay un IPS o un sistema de prevención de intrusiones. Todos parecen tener IPS, pero la gran mayoría de mis clientes lo usan en modo IDS. Del mismo modo que no tiene sentido usar herramientas de piratería contra un host con equilibrio de carga, tampoco tiene sentido usarlas contra un host que está protegido por IPS. ¿Alguno de ustedes usa esta cosa? ¡Conéctalo al infierno porque bloquea el tráfico! De hecho, intente deshabilitarlo y vea qué sucede. ¿Cuántos creen que este sistema bloquea el tráfico ilegal? ¿Te ha escrito sobre esto? Esta es la misma mierda que todos los sistemas como ella. Estas de acuerdo conmigo Solo quiero asegurarme de que no soy el único que piensa eso.

Entonces, necesito averiguar si necesito luchar contra IPS, es decir, si el host atacado no está bajo su protección, y para esto estoy haciendo algunas cosas realmente simples.



Soy un chico de Linux, pero ahora tengo que usar Windows, así que me siento un poco sucio. En primer lugar, uso cURL: estas son herramientas de línea de comandos o scripts, y una biblioteca que pasa datos por URL. Con cURL, voy a vencer ../../WINNT/system32/cmd.exe?d. Créeme, este ataque no ha funcionado desde que Jesús caminó sobre la tierra, así que avísame si logras llevarlo a cabo.

La única razón por la que esto debe hacerse es para tratar de averiguar si algo está bloqueando su dirección IP o enviando paquetes de restablecimiento a su conexión. Porque si esto le envía paquetes de reinicio, debe consultar cmd.exe? D, ya que es probable que su dirección esté bloqueando IPS. Pensando de la misma manera, a los muchachos de purehacking.com se les ocurrió la detección activa de filtros o la detección activa de filtros. Esta es una muy buena herramienta que se ejecuta en Python, lo que le permite cambiarla un poco y personalizarla según sus necesidades.

A menudo me encuentro con IPS, así que utilizo 3-4 direcciones IP diferentes desde las que disparo paquetes y veo si recibo paquetes de volcado en respuesta. Si recibo, significa que mi dirección IP está bloqueada. Observo que la mayoría de las soluciones IDS / IPS no monitorean el tráfico codificado con SSL y otro tráfico encriptado. Entonces, lo siguiente que hago es ver si IPS puede manejar SSL. Déjame recordarte nuevamente por qué usamos Linux.



Creo un archivo xlnetd y hago lo que llamo la "Prueba SSL". Verá que abro el puerto 8888, y luego cualquier dato que pase al host local 8888 cae en este pequeño script de shell, verá server = /home/j0e/security/toolz/ssl_proxy.sh.

En la siguiente diapositiva puedes ver las increíbles capacidades de mi script: ¡solo mira este script desde una línea! Por lo tanto, el tráfico va directamente a abrir SSL, y luego se establece una conexión con el objetivo y se inicia la misma Detección de filtro activo o cmd.exe contra el host local para determinar si mi dirección IP está bloqueada.



La gran mayoría de mis clientes que implementan IPS y usan el modo de bloqueo no descifran el tráfico SSL antes de que pase IPS o IDS. Por lo tanto, si desea que sus clientes utilicen el dinero de manera rentable, dígales que compren un acelerador SSL. Interrumpe el protocolo SSL antes de IPS e intenta descifrar el tráfico.
Ahora veamos cómo puede atacar al host a través de Tor y cómo ejecutar herramientas de escaneo de red a través de él. Hago esto con bastante frecuencia, comenzando privoxy y en modo oculto uso herramientas como Nessus para atacar al host a través del puerto 8080. En este sentido, vale la pena recomendar que sus clientes bloqueen los nodos de salida de Tor.



La mayoría de las compañías no tienen ninguna razón para permitir que sus clientes se conecten a su red a través de redes privadas, pero nunca bloquean tales conexiones. Por lo tanto, debe obligar a las empresas a bloquear estos nodos, esto es lo que hago por mis clientes en primer lugar. No tengo una diapositiva proxy GLib porque la resaca realmente afectó mi capacidad de hacer estas diapositivas correctamente esta mañana.

Lo último que hago es identificar WAF, firewalls de aplicaciones web o firewalls de aplicaciones web. ¿Cómo puedo determinar si un host usa WAF?



Como hago muchas pruebas de PCI, sé que algunos jefes ingeniosos de la oficina de PCI se dieron cuenta de que si tienes aplicaciones web vulnerables que no quieres reparar y corregir la vulnerabilidad, entonces puedes usar WAF. De hecho, es fácil descubrir el uso de tales firewalls. Para hacer esto, es suficiente enviar al host 1 una solicitud real, una solicitud maliciosa y ver cómo diferirán sus respuestas. Una solicitud HTTP creada con fines malintencionados puede contener una carga útil que incluye todo tipo de tonterías, como el apóstrofe, las comillas, los signos de interrogación, los signos menos, los corchetes, los asteriscos, etc.



Por lo tanto, no es nada difícil saber si está atacando un host protegido por WAF.
Por lo tanto, envía caracteres no válidos, después de lo cual las herramientas que se muestran en la siguiente diapositiva le brindan todo este tipo de cosas extrañas. Entonces, si solicita cmd.exe y usa la utilidad de línea de comandos grep para el método "501", es decir, en lugar del error 404 "no encontrado", recibirá el mensaje de error 501: "el servidor no admite el método de solicitud", entonces probablemente haya encontrado cortafuegos mod_security que protege el servidor Apache. Las versiones más recientes de este firewall han cambiado la situación, pero ¿a quién le importa realmente actualizar su WAF?

Por lo tanto, uso los métodos que se muestran en la siguiente diapositiva bastante ampliamente, y también paso mis ataques a través del firewall de AQTRONIX Web Knight.



Verá el código 999 No Hacking en el encabezado de respuesta, que ejecuto cuando pruebo: "No hacking". Entonces, simplemente comienza a agregar elementos a la barra de direcciones para ver qué dará y si recibe un mensaje de error 404 para un archivo que no está en el host.



Quiero decir, si envía la solicitud correcta que le da un mensaje 200, y luego envía la solicitud incorrecta de un archivo que no existe, y el servidor da un error 404, y luego de repente inserta algo para secuencias de comandos entre sitios, el servidor enviará Tiene un significado completamente diferente del error. Esto indicará que en este caso hay algún tipo de mecanismo de protección.

De vuelta a nuestros juegos de codificación. Si determina que se opone a WAF, vea si esto es compatible con HEX, ya sea que maneje utf7, utf-8, base16, base64 o una mezcla de estas codificaciones. La mayoría de los WAF no funcionan bien con las codificaciones, especialmente si comienza a mezclarlos entre sí.

Mis buenos amigos, Sancho Gachi y Windell, crearon el año pasado una herramienta Python llamada WAFW00F, una utilidad para detectar WAF.



Esta cosa toma huellas digitales de los encabezados de respuesta HTTP e identifica WAF. Realmente me gusta esto, ahora ya tenemos una lista de 10 o 12 WAF, y está en constante crecimiento. Lo siguiente que vale la pena prestar atención es WAF Fun, una herramienta que funciona con el método de fuerza bruta en un conjunto de reglas de firewall de aplicaciones web, y también está escrito en Python.

Realmente admiro a estos muchachos y deseo que hayamos progresado aún más, pero sabes que bebemos un poco, luego trabajamos, luego bebemos de nuevo y trabajamos de nuevo, por lo que el proceso de crear tales cosas no es fácil. Pero todavía espero que en la próxima conferencia DefCon pueda demostrar cómo funciona WAF Fun usando el método de fuerza bruta.

Otra cosa interesante es lo que podemos hacer con Unicode. Es cierto, está escrito en Ruby, y todos sabemos que Ruby apesta.

17:00 min

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



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/es432456/


All Articles