Reventar password de root desde Grub2

Para los que pensaban que esto era prácticamente imposible

1. Durante el arranque del equipo en el menú grub presionar «e» para editar las opciones de arranque

2. Localizar la linea que levanta el kernel y sustituimos «ro quiet splash» por «rw init=/bin/bash»

3. Presionamos CTRL+X

4. Esto nos devolverá el prompt de root  «[root@desconocido ~]#»

5. Ejecutamos el comando «passwd root» o el del usuario a modificar

6. Esto nos devolverá el prompt confirmando el cambio de password

7.- Sincronizamos los cambios con el comando «sync»

8.- Reiniciamos la maquina usando el comando «reboot -f»

Primeros pasos en AJAX

Desde hace tiempo la palabra AJAX se ha convertido en uno de los términos mas usados en el mundo de desarrollo de aplicaciones web.

El termino AJAX fue acuñado por Jesse Garret en su artículo “AJAX: a new approach to web applications” – en el cual el autor hace referencia a la posibilidad de tener aplicaciones web que tengan un desempeño muy similar al de las aplicaciones de escritorio minimizando así la brecha entre las mismas.

En términos prácticos AJAX (Asynchrounous javascript and XML) es una técnica de desarrollo web que genera aplicaciones web interactivas combinando:

  • XHTML y CSS para la presentación de información
  • XML, XSLT para intercambiar y manipular datos
  • XMLHttpRequest para recuperar datos asíncronamente
  • Javascript como nexo de unión de todas estas tecnologías

Sin embargo la combinación de las mismas y su uso práctico puede llegara a ser doloroso, si no se tienen fundamentos de cómo explotar estas técnicas de desarrollo.

Así que me di a la tarea de escribir un manual práctico con los primeros pasos necesarios para iniciarse en AJAX.

Primeros pasos en AJAX

¿Qué es un ataque de inyección iframe?

Hace algunos días me contacto un amigo que administra un sitio web para pedirme ayuda por que al entrar a su pagina principal el navegador le mostraba un mensaje de que entrar a su sitio podria dañar su equipo. El no entendía por que o como podía ocurrir esto ya que su servidor tenia sistema operativo Linux y el es el unico que tiene acceso al servidor por FTP. Así que se puso en contacto con su proveedor de hosting buscando respuestas y sobretodo ayuda pero poco fue lo que el soporte técnico del hosting pudo hacer por el, ya que no conocían este tipo de ataque.

Investigando al respecto logre ayudarle a solucionar el problema y en mi recorrido por los foros y sitios de antivirus y herramientas de malware encontré que esta situación es muy frecuente y en algunos servidores hasta recurrente. Así que me gustaría compartir los resultados que obtuve y como logre resolverlo.

Regularmente este ataque agrega una etiqueta  iframe dentro del body de nuestros archivos con nombre index, main, login y home. Esta etiqueta de iframe abre una pagina dentro de nuestra pagina que descarga codigo malicioso en la maquina de nuestros visitantes.

Un iframe también se puede usar para ataques CSRF (Cross-site request forgery) .

Un iframe de 1×1 no es visible pero cargado muchas veces puede causar una denegación de servicios.

Este tipo de ataques ocurre por que en el equipo o equipos desde donde accesamos por FTP a nuestro servidor web, se encuentra infectado con algún tipo de malware que toma los passwords guardados por el cliente de ftp y otras aplicaciones y los envía a los creadores del malware en algún servidor que se encarga de conectarse a nuestro servidor, buscar los archivos comunes (index, main, etc.) y agregar la etiqueta de iframe.

Existen algunas variaciones del mismo tipo de ataque.

En mi batalla personal encontré archivos con etiquetas de iframe con la dirección del atacante embebida dentro del código html (dentro de la etiqueta body), también encontre algunos tipos de ataque mas severos, en los que los archivos no conservaban nada del codigo original, en su lugar solo podemos ver una cadena sin sentido, que ejecuta codigo ofuscado con el mismo fin ejecutar el iframe. El problema de este ultimo es que el código ofuscado es una encripción del código original en base24 por lo que si bajamos el archivo para eliminar la cadena con el código ofuscado ninguna pc convencional podrá leerlo, de hecho ni siquiera se los mostrara dentro del editor.

La recomendación es:

1.- Revisar el ó los equipos que tienen acceso por FTP (incluso de los desarrolladores o programadores subcontratados) a este servidor con alguna herramienta anti malware, anti spyware y anti virus.

2.- Ya con nuestros equipos limpios pedir a nuestro proveedor de hosting eliminar la cuenta de hosting y crearla de nuevo. Para lo cual necesitaremos un respaldo reciente de nuestras paginas y de nuestras bases de datos. Si esto no es posible cambien el password de acceso a su FTP y borren todos los archivos anteriores del sitio.

