Beruflich Dokumente
Kultur Dokumente
de tu aplicacin web
Publicado en 18 junio, 2014 por lvaro Reig Gonzlez 2 comentarios
experto en la materia
PHP
Ubuntu Server
1
2
3 Starting Nmap 5.21 ( http://nmap.org ) at 2014-05-06 20:34 CEST
4 Nmap scan report for NOMBRE_DEL_HOST (X.X.X.X)
is up (0.049s latency).
5 Host
Not shown: 998 filtered ports
6 PORT
STATE SERVICE
7 80/tcp
open
http
8 Device type: general purpose|WAP|specialized
9 Running (JUST GUESSING) : Linux 2.6.X|2.4.X (87%), Linksys Linux 2.4.X (86%), Crestron
Aggressive OS guesses: Linux 2.6.22 (87%), Linux 2.6.23 (87%), OpenWrt White Russian 0
1 7.09 (Linux 2.6.22) (86%), Crestron XPanel control system (85%)
0 No exact OS matches for host (test conditions non-ideal).
11
1 OS detection performed. Please report any incorrect results at http://nmap.org/submit/
2 Nmap done: 1 IP address (1 host up) scanned in 13.12 seconds
1
3
1 nc -w 10 NOMBRE_DEL_HOST 80
2 HEAD / HTTP/1.0
La respuesta:
1
2
3
4
5
6
7
8
9
10
11
12
13
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 06 May 2014 18:39:17 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Vary: Accept-Encoding
X-Powered-By: PHP/VERSION+NOMBRE_DE_REPOSITORIO~NOMBRE_SO+1
X-Pingback: http://NOMBRE_DEL_HOST/xmlrpc.php
Link: <http://wp.me/3dPWl>; rel=shortlink
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Page-Speed: 1.7.30.4-3847
Cache-Control: max-age=0, no-cache
14
Como podis ver, se ve tanto el servidor (cabecera Server) como la versin de
PHP utilizada (cabecera X-Powered-By), de la que se poda deducir el
repositorio del que se instal y el sistema operativo del servidor.
Esta segunda cabecera es la que ms me preocup, ya que sabiendo la versin de
PHP y el sistema operativo utilizada en el servidor es ms sencillo
explotar vulnerabilidades. Investigando un poco averig que esa cabecera la
introduce PHP y desactivarla es tan sencillo como cambiar una linea del archivo de
configuracin php.ini.
Basta con buscar la linea expose_php=On y cambiarlo a expose_php=Off.
Tras ello, hay que reiniciar php-fpm y el servidor web
En cuanto a la cabecera Server, lo ms preocupante hubiera sido que mostrara
la versin, pero no me termina de gusta que muestre el servidor web utilizado. Mi
primer impulso fue ofuscarla, pero tras leer alguna discusin al respecto y leer las
implicaciones me convenc de que:
1. Seguramente ese dato se pueda obtener de otros modos.
2. Al ocultar la versin tampoco es una informacin especialmente
interesante.
Por lo que decid olvidarme de ello.
4.-Buscar vulnerabilidades
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
La salida de w3af es demasiado extensa como para ponerla aqu, pero utilizando
los perfiles predeterminados podemos obtener informacin muy valiosa para
mejorar la seguridad de la aplicacin.
Hay que tener en cuenta que herramientas como Nikto o W3af realizan muchas
peticiones HTTP para tratar de obtener informacin. Es muy adecuado tener
instalado algn Web Application Firewall o al menos un plugin que bloquee las
direcciones IP que realicen demasiadas peticiones en poco tiempo. De cara a
obtener la mayor cantidad de informacin posible, puede ser interesante
desactivar estas herramientas antes de lanzar las peticiones.
Aunque suene evidente, insistir en que todos los ficheros sensibles del sistema
operativo deben estar lo ms restringidos posible. Por ejemplo, un VirtualHost slo
debe ser ledo y escrito por root.
de 2048b.
Revisar los algoritmos utilizados. Para ello, es interesante
utilizar TLSSLed.
Usar las cabeceras STS.
Evitar las redirecciones HTTP -> HTTPS, ya que son vulnerables a SSL
Strip.
Asegurarse de que el certificado utilizado es designado
como confiable por los navegadores. Esto implica utilizar autoridades
de certificacin (AC) cuyo certificado raz est incluido por defecto y
genrico
Olvid la contrasea => Se ha enviado un enlace etc etc / Esa
cuenta no existe
Para evitar dar ms informacin de la necesaria, se pueden configurar los
mensajes de error de modo que den la menor informacin posible:
Crear una cuenta => Responder siempre Se ha enviado un correo para
Herramientas utilizadas
Nmap y Netcat para examinar las cabeceras HTTP.
W3AF y Nikto para hacer un escner general de vulnerabilidades.
Phpsecinfo para comprobar la configuracin de una aplicacin PHP.
TLSSLed para verificar la configuracin de HTTPS.
Brutus para evaluar la calidad de las contraseas.
Sqlmap para buscar vulnerabilidades de tipo SQL Injection.
Fuentes:
http://www.raulsiles.com/
https://www.ccn.cni.es/
http://stackoverflow.com/questions/962230/hide-x-powered-by-nginx
http://serverfault.com/questions/214242/can-i-hide-all-server-os-info
https://gist.github.com/plentz/6737338
http://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html
https://www.modsecurity.org/
Si te ha gustado, comprtelo