12 de abril de 2013

WPHardening 1.0

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.

Figura 1: WPHardening 1.0

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 directorios incorporando 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.

Saludos!

Descarga | WPHardening

1 comentario:

  1. Gracias Ale por probar WPHardening, con las pruebas que realizamos, eliminando esa función e implementandolo con diferentes Themes, realmente no notamos ningún tipo de problemas. De todas maneras voy a seguir investigando y realizando más test.

    Saludos!

    ResponderBorrar

Entradas populares