2MS-Comprobando la eficacia de Mod Security
-
Upload
javierasir2012 -
Category
Documents
-
view
89 -
download
1
description
Transcript of 2MS-Comprobando la eficacia de Mod Security
MOD SECURITY EN ACCION
2012
Javier García Cambronel SEGUNDO DE ASIR
27/01/2012
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 1
¿QUÉ ES WIRESHARK?
ATAQUE SIMPLE SOBRE XSS SOBRE DVWA COMPORTAMIENTO EN EL NAVEGADOR
COMPORTAMIENTO WIRESARK
COMPORTAMIENTO LOGS APACHE
COMPORTAMIENTO LOGS MOD SECURITY
HERRAMIENTAS AUTOMÁTICAS
XSS ME
SQL INJECT ME
ACUNETIX
HAVIJ
SQLI HELPER
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 2
¿QUÉ ES WIRESHARK?
Wireshark (antes Ethereal) es un analizador de paquetes de red, una utilidad que captura
todo tipo de información que pasa a través de una conexión. Wireshark es gratis y de código
abierto, y se puede usar para diagnosticar problemas de red, efectuar auditorías de
seguridad y aprender más sobre redes informáticas.
Uno de los usos más principales de Wireshark es la captura de paquetes, cuyos contenidos
(mensajes, código, o contraseñas) son visibles con un clic. Los datos se pueden filtrar, copiar
al portapapeles o exportar.
Las capturas se inician y controlan desde el menú Capture; presiona Control+E para empezar
o detener la recogida de paquetes. Las herramientas de análisis y estadísticas de Wireshark
permiten estudiar a fondo los resultados.
Como muchas utilidades de su tipo, Wireshark puede usarse para toda clase de propósitos, y
solo de ti depende el uso correcto de sus funcionalidades.
Pros
Análisis de datos en tiempo real o guardados
Compatible con más de 480 protocolos
Abre más de 20 formatos de captura
Abundante documentación en línea
Contras
Curva de aprendizaje muy elevada
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 3
Lo primero que debemos hacer es instalar Wireshark lo hacemos con el siguiente comando
sudo apt-get install wireshark
Una vez lo tenemos instalado lo siguiente que debemos hacer para ejecutarlo es ir a
Aplicaciones->Internet->Wireshark
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 4
ATAQUE SIMPLE SOBRE XSS SOBRE DVWA
COMPORTAMIENTO EN EL NAVEGADOR
Nos vamos a la sección de la página Web perteneciente a ataques XSS y en ella escribimos un
simple <script>alert(1);</script>
SIN PROTECCION
Como vemos el ataque xss se ejecuta perfectamente cuando no tenemos ninguna protección
PARA IMPLEMENTAR LA PROTECCION DE ATAQUES XSS
Para solamente bloquear este tipo de ataques tendríamos que meter en la carpeta de
dirección etc/apache2/conf.d/modsecurity el archivo modsecurity_crs_10_config.conf y la
carpeta optional_rules con el archivo modsecurity_crs_40_generic_attacks.conf en el que
podremos borrar las demás reglas y solo dejar las que nos protegen de ataques XSS
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 5
En el, escribimos, borramos o metemos las reglas que nos interesen. Yo por ejemplo he
dejado el siguiente código.
SecRule REQUEST_FILENAME|ARGS|ARGS_NAMES
"(?:\b(?:(?:type\b\W*?\b(?:text\b\W*?\b(?:j(?:ava)?|ecma|vb)|application\b\W*?\bx-
(?:java|vb))script|c(?:opyparentfolder|reatetextrange)|get(?:special|parent)folder|iframe\
b.{0,100}?\bsrc)\b|on(?:(?:mo(?:use(?:o(?:ver|ut)|down|move|up)|ve)|key(?:press|down|
up)|c(?:hange|lick)|s(?:elec|ubmi)t|(?:un)?load|dragdrop|resize|focus|blur)\b\W*?=|abor
t\b)|(?:l(?:owsrc\b\W*?\b(?:(?:java|vb)script|shell|http)|ivescript)|(?:href|url)\b\W*?\b(?
:(?:java|vb)script|shell)|background-
image|mocha):|s(?:(?:tyle\b\W*=.*\bexpression\b\W*|ettimeout\b\W*?)\(|rc\b\W*?\b(?
:(?:java|vb)script|shell|http):)|a(?:ctivexobject\b|lert\b\W*?\(|sfunction:))|<(?:(?:body\b.
*?\b(?:backgroun|onloa)d|input\b.*?\btype\b\W*?\bimage)\b|
?(?:(?:script|meta)\b|iframe)|!\[cdata\[)|(?:\.(?:(?:execscrip|addimpor)t|(?:fromcharcod|c
ooki)e|innerhtml)|\@import)\b)" \
"phase:2,capture,t:none,t:htmlEntityDecode,t:compressWhiteSpace,t:lowercase,ctl:auditLog
Parts=+E,deny,log,auditlog,status:403,msg:'Cross-site Scripting (XSS)
Attack',id:'950004',tag:'WEB_ATTACK/XSS',logdata:'%{TX.0}',severity:'2'"
Y por último reiniciamos Apache.
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 6
CON PROTECCION
El script no se ejecuta y nos muestra una ventana de error que podemos personalizar.
Sin cambiar el mensaje de error por defecto.
Cambiando el mensaje de error marcado en rojo en la página anterior
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 7
COMPORTAMIENTO WIRESARK
Cuando empezamos a capturar paquetes sale una ventana como esta
Escribiendo el comando que vemos en la imagen de abajo filtramos para que solo se muestre
el flujo de datos que tiene realacion con esa dirección.
SIN PROTECCION
Podemos ver el comando que hemos ejecutado y toda la información de el ordenador que
ha ejecutado ese comando.
Versión del navegador,
Versión de Windows, que en este caso es un Windows 7
Y lenguaje del navegador, el cual aunque parezca una tontería, nmos puede dar la
nacionalidad del atacante.
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 8
CON PROTECCION
Obtenemos la misma información
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 9
COMPORTAMIENTO LOGS APACHE
Los log se apache se encuentran en la dirección que podemos ver en la imagen
SIN PROTECCION
Vemos que la petición se acepta sin ningún problema pero podemos ver el comando que han
ejecutado.
CON PROTECCION
Vemos como aparte de ver el comando que se ha ejecutado podemos cer que este ha sido
denegado y el error que nos ha lanzado, en este caso el 501 pues todavía no lo había
personalizado al error 403 FORBIDDEN
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 10
COMPORTAMIENTO LOGS MOD SECURITY
SIN PROTECCION
No se guarda ningún dato
CON PROTECCION
Con protección podemos ver que la petición ha sido denegada y su código, en este caso
hemos probado con los dos errores tanto el 501 por defecto, como el 403 Forbidden,
también podemos ver el ID de la regla que ha bloqueado el ataque y donde se encuentra,
por si esto nos causara problemas deshabilitarla y como no en tag una explicación de lo que
interpreta mod security del código insertado, en este caso no se equivoca: UN ATAQUE XSS.
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 11
XSS ME
XSS es la abreviatura de Cross-Site Scriping, una manera de atacar los sitios a través de
vulnerabilidades XSS en la inyección de códigos HTML.
La herramienta busca los puntos de entrada posibles para ataques contra el sistema.
Los ataques XSS pueden causar graves daños a las aplicaciones web. En definitiva, XSS Me te
ayuda a detectar las vulnerabilidades XSS para proteger tus aplicaciones de errores...
https://addons.mozilla.org/es-es/firefox/addon/xss-me/eula/88414?src=dp-btn-primary
Podemos ejecutarlo desde la barra de herramientas del navegador
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 12
También podemos insertar nuestras propias reglas
Nos vamos a una de las dos páginas de ataques XSS de DVWA
http://192.168.1.36/dvwa/vulnerabilities/xss_s/
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 13
RESULTADOS XSS ME
SIN PROTECCION
Al hacer el análisis vemos los resultados que nos arroja
Y aquí vemos como los comandos que se han ejecutado y no han tenido éxito quedan
permanentemente a la vista de todos.
CON PROTECCION
Da los mismos resultados, no tiene mucho sentido, quizás es porque ¿las reglas no se han
activado bien? Si se han activado pues no podemos acceder con nuestra IP, para esta prueba
las metí completas, por si acaso.
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 14
SQL INJECT ME
Las vulnerabilidades de SQL Injection pueden causar mucho daño a una aplicación web. Un
usuario maligno podrá ver registros, eliminar registros, colocar las tablas o acceder a tu
servidor. SQL Inject-Me es un complemento de Firefox usado para evaluar las
vulnerabilidades de SQL Injection.
La herramienta funciona a través del envió de las bases de datos a través de los campos del
formulario. Luego busca los mensajes de error en las bases de datos que se guardan en
códigos HTML de una página web.
La herramienta no intenta comprometer la seguridad del sistema. Busca los posibles puntos
de entrada para un ataque contra el sistema. No hace ningún análisis, ni tiene paquetes de
rastreo o ataques al cortafuegos.
Para encontrarlo nos desplazamos a la barra de herramientas de nuestro navegador
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 15
Nos vamos a la página de DVWA donde vamos a realizar el ataque.
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 16
RESULTADOS SQL INJECT ME
SIN PROTECCION
Ningún error
CON PROTECCION
Mas de lo mismo
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 17
ACUNETIX
SIN PROTECCION
Detecta todo lo que vemos en la pantalla de información
Versión de Apache
Sistema operativo
Directorio base
Una vez terminado el análisis vemos que solo ha encontrado un error grave, nada de XSS ni
SQL, la verdad muy raro pero bueno….. encontramos un error de nivel high veamos cual es.
Vemos que lo que saca es la contraseña de Administrador, lo cual… esta mas que bien
ATAQUE TERMINADO ;)
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 18
CON PROTECCION
Vemos que la versión de Apache que nos detecta no es la que pertenece al nuestro, el
programa nos esta engañando.
Tambien nos miente sobre el sistema operativo que esta corriendo, diciéndonos que corre
sobre FEDORA, siendo mentira.
Vemos el resumen como ha cambiado el aspecto, dándonos menos información en principio.
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 19
Y así es, Además la información que nos da es completamente Falsa.
HAVIJ
SIN PROTECCION
No encuentra nada de nada
[MOD SECURITY EN ACCION ] 27 de enero de 2012
[Escriba texto] Página 20
SQLI HELPER
SIN PROTECCION
Solo encuentra la versión de apache y de PHP
Queda por probar SQLMAP (El cuál es el único que podría sacar las bases de adtos por su
versatilidad y potencia).
No se ha realizado el análisis con esta herramienta, pues con la última versión de Python que
es la que tengo instalada que era necesaria para un JOINER, no funciona bien y habría que
volver a la versión anterior.