Wordpress hardening (Campus Party Mexico 4)

3,815 views

Published on

Mi presentación para Campus Party México 4

Wordpress Hardening

Tips Básicos y como Reaccionar ante un incidente.

Published in: Technology
  • Be the first to comment

Wordpress hardening (Campus Party Mexico 4)

  1. 1. Campus Party Mexico 4 Héctor Cuevas Cruz
  2. 2. Agenda •Presentación •Fortalecimiento deWordpress • Detección de una vulneración y Recuperación de un ataque
  3. 3. ¿Quién soy? • Héctor Cuevas Cruz • Seguridad Informática (Casi 5 años) • Miembro de la Unidad de Seguridad Informática Examinador Forense en INFOTEC • Presentador en ( BugCon, FLISoL ) • Esteganografía, Shell Scripting, Informática Forense • Creador de Neobits.org @hecky
  4. 4. ¿Qué es el Hardening? • Es el fortalecimiento de un sistema, la configuración correcta y consciente de los aplicativos para disminuir las probabilidades de un ataque. • “Hacerle la vida mas difícil a tu atacante…”
  5. 5. ¿Para qué tantas molestias? ¿A mí quién querría atacarme? • Ego • Reto personal (aprendizaje) • Reto • Almacenar contenido ilegal • Distribuir Malware • Botnet
  6. 6. Motivos “Benévolos” [Espero El Hack Sirva Para Aumentar TU SEGURIDAD]
  7. 7. Defaces de ayer
  8. 8. ¿Quién hace estos ataques? CUALQUIERA
  9. 9. Identificar que fortalecer Servidor CMS Plugins Passwords (Ya no utlizados) Base de datos
  10. 10. REGLA DE ORO
  11. 11. Instalación apropiada Prefijo de tabla default: Wp_ Modificarla HARD_
  12. 12. Wordpress “ItWorks”
  13. 13. Subimos imágenes desde el Uploader pero…
  14. 14. ¿Problema? • ObjetivoTentador • Muestra desinterés y/o desconocimiento • Mala configuración
  15. 15. Google Hacking (Dorks Power) intitle:"Index of /" inurl:/wp-content inurl:"gob"
  16. 16. El Poderoso pero ¿Desconocido? .HTACCESS
  17. 17. ¿Qué es y para que sirve? • Archivo de configuración de Apache a “bajo nivel” • Podemos configurar opciones del servidor sin alterar el archivo de configuración principal • Contiene un poderoso motor que nos permite “Programarlo”
  18. 18. Reglas Primordiales • IndexIgnore * • Options ALL –Indexes • ServerSignature Off
  19. 19. IndexIgnore * Oculta el listado (Sin producir error)
  20. 20. Options All -Indexes Niega el acceso al “Index of” Produciendo un error 403 (Prohibido)
  21. 21. ServerSignature Off • No muestra el banner del server
  22. 22. Personalización de Errores • ErrorDocument 403 /code.php
  23. 23. Códigos de protección .Htaccess ¿Nuestra salvación? • http://pastebin.com/mvLqHdRY
  24. 24. ¿Funcionaran? Sí, funciona a la perfección…
  25. 25. Bloquea el User-Agent: Que inicie con: “curl” • Pero los user agent se pueden spoofear…
  26. 26. Spoofeamos y…
  27. 27. No te fíes de todo código que te encuentras
  28. 28. .htaccess ¿MALWARE? • Redirigir a paginas maliciosas • Bucles Infinitos • Errores de Servidor
  29. 29. No copiar códigos nada mas por copiar • Analizar los códigos • Personalizarlos • Usar solo lo necesario • Aprender o contratar a un especialista en configuración de estas directivas
  30. 30. Wp-config.php <files wp-config.php> Order allow,deny Deny from all </files> • Prohibir la edición de temas define('DISALLOW_FILE_EDIT', true);
  31. 31. Accesos • deny from all • Allow from all • Deny from 127.0.0.1 • Allow from 192.168.0.1
  32. 32. Evitar mostrar información de más wp-content/themes/****/functions.php
  33. 33. • add_filter('login_errors',create_function('$a', "return null;"));
  34. 34. No mostrarVersión deWordpress • wp-content/themes/station/header.php bloginfo(‘version’);
  35. 35. LoginLockDown - Plugin • Plugin Sencillo que bloquea intentos de accesos • Personalizable • Configuración Básica • Usa una pequeña tabla en la BD
  36. 36. Con un pequeño detallito…
  37. 37. Eliminarlo desde el código
  38. 38. Themes ¿maliciosos? • Ofuscados • Malware • Alertas ante modificación
  39. 39. Otras… • Auditar Plugins (Vulnerables) • Evitar Plugins Maliciosos • ACTUALIZAR todo • Hacer respaldos periódicamente • Verificar logs periódicamente • Proteger directorios y archivos que se deban • Borrar archivos de instalación • Y….
  40. 40. LOGS • Crear nuestro propio sistema de logs <?php $f = fopen("LOGS.txt","a"); fwrite($f, "nnntttIP: ".$_SERVER["REMOTE_ADDR"]."nn"); fwrite($f, "nURL: ".$_SERVER["REQUEST_URI"]); fwrite($f, "nReferer: ".$_SERVER["HTTP_REFERER"]); fwrite($f, "nDATE: ".date("d-m-Y H:i:s:u")); fwrite($f, "nPOST:"); fwrite($f, "n".var_export($_POST, true)); fwrite($f, "nGET:"); fwrite($f, "n".var_export($_GET, true)); fwrite($f, "nCOOKIE:"); fwrite($f, "n".var_export($_COOKIE, true)); fwrite($f, "nSERVER:"); fwrite($f, "n".var_export($_SERVER, true)); fwrite($f, "n-------------------------------------------------------------------------------------"); fclose($f); ?> Protegerlo
  41. 41. Me han “hackeado”…Y ¿Ahora? • Dar de baja temporal el sitio. • Si se tiene un espejo activarlo. • Investigación de la intrusión • En caso de ser Irrecuperable el sistema restaurar backup • Activar sitio • Hacer MAS HARDENING (Aplicar lo aprendido del ataque)
  42. 42. Investigación Forense • Identificar que tipo de vulneración fue • A que nivel • Identificar archivos modificados • Identificar archivos agregados • Checar Base de Datos • Checar usuarios, contraseñas • Inclusive Imágenes • Comparar archivos con backup o conCMS nuevo
  43. 43. Que nivel de acceso tuvo el atacante A nivel de CMS
  44. 44. A nivel Servidor
  45. 45. Denegación de Servicio
  46. 46. Denegación de Servicio
  47. 47. Revisar LOGS • Claro, nuestro log personal Identifico .- IP .- Hora .- Credenciales
  48. 48. • Posible vulnerabilidad (Plugin)
  49. 49. Referer – User-Agent
  50. 50. Conectarse virtualmente • Ubuntu 13.04: /run/user/hecky/gvfs/HOST • Tenemos todo el poder de bash
  51. 51. Manejar con todo el poder de Shell Scripting
  52. 52. Localizándolo con ayuda de la DB
  53. 53. BORRARTABLA
  54. 54. Logs para estudiar a los atacantes
  55. 55. ¿Es necesario hacer todo esto? • Si, si se quiere seguir en línea con la pagina • Muchas paginas nunca se recuperan • Muchas paginas aun tienen el ataque
  56. 56. Mass Defacement
  57. 57. • JAMAS SE RECUPERARON
  58. 58. Mismo servidor
  59. 59. Conclusión • Hay que proteger un servidor y todos sus aplicativos • Nunca desatenderlos y checarlos periódicamente • Ante un ataque responder de manera rápida ( Nuestra página web es nuestra carta de presentación en la era digital) • Recuperar todos los servicios • APRENDER • Y…SEGUIR
  60. 60. ¡GRACIAS! • ¿Dudas? @hecky Héctor Cuevas Cruz

×