martes, 17 de mayo de 2016

Subversion: backup y restauración fácil

Hay muchos manuales con comandos muy completos para realizar un backup o una restauración de un repositorio subversion. Yo pongo a continuación los comandos que utilizo en el 99% de los casos para que si alguien se encuentra en la situación de realizar una copia de seguridad o restaurarla no tenga que “calentarse los casco” mirando lo que significa cada uno de los parámetros o mirando si tiene tal o cual opción activa en apache.

Backup

Primero tendremos que localizar en que directorio está nuestro repositorio (en mi caso se encuentra en /var/www/svn/ que es el lugar más común) y luego lanzamos el siguiente comando que nos generará un dump con todo el backup completo del repositorio:

svnadmin dump ruta_absoluta_del_repositorio > nombre_del_backup

Ejemplo

[root@lapsusmentis ~]# svnadmin dump /var/www/svn/lapsusmentis > lapsusmentis

Restauración

Antes de nada indicar que si queremos restaurar el backup en el mismo subversion de donde obtuvimos el backup, primero tendremos que borrar el directorio con el comando rm -rf. En mi caso sería:

[root@lapsusmentis ~]#  rm -rf /var/www/svn/lapsusmentis

Tras este paso, generaremos un nuevo repositorio con el siguiente comando:

[root@lapsusmentis ~]#  svnadmin create /var/www/svn/nuevo_repositorio

Para finalizar, volcaremos el backup con el comando que pongo a continuación:

[root@lapsusmentis ~]#  svnadmin load /var/www/svn/nuevo_repositorio < lapsusmentis

lunes, 11 de abril de 2016

El error de guardar contraseñas en el navegador

En general todos los navegadores permiten que el usuario guarden sus credenciales de acceso (usuario/contraseña) de una web en él, estando activada esta opción por defecto tras su instalación y recordándonos que tenemos esta opción disponible cada vez que entramos en una nueva web que requiere usuario/password para acceder. A continuación pongo una captura para que quede claro al mensaje que me refiero (esta es de Firefox pero en el resto de navegadores es similar).




Aparentemente es un lugar seguro porque si desde el apartado de configuración del navegador le indicamos que nos muestre las contraseñas guardadas, el navegador nos pedirá introducir la contraseña para desbloquear esa opción (normalmente es la del usuario con el que hayamos iniciado sesión en el equipo). La imagen que pongo a continuación es del navegador Chrome pero es similar en el resto de navegadores.

Pero esta seguridad es una quimera porque como muestro a continuación es sencillo que una tercera persona que utilice o acceda al pc obtenga no solo el acceso a la web sino también nuestra contraseña. En los pasos que pongo a continuación he elegido la página de acceso a gmail para explicarlo. Parto de la premisa de que he guardado la contraseña para una cuenta de gmail y por tanto cuando entro el navegador me completa el usuario y contraseña o al poner el usuario me completa la contraseña (esto depende del navegador y de como la haya guardado):

Una vez que estamos en esta situación, vamos a hacer que el navegador en vez de círculos nos muestre los caracteres en texto de la contraseña. Para ello pinchamos con el botón derecho en el cuadro donde aparece nuestra contraseña oculta y realizamos click en Inspeccionar elemento:

Tras esto nos aparecerá el código html de la página y tendremos la línea concreta que afecta cuadro que alberga nuestra contraseña. Para que muestre el texto de la contraseña solo tendremos que cambiar el valor de la variable type de password (type="password") a text (type="text") tal y como muestro en las 2 capturas siguientes:





Como hemos comprobado es muy sencillo descubrir una contraseña que tengamos guardada en el navegador. Mi recomendación es que nunca guardemos las contraseñas aquí, lo más adecuado es usar algún programa como por ejemplo keepass donde se almacenan de una manera segura y gracias a la cantidad de plugins que tiene podremos iniciar sesión en una web de una manera rápida, cómoda y segura.

lunes, 4 de abril de 2016

Instalar VMware Tools en una máquina virtual Linux-Red Hat

Cuando creamos una máquina virtual linux en VMware, la instalación de las VMware Tools no es tan directa como en Windows dado que es habitual tener los servidores linux en un INIT 3 y por tanto la instalación la tendremos que realizar desde la línea de comandos. En los pasos que pongo a continuación, la máquina virtual donde vamos a instalar las VMware Tools tiene un sistema operativo Red Hat y está alojada en un ESXI registrado en un vCenter.

