Entradas en el mes de Agosto del 2008

Blog Day 2008

Como siempre (y se esta volviendo costumbre) g30rg3 Blog se une al Blog Day, celebración en la cual los bloggers “debemos” recomendar 5 blogs nuevos; es increíble voltear al pasado y ver que llevamos haciendo esto desde hace 2 años, pero en fin no creo necesario recordarles lo que he estado repitiendo desde hace 2 años, así que bueno pasemos a nuestra lista de blogs recomendados por ser el Blog Day

  • Un informático en el lado del mal
    El famosísimo blog del también famosísimo José María Alonso Cebrián mejor conocido en la red por el diminutivo “Chema Alonso”; Este blog tiene un toque especial que realmente hace que no pueda encasillarlo solo como un blog de seguridad informática (o bien de WebAppSec), ya que a chema le encanta hablar de TODO sin censura y sin temor a los trolls, su especialidad sin duda es hechar tierra a la comunidad linuxera o bien la comunidad del “software libre”, sin embargo si quitas todos los flame wars encontraras muchísima información sobre las tecnologías (y seguridad) bajo spectra (forma en la que chema se refiere a Microsoft).
    Realmente conocí este blog a través de Trancek, quien fue el que me metió al vicio de los retos de hacking de chema, retos que sinceramente me han enganchado por su frescura y cierta originalidad que no encontraras en muchos otros lugares.
  • Suspekt
    El nuevo blog de Stefan Esser que promete mucho sobre varios temas relacionados a la seguridad informática; Stefan no es nuevo en esto del blogging antes tenia un blog llamado “PHP Security Blog” en el cual su principal tema era _obviamente_ la seguridad en PHP, pero sin embargo stefan no se quería encasillar en tan solo seguridad en PHP (o bien WebAppSec) y debido al nombre del anterior blog no podía sentirse libre de hablar sobre otros temas así que decidió armarse de uno nuevo donde tendrá mas libertades que con el anterior.
    Personalmente me considero un seguidor del trabajo de stefan esser en el área de WebAppSec (sobretodo sus trabajos relacionados con la seguridad en PHP), no me quiero extender sobre cuanto admiro sus esfuerzos por endurecer PHP pero sin duda alguna si de seguridad en PHP estamos hablando, rápidamente se destacarían los proyectos y trabajos de stefan.
  • Hackademix
    El blog de Giorgio Maone (el famoso autor de NoScript); el principal tema de este blog es WebAppSec con tintes -obvios- hacia temas relacionados con sus trabajos (NoScript), también suele hablar de otros temas como su punto de vista personal sobre actitudes de otros investigadores así como de otras tecnologías relacionadas a sus proyectos, pero en fin estos son en una proporción pequeña comparada con los temas relacionados a NoScript, XSS/XSRF, Politicas de Seguridad, … en globado diríamos WebAppSec así que este blog es un buen lugar para saber “que se esta poniendo de moda” en el salvaje mundo digital conocido como Internet.
  • The hacker webzine aka rvdh’s experimental hacking
    Este blog lo conozco desde hace algunos años (y ya es tiempo de que le de su lugar poniéndole en esta lista), el autor de este blog es Ronald van den Heetkamp un programador independiente que le encanta investigar sobre seguridad informática, sus opiniones son bastante ácidas y le gusta mucho pelearse con otros investigadores (desde mi punto de vista personal), su blog tiene muchas entradas excelentes donde analiza las “amenazas de hoy” así como hace hincapié sobre otros conceptos relacionados con la ideología del hacktivismo y el software libre.
  • Yoire
    Un ¿blog? mantenido actualmente por mandingo y lord epsylon; este ¿blog? trata sobre varios temas relacionados al hacktivismo con un fuerte tinte hacia la seguridad informática, aunque claro lo que mas llama la atención es su numerosa cantidad de wargames incorporados dentro de este así como la cantidad de proyectos y herramientas (viking, whatnotes, pipper, etc…) disponibles en el mismo.
    Conocí este blog a través del blog de chema y desde que lo conocí me encanta, lo único que no me gusta es que las notas del blog se actualizan con tan poca frecuencia que podría jurar que a veces me confundo y creo que es mi propio blog xD.

Como pueden ver esta vez tuvimos una lista muy “Security Edition”, espero las reseñas hechas sean correctas asi como les atraigan mas visitas a estos excelentes blogs de seguridad informática.
Sin mas que apuntar los dejo con el típico saludo y nos leeremos hasta la próxima.

Solución al pequeño desafio

Con un poco de retraso (como se va haciendo costumbre en este blog) asi como después de poco mas de 6 días en linea, se da por terminado el “Pequeño Desafió”.
Por increíble que parezca solo 1 persona pudo resolver el desafío de manera satisfactoria, los demás se acercaron bastante pero les falto un poco mas de ganas (o tiempo) para dar el paso final; al principio creí que era por que nadie participo (o nadie tuvo tiempo), cosa que descarte ya que según mis registros, si hubo participación (tanto así que hubo gente usando scanners de seguridad así como algunas aplicaciones conocidas -como lo es el WP-Scanner-).
Sin embargo aun con todas estas utilidades, solo 1 pudo encontrar/enumerar la versión exacta de WordPress que usaba, sin seguir alargando la introducción pasemos a la solución…

