Conferencia HACKTIVITY 2012. The Big Bang Theory: The Evolution of Pentesting in Enhanced Security. Parte 2

Conferencia HACKTIVITY 2012. The Big Bang Theory: The Evolution of Pentesting in Enhanced Security. Parte 1

Ahora intentaremos otra forma de implementar SQL. Veamos si la base de datos continúa lanzando mensajes de error. Este método se llama "esperando un retraso", y el retraso en sí se escribe de esta forma: waitfor delay 00:00:01 '. Copio esto de nuestro archivo y lo pego en la barra de direcciones del navegador.



Todo esto se llama "inyección temporal de SQL ciego". Todo lo que hacemos aquí es decir: "espera un retraso de 10 segundos". Si observa, en la parte superior izquierda tenemos la inscripción "conectando ...", es decir, ¿qué hace nuestra página? Está esperando una conexión, y después de 10 segundos aparece la página correcta en su monitor. Con esta técnica, recurrimos a la base de datos para que nos permita hacerle algunas preguntas más, por ejemplo, si el usuario es Joe, entonces debe esperar 10 segundos. ¿Eso está claro? Si el usuario es dbo, espere 10 segundos también. Este es el método de inyección SQL ciego.

Creo que los desarrolladores al crear parches no eliminan esta vulnerabilidad. Esta es una inyección SQL, pero nuestro programa IDS tampoco la ve, así como los métodos anteriores de inyección SQL.
Probemos algo más interesante. Copie esta línea con la dirección IP y péguela en el navegador. Funcionó! La tira TCP en nuestro programa se puso roja; el programa observó 2 amenazas de seguridad.



Bueno, mira más allá de lo que pasó. Tenemos una amenaza para el shell de XP, y otra amenaza es un intento de inyectar SQL. En total, se observaron dos intentos de atacar la aplicación web.



Ok, ahora ayúdame con la lógica. Tenemos un paquete de datos de intervención en el que IDS dice que respondió a varias intervenciones en el shell de comandos de XP.



Si bajamos, veremos una tabla de códigos HEX, a la derecha de la cual hay una bandera con el mensaje xp_cmdshell + & 27ping, y obviamente esto es malo.



Veamos aquí qué pasó. ¿Qué hizo el servidor SQL?



El servidor SQL dijo: "puede tener una contraseña de mi base de datos, puede obtener todos los registros en mi base de datos, pero, hombre, no quiero que ejecute mis comandos, ¡no es nada genial!"

Lo que debemos hacer es asegurarnos de que incluso si IDS informa una amenaza para el shell de XP, esta amenaza sea ignorada. Si está utilizando SQL Server 2005 o SQL Server 2008, luego de detectar un intento de inyección de SQL, se bloqueará el shell de comandos del sistema operativo, lo que no le permitirá continuar con su negocio. Esto es muy molesto. Entonces, ¿qué hacemos? Debe intentar preguntarle al servidor con mucho cariño. Debo decir esto: "por favor, papi, bueno, ¿puedo tener estas galletas?" Eso es lo que hago, en serio, ¡le pido al servidor muy cortésmente! Le pido que muestre opciones adicionales, solicite una reconfiguración y solicite cambiar la configuración del shell XP para que el shell esté disponible, ¡porque lo necesito!



Vemos que IDS detectó esto. Verá, ya se han observado 3 amenazas aquí.



Solo mire aquí: ¡volamos los registros de seguridad! Parece un árbol de Navidad, ¡hay tantas cosas colgadas aquí! ¡Hasta 27 amenazas de seguridad! ¡Hurra chicos, atrapamos a este hacker, lo atrapamos!



No nos preocupa que robe nuestros datos, pero si puede ejecutar comandos del sistema en nuestra "caja", ¡esto es serio! Puede dibujar una ruta Telnet, FTP, puede obtener mis datos, esto es genial, pero no me preocupo por eso, simplemente no quiero que tome el control de mi "caja".

Quiero decir sobre las cosas que realmente "me atraparon". Trabajo para organizaciones, trabajo para ellos durante muchos años, y te lo cuento porque mi novia cree que estoy desempleada. Ella cree que solo hago lo que estoy en el escenario y chateando, esto no puede considerarse trabajo. Pero yo digo: "No, mi alegría, ¡soy un consultor!" Esa es la diferencia: expreso mi opinión y me pagan por ello.

Diré esto: a nosotros, como los piratas informáticos, nos encanta romper el cascarón, y para nosotros no hay más placer en el mundo que "tragarse el fregadero". Cuando los analistas de IDS escriben sus reglas, se ve que las escriben de tal manera que se protejan de romper el caparazón. Pero si habla con el CIO sobre el problema de la extracción de datos, él le ofrecerá pensar dos opciones. Supongamos que tengo una aplicación que produce 100 "piezas" por hora. ¿Qué es más importante para mí: garantizar la seguridad de todos los datos en esta aplicación o la seguridad del shell "box"? Esta es una pregunta seria! ¿De qué debería preocuparse más?