1- Verificamos que no tenemos instaladas las VMware Tools con el siguiente comando:
[root@localhost ~]#  grep buildNr /usr/bin/vmware-config-tools.pl

Si la salida del comando es grep: /usr/bin/vmware-config-tools.pl: No existe el fichero o el directorio es que no las tenemos instaladas. En caso de tenerlas instaladas nos aparecerá una salida similar a esta:

[root@localhost ~]# grep buildNr /usr/bin/vmware-config-tools.pl
  my $buildNr;
  $buildNr = '9.4.10 build-2068191';
  return remove_whitespaces($buildNr);

2- Publicamos en el directorio /dev/cdrom de la máquina virtual las VMware Tools para poder instalarlas. Esto lo podemos realizar conectándonos al vCenter bien con el cliente ligero o bien con el cliente pesado (pongo las capturas de pantalla de cada uno de ellos para que se vean las rutas).:
  • Conectándonos al vCenter que gestiona los ESXI mediante el vSphere Web Client (cliente ligero), pinchando con el botón secundario en VM->Guest->Install/Upgrade VMware Tools en la máquina virtual donde queramos instalarlo.
  • Conectándonos al vCenter que gestiona los ESXI mediante el cliente pesado, pinchando con el botón secundario en VM->Guest->Install/Upgrade VMware Tools en la máquina virtual donde queramos instalarlo.

Al hacer click sobre el botón "Install/Upgrade VMware Tools" o sobre "Install VMware Tools" nos parecerá el siguiente mensaje y tendremos que pinchas en Mount:



3- Nos logamos en la máquina virtual donde hemos publicado las VMware Tools y generamos el directorio /mnt/cdrom donde posteriormente montaremos /dev/cdrom:
root@10.0.10.188's password:
Last login: Sun Apr  3 21:35:26 2016 from rencinar
[root@localhost ~]# mkdir /mnt/cdrom


4- Montamos /dev/cdrom en el directorio /mnt/cdrom/ que hemos creado en el paso anterior:
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: dispositivo de bloques /dev/cdrom está protegido contra escritura; se monta como sólo lectura
 


5- Comprobamos que el montaje se ha realizado correctamente y que tenemos un archivo similar a VMwareTools-9.4.tar.gz, que es el que utilizaremos para instalarlas.
[root@localhost ~]# ls /mnt/cdrom/
manifest.txt                       run_upgrader.sh                    VMwareTools-9.4.10-2068191.tar.gz  vmware-tools-upgrader-32           vmware-tools-upgrader-64                        
 


6- Copiamos el archivo VMwareTools-9.4.10-2068191.tar.gz al directorio /tmp/ para extraer su contenido. Tras realizar la extracción se nos generará un conjunto de directorios y dentro del directorio vmware-tools-distrib se encuentra el archivo vmware-install.pl que es el que ejecutaremos para empezar con la instalación:
[root@localhost ~]# cp /mnt/cdrom/VMwareTools-9.4.10-2068191.tar.gz /tmp/                                                                                                                                                       
[root@localhost ~]# cd /tmp/

[root@localhost tmp]# tar xvzf VMwareTools-9.4.tar.gz
[root@localhost tmp]# cd vmware-tools-distrib/
[root@localhost vmware-tools-distrib]# ./vmware-install.pl

Creating a new VMware Tools installer database using the tar4 format.
Installing VMware Tools.
In which directory do you want to install the binary files?
[/usr/bin]
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc/rc.d]
What is the directory that contains the init scripts?
[/etc/rc.d/init.d]
In which directory do you want to install the daemon files?
[/usr/sbin]
In which directory do you want to install the library files?
[/usr/lib/vmware-tools]
The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]
In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]
The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]
The installation of VMware Tools 9.4.10 build-2068191 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".
Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]
Initializing...
Making sure services for VMware Tools are stopped.
Stopping VMware Tools services in the virtual machine:
   Guest operating system daemon:                          [  OK  ]
   Unmounting HGFS shares:                                 [  OK  ]
   Guest filesystem driver:                                [  OK  ]