3.- Subir el respaldo y cambiar los permisos de nuestros archivos y carpetas en el web server a solo lectura (444), de esta manera evitamos que algún código interno pueda escribir en los archivos, eso si cada que necesitemos realizar algun un cambio sobre los mismos tendremos que modificar las propiedades.

Por ultimo a petición de ustedes y sin afán de hacer comerciales les comento las herramientas que me funcionaron para detectar el malware:

Google Chrome como navegador web, si el sitio esta infectado evita la ejecución de la pagina y envía alertas visuales.

Ad Aware como complemento al antivirus para la detección del código malicioso.

Malwarebytes’ Anti-Malware nunca esta demás darle una doble revisada a los discos duros de nuestros equipos.

Y recuerden no guardar mas las contraseñas de sus sitios FTP en su maquina, sin importar que cliente de FTP usen.

El futuro de MySql

Como comentaba en el post anterior, la compra de Sun por parte de Oracle ha levantado alarmas sobre el futuro de MySQL, una de las bases de datos más utilizadas (si no la-más-utilizada) en el mundo del desarrollo web, fundamentalmente por su carácter de software libre — sin ir más lejos, cientos de CMS como WordPress, Joomla o Drupal la utilizan de forma preferente o exclusiva, por lo que la posibilidad de que Oracle decidiera detener su desarrollo para favorecer sus propios sistemas de bases de datos (propietarios y de pago) se presenta para algunos como una amenaza real al futuro de sus aplicaciones.

Pero… ¿existen verdaderamente razones para estas preocupaciones? Creo que no, y es más, creo que temer por el futuro de MySQL es no entender las ventajas del software libre, o peor aún, pensar que “software libre = software gratis”… Habría que agregar también que es en puntos como este donde se aprecia la diferencia práctica entre el código abierto y el software libre: a pesar de las diferentes concepciones que podríamos encontrar al respecto (por ejemplo, la definición “oficial” de código abierto, de la Open Source Initiative se parece más bien a una definición de software libre), podríamos reducir didáctica e ilustrativamente su diferencia al hecho de que en su sentido más básico, “código abierto” hace referencia al simple hecho de que es posible ver el código fuente de un programa. En este sentido, cualquier programa escrito en un lenguaje interpretado (PHP, Perl, Python, Ruby [on Rails]) distribuido públicamente caería en la definición de “código abierto” (a menos que por alguna razón “especial” su autor decidiera ofuscar el código).

Un ejemplo de lo anterior podría ser Movable Type, que en lo fundamental siempre ha sido de “código abierto”: el programa es puro código fuente interpretado, pero hasta hace poco no existía la libertad de distribuir una versión modificada, la que existe sólo a partir de su licenciamiento con la GPL. Es entonces cuando las cuatro libertades para usuarios de software cobran sentido: no se trata de una razones puramente filosóficas o políticas (aunque también lo es) ni de una posición utópica o radical (como si ello fuera algo malo)… software libre no es lo mismo que código abierto.

¿Y qué tiene que ver esto con MySQL? Que justamente, su carácter de software libre asegura un futuro protegido: si Oracle decide detener su desarrollo, cualquier grupo de desarrollo podrá tomar la última versión publicada bajo la GPL y continuar el desarrollo, creando un fork… con otro nombre (si Oracle decide proteger su marca), con nuevas metas, con otras personas participando; agregando nuevas características o simplemente mejorando su seguridad y rendimiento o con cualquier otro plan de desarrollo.

No es una posibilidad utópica: ha pasado un montón de veces y seguirá pasando. Ubuntu es un fork de Debian, WordPress es un fork de b2, Webkit es un fork de KHTML e incluso el sistema operativo de Apple, Mac OS X es un fork de Nextstep, que a su vez es un fork de BSD (que es una variante de UNIX).

¿Y si Oracle no detiene el desarrollo de MySQL sino que lo transforma en un producto de software libre de pago? Está dentro de sus libertades, mientras siga publicando su código fuente. Y esto tampoco sería el peor de los escenarios: del mismo modo, cualquier grupo podría dedicarse a distribuir ejecutables compilados a partir del código fuente, y en este caso también hay referentes —CentOS es una distribución de GNU/Linux compilada a partir del código fuente liberado por Red Hat, una distribución comercial de Linux (y una de las de mayor tradición).

De cualquier modo, los primeros pasos para asegurar el futuro de MySQL ya se han dado: uno de los creadores de esta base de datos ha anunciado la creación de la Open Database Alliance para coordinar el desarrollo colaborativo en torno a MySQL.

