21 mayo 2013



A la hora de diseñar un sitio web o un blog, frameworks como Joomla, Drupal o Wordpress ayudan a tener un punto de partida o base, que permite añadir páginas, con diverso contenido y con la posibilidad que los usuarios interactúen dejando comentarios.

Sin embargo, cuando se trata de colgar una página web a Internet, cualquier medida de seguridad que se tome es poca. Son incontables las amenazas existentes, tanto de forma intencionada, como por bots automáticos que, incansablemente acechan la red, en busca de vulnerabilidades o malas configuraciones en direccionamiento público. 

En Security By Default ya hemos analizado, en vidas pasadas, diferentes formas de ayudar a proteger  Wordpress. Incluso, para evitar el acceso "de raíz" al panel de administración pusimos a vuestra disposición un módulo Apache para permitir, en modo "lista blanca", accesos desde direcciones IP dinámicas, listadas en un registro DynDNS, a URIs como la del panel de administración de Wordpress.

Sin embargo, buscando herramientas existentes que aporten seguridad a la instalación, dí con un plugin que me ha parecido de lo más completo y he querido compartir con vosotros.

Se trata de Better WP Security, un plugin que permite gestionar diferentes parámetros que mejoran la seguridad. La forma de visualizar y configurar cada parte es mediante pestañas, en el panel de administración de Wordpress, en una sección llamada Seguridad.

La primera de las pestañas es un Dashboard, un resumen donde podemos ver el estado actual de la seguridad de Wordpress, en base a una "auditoría" que nos muestra la herramienta, destacando cada uno de los puntos por colores, dependiendo de "lo bien o mal" que estén, así como la criticidad de los mismos. Además, si queremos modificar un punto en concreto, para arreglar el problema señalado, hay un acceso directo desde la misma línea.



En cada una de las pestañas, nos da un pequeño resumen de ayuda sobre los parámetros que podemos modificar desde la misma.

La pestaña User nos permite cambiar el nombre del usuario admin y el ID (que por defecto es el 1 para dicho usuario)



En la pestaña Away, podemos "cerrar con llave" el acceso a la pantalla de administración de una forma programada, es decir,... No queremos que se pueda acceder al panel, en determinado horario. Esto es útil en caso que tengamos claro que no tendremos que acceder para nada, pero puede derivar en un Auto-DoS si no podemos acceder al panel de administración y por una emergencia, se necesita 



La pestaña Ban, nos permite añadir direcciones IP o User-Agents que, directamente, no queremos permitir que accedan al framework Wordpress. Si no tenemos una lista de IPs actualizada con la que podamos alimentar manualmente una lista negra, se puede confiar automáticamente en la que provee Hackrepair.com, que se integra de forma automática con el plugin.




La ruta por defecto donde se almacena mucho contenido que se utilizará en el blog o sitio web, está tras el directorio /wp-content. Si, por una configuración relajada, Apache permitese el Directory Listing, se podría acceder directamente a todos los ficheros contenidos en él. Desde aquí se permite modificar el directorio, tanto a nivel de sistema de ficheros, como las referencias que haya desde cualquier parte de Wordpress.  





En la pestaña Backup, existe la posibilidad de ejecutar backups periódicos que se enviarán por correo a una cuenta especificada o que se almacenarán en la propia aplicación. Es algo recomendable disponer de backups para poder recurrir a ellos en caso de catástrofe.





Al igual que ocurría con el directorio wp_content, las tablas de base de datos que utiliza Wordpress, por defecto, empiezan por "wp_". Esto, en caso de descubrirse un SQL Injection para Wordpress, permitiría a un atacante, hacer operaciones sobre las tablas, o al menos tener un punto de entrada conocido. Por aquello de ponerlo más complicado, esta herramienta nos permite cambiar el prefijo por lo que nosotros queramos, diferente de "wp_"




Para la administración de Wordpress, se accede a /admin. En el post en el que liberamos el módulo mod_dynip, un lector preguntaba, en los comentarios, si existía forma de modificar el /admin por un valor arbitrario. Pues, por lo visto, Better WP Security, permite en la pestaña Hide, cambiar el valor de /login, /register y /admin.



La sección Detect permite identificar y correlar aquellas direcciones IP que escaneen el servidor web haciendo pruebas de diccionario o fuerza bruta, en base a los errores HTTP 404 Not Found, devueltos por el servidor. La herramienta nos permite definir umbrales de hits fallidos por unidad de tiempo. En base a esto el plugin añadirá en la lista negra a las direcciones IP atacantes durante un tiempo predefinido.
Asimismo, en esta misma pestaña podemos configurar la detección de modificaciones de la integridad de los ficheros Wordpress. Si algún fichero cambia, y no hemos añadido/modificado nada, y nos llega un coreo con modificaciones, puede que tengamos alguna visita en el servidor. En mi caso, no lo tengo habilitado, puesto que ya utilizo AFICK a nivel de servidor completo, por lo que me resulta redundante e innecesario hacerlo también a nivel Wordpress. 