The VMware FileSystem Sync Driver (vmsync) allows external third-party backup
software that is integrated with vSphere to create backups of the virtual
machine. Do you wish to enable this feature? [no]
Found a compatible pre-built module for vmci.  Installing it...
Found a compatible pre-built module for vsock.  Installing it...
Found a compatible pre-built module for vmxnet3.  Installing it...
Found a compatible pre-built module for pvscsi.  Installing it...
Found a compatible pre-built module for vmmemctl.  Installing it...
The VMware Host-Guest Filesystem allows for shared folders between the host OS
and the guest OS in a Fusion or Workstation virtual environment.  Do you wish
to enable this feature? [no]
Found a compatible pre-built module for vmxnet.  Installing it...
The vmblock enables dragging or copying files between host and guest in a
Fusion or Workstation virtual environment.  Do you wish to enable this feature?
[no]
VMware automatic kernel modules enables automatic building and installation of
VMware kernel modules at boot that are not already present. This feature can be
enabled/disabled by re-running vmware-config-tools.pl.
Would you like to enable VMware automatic kernel modules?
[no]
Detected X version 7.1
Unable to detect guest resolution.
Please choose one of the following display sizes that X will start with:
[1]< 640x480
[2]  800x600
[3]  1024x768
[4]  1280x800
Please enter a number between 1 and 4:
[1] 2
X is running fine with the new config file.
Creating a new initrd boot image for the kernel.
   Checking acpi hot plug                                  [  OK  ]
Starting VMware Tools services in the virtual machine:
   Switching to guest configuration:                       [  OK  ]
   Paravirtual SCSI module:                                [  OK  ]
   Guest memory manager:                                   [  OK  ]
   VM communication interface:                             [  OK  ]
   VM communication interface socket family:               [  OK  ]
   Guest operating system daemon:                          [  OK  ]
The configuration of VMware Tools 9.4.10 build-2068191 for Linux for this
running kernel completed successfully.
You must restart your X session before any mouse or graphics changes take
effect.
You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line.
To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.
Enjoy,
--the VMware team
Found VMware Tools CDROM mounted at /mnt/cdrom. Ejecting device /dev/cdrom ...
You have new mail in /var/spool/mail/root


Tras esto tendremos instaladas las VMware Tools. Podremos comprobarlo lanzando el comando propuesto al principio y veremos que la salida ya no será "grep: /usr/bin/vmware-config-tools.pl: No existe el fichero o el directorio" sino algo parecido a esta:

[root@localhost ~]# grep buildNr /usr/bin/vmware-config-tools.pl
  my $buildNr;
  $buildNr = '9.4.10 build-2068191';
  return remove_whitespaces($buildNr);

viernes, 4 de marzo de 2016

Pgpass-Script psql no interactivo sin pedir password o con password automática

Cuando creamos un script para ejecutar tareas automáticas en PostgreSQL con psql uno de los problemas que nos podemos encontrar es que, para ejecutar una sentencia, por defecto PostgreSQL nos pedirá una contraseña y por tanto el proceso fallará. Para solucionar esto y que el script no pida la contraseña solo es necesario incluir en el home del usuario que lo lanza un fichero .pgpass con la siguiente estructura:

              hostname:port:database:username:password

Por ejemplo si el script se va a ejecutar en el mismo servidor donde está alojada la base de datos (localhost), el puerto es el 5432, el nombre de la base de datos es lapsusmentis, el usuario es metempsicosis y la contraseña es roro lo que tendríamos que incluir en el fichero sería:

              localhost:5432:lapsusmentis:metempsicosis:roro

Para generar el fichero de una manera rápida y cómoda podemos lanzar el siguiente comando que generará el archivo .pgpass en el home del root:

[root@lapsus ~]# echo  localhost:5432:lapsusmentis:metempsicosis:roro >> /root/.pgpass

Como notas adicionales tenemos que tener en cuenta que para usuarios distintos al root el directorio de home del usuario es/home/nombre_del_usuario y que los permisos que ha de tener el fichero .pgpass han de ser de de lectura y escritura solo para el propietario (en caso de tener permisos superiores no funcionará por seguridad). Si queremos cambiar estos permisos para garantizar que son correctos podemos lanzar el comando:

[root@lapsus ~]# chmod 0600 /root/.pgpass

viernes, 12 de febrero de 2016

For loop - Script para llenar tablas en PostgreSql

Si tenemos la necesidad de llenar una base de datos PostgreSql por ejemplo para realizar pruebas de estrés, podemos utilizar una función que utilice un for loop como el que os dejo a continuación. Solo tendréis que modificar la parte de el número de repeticiones (1255255) y de los insert (person,direccion) en función del volumen de datos que necesitéis y las tablas que queráis llenar.

Ejemplo de script:

CREATE OR REPLACE FUNCTION cargar_bd()
RETURNS void AS
$BODY$BEGIN
for i in 1..1255255 loop
insert into person (nombre) values ('nombre');
insert into direccion (calle) values ('Avd. Lapsusmentis nº 3');
end loop;
END
$BODY$
LANGUAGE 'plpgsql';

Para ejecutarlo bastará con lanzarlo con la siguiente consulta y se repetirá 1255255 :

SELECT  cargar_bd();

lunes, 8 de febrero de 2016

Comandos importantes en WPScan

Actualización de las bases de datos

root@PC:/home/rencinar/software/wpscan/wpscan# ruby wpscan.rb --update
_______________________________________________________________
        __          _______   _____                 
        \ \        / /  __ \ / ____|                
         \ \  /\  / /| |__) | (___   ___  __ _ _ __ 
          \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
           \  /\  /  | |     ____) | (__| (_| | | | |
            \/  \/   |_|    |_____/ \___|\__,_|_| |_|

        WordPress Security Scanner by the WPScan Team
                       Version 2.9
          Sponsored by Sucuri - https://sucuri.net
   @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_
_______________________________________________________________

[i] Updating the Database ...
[i] Update completed.


Escaneo genérico de vulnerabilidades

Con el siguiente comando podemos sacar un listado genérico de las vulnerabilidades que tiene el WordPress que estamos auditando. En cada apartado nos indican las url donde podemos consultar en que consisten estas vulnerabilidades, como solucionarlas y como explotarlas.
root@PC:/home/rencinar/software/wpscan/wpscan# ruby wpscan.rb --url http://XXXXXXXX.com
_______________________________________________________________
        __          _______   _____                 
        \ \        / /  __ \ / ____|                
         \ \  /\  / /| |__) | (___   ___  __ _ _ __ 
          \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
           \  /\  /  | |     ____) | (__| (_| | | | |
            \/  \/   |_|    |_____/ \___|\__,_|_| |_|

        WordPress Security Scanner by the WPScan Team
                       Version 2.9
          Sponsored by Sucuri - https://sucuri.net
   @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_
_______________________________________________________________

[+] URL: http://XXXXXXX/
[+] Started: Fri Jan 15 16:00:47 2016

[!] The WordPress 'http://XXXXXXX/readme.html' file exists exposing a version number
[+] Interesting header: SERVER: Apache
[+] XML-RPC Interface available under: http://XXXXXXXXX/xmlrpc.php

[+] WordPress version 3.9.1 identified from meta generator
[!] 20 vulnerabilities identified from the version number

[!] Title:  WordPress 3.9 & 3.9.1 Unlikely Code Execution
    Reference: https://wpvulndb.com/vulnerabilities/7527
    Reference: https://core.trac.wordpress.org/changeset/29389
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5203
[i] Fixed in: 3.9.2

[!] Title: WordPress 2.0.3 - 3.9.1 (except 3.7.4 / 3.8.4) CSRF Token Brute Forcing
    Reference: https://wpvulndb.com/vulnerabilities/7528
    Reference: https://core.trac.wordpress.org/changeset/29384
    Reference: https://core.trac.wordpress.org/changeset/29408
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5204
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5205
[i] Fixed in: 3.9.2

[!] Title: WordPress 3.0 - 3.9.1 Authenticated Cross-Site Scripting (XSS) in Multisite
    Reference: https://wpvulndb.com/vulnerabilities/7529
    Reference: https://core.trac.wordpress.org/changeset/29398
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5240
[i] Fixed in: 3.9.2

[!] Title: WordPress 3.6 - 3.9.1 XXE in GetID3 Library
    Reference: https://wpvulndb.com/vulnerabilities/7530
    Reference: https://github.com/JamesHeinrich/getID3/commit/dc8549079a24bb0619b6124ef2df767704f8d0bc
    Reference: http://getid3.sourceforge.net/
    Reference: http://wordpress.org/news/2014/08/wordpress-3-9-2/
    Reference: http://lab.onsec.ru/2014/09/wordpress-392-xxe-through-media-upload.html
    Reference: https://github.com/ONsec-Lab/scripts/blob/master/getid3-xxe.wav
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2053
[i] Fixed in: 3.9.2

[!] Title: WordPress 3.4.2 - 3.9.2 Does Not Invalidate Sessions Upon Logout
    Reference: https://wpvulndb.com/vulnerabilities/7531
    Reference: http://whiteoaksecurity.com/blog/2012/12/17/cve-2012-5868-wordpress-342-sessions-not-terminated-upon-explicit-user-logout
    Reference: http://blog.spiderlabs.com/2014/09/leveraging-lfi-to-get-full-compromise-on-wordpress-sites.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5868
[i] Fixed in: 4.0

[!] Title: WordPress 3.0-3.9.2 - Unauthenticated Stored Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/7680
    Reference: http://klikki.fi/adv/wordpress.html
    Reference: https://wordpress.org/news/2014/11/wordpress-4-0-1/
    Reference: http://klikki.fi/adv/wordpress_update.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9031
[i] Fixed in: 4.0

[!] Title: WordPress <= 4.0 - Long Password Denial of Service (DoS)
    Reference: https://wpvulndb.com/vulnerabilities/7681
    Reference: http://www.behindthefirewalls.com/2014/11/wordpress-denial-of-service-responsible-disclosure.html
    Reference: https://wordpress.org/news/2014/11/wordpress-4-0-1/
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9034
    Reference: http://osvdb.org/show/osvdb/114857
    Reference: https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_long_password_dos
    Reference: https://www.exploit-db.com/exploits/35413/
    Reference: https://www.exploit-db.com/exploits/35414/
[i] Fixed in: 4.0.1

[!] Title: WordPress <= 4.0 - Server Side Request Forgery (SSRF)
    Reference: https://wpvulndb.com/vulnerabilities/7696
    Reference: http://www.securityfocus.com/bid/71234/
    Reference: https://core.trac.wordpress.org/changeset/30444
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9038
[i] Fixed in: 4.0.1

[!] Title: WordPress 3.9, 3.9.1, 3.9.2, 4.0 - XSS in Media Playlists
    Reference: https://wpvulndb.com/vulnerabilities/7697
    Reference: https://core.trac.wordpress.org/changeset/30422
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9032
[i] Fixed in: 4.0.1

[!] Title: WordPress <= 4.1.1 - Unauthenticated Stored Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/7929
    Reference: https://wordpress.org/news/2015/04/wordpress-4-1-2/
    Reference: https://cedricvb.be/post/wordpress-stored-xss-vulnerability-4-1-2/
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3438
[i] Fixed in: 4.1.2

[!] Title: WordPress <= 4.2.2 - Authenticated Stored Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8111
    Reference: https://wordpress.org/news/2015/07/wordpress-4-2-3/
    Reference: https://twitter.com/klikkioy/status/624264122570526720
    Reference: https://klikki.fi/adv/wordpress3.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5622
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5623
[i] Fixed in: 3.9.7

[!] Title: WordPress <= 4.2.3 - wp_untrash_post_comments SQL Injection
    Reference: https://wpvulndb.com/vulnerabilities/8126
    Reference: https://github.com/WordPress/WordPress/commit/70128fe7605cb963a46815cf91b0a5934f70eff5
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2213
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.2.3 - Timing Side Channel Attack
    Reference: https://wpvulndb.com/vulnerabilities/8130
    Reference: https://core.trac.wordpress.org/changeset/33536
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5730
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.2.3 - Widgets Title Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8131
    Reference: https://core.trac.wordpress.org/changeset/33529
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5732
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.2.3 - Nav Menu Title Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8132
    Reference: https://core.trac.wordpress.org/changeset/33541
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5733
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.2.3 - Legacy Theme Preview Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8133
    Reference: https://core.trac.wordpress.org/changeset/33549
    Reference: https://blog.sucuri.net/2015/08/persistent-xss-vulnerability-in-wordpress-explained.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5734
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.3 - Authenticated Shortcode Tags Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8186
    Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
    Reference: http://blog.checkpoint.com/2015/09/15/finding-vulnerabilities-in-core-wordpress-a-bug-hunters-trilogy-part-iii-ultimatum/
    Reference: http://blog.knownsec.com/2015/09/wordpress-vulnerability-analysis-cve-2015-5714-cve-2015-5715/
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5714
[i] Fixed in: 3.9.9

[!] Title: WordPress <= 4.3 - User List Table Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8187
    Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
    Reference: https://github.com/WordPress/WordPress/commit/f91a5fd10ea7245e5b41e288624819a37adf290a
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7989
[i] Fixed in: 3.9.9

[!] Title: WordPress <= 4.3 - Publish Post and Mark as Sticky Permission Issue
    Reference: https://wpvulndb.com/vulnerabilities/8188
    Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
    Reference: http://blog.checkpoint.com/2015/09/15/finding-vulnerabilities-in-core-wordpress-a-bug-hunters-trilogy-part-iii-ultimatum/
    Reference: http://blog.knownsec.com/2015/09/wordpress-vulnerability-analysis-cve-2015-5714-cve-2015-5715/
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5715
[i] Fixed in: 3.9.9

[!] Title: WordPress  3.7-4.4 - Authenticated Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8358
    Reference: https://wordpress.org/news/2016/01/wordpress-4-4-1-security-and-maintenance-release/
    Reference: https://github.com/WordPress/WordPress/commit/7ab65139c6838910426567849c7abed723932b87
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1564
[i] Fixed in: 3.9.10

[+] WordPress theme in use: XXXXX - v1.2.0

[+] Name: XXXXXX - v1.2.0
 |  Location: http://XXXXXXXXX/wp-content/themes/XXXXX/
 |  Readme: http://XXXXXXX/wp-content/themes/XXXX/readme.txt
 |  Style URL: http://XXXXXXXX/wp-content/themes/XXXXX/style.css
 |  Referenced style.css: http://blog.XXXXXX.com/wp-content/themes/XXXXX/style.css
 |  Theme Name: XXXXXX
 |  Theme URI: http://XXXXXXXXXXX
 |  Description: XXXXX Clean, Responsive and Modern Theme for Personal Blogging
 |  Author: XXXXXX
 |  Author URI: http://XXXXXX.com

[+] Enumerating plugins from passive detection ...
[+] No plugins found

[+] Finished: Fri Jan 15 16:00:48 2016
[+] Requests Done: 36
[+] Memory used: 3.219 MB
[+] Elapsed time: 00:00:01




Escaneo en profundidad de vulnerabilidades

Con la opción --enumerate WPScan realizará un escaneo profundo de las vulnerabilidades de WordPress donde entre otros datos podremos obtener los usuarios dados de alta en él. El obtener estos usuarios nos permitirá por ejemplo realizar una auditoría de las contraseñas mediante un ataque por diccionario por esto con la información obtenida con --enumerate podremos tener información adicional para completar una auditoría de seguridad exhaustiva de WordPress.

root@PC:/home/rencinar/software/wpscan/wpscan# ruby wpscan.rb --url http://XXXXX --enumerate
_______________________________________________________________
        __          _______   _____                 
        \ \        / /  __ \ / ____|                
         \ \  /\  / /| |__) | (___   ___  __ _ _ __ 
          \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
           \  /\  /  | |     ____) | (__| (_| | | | |
            \/  \/   |_|    |_____/ \___|\__,_|_| |_|

        WordPress Security Scanner by the WPScan Team
                       Version 2.9
          Sponsored by Sucuri - https://sucuri.net
   @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_
_______________________________________________________________

[+] URL: http://XXXXXXXX/
[+] Started: Fri Jan 15 16:01:34 2016

[!] The WordPress 'http://XXXXXX/readme.html' file exists exposing a version number
[+] Interesting header: SERVER: Apache
[+] XML-RPC Interface available under: http://XXXXXXX/xmlrpc.php

[+] WordPress version 3.9.1 identified from meta generator
[!] 20 vulnerabilities identified from the version number

[!] Title:  WordPress 3.9 & 3.9.1 Unlikely Code Execution
    Reference: https://wpvulndb.com/vulnerabilities/7527
    Reference: https://core.trac.wordpress.org/changeset/29389
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5203
[i] Fixed in: 3.9.2

[!] Title: WordPress 2.0.3 - 3.9.1 (except 3.7.4 / 3.8.4) CSRF Token Brute Forcing
    Reference: https://wpvulndb.com/vulnerabilities/7528
    Reference: https://core.trac.wordpress.org/changeset/29384
    Reference: https://core.trac.wordpress.org/changeset/29408
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5204
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5205
[i] Fixed in: 3.9.2

[!] Title: WordPress 3.0 - 3.9.1 Authenticated Cross-Site Scripting (XSS) in Multisite
    Reference: https://wpvulndb.com/vulnerabilities/7529
    Reference: https://core.trac.wordpress.org/changeset/29398
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-5240
[i] Fixed in: 3.9.2

[!] Title: WordPress 3.6 - 3.9.1 XXE in GetID3 Library
    Reference: https://wpvulndb.com/vulnerabilities/7530
    Reference: https://github.com/JamesHeinrich/getID3/commit/dc8549079a24bb0619b6124ef2df767704f8d0bc
    Reference: http://getid3.sourceforge.net/
    Reference: http://wordpress.org/news/2014/08/wordpress-3-9-2/
    Reference: http://lab.onsec.ru/2014/09/wordpress-392-xxe-through-media-upload.html
    Reference: https://github.com/ONsec-Lab/scripts/blob/master/getid3-xxe.wav
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-2053
[i] Fixed in: 3.9.2

[!] Title: WordPress 3.4.2 - 3.9.2 Does Not Invalidate Sessions Upon Logout
    Reference: https://wpvulndb.com/vulnerabilities/7531
    Reference: http://whiteoaksecurity.com/blog/2012/12/17/cve-2012-5868-wordpress-342-sessions-not-terminated-upon-explicit-user-logout
    Reference: http://blog.spiderlabs.com/2014/09/leveraging-lfi-to-get-full-compromise-on-wordpress-sites.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-5868
[i] Fixed in: 4.0

[!] Title: WordPress 3.0-3.9.2 - Unauthenticated Stored Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/7680
    Reference: http://klikki.fi/adv/wordpress.html
    Reference: https://wordpress.org/news/2014/11/wordpress-4-0-1/
    Reference: http://klikki.fi/adv/wordpress_update.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9031
[i] Fixed in: 4.0

[!] Title: WordPress <= 4.0 - Long Password Denial of Service (DoS)
    Reference: https://wpvulndb.com/vulnerabilities/7681
    Reference: http://www.behindthefirewalls.com/2014/11/wordpress-denial-of-service-responsible-disclosure.html
    Reference: https://wordpress.org/news/2014/11/wordpress-4-0-1/
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9034
    Reference: http://osvdb.org/show/osvdb/114857
    Reference: https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_long_password_dos
    Reference: https://www.exploit-db.com/exploits/35413/
    Reference: https://www.exploit-db.com/exploits/35414/
[i] Fixed in: 4.0.1

[!] Title: WordPress <= 4.0 - Server Side Request Forgery (SSRF)
    Reference: https://wpvulndb.com/vulnerabilities/7696
    Reference: http://www.securityfocus.com/bid/71234/
    Reference: https://core.trac.wordpress.org/changeset/30444
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9038
[i] Fixed in: 4.0.1

[!] Title: WordPress 3.9, 3.9.1, 3.9.2, 4.0 - XSS in Media Playlists
    Reference: https://wpvulndb.com/vulnerabilities/7697
    Reference: https://core.trac.wordpress.org/changeset/30422
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-9032
[i] Fixed in: 4.0.1

[!] Title: WordPress <= 4.1.1 - Unauthenticated Stored Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/7929
    Reference: https://wordpress.org/news/2015/04/wordpress-4-1-2/
    Reference: https://cedricvb.be/post/wordpress-stored-xss-vulnerability-4-1-2/
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-3438
[i] Fixed in: 4.1.2

[!] Title: WordPress <= 4.2.2 - Authenticated Stored Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8111
    Reference: https://wordpress.org/news/2015/07/wordpress-4-2-3/
    Reference: https://twitter.com/klikkioy/status/624264122570526720
    Reference: https://klikki.fi/adv/wordpress3.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5622
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5623
[i] Fixed in: 3.9.7

[!] Title: WordPress <= 4.2.3 - wp_untrash_post_comments SQL Injection
    Reference: https://wpvulndb.com/vulnerabilities/8126
    Reference: https://github.com/WordPress/WordPress/commit/70128fe7605cb963a46815cf91b0a5934f70eff5
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2213
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.2.3 - Timing Side Channel Attack
    Reference: https://wpvulndb.com/vulnerabilities/8130
    Reference: https://core.trac.wordpress.org/changeset/33536
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5730
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.2.3 - Widgets Title Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8131
    Reference: https://core.trac.wordpress.org/changeset/33529
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5732
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.2.3 - Nav Menu Title Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8132
    Reference: https://core.trac.wordpress.org/changeset/33541
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5733
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.2.3 - Legacy Theme Preview Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8133
    Reference: https://core.trac.wordpress.org/changeset/33549
    Reference: https://blog.sucuri.net/2015/08/persistent-xss-vulnerability-in-wordpress-explained.html
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5734
[i] Fixed in: 3.9.8

[!] Title: WordPress <= 4.3 - Authenticated Shortcode Tags Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8186
    Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
    Reference: http://blog.checkpoint.com/2015/09/15/finding-vulnerabilities-in-core-wordpress-a-bug-hunters-trilogy-part-iii-ultimatum/
    Reference: http://blog.knownsec.com/2015/09/wordpress-vulnerability-analysis-cve-2015-5714-cve-2015-5715/
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5714
[i] Fixed in: 3.9.9

[!] Title: WordPress <= 4.3 - User List Table Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8187
    Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
    Reference: https://github.com/WordPress/WordPress/commit/f91a5fd10ea7245e5b41e288624819a37adf290a
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-7989
[i] Fixed in: 3.9.9

[!] Title: WordPress <= 4.3 - Publish Post and Mark as Sticky Permission Issue
    Reference: https://wpvulndb.com/vulnerabilities/8188
    Reference: https://wordpress.org/news/2015/09/wordpress-4-3-1/
    Reference: http://blog.checkpoint.com/2015/09/15/finding-vulnerabilities-in-core-wordpress-a-bug-hunters-trilogy-part-iii-ultimatum/
    Reference: http://blog.knownsec.com/2015/09/wordpress-vulnerability-analysis-cve-2015-5714-cve-2015-5715/
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-5715
[i] Fixed in: 3.9.9

[!] Title: WordPress  3.7-4.4 - Authenticated Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8358
    Reference: https://wordpress.org/news/2016/01/wordpress-4-4-1-security-and-maintenance-release/
    Reference: https://github.com/WordPress/WordPress/commit/7ab65139c6838910426567849c7abed723932b87
    Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1564
[i] Fixed in: 3.9.10

[+] WordPress theme in use: XXXX - v1.2.0

[+] Name: XXXXX - v1.2.0
 |  Location: http://XXXXXX/wp-content/themes/XXXXXX/
 |  Readme: http://XXXXXX/wp-content/themes/XXXXXX/readme.txt
 |  Style URL: http://XXXXXX/wp-content/themes/XXXXXX/style.css
 |  Referenced style.css: http://blog.XXXXXX.com/wp-content/themes/XXXXXX/style.css
 |  Theme Name: XXXXXX
 |  Theme URI: http://XXXXXX
 |  Description: XXXXXX Clean, Responsive and Modern Theme for Personal Blogging
 |  Author: XXXXXX
 |  Author URI: http://XXXXXX.com

[+] Enumerating installed plugins (only ones with known vulnerabilities) ...

   Time: 00:00:02 <========================================================================================================================================================================> (1258 / 1258) 100.00% Time: 00:00:02

[+] We found 1 plugins:

[+] Name: akismet - v3.0.0
 |  Location: http://XXXXXX/wp-content/plugins/akismet/
 |  Readme: http://XXXXXX/wp-content/plugins/akismet/readme.txt
[!] The version is out of date, the latest version is 3.1.7

[!] Title: Akismet 2.5.0-3.1.4 - Unauthenticated Stored Cross-Site Scripting (XSS)
    Reference: https://wpvulndb.com/vulnerabilities/8215
    Reference: http://blog.akismet.com/2015/10/13/akismet-3-1-5-wordpress/
    Reference: https://blog.sucuri.net/2015/10/security-advisory-stored-xss-in-akismet-wordpress-plugin.html
[i] Fixed in: 3.1.5

[+] Enumerating installed themes (only ones with known vulnerabilities) ...

   Time: 00:00:00 <==========================================================================================================================================================================> (368 / 368) 100.00% Time: 00:00:00

[+] No themes found

[+] Enumerating timthumb files ...

   Time: 00:00:04 <========================================================================================================================================================================> (2539 / 2539) 100.00% Time: 00:00:04

[+] No timthumb files found

[+] Enumerating usernames ...
[+] Identified the following 3 user/s:
    +----+----------+----------+
    | Id | Login    | Name     |
    +----+----------+----------+
    | 1  | caXXX    | caXX    |
    | 2  | caXXXa | caXXXa |
    | 3  | admin    | admin    |
    +----+----------+----------+

[+] Finished: Fri Jan 15 16:01:49 2016
[+] Requests Done: 4218
[+] Memory used: 38.895 MB
[+] Elapsed time: 00:00:14 




Ataque de login por fuerza bruta en WordPress

Como hemos podido comprobar en los pasos anteriores nos enfrentamos a un WordPress sin ninguna restricción adicional de acceso en la parte de administración tales como chaptra o bloqueo con .htpasswd. Esto nos permite sin ninguna complicación ni paso adicional realizar una auditoría de usuario/password para ver su fortaleza pero ademas tenemos a nuestro favor que ya conocemos usuarios dados de alta en él gracias a la información desprendida por el comando anterior. Asumiendo que he generado un diccionario con Crunch tal y como explico en este post y que está en /home/rencinar/pass.txt para auditar la fortaleza del usuario admin el comando sería:
root@PC:/home/rencinar/software/wpscan/wpscan# ruby wpscan.rb --url http://XXXXXX --wordlist /home/rencinar/pass.txt --username admin