Y los más paranoicos se alegrarán de saber que ya existen un par de fork’s totalmente compatibles con MySQL y que fácilmente podría convertirse en su sucesor: MariaDB, una rama de MySQL desarrollada en comunidad que mantendrá la compatibilidad con los nuevos lanzamientos de MySQL, y Drizzle, un fork modular basado en MySQL 6.0 y desarrollado por los propios ingenieros de MySQL (ahora SUN) … y quién sabe, si Oracle decide finalmente jubilar a MySQL, quizás podríamos tener un sucesor que no sea solamente una copia sino una nueva y mejor base de datos.

Oracle compra Sun

El anuncio se realizo el día de hoy. De acuerdo a los comunicados de prensa de SUN y de Oracle (en inglés) anunciando el movimiento.

Después de que las conversaciones de adquisición con IBM no se concretaron, Oracle, en una movida sorpresa, llegó a un acuerdo para comprar Sun por 7.400 millones de dólares.

Según su comunicados el motivo más importante recae en dos de las propiedades más valiosas de Sun: Java y Solaris.

La Junta Directiva de Sun aprobó la compra de forma unánime, se hará efectiva en verano después de que los accionistas y el gobierno estadounidense den su aprobación.

Recordemos también que Sun compró MySQL hace un poco más de un año, lo cual significa que ahora pasa a ser controlado por Oracle.

Lo realmente procupante de esta operación es el futuro de MySQL como el manejador de bases de datos estandard de aplicaciones web y hasta hace poco de ERPS y aplicaciones de misión critica. Es por muchos conocido que muchas empresas empezaron a migrar sus aplicaciones de misión critica y core bussines a MySQL. Esto obedecía principalmente a la situación económica, a el hecho de que MySQL tenia ahora el motor transaccional innodb que le permitía cumplir con los estandares de ACID (ACID compliant) y por supuesto a que en manos de SUN podrías obtener un buen contrato de soporte 24 x 7 365 y en tu idioma. Muchos pensamos que estos factores mostraban a MySQL como un producto bien madurado y por evolución natural lo colocaría en una posición de líder indiscutible en la industria de los RDBMS.

Sin embargo en mi muy particular punto de vista, es una movida muy conveniente para Oracle, ya que la mayoría de las aplicaciones de Oracle están desarrolladas en Java. Por lo que ahora sera capaz de ofrecer soluciones completas (Hardware, Software y Tupperware), usando sus recién adquiridos; los míticos servidores T con procesadores Sparc, el sistema operativo Solaris, BEA Web logic como application server y por supuesto Oracle 10g como RDBMS, lo que dejaría a MySQL y a Glassfish fuera del esquema principal de negocio y por supuesto, muy probablemente dejaran de recibir soporte en algún tiempo.

Y pensando en que Oracle no ha figurado por ser una empresa cercana al open source, al menos a la comunidad que lo conforma, entonces nos queda pensar que el impacto para los productos (al menos los que compiten con su catalogo actual), seria negativo

Si esto sucede seria una verdadera lastima y el impacto para la red puede ser muy fuerte ya que MySql esta instalado en la gran mayoría de los web servers en el mundo y por supuesto el hecho de que el acuñado termino LAMPP perderia la «M». Me han contactado ya muchos miembros de la comunidad open source y algunos tienen ya la idea muy clara de que debemos empezar a buscar un reemplazo digno. Algunos ya están probando Firebird, otros de hecho están pensando en formar ya un nuevo proyecto en que se incluya código de Postgresql y Firebird y hacer un nuevo RBDMS incluyendo alguno de los motores opensource ya existentes que tenga soporte de ACID .

Afortunada o desafortunadamente no sabemos que rumbo vaya a tomar Oracle al respecto pero para algunos es ya un hecho que se acerca la muerte de MySQL como standard de la comunidad Open Source, algunos incluso lo piensan de ese modo – según sus palabras «No trabajaría con el de nuevo si pertenece a ORACLE.»

Jp’s Back!

Para los que estaban tristeando y dijeron, ¡Ya valio madres el blog del Juanpa!, ¡tengan! por que ya regrese, y el tiempo fuera fue …… por el cambio de hosting, y la espera de la resolución de nombres para este nuevo dominio.

Espero cargar lo mas pronto posible la tan controversial y a la ves aclamada interfaz de exploited PKND – Punks Not Dead (para los mortales, faltos de cultura), así como el respaldo con todos los post’s anteriores.

Una de la nuevas monerias es que en este nuevo server el blog acepta por default las conexiones smtp por lo que se van a poder dar de alta solitos, para postear, comentar y enviar comentarios por mail.

Un saludo a la banda y como siempre que la enfermedad los acompañe y los ilume cuando esten programando, configurando y sobretodo rendereando. y que el dot net y el java no se crucen en su camino (tan seguido).