5. WPScan
Detectar la versión de WordPress
Enumerar vulnerabilidades
Enumerar usuarios y romper passwords
débiles
Enumerar plugins y temas instalados
Otros
http://wpscan.org
https://wpvulndb.com
@donini
6. Remover o alterar nombres de usuarios con
la palabra Admin y con ID 1.
Usuarios y Passwords
@donini
7. Bloquear accesso al listado de usuarios
Usuarios y Passwords
http://www.meu-site.com.br/?author=1
http://www.meu-site.com.br/authors/admin
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
RewriteRule ^(.*)$ http://www.meu-site.com.br.com/ [L,R=301]
Forma de url:
Agregar reglas a su archivo .htaceess es una de las maneras:
@donini
8. Cambie las claves con frecuencia, especialmente si usas ordenadores públicos.
Uso de Passwords Fuertes
https://en.support.wordpress.com/selecting-a-strong-password/
@donini
9. Aumenta tu seguridad con estos hashs
Secret Keys
https://api.wordpress.org/secret-key/1.1/salt/
@donini
10. Utilice más capas de seguridad con SMS, QRCode o un PIN
Two Step Authentication
https://codex.wordpress.org/Two_Step_Authentication
@donini
12. Localización y Protección del
Archivo Debug.log
Local del archivo: wp-content/debug.log
Permiso: chmod 600
<Files debug.log>
Order allow,deny
Deny from all
</Files>
@donini
13. Exposición de la Versión
Meta tag generator en marcación HTML y XHTML:
Tag generator en feed ATOM, RSS 2 (posts y comentarios) y RDF
En comentario HTML
En comentario en el archivo de exportación
En parámetros de URL
En archivos del core:
/readme.html
/wp-admin/install.php
/wp-admin/upgrade.php
/wp-links-opml.php`
@donini
14. Bloqueando la Exposición de la Versión
Archivos que no son necesarios:
/readme.html
/license.txt
/wp-config-sample.php
Archivos Temporarios:
/wp-admin/install.php
/wp-admin/upgrade.php
public function remove_versio() {
global $wp_version;
$wp_version =
'version_hidden';
}
add_action(‘init’,’remove_version’);
<Files nome-do-arquivo.extensao>
Order allow,deny
Deny from all
</Files>
Removiendo la versión:
@donini
15. FDP expone la ruta de aplicación en el disco del servidor
Full Path Disclosure
@donini
16. Bloqueando el acceso a los archivos del directorio wp-includes
Previniendo Full Path Disclosure
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
Probando si una función existe
<?php if ( !function_exists( 'mi_function' ) ) exit; ?>
@donini
17. Permisiones adecuadas
Prefijo de las tablas
Cómo Proteger el Banco de Datos
$table_prefix = ‘wpd_meu_site_’;
https://codex.wordpress.org/Database_Description
@donini
18. Antes de elegir un plugin o tema siempre verificar el WPScan Vulnerability
Database
Evitando SQL Injection en sus temas y plugins:
SQL Injection
$sql = $wpdb->prepare( ‘[MINHA-QUERY-SQL]’, $variavel );
$sql = $wpdb->prepare( ‘MI-QUERY-SQL-CON-STRING-%s-INT-%d-
FLOAT-
%f’, $integer, $string, $float);
http://codex.wordpress.org/Class_Reference/wpdb
@donini
20. Definiendo el uso de SSL
SSL En WordPress
define( 'FORCE_SSL_LOGIN', true ); // Forza el uso solamente de login en
ambiente seguro
define( 'FORCE_SSL_ADMIN', true ); // Forza el uso para todo el area
administrativa, incluyendo login
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
1
2
3
@donini
21. Archivo de configuración de Apache
Protección de directorios
<Directory /var/www/html>
Options -Indexes
</Directory>
Archivo .htaccess
# Deshabilitar la lista de directorios
Options -Indexes
Archivos index.html o index.php
<?php
// Silence is Golden
1
2
3
@donini
22. Donde normalmente se suele poner:
Protegiendo el Archivo wp-config.php
/public_html/wp-config.php
Donde se sugiere colocar
/wp-config.php
https://codex.wordpress.org/Editing_wp-config.php
@donini
24. Casi un 60% de las instalaciones WordPress están desactualizadas en el mundo
todo.
Como ya se habló un montón de veces, mantener un ambiente debidamente
actualizado minimiza al máximo los fallos de vulnerabilidad y, luego, los intentos
de invasión.
La actualización está definida para core y debe ser extendida para los plugins,
temas, el sistema operacional y todos los demás programas. Una versión
desactualizada puede dejar puertas abiertas y con la llave en la cerradura. Y eso
no es responsabilidad de la aplicación.
Actualización del WordPress
https://codex.wordpress.org/Updating_WordPress
@donini