Fase 1: ¿A que nos enfrentamos?
La primera parte del desafío consistía en averiguar ante cual de todas las ramas de WordPress nos estamos enfrentando, un usuario conocedor (o bien experimentado) de WordPress fácilmente podría reducir este numero a 2, ya que son solo 2 las ramas usadas hoy en día, las cuales son la rama 2.0.x y la ultima (la cual en estos momentos es la 2.6.x), sabiendo esto la búsqueda se acorta a tan solo un par de comprobaciones que podían irse desde checar mis anteriores entradas y deducir que seguramente estaré usando la ultima rama o bien ir por diferenciación de archivos entre las 2 ramas ya mencionadas (verbo y gracia: como se aproximo Armonth), para efectos del desafío se obtenía la rama 2.6.x con lo que mudamos nuestras teorías hacia esta rama.

Fase 2: A la búsqueda de $wp_version
Ahora conociendo a los que nos estamos enfrentado la teoría mas lógica era ir a buscar donde guarda WordPress su versión (o bien como lo guarda) así como en que puntos hace uso de esta.
WordPress controla/guarda su versión en el archivo version.php dentro de wp-includes, en este archivo se define una variable llamada “wp_version” donde se guarda la cadena con el numero de versión, con esto en la mano solo hacia falta sacar la relación de que archivos hacen uso de la misma, para esto hacíamos uso de cualquier aplicación que pueda buscar la cadena “$wp_version” dentro de todos los archivos de WordPress, claro tanto windowseros como linuxeros tienen sus soluciones incluidas en sus sistemas operativos…

Windowseros:

findstr /S "$wp_version" X:\directorio\donde\esta\wordpress\* > resultado.txt

Linuxeros:

grep -r "\$wp_version" /directorio/donde/esta/wordpress/ > resultado.txt

(para mayor comodidad se manda la salida hacia el fichero “resultado.txt”)

Una vez que vemos los resultados podemos encontrar alrededor de 8 archivos donde se hace referencia a la variable así como una funcion para obtenerla, sin embargo sobre todos los resultados/archivos destaca el archivo gears-manifest.php en wp-admin, ya que este solo carga lo necesario (carga script-loader.php y version.php ambos en wp-includes) y no hace alguna comprobación de seguridad por lo que queda abierto al publico en general, así que siguiendo la teoría visitamos…

http://g30rg3x.com/wp-admin/gears-manifest.php

Y nos encontramos con toda la lista de archivos que debe “Cachear” Google Gears localmente, entre ellos se destacan las hojas de estilo ya que estas al no tener un numero de versión por estilo se les define la variable “wp_version”, por lo que (en el momento del reto) se podía ver que la versión era “2.6.1-beta1-8615″ (hoy en día obviamente ya es otro, el cual no pongo para animarlos a que vean por su cuenta cual es) y con esto resolvíamos el pequeño desafío.

Conclusiones y un poco mas
Como se puede observar esta es una nueva forma de enumerar versiones en WordPress la cual fue incluida en la versión 2.6 de WordPress, lo característico de este “vector” es que el archivo “gears-manifest.php” no carga ninguna modificación dinámica realizada por los plugins (me imagino que no lo hace por cuestiones de rendimiento) por lo que soluciones como esta o esta otra, quedan totalmente inservibles.
Por consecuente es necesario ir y reemplazar directamente las llamadas hacia la variable wp_version para poder evitar este “vector” o bien manejar dinámicamente el numero de la versión, cambiando la variable wp_version en wp-includes/version.php y creando un plugin que cambie cuando se encuentre dentro de admin hacia la versión correcta, así no perderías las notificaciones de nuevas versiones dentro de panel de administración.
Desde este blog felicito a Sky, el único que fue capaz de tomarse un tiempo y responder a este desafió de manera satisfactoria, sin mas que añadir les dejo un saludo y un para la próxima a todos los que hayan participado en este pequeño desafío.

Saludos
PD: Dejare sin modificar el fichero gears-manifest.php durante al menos 1 semana, para que todos pueda ir comprobar que realmente no les estoy engañando.
PD2: Y por si aun no me creen basta con que sigan cualquiera de estas ligas.
PD3: Como puede observar a mis versiones les “añado” hasta que commit tengo actualizado mi WordPress, esto lo hago para tener la referencia y no perder la pase lo que pase, así que como quien dirían “por seguridad guardo mi versión exacta de WordPress de la vista publica”.

Un pequeño desafio…

Últimamente he visto que se han estado poniendo de moda los desafíos en los blogs, el que me conozca sabe que una de mis pasiones son precisamente los desafíos/retos/torneos, por lo que no me puedo quedar atrás de esta “moda” y proponerles uno muy sencillo pero que de seguro a mas de uno le traerá un pequeño dolor de cabeza, sin mas preámbulo pasemos al desafió:

Objetivo/Desafío
Conseguir la versión EXACTA de WordPress que uso actualmente.

Como responder al desafío
Mandar un comentario (en esta misma entrada) con el numero de versión y enviarme un correo electrónico describiendo la forma como se obtuvo la versión.

Premios
Ninguno; pero no hay mejor premio que el saber que eres todo un conocedor (o al menos un ocioso) de las entrañas de WordPress XD.

Invitados a participar*
Alexander Concha de Buayacorp
Héctor Delcourt de SigT
Masiosare de Masio IT

Estaré esperando sus soluciones en mi correo ;)

Saludos

* = No son precisamente invitados si no mas bien gente que creo son capaces de responder al reto con suma facilidad (no quiero presionar, pero podría apostar a que alex gana xD).

Actualización al 17/08/2008
El Desafío ha terminado, para leer la solución favor de seguir este vinculo.
¡Gracias por haber participado!