Ir al contenido principal

Asegurando Tomcat - Banner Grabbing para psi-probe

Dentro de los puntos que recomienda OWASP en Asegurando Tomcat, hace relación a la necesidad de no mostrar la versión de Tomcat que se utiliza, para poner un poco más difícil la preparación de un vector de ataque para el ciberdelincuente; este artículo mostrará como configurar las propiedades del Tomcat para que no muestre la versión, pero tiene un componente especial y es el uso de psi-probe, el cual es un fork que usan los sysadmin para la administración y el monitoreo de un servidor tomcat  y que genera problemas en el momento de querer hardenizar un servidor tomcat.

Para realizar esto fue necesario configurar un servidor Tomcat  y cuya configuración esta por fuera del alcance de este artículo.



Luego fue necesario configurar tomcat para que funcionara con psi-probe (hay diferentes versiones) y que puede seguir las instrucciones en este enlace.
Después  de tener configurado el Tomcat y  probe funcionando podemos ver una pantalla como esta:



Podemos analizar que si se realiza una petición http hacia una carpeta desconocida el Tomcat entrega un error 404 mostrando la versión que tiene.



A partir de este momento nos centraremos en el banner grabbing con el fin de que cuando haya un 404 No muestre la versión del servidor Tomcat o muestre algo diferente, para esto se debe realizar lo siguiente:

  • Modificar el archivo ServerInfo.properties
Este archivo se encuentra en el catalina.jar, ubicado en CATALINA_HOME/server/lib el cual es necesario desempaquetar (se puede hacer con 7zip, Winrar) o con la instrucción  

cd CATALINA_HOME/server/lib
jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties

posterior a esto se edita el archivo ServerInfo.properties y se modifica la línea server.info como se muestra a continuación, se puede poner Apache o cualquier cosa por ejemplo: Nginx, Jboss o Whatever


#server.info=Apache Tomcat/7.0.50
server.info=Apache
#server.number=7.0.50.0
server.number=0.0.0.0
server.built=Dec 19 2015 10:18:12


Luego se empaqueta otra vez el archivo (o se salva la edición si se realizó en Winrar o en 7zip), lo hice con

 jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties   

  • OWASP recomienda también modificar el archivo server.xml, ubicado generalmente en CATALINA_HOME/conf/server.xml en el tag Connector port
<Connector port="8080" ...
            server="Apache" />  <!-- server header is now Apache -->
  • Reiniciar los servicios de Tomcat, puede ser con 
        CATALINA_HOME/bin/catalina.sh stop
          CATALINA_HOME/bin/catalina.sh start

A este punto ya no debería aparecer la versión de Tomcat sino lo que hayamos puesto en la configuración anterior.





La imagen anterior, la uso para mostrar que efectivamente cambió el banner de apache- tomcat y solo quedo Apache, es necesario precisar, que cuando se está asegurando el servicio de Tomcat, este welcome no debería aparecer, porque es una de los puntos a hardenizar y que hace parte de las recomendaciones de OWASP.

Después de haber realizado los cambios necesarios para evitar mostrar la versión de Tomcat, quise probar o ingresar al psi-probe para realizar el monitoreo de los aplicativos y me encuentro con el siguiente error:



Al cabo de googlear un buen rato y realizar diferentes cambios en algunos archivos encontré la siguiente solución:

Se debe modificar el archivo spring-probe-resources.xml, que está dentro del WEB-INF del probe.war cambiando el containerWrapper, la linea de "forceFirstAdaptor" de "false" a "true" y asegurarse que el nombre como lo puso en el archivo ServerInfo.properties esté de primero en la lista de clases de adaptadores, de la siguiente forma:

<property name="forceFirstAdapter" value="true"/>
<property name="adapterClasses">
<list>
<value>com.googlecode.psiprobe.ApacheContainerAdapter</value> <value>com.googlecode.psiprobe.Tomcat60ContainerAdapter</value> <value>com.googlecode.psiprobe.Tomcat70ContainerAdapter</value> value>com.googlecode.psiprobe.Tomcat90ContainerAdapter</value>
<value>com.googlecode.psiprobe.Tomcat80ContainerAdapter</value>
                         </list>

Entonces el psi-probe opera sin ningún problema después de realizar la configuración adecuada



Si usted decidió poner en el archivo ServerInfo.properties Nginx, entonces en la primera línea deberá colocar
                        <value>com.googlecode.psiprobe.NginxContainerAdapter</value>


Para estar tranquilos recomiendo reiniciar el servicio de Tomcat en el momento de hacer los cambios.

Espero les sirva a los sysadmin que trabajan con probe, aunque también pueden usar JON.


Comentarios

Entradas populares de este blog

Instalación de Sistema Operativo Windows Desatendida

Cuando hay que realizar una instalación de un sistema operativo en Windows, se puede utilizar el software nlite, el cual puede lograr una instalación desatendida en la que se pueden integrar los controladores, poner el serial o elegir el fondo de entre otras muchas cosas que se pueden hacer. Para esto Microsoft ofrece una solución como lo es: el cual fue tomado del link http://support.microsoft.com/kb/254078/en-us How to add OEM Plug and Play drivers to Windows installations View products that this article applies to. Article ID : 254078 Last Review : March 1, 2007 Revision : 5.4 This article was previously published under Q254078 For a Microsoft Windows XP version of this article, see 314479 (http://support.microsoft.com/kb/314479/) . On This Page SUMMARY MORE INFORMATION For Microsoft Windows 2000 Unattended setup Sysprep setup RIS installations Riprep images Existing Windows installations For Windows Server 2003 Unattended setup Sysprep setup RIS installations Riprep images Exi...

Seguridad de Servicios de Internet Information Server 6.0

Seguridad de Servicios de Internet Information Server 6.0 En esta página Introducción Antes de comenzar Reducción del ámbito de ataque en el servidor Web Configuración de cuentas Configuración de seguridad para archivos y directorios Seguridad en sitios Web y directorios virtuales Configuración del nivel de sockets seguro (Secure Sockets Layer, SSL) en el servidor Web Introducción Los servidores Web son objetivo frecuente de distintos tipos de ataques de seguridad. Algunos de estos ataques son lo suficientemente graves como para causar daños importantes en factores como activos empresariales, productividad o relaciones con el cliente; todos ellos son inoportunos y resultan frustrantes. La seguridad de los servidores Web es fundamental para el éxito de su empresa. En este documento se analiza cómo comenzar el proceso de seguridad de un servidor Web que ejecuta Servicios de Internet Information Server (IIS) 6.0 con el sistema operativo Microsoft...

Configurar Shorewall en CENTOS y Debian

Tomado de  http://www.com-sl.org/staticpages/index.php?page=config-shorewall-2da-parte Como   configurar un Firewall con Shorewall en dos Interfaces de Red con políticas DROP en CentOS y Debian . Autor:  Henry D. Rosado T. Correo electrónico:  bleycklinx@gmail.com Otros Datos:   Clic Aqui En este tutorial indicare como se configura un Firewall con Shorewall con políticas DROP en dos interfaces de red para CentOS y para Debian. Shorewall Shorewall  (Shoreline Firewall) es una robusta y extensible  herramienta de alto nivel para la configuración de muros cortafuego .  Shorewall  solo necesita se le proporcionen algunos datos en algunos ficheros de texto simple y éste creará las reglas de cortafuegos correspondientes a través de  iptables .  Shorewall  puede permitir utilizar un sistema como muro cortafuegos dedicado, sistema de múltiples funciones como  puerta de enlace, dispositivo de encaminamiento y servidor . Shorewall no solo le permite configurar un firewall seguro,  poderoso y rob...