El hecho de que tenga un shell de "caja" dañado no significa necesariamente que alguien haya obtenido acceso al funcionamiento interno de las aplicaciones. Sí, esto es más que probable, y si esto aún no ha sucedido, puede suceder pronto. Pero tenga en cuenta que muchos productos de seguridad se basan en la premisa de que un atacante se mueve a través de su red. Por lo tanto, prestan atención a la ejecución de comandos, a la introducción de comandos, y debe tener en cuenta que esto es algo serio. Prestan atención a vulnerabilidades triviales, a secuencias de comandos entre sitios muy simples, a inyecciones SQL muy simples. No les importan las amenazas complejas o los mensajes cifrados; no se preocupan por cosas de este tipo. Podemos decir que todos los productos de seguridad están buscando ruido, están buscando un "ladrido", quieren detener lo que muerde el tobillo. Esto es lo que entendí al tratar con productos de seguridad. No necesita comprar productos de seguridad, no necesita conducir un camión en reversa. Necesita personas competentes y calificadas que entiendan la tecnología. ¡Sí, Dios mío, son las personas! No queremos invertir millones de dólares en estos problemas, pero muchos de ustedes han trabajado en esta área, y saben que tan pronto como su jefe mira el anuncio, corre a la tienda con un grito: "¡debemos conseguir esto!" Pero en realidad, no lo necesitamos, solo tenemos que arreglar el desastre que está detrás de nosotros. Ese fue el requisito previo para esta presentación.

Un entorno de seguridad mejorado es algo en lo que pasé mucho tiempo entendiendo las reglas de cómo funcionan los mecanismos de seguridad. Una vez que comprenda los mecanismos de protección, evitar la protección es fácil. Por ejemplo, tengo una aplicación web que está protegida por su propio firewall. Copio la dirección del panel de configuración, la pego en la barra de direcciones del navegador y entro en la configuración e intento aplicar secuencias de comandos entre sitios.



Como resultado, recibo un mensaje de firewall sobre la amenaza: me bloquearon.



Creo que esto es malo, ¿estás de acuerdo? Has encontrado un producto de seguridad. Pero, ¿qué pasa si intento algo como esto? Ingreso el parámetro Joe '+ OR + 1 =' 1 en la línea



Como puede ver, funcionó. Corrígeme si me equivoco, pero hemos sido testigos de cómo la inyección SQL derrotó al firewall de la aplicación. Ahora imaginemos que queremos iniciar una empresa para implementar medidas de seguridad, así que probémonos el sombrero de un fabricante de software. Ahora encarnamos el mal porque es un sombrero negro. Soy consultor, así que puedo hacer esto con los fabricantes de software.

Queremos crear e implementar un nuevo sistema de detección de intrusos, por lo que comenzaremos una empresa de detección de intrusos. Como producto de código abierto, Snort contiene cientos de miles de firmas de amenazas de intrusión. Debemos actuar con ética, para no robar estas firmas de otras aplicaciones e insertarlas en nuestro sistema. Simplemente nos sentamos y los reescribimos a todos. ¡Hola, Bob, Tim, Joe, vamos aquí, revisemos rápidamente todas estas 100,000 firmas!

También necesitamos crear un escáner de vulnerabilidades. Usted sabe que Nessus, un programa para la búsqueda automática de vulnerabilidades, tiene unas 80,000 firmas y scripts que verifican las vulnerabilidades. Volveremos a actuar éticamente y los reescribiremos personalmente en nuestro programa.
La gente me pregunta: "Joe, ¿haces todas estas pruebas con software de código abierto como Mod Security, Snort y similares, y respondes qué tan similares son a los productos de otros fabricantes?" Les respondo: "¡No se parecen en nada a ellos!" Debido a que los fabricantes no roban las cosas de los productos de seguridad de código abierto, se sientan y escriben todas estas reglas con sus propias manos.

Si puede hacer que sus propias firmas y líneas de ataque funcionen sin usar productos de código abierto, esta es una gran oportunidad para usted. Si no puede oponerse a los productos comerciales, moviéndose en la dirección correcta, debe encontrar un concepto que lo ayudará a ser famoso en su campo.

Todos saben lo que estoy bebiendo. Déjame mostrarte por qué bebo. Si alguna vez has auditado el código fuente en tu vida, definitivamente lo beberás, créeme, después de eso comenzarás a beber.



Entonces, nuestro lenguaje favorito es C ++. Veamos este programa: Web Knight, esta es una aplicación de firewall para servidores web. Tiene excepciones por defecto. Esto es interesante: si implemento este firewall, no me protegerá de Outlook Web Access.



Genial Esto se debe a que muchos proveedores de software extraen las reglas de las mismas aplicaciones y las insertan en su producto sin depender demasiado de la investigación. Por lo tanto, cuando implemento la aplicación de firewall de red, ¡creo que todo lo relacionado con el correo web está mal hecho! Porque prácticamente cualquier correo web viola la seguridad de forma predeterminada. Tiene un código web que ejecuta comandos del sistema y consultas desde LDAP o cualquier otro repositorio de base de datos de usuarios directamente en Internet.

Dime, ¿en qué planeta se puede considerar esto seguro? Solo piense en ello: abre Outlook Web Access, presiona b ctrl + K, busca usuarios y todo eso, administra Active Directory directamente desde Internet, ejecuta comandos del sistema en Linux si usa "correo de proteínas", o Horde o qué otra cosa Usted extrae todas estas evaluaciones y otros tipos de funcionalidad insegura. Por lo tanto, muchos firewalls los excluyen de la lista de riesgos de seguridad, intente preguntar al fabricante de su software sobre esto.

Volver a la aplicación Web Knight. Ha robado muchas reglas de seguridad de un escáner de URL que escanea todos estos rangos de direcciones IP. Entonces, ¿todos estos rangos de direcciones están excluidos de mi producto?



¿Alguno de ustedes desea establecer estas direcciones en su red? ¿Desea que su red se ejecute en estas direcciones? Sí, esto es asombroso. Bueno, desplácese hacia abajo en este programa y observe otras cosas que este firewall no quiere hacer.

¡Se llaman 1999 y quieren que su servidor web esté en el pasado! ¿Alguno de ustedes recuerda esta basura: / scripts, / iishelp, msads? Quizás un par de personas con nostalgia recordarán lo divertido que fue descifrar esas cosas. "Recuerda, hombre, cuánto tiempo hace que" matamos "servidores, ¡fue genial!"



Ahora, si observa estas excepciones, verá que puede hacer todas estas cosas: msads, impresoras, iisadmpwd, todas estas cosas que nadie necesita hoy en día. ¿Qué pasa con los comandos que no puedes ejecutar?



Esto es arp, at, cacls, chkdsk, cipher, cmd, com. Al enumerarlos, está cubierto de recuerdos de días pasados, "amigo, ¿recuerda cómo capturamos ese servidor, recuerda esos días"?

Pero lo que es realmente interesante es: ¿alguien ve WMIC aquí o tal vez PowerShell? Imagine que tiene una nueva aplicación que funciona ejecutando scripts en el sistema local, y estos son scripts modernos, porque desea ejecutar Windows Server 2008, y voy a hacer un gran trabajo protegiéndolo con reglas diseñadas para Windows 2000. Entonces que la próxima vez que el proveedor se acerque a usted con su aplicación web, pregúntele: "oye, hombre, y proporcionaste cosas como bits de administración o la ejecución de comandos de PowerShell, ¿verificaste todas las otras cosas, porque vamos a actualizar y usar el nuevo ve UIS DotNET »? ¡Pero todas estas cosas deben estar presentes en el producto de seguridad por defecto!



Lo siguiente de lo que quiero hablar contigo es de errores lógicos. Vayamos a la dirección 192.168.2.6. Esta es aproximadamente la misma aplicación que la anterior.



Puede notar algo interesante si se desplaza hacia abajo en la página y hace clic en el enlace Contáctenos.



Si observa el código fuente de la pestaña Contáctenos, este es uno de los métodos de pentesting, entonces lo que hago constantemente es notar esta línea.



¡Piénsalo! Escuché que muchos al ver esto dijeron: "¡Guau!" Una vez que realicé pruebas de penetración para, digamos, un banco multimillonario, y noté algo similar allí. Por lo tanto, no necesitamos inyecciones SQL ni secuencias de comandos entre sitios: tenemos lo principal, esta barra de direcciones.



Entonces, sin exagerar, el banco nos dijo que tenían ambos, un especialista en redes y un inspector web, y no hicieron ningún comentario. Es decir, consideraron normal que a través de un navegador se pueda abrir y leer un archivo de texto.

Es decir, simplemente puede leer el archivo directamente desde el sistema de archivos. El jefe de su servicio de seguridad me dijo: "Sí, uno de los escáneres encontró esta vulnerabilidad, pero la consideró menor". A lo que respondí, bueno, dame un minuto. Escribí en la barra de direcciones filename = .. / .. / .. / .. / boot.ini y pude leer el archivo de arranque del sistema de archivos.



Me dijeron esto: "no, no, no, ¡estos no son archivos críticos!" Respondí, ¿pero este es el servidor 2008? Dijeron que sí, ese es él. Digo, pero este servidor tiene un archivo de configuración ubicado en el directorio raíz del servidor, ¿verdad? "Correcto", responden. "Excelente", digo, "¿y si el atacante hace esto?", Y escribo filename = web.config en la barra de direcciones. Dicen: ¿y qué? ¿No ves nada en el monitor?



Digo: ¿qué sucede si hago clic derecho en el monitor y selecciono la opción "Mostrar código de página"? ¿Y qué encontraré aquí? Nada critico? ¡Veré la contraseña de administrador del servidor!



¿Y dices que no hay problema?

Pero mi parte favorita es la siguiente. No me permite ejecutar comandos en el "cuadro", pero puedo robar la contraseña y la base de datos del administrador del servidor web, ver la base de datos completa, extraer todos los materiales sobre la base de datos y las fallas del sistema desde allí, y salir con todo esto. Este es el caso cuando un chico malo dice: "¡Hola, hoy es un gran día!"



¡No permita que los productos de seguridad se conviertan en su enfermedad! ¡No dejes que los productos de seguridad te enfermen! Encuentra algunos "nerds", dales todos estos tzatskis memorables de Star Trek, interesa, aliéntalos a que se queden contigo, porque estos apestadores aburridos que no se bañan a diario son los que hacen que tus redes funcionen como debería! Estas son las personas que ayudarán a que sus productos de seguridad funcionen correctamente.

Dígame, ¿quién de ustedes puede permanecer en la misma habitación durante mucho tiempo con la persona que constantemente dice: "¡Oh, necesito imprimir urgentemente este guión!", ¿Y quién está ocupado con eso todo el tiempo? Pero necesita personas que hagan que sus productos de seguridad funcionen.

Repito una vez más: los productos de seguridad son estúpidos, porque las luces están constantemente equivocadas, constantemente cometen cosas descuidadas, simplemente no brindan seguridad. Nunca he visto un buen producto de seguridad que no requiera una persona con un destornillador, capaz de apretar donde sea necesario, para que todo funcione más o menos normalmente. Esta es solo una gran lista de reglas que dicen que esto es malo, ¡y eso es todo!

Por lo tanto, muchachos, quiero que presten atención a la educación, a cosas como seguridad, capacitación politécnica, porque hay muchos cursos gratuitos en línea sobre temas de seguridad. Aprenda Python, aprenda ensamblajes de ensamblaje, aprenda pruebas de aplicaciones web.



Esto es lo que realmente le ayuda a proteger su red. ¡Las personas inteligentes protegen las redes, los productos de red no protegen! Regrese al trabajo y dígale a su jefe que necesita más presupuesto para personas más inteligentes, sé que hay una crisis, pero aún así dígale que necesitamos más dinero para que la gente los capacite. Si compramos un producto, pero no compramos un curso sobre cómo manejarlo, porque es costoso, ¿por qué lo compramos si no vamos a enseñar a las personas cómo usarlo?

Trabajé para muchos fabricantes de productos de seguridad, pasé casi toda mi vida trabajando en la implementación de estos productos, y ya estoy harto de todos estos controles de acceso a la red y otras cosas, porque instalé y lancé todos estos productos basura. De alguna manera llegué a un cliente, querían implementar el estándar 802.1x para el protocolo EAP, por lo que tenían direcciones MAC y direcciones secundarias para cada puerto. Vine, vi que estaba mal, me di la vuelta y comencé a presionar los botones de la impresora. Usted sabe, la impresora puede imprimir una página de prueba de equipos de red con todas las direcciones MAC y direcciones IP. Pero resultó que la impresora no es compatible con el estándar 802.1x, por lo que debe excluirse.

Luego desconecté la impresora de la red y cambié la dirección MAC de mi computadora portátil a la dirección MAC de la impresora y conecté mi computadora portátil, evitando así esta costosa solución MAC, ¡piénselo! Entonces, ¿de qué me sirve esta solución MAC si una persona simplemente puede pasar cualquier equipo como impresora o como teléfono VoIP?

Así que para mí hoy, el pentesting es que paso tiempo tratando de entender y comprender el producto de seguridad que compró mi cliente. , , HIPS, NIPS, LAUGTHS, MACS , . , . , , , , .

, , MS 1103. , «» HIPS, Host Intrusion Prevention Signature, . HIPS. , , , , , .
, , .


:)


, . ? ? , , VPS $4.99 , entry-level , : VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps $19 ? ( RAID1 RAID10, 24 40GB DDR4).

Dell R730xd 2 - Equinix Tier IV ? 2 Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 $199 ! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ¡desde $ 99! Lea sobre Cómo construir un edificio de infraestructura. clase c con servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

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


All Articles