Igual que hacíamos anteriormente a la hora de detectar ataques de enumeración de directorios o ficheros en base a monitorizar las respuestas HTTP 404 Not found, en la pestaña Login, podemos indicar los parámetros de configuración para detectar ataques de fuerza bruta/diccionario ante la autenticación de usuarios.  



Si permitimos acceso HTTPS y HTTP, a nivel de servidor, puede ser útil forzar el uso de SSL para los accesos, así como pantallas en las que haya que introducir credenciales. En la sección SSL, podemos forzar que esto así sea.




La sección Tweaks, permite habilitar otras medidas de seguridad que no encajan en otras pestañas. Por ejemplo, es muy típico identificar la versión de Wordpress utilizada por un servidor en base a recuperar el fichero readme.html, donde ésta viene mencionada. Este fichero se añade, cada vez que se hace una actualización de Wordpress, aunque lo hayas borrado de la instalación anterior. Para evitar que nos puedan pedir según qué tipo de ficheros, podemos habilitar el check correspondiente.

Tened cuidado si ya tomáis ciertas medidas sobre el propio Apache o si utilizáis algún plugin que haga labores de WAF, puesto que puede dar más de un problema habilitar el último check aquí.  


La pestaña Logs, nos permite ver un sumario de la actividad de detección/protección llevada a cabo por el módulo Better WP Security. Asimismo, podemos desbloquear direcciones IP que puedan ser falsos positivos por ejemplo.


En resumen, una herramienta imprescindible. Si administras un wordpress y quieres tener una mayor tranquilidad, incrementando la seguridad en diferentes aspectos, este es un buen plugin. Quizá me gustaría mencionar que la traducción al español no es completa o no es todo lo buena que debería, pero se entiende todo correctamente y como aplicación funciona bastante bien.
Leer más...

20 mayo 2013

La problemática de monitorizar usuarios en servidores es muy compleja: usuarios compartidos, decenas de formas de ejecutar comandos o logs que el propio usuario puede borrar, o incluso que suban o creen un binario y no quede claro que llamadas y ficheros modifica.

Hace unas semanas hablábamos de sudosh2, como alternativa al comando "script" de linux que genera un vídeo, pero hay otras herramientas de registro sencillas de implantar, que además permiten hacer búsquedas en los ficheros.

Una de estas opciones es snoopylogger, incluido en muchas distribuciones, y que tan solo es una librería que se encargará de almacenar los comandos y el usuario que los ejecuta mediante syslogd.

Es importante usar la última versión (=>1.9.0), que arregla un importante fallo que se produce en algunas distribuciones y que deja el sistema colgado cuando se invoca un reinicio. Esto excluye algunos paquetes distribuidos por Fedora/RedHat.

En tiempo de compilación, es imposible configurar la facilidad y nivel en el que serán mandados los logs, así como el script externo para filtrar resultados, que por defecto es: /usr/local/snoopy/bin/snoopy-filter.sh.

Una vez configurado y ejecutado el make, make install, make enable, la herramienta estará dispuesta y preparada para guardar los comandos. En RedHat por defecto, caerán en /var/log/secure, ya que está definido como authpriv y nivel info.

Lo siguiente es probarlo, y la mejor forma es invocar un comando en shell y crear un pequeño código que invoque otro comando (/bin/ls en este ejemplo), para asegurarnos que las llamadas execve() son registradas.

Tal y como se ve en la captura, se registra la compilación, la llamada a ./test y el execve() de 'ls' que esta aplicación hace.

Prueba de la instalación de snoopylogger.
Leer más...

19 mayo 2013

Enlaces de la SECmana - 175

Leer más...

18 mayo 2013

Videos de las UPM TASSI 2013

Desde la UPM llevan celebrando las TASSI (Temas Avanzados en Seguridad y Sociedad de la Información) desde febrero de este año, en lo que es ya su novena edición, a razón de una pequeña charla de hora y media cada quince días.

El pasado 17 de abril tuve el honor de participar en una de estas clases y ya se pueden ver el vídeo en el canal oficial de Youtube la Universidad Politécnica de Madrid.

La conferencia era una introducción a los conceptos y ámbito de la explotación de vulnerabilidades en un test de intrusión. Porque se hace este tipo de actividades y alguna demostración sencilla de cómo funcionan.



No es el único, y todos los anteriores también han sido publicados. También están las presentaciones y materiales de otros años anteriores en el histórico que mantienen en la página web.

Dejo aquí todos los de la edición 2013 a falta de un par que estarán muy pronto en el mismo sitio.








Leer más...

17 mayo 2013

Detectando IPs TOR en ficheros access_log

Cuando hablamos de TOR, es bastante frecuente encontrarse con la pregunta de ¿Y cómo detecto si una IP proviene de TOR? Normalmente asociada a conexiones web.

En realidad, saber si una IP proviene de un nodo TOR es relativamente sencillo y no requiere magia de ningún tipo.

El propio proyecto TOR te explica como hacerlo y ofrece un montón de ejemplos para hacerlo desde múltiples lenguajes de programación (Python, PHP, Perl ...)

Por si no fuera poco, la lista de nodos TOR es pública y se puede consultar desde esta URL.

Pensando desde un punto de vista forense, tal vez sí echo a faltar herramientas que permitan analizar el contenido de un fichero de logs Apache e indique cuales de esos accesos provienen desde una red TOR.

Como no he encontrado nada que me haya convencido, decidí hacer mi propia implementación.

Cuando me puse a ello, tenía dos opciones posibles: O bien me iba a las consultas DNS (como en los ejemplos antes mencionados) o lo hacía de una forma un poco diferente.

Creo que es poco óptimo el ir IP por IP del fichero de log y lanzar una consulta DNS, así que pensé que era mejor descargar la lista completa de nodos TOR, parsearla para obtener la IP y comparar con lo que iba encontrando.

El resultado es este:



Para ejecutarlo, tan solo toma como parámetro el fichero de log a analizar.

$ python parsetor.py access_log

Cabe señalar un matiz: Si en el momento en el que se realiza el análisis el nodo TOR no se encuentra activo, no aparecerá, así que cuanto más frescos sean los datos, más oportunidades hay de tener un resultado más fiable
Leer más...

16 mayo 2013

¿Buscas empleo en seguridad?

Para aquellos afortunados estudiantes que terminan su último año de carrera y están empezando a buscar trabajo, en el mundo de la seguridad hay una gran demanda. Con esta entrada vamos a ver algunos trucos para encontrar un hueco.

No voy a comentar nada sobre el formato, apariencia o errores típicos del CV. Eso lo dejamos para otro día. Tan solo mencionar algunos consejos y opciones, que posiblemente a muchos candidatos les sean útiles.


No hay duda de que el portal por excelencia en España para buscar empleo es Infojobs, aunque no es el único y existen otros como Tecnoempleo. También hay otros menos populares, como Michael Page, donde se buscan perfiles técnicos con más experiencia, mandos intermedios o alta dirección.

En cuanto a infojobs, una característica que personalmente uso bastante es la búsqueda mediante palabras clave, por ejemplo "OWASP", o "OSSTMM", o incluso alguna certificación "CEH", y a partir de los resultados, añadir a las RSS todas las ocurrencias, de tal forma que cada vez que se añada un nuevo puesto con alguna de estas búsquedas, me cree una entrada nueva en el lector. Del ejemplo anterior, si se busca por "CEH", la URL de la feed será: https://www.infojobs.net/trabajos.rss/kw_ceh/

Búsqueda en Infjobs: botón de añadir a RSS

Otra alternativa es ser un pesado, ser un pesado siempre funciona. Son las matemáticas de los grandes números. Si mandas 12 millones de correos de spam, alguno cuela. En este caso es lo mismo. Mandar vuestro resumen a todo aquel que tenga alguna relación con seguridad. Una buena técnica es usar el catálogo de empresas que mantiene el Inteco y que además permite filtrar las compañías por la actividad a la que se dedica. De estas compañías, podréis mandar vuestro currículum visitando cada una de sus páginas y localizando los buzones típicos de "trabaja con nosotros". Además, esto tiene la ventaja de que puedes añadir un mensaje personalizado para la compañía concreta que mostrará tu interés por integrarte en su plantilla.


Catálogo de empresas de Inteco: filtrando por categoría.
También hay sitios como el blog de 48bits que mantienen secciones de trabajo, donde tanto empresas como candidatos pueden ponerse en contacto.

Sección "Jobs" de 48bits.

Por último, estar en listas de correo de seguridad también suele funcionar, cada poco tiempo mandan correos con ofertas y si además participas en la lista, pues aprenderás y enseñarás al resto y te darás a conocer. No nos engañemos, este sector es muy muy pequeño y al final casi todos nos acabamos conociendo. El mejor ejemplo de lista de seguridad, que sigue viva y el ambiente es envidiable, es la lista que hay en torno a la RootedCon, tan solo hay que mandar un correo a: rootedcon-subscribe@listas.rooted.es

¡Suerte!

Leer más...

15 mayo 2013




Sucedió hace unos meses, cuando recibo un whatsapp, el método de comunicación universal desde hace unos años hasta ahora, del gran Pepelux. Me comentaba que si me apetecía participar como ponente en la próxima edición de la Conectacon, que se realizaría en Jaen, el 9 y 10 de Mayo. Entre que no sé decir que no, y que la crónica que nos mandó de la primera edición tenía una pinta envidiable, acepté encantado la propuesta. Según fueron pasando el tiempo y me fueron poniendo al día del resto del cartel, sabía que me lo pasaría genial junto a un montón de amigos, esta vez de España.

Mi compañero de viaje en tren a Jaen, fue el genial y dicharachero Juan Garrido "Silverhack" con quien llegamos, entre risas, a la estación. A los pocos minutos, apareció en la estación el comité de bienvenida, formado por los organizadores Antonio CruzRaimundo Alcázar, "el presi y el vice", para recogernos. Desde este minuto (e incluso en días previos) hasta el día de hoy, la hospitalidad y el trato por su parte ha sido inmejorable. En todo momento, estuvieron pendientes de los ponentes, ofreciendo lo que fuese necesario para asegurar nuestra comodidad.

Después de dejar el equipaje en el hotel nos llevaron a una cena de bienvenida en la que no faltó la cerveza y la comida en abundancia, siempre precedida de unos cuantos platos de olivas de la zona. Dejando a un lado discusiones puntuales con algún "elemento", el ambiente de la cena fue espléndido, dando lugar a multitud de "situaciones inexpugnables en el camino del guerrero con herramientas low cost" (internal joke) que perdurarán en la cabeza de los asistentes durante, espero, muchos años.




Jueves 9 de Mayo, comienza la Conectacon!

Tras una breve charla de inauguración por parte del Vicerrector de TIC de la Universidad de Jaen y Antonio Cruz (como presidente de la Asociación EnRed 2.0) tuve el honor de ser el primer ponente. En este caso, el tema de la charla fue "Análisis forense de IOS con herramientas Low Cost", en el que hablé de diferentes herramientas, tanto comerciales como libres para analizar y presentar los datos que se pueden extraer de un dispositivo con IOS (ya sabéis, el sistema operativo de los iCacharros), así como liberar una herramienta que, próximamente, pondré a disposición del público lector de Security By Default. 



La siguiente de las charlas fue a cuenta de los geniales Pepelux y Juan Garrido, que nos contaron de una forma bastante amena, y muy alarmante por cierto, las interioridades de la red Tor, las aberraciones que esconde la Deep Web y un montón de estadísticas extraídas en base a los resultados devueltos por herramientas desarrolladas por ellos mismos, con fines académicos e investigativos, para llevar a cabo clasificaciones respecto a los tipos de páginas encontradas. Ambos investigadores trabajan con total transparencia ante los cuerpos y fuerzas de seguridad del estado, cediendo incluso el fruto de su trabajo al Grupo de Delitos Telemáticos de la Guardia Civil, a fin de ayudar, en la medida de lo posible, contra algunas de las ilegalidades que se puedan encontrar en la Deep Web.




La siguiente charla, venía de la mano de uno de los profesionales más encantadores, carismáticos y apreciados por mí, de todo el panorama español de este sector: el bilbaino afincado en Asturias, Dabo. Atención al título de su presentación: "Seguridad y optimización, el camino del guerrero hacia la paz interior del GLAMP". Esta ponencia, tenía la peculiaridad de ser una demo continua, y el ponente habitual de los "podcasts con voz de locutor", explicó en vivo, con conexión directa a servidores en la nube diferentes herramientas para optimizar la ejecución y proteger la integridad de los datos alojados en servidores LAMP. Sin duda, la charla fue todo un éxito, puesto que la profesionalidad de Dabo en su día a día en Apachectl, así como su amplia experiencia, son garantes de ello. 



Lamentablemente, no pude quedarme a verla completa puesto que Raimundo Alcázar "el vice", me llevó corriendo a los estudios de radio de Canalsur Jaen, en los que nos esperaba una locutora de un programa local, que quiso concienciar sobre seguridad a sus oyentes, con Raimundo y conmigo. Podéis escuchar el corte del fragmento de la radio a partir del minuto 12 en Hora Sur Jaen de Canal Sur Radio




Según llegamos de vuelta, ya se encontraba en el escenario Jose Selvi, autor del blog de seguridad Pentester.es hablando de "Offensive Man-in-the-middle". Este gran profesional mostró de una forma muy comprensible para todos los públicos, las posibilidades de ataques que se pueden llevar a cabo en situaciones Man-in-the-middle. Habló de herramientas tan potentes como the middler, por supuesto el conocido y utilizado framework Metasploit, en el que Jose implementa habitualmente sus propios scripts.




Por la tarde, se llevaron a cabo dos sesiones de dos talleres diferentes: "Análisis Forense en entornos Windows" por parte de Juan Garrido; y "Hacking web" por Pepelux, Dani Kachakil y Roman Medina, que fueron muy bien valorados según la crítica de los asistentes.




Cabe destacar el gran despliegue de repercusión mediática conseguida por Raimundo Alcázar, que dejó claro que a un movimiento de un dedo, Jaen se vuelca con él.



Mientras transcurrían los talleres, una unidad móvil Canalsur Televisión, se acercó a la Universidad de Jaen, y realizó una entrevista al propio Raimundo y a Jose Selvi, en la que explican los peligros de privacidad que esconden los dispositivos móviles. Bajo estas líneas podréis ver el corte del programa que ha hecho público la organización de Conectacon. Por cierto, que encontraréis a algún actor extra que os resultará conocido :D



Una vez terminada esta jornada, nos llevaron al hotel, y tras una merecida ducha, la organización nos obsequió con una opípara cena junto a los patrocinadores del evento. 


Viernes 10 de Mayo: Día 2

El encargado de dar comienzo a la segunda jornada fue Daniel Medianero. Arrancó con pequeñas modificaciones con el título inicial de su charla "Desarrollo Inseguro en Android". Por aquello de adaptarlo a la terminología utilizada en el evento, lo sustituyó por "De cómo tu aplicación Android no es tan inexpugnable como creías y cómo puedes descubrirlo siguiendo el camino del guerrero utilizando herramientas low cost"… (sí, como bien podéis imaginar, lectores, hubo momentos repetitivos de cachondeo entre nosotros con esto de las herramientas low cost, la inexpugnabilidad y el camino del guerrero… a lo largo de los dos días de jornadas). Dani nos contó, e incluso demostró, cómo utilizando aplicaciones de Android existentes, que disponen de permisos "de más", otras programadas con malas intenciones, se pueden aprovechar de dichos permisos extra de las anteriores, para fines no previstos inicialmente.



El siguiente ponente fue Alejandro Nolla que habló sobre diferentes vulnerabilidades existentes en diferentes servicios CDN, y cómo mediante su explotación, resulta posible, en algunos casos, atacar de forma directa a los clientes que dicen proteger. Esta charla tuvo un componente importante de arquitectura de redes, que es un tema que personalmente me motiva bastante, por lo que puedo decir que me resultó especialmente interesante.



Como cierre de fiesta, Dani Kachakil, uno de los integrantes de la representación española en CTFs a nivel mundial, del grupo "Int3pids", dejó con la boca abierta a todos los que asistimos a su charla, en la que detalló la resolución de 16 pruebas de criptografía que había recopilado de diferentes lugares, y que por supuesto, había resuelto. Estoy seguro que todos los asistentes nos quedamos con la sensación de decir: menudo crack es este tío!!! Si bien es cierto que muchas de las pruebas son "solucionables" con herramientas existentes (no sé si serán low cost o no ;D), hay otras en las que predomina la idea feliz por encima de todo y quedas en estado de shock analizando los procedimientos explicados por Dani. 

Por lo demás, ha sido un placer compartir un par de días con el resto de los ponentes y amigos, aprender de las charlas y disfrutar de la increible hospitalidad de Raimundo Alcázar y Antonio de la Cruz. Felicitar a Juan Cobo y Pedro Barrio, también de la organización del evento, por el apoyo mostrado y el trato brindado, que han hecho de este evento, unos días inolvidables.



Una lástima que la única nota discordante del evento, el único lunar, haya venido dado precisamente por otro miembro de la organización, que parece no aprender de errores pasados, no siendo capaz de dejar de lado sus fobias personales, intentando predisponer al mal rollo a una gran comunidad de personas. 

Quiero agradecer también a Goldrak por acercarnos a Juanito y a mí, en el inexpugnable camino de los guerreros hacia el aeropuerto de Granada, desde donde enfilamos el rumbo hacia lo que sería nuestro siguiente destino, Reus… Pero esto, es otra historia.
Leer más...