Luego de un par de semanas de programacion y algunos commits en los repositorios de GitHub, les quería anunciar la version 1.0 de WPHardening, una herramienta para securizar a los paquete de WordPress, ya sea antes de su instalacion o en un servidor de produccion.
WPHardening es una herramienta programada en Python y basada en la consola de comandos. Como seguidor de WordPress, decidí armar esta herramienta para automatizar el hardening que realizo y que considero indispensable para este tipo de aplicación web, ya que por defecto WordPress contiene muchos archivos innecesarios para su correcto funcionamiento y requiere de revisiones constantes.
WPHardening esta basado en las mejores practicas de seguridad y consejos que siempre leemos en diferentes papers y blogs pero que sin embargo nunca se implementa.
En esta primera version WPHardening incorpora la activación de flags para realizar diferentes tareas:
- Cambio de permisos en directorios y archivos .
- Eliminar archivos innecesarios como readme y licencias.
- Creacion del archivo robots.txt
- Evadir el fingerprinting de varias herramientas como w3af y wpscan
- Eliminar las funciones de enumeracion de versiones de WordPress independientemente del Theme que se instale.
- Recomendacion y Descarga de diferentes plugins para mejorar la seguridad.
- Finalmente permite evitar el listado de directoriosincorporando archivos index.php y .htaccess
Para comenzar a trabajar con WPHardening es necesario descargar el código directamente desde el repositorio de GitHub de la siguiente manera:
$ git clone git://github.com/elcodigok/wphardening.git
Cloning into ‘wphardening’…
remote: Counting objects: 190, done.
remote: Compressing objects: 100% (150/150), done.
remote: Total 190 (delta 116), reused 109 (delta 38)
Receiving objects: 100% (190/190), 41.79 KiB | 54 KiB/s, done.
Resolving deltas: 100% (116/116), done.
Dentro del directorio wphardening que acabamos de descargar vamos a ver una serie de archivos, donde se encuentra el código fuente de toda la herramientas y algo de información sobre el desarrollo y licencias.
$ ./wphardening.py
Usage: wphardening.py [options] arg
Options:
–version show program’s version number and exit
-h, –help show this help message and exit
-v, –verbose active verbose mode output results
Target:
This option must be specified to modify the package WordPress.
-d DIRECTORY, –dir=DIRECTORY **REQUIRED** – Working Directory.
Hardening:
Different tools to hardening WordPress.
-c, –chmod Chmod 755 in directory and 644 in files.
-r, –remove Remove files and directory.
-b, –robots Create file robots.txt
-f, –fingerprinting Deleted fingerprinting WordPress.
–delete-version Deleted version WordPress.
–plugins Download Plugins Security.
–proxy=PROXY Use a HTTP proxy to connect to the target url for –plugins.
–indexes It allows you to display the contents of directories.
Todas las opciones que les comenté anteriormente se encuentran disponibles para implementarlas.
Para lograr utilizar la herramienta correctamente, es necesario especificar siempre con los flags -d o –dir el Path donde se encuentra nuestro proyecto de WordPress, en lo personal recomiendo realizar este tipo de hardening antes de la instalación de WordPress, pero también es posible realizarlo en un entorno de producción.
De esta forma podemos utilizar todos los flags disponibles como este ejemplo:
$ ./wphardening.py -d /home/user/wordpress -c -r -b -f –delete-version –indexes –plugins
Desde ya voy a estar muy agradecido por ayudarme a difundir el proyecto y voy a estar esperando sus comentarios, críticas y recomendaciones para las futuras versiones.
Descarga | WPHardening