Geek & Roll » cracking

El PS3 ha sido hackeado

Cesar January 22nd, 2010 cracking 2 comentarios

Finalmente lo inevitable sucedió. George Hotz ha superado las barreras impuestas por el hypervisor del PS3, teniendo acceso total a la memoria del sistema y al CPU. Este es el anuncio oficial:

I have read/write access to the entire system memory, and HV level access to the processor. In other words, I have hacked the PS3.

Lo que sigue es esperar a la implementación de un exploit y ver cómo se desarrolla la comunidad del homebrew alrededor de esta consola.

Tiempo total de hackeo: 5 semanas. Can’t wait.

Crackeando el PS3: El estado actual

Cesar January 19th, 2010 cracking, entretenimiento, gadgets 2 comentarios

El PS3. Esta consola de séptima generación, y el tercer miembro de la familia PlayStation. Desde su lanzamiento en Noviembre del 2006 muchos crackers se han dado a la tarea de romper las barreras impuestas por el hypervisor y abrir la posibilidad de ejecutar código de terceros en esta máquina.

Primero que nada, ¿Qué es un Hypervisor? Según la Wikipedia, es un monitor de hardware o software que permite la ejecución de varios sistemas operativos en el mismo hardware. Existen dos tipos: Tipo 1 o nativo son los que corren directamente en el hardware. Tipo 2 son los que corren como cualquier otra aplicación del sistema operativo (como VirtualBox o VMWare)

Una visita a los foros de PS3-Scene revela poca actividad alrededor de la escena del PS3. Hace ya lo que parecen siglos Paradox, uno de los grupos más respetados en el mundo del cracking, anunciaba que tenía un iso loader listo para el PS3. Algo así como el santo grial, que nunca llegó.

Después vino IronPeter, un hacker de Rusia que logró tener acceso a algunos de los registros del RSX (la tarjeta de video del PS3) y con eso permitir la aceleración 2D para aplicaciones que se ejecutan desde OtherOS (GNU/Linux), lo que en teoría significa poder tener juegos y otras aplicaciones como Boxee o XBMC corriendo en el PS3 bajo GNU/Linux. La discusión técnica se encuentra en los foros de PS2Dev. Desgraciadamente la manera para aprovecharse de este bug es por medio de OtherOS, es decir la capacidad que tenían modelos anteriores de ejecutar otro sistema operativo. Hablo en pasado ya que el nuevo PS3 Slim ha eliminado el soporte para OtherOS, cosa que no me sorprende en lo absoluto.

A la fecha no se ha abierto el PS3 al homebrew. Es el turno de Geohot (a.k.a. George Hotz, master del iPhone) de probar suerte. Ya ha creado un blog “On the PlayStation 3” al igual que sucedió con el ahora famoso “Finding JTAG on the iPhone”. Pura lectura técnica y altamente interesante. Si la escena va a reportar adelantos próximamente, este es el lugar para estar atento.

Usando BackTrack 4

Un área donde realmente brilla GNU/Linux es el de aplicaciones para el análisis y mantenimiento de redes. Unix, el SO del que se basa GNU/Linux, es donde fue hecha la mayor parte del desarrollo de las aplicaciones originales que forman Internet. Además, la naturaleza abierta de GNU/Linux significa que es la misma comunidad la que se encarga de crear sus propias distribuciones, mismas que pueden ser tan generales o específicas según se necesite. Gracias a esto, se tienen distribuciones (o distros) para crear cortafuegos, centros de medios, discos de rescate y, en el caso de BackTrack, auditoría de seguridad.

BackTrack se basa en Debian y cuenta con versiones para DVD-Live y USB, de tal manera que los usuarios pueden ejecutar las múltiples aplicaciones que incluye sin modificar su sistema operativo actual.

En esta ocasión me voy a centrar en dos de los múltiples usos que se le puede dar a BackTrack: penetrar una red “protegida” con WEP y hacer ingeniería inversa a un binario de Windows. Leer el resto de este post.

Geohotz a.k.a. mi heroe se propone a hackear el PS3

Cesar August 17th, 2009 cracking, hacks 1 comentario

Leo en un post a twitter de la cuenta de George Hotz, el responsable de hacks famosos como el desbloquedo del baseband 1.2 para el iPhone, y mi heroe personal, que planea dedicarse a hackear el PS3.

El PS3 es el único videojuego de actual generación que no ha sido hackeado. La escena actual gira alrededor de GNU/Linux y hacks menores en versiones del firmware pasadas. Un hack en todo el sentido de la palabra abriría las puertas a homebrew nativo, es decir, sin utilizar la JVM del Blu-Ray o GNU/Linux. Correr con los mismos privilegios con los que corre un juego, bajo el mismo OS. Podríamos tener Boxee o XBMC corriendo de manera nativa, un verdadero sueño. Claro, también vendrían otras cuestiones como la piratería.

Por el momento la escena del PS3 se acaba de poner más interesante por un orden de magnitud. Espero que Geohotz haga público su avance y su código.

Jailbreak del iPhone 3GS

Cesar June 28th, 2009 cracking, gadgets, hacks Haz un comentario

Geohotz lo ha conseguido de nuevo y muestra una captura de pantalla de su iPhone 3GS corriendo homebrew: una terminal.

El Jailbreak aún no se hace público, pero esperen eso muy pronto.

De la moralidad de crackear redes WiFi

Cesar November 12th, 2008 cracking, opinion 26 comentarios

Recientemente hice públicos (via Twitter) algunos comentarios sobre mi actividad de “auditor de seguridad” en redes WiFi cercanas a mi residencia. Las reprimendas no tardaron en llegar, argumentando si esta bien “aprovecharse de los demás solo por no saber usar bien las cosas”. Lo anterior dio pie a que me pusiera a analizar a fondo el tema.

Llamo crackear una red WiFi al hecho de obtener la contraseña WEP de una red protegida para después utilizarla como si fuera la propia. Dejemos a un lado lo que se piensa hacer con la red: avisarle al 911 sobre un posible secuestro o administrar una BotNet para enviar millones de correos SPAM, da lo mismo. Más bien, aquí lo que se discute es si el hecho de usar la red esta bien, mal, o ninguna de las anteriores.

Es como si yo usara tu carro solamente porque se abrirlo.

Lo anterior fue uno de los argumentos que me dieron. Yo cierro mi carro con llave, le pongo alarma y bastón con la esperanza de que sea difícil de robar y creo que esta combinación aleja a la mayoría de los ladrones. También protejo mi red con filtrado mac y encriptación WPA-PSK y espero con eso mantener al margen a la mayoría de las personas que traten de usar mi red WiFi. De ninguna de las dos (protección de carros y protección de redes WiFi) soy experto, pero hago lo mejor que puedo con mis recursos y conocimiento. Si me llegan a robar mi carro porque lo deje abierto sin alarma y sin bastón me culparía a mi por la estupidez cometida.

Con lo anterior no digo que sea correcto penetrar la red WiFi de otras personas sin su consentimiento, de hecho es ilegal en algunos países. Lo que si considero es que no es una pregunta sencilla de contestar y recae en el área gris de lo aceptable, al igual que otras prácticas como la ingeniería inversa en donde, caso curioso, dependiendo del uso que se pretenda darle puede ser o no moralmente aceptable (¿ingeniería inversa de virus?). En el caso de las redes WiFi se decide no ver el uso que se pretende darle y solamente se enfocan en el hecho de utilizar la red para decir “es malo, te estas aprovechando de los recursos que otro pagó”. ¿Por qué?

Espero su opinión en los comentarios.

Crackeando Blu-Ray (BD+)

Cesar November 2nd, 2008 FLOSS, cracking, linux 3 comentarios

El siguiente post en los foros de Doom9 marcan el inicio de la espiral hacia abajo del DRM en el formato Blu-Ray (traduzco):

Estoy feliz de anunciar la primera restauración exitosa de la película “El día después de mañana” protegida con BD+, lo cual fue hecho bajo linux. Se hizo con un drive blu-ray con firmware parchado (para obtener el volume id), DumpHD para desencriptar el contenido de acuerdo a la especificación AACS y el depurador BDVM que se encuentra en este hilo de discución para generar la tabla de conversión. Esta tabla es la información clave para reparar exitosamente todas las partes corruptas en los archivos m2ts y de ahí restaurar el contenido original (video). Esta pequeña herramienta fue utilizada finalmente para reparar el archivo de la película principal “00001.m2ts” de acuerdo a la tabla de conversión.

Para verificar si el resultado es correcto comparé mi archivo 00001.m2ts con el que genera AnyDVD-HD y son iguales. El hash MD5 de este archivo de 30GB es en ambos casos “0fa2bc65c25d7087a198a61c693a0a72″.

¡Buen trabajo a todos!

¿Qué significa esto? La protección tiene sus días contados. De aquí en adelante saldrá cada vez más software capaz de desencriptar los discos blu-ray, algo similar a lo que sucedió con DeCSS por allá en el ‘99.

Para detalles extremadamente técnicos sobre el proceso que se siguió para llegar a esta emocionante conclusión pueden leer el hilo entero que mide muchísimo pero vale la pena. Fascinante.

Cracking 101 – Capítulo 1.1

Cesar August 7th, 2008 cracking 14 comentarios

Capítulo 0

Introducción
Cracking es sobre eliminar restricciones impuestas a un programa cuando no se tiene el código fuente original. Lo anterior puede ser tan simple como una verificación que nos forza a comprar un programa después de X número de días, o tan noble como agregar funcionalidad que necesitamos a un programa del cual no tenemos su código fuente y el autor por alguna razón no está disponible para hacer los cambios. Sea cual sea el motivo, todo se reduce a encontrar esa restricción y eliminarla. Esto nos lleva al tema principal de este capítulo: tipos de restricciones y aproximaciones para eliminarlas.

Si se tiene experiencia en Windows más temprano que tarde te topas con los llamados Shareware, aunque solían ser más populares a mediados de los 90’s. Este tipo de programas te ofrecen una versión de prueba, generalmente con algunas restricciones impuestas. Si el programa te gusta, lo puedes comprar para eliminar las restricciones. Cuando el programa deja por fuera algunas características que si se incluyen en la versión final entonces es un Demo. La diferencia entre Demo y Shareware es que el primero simplemente no incluye la funcionalidad, mientras que el Shareware si incluye la funcionalidad pero es restringida de una u otra forma. Leer el resto de este post.

Super Monkey Ball para iPhone crackeado

Cesar July 28th, 2008 cracking, gadgets, hacks Haz un comentario

Uno de los juegos más populares de la Application Store del iPhone es el Super Monkey Ball de Sega, por el que se tiene que pagar la módica cantidad de $10 dlls. Pues bien, resulta que un grupo de hackers se ha encargado de eliminar el DRM de las aplicaciones que se venden en la App Store (FairPlay, el mismo que usan en iTunes) resultando en aplicaciones y juegos que cualquiera puede instalar en su iPhone, compartir con otros, etc.

¿Y cómo le hago? Simple. Aquí les muestro los pasos para GNU/Linux:

  1. Descargar Super Monkey Ball crackeado
  2. Instalar SSH en el iPhone, por medio de Cydia. De una vez instalar Toggle SSH que nos facilitará las cosas
  3. Una vez instalado SSH, reiniciar el iPhone
  4. Descomprimir el zip de SMB. En este caso uso de ejemplo /home/usuario/juegos/. Al descomprimir te crea una carpeta Monkey Ball.app. Eliminen el espacio del nombre para que quede MonkeyBall.app
  5. Para transferir al iPhone, en la consola: scp -v -r /home/usuario/juegos/MonkeyBall.app/ root@ip-del-iphone. El password por default de SSH es alpine
  6. Asegurarnos que los permisos sean 755 (por default así es). Nos podemos conectar por ssh: ssh root@ip-del-iphone y verificarlo (con ls -al)
  7. Crear (por medio de SSH de nuevo) la carpeta Documents en /var/mobile y darle permisos 777 (chmod 777 /var/mobile/Documents)
  8. Reiniciar el iPhone, aparece el ícono de Super Monkey Ball. Si todo esta bien utilizar ToggleSSH para detener el daemon de SSH
  9. Enjoy

Cracking 101 – Capítulo 0

Cesar May 7th, 2008 cracking 10 comentarios

A petición popular me dispuse a crear otra serie de escritos dedicados al cracking, no como actividad ilegal, sino como el arte que es. ¿Porqué lo hago? la respuesta en sí es sencilla: Por que me gusta crackear. Pero hay otras razones de peso:

  • Muchos de los tutoriales en español disponibles son muy antigüos, y aunque la información sigue siendo válida, a veces es difícil conseguir las herramientas de las que hacen uso, o la versión exacta del programa víctima que usaron
  • Hay un interés por mejores tutoriales, mejor escritos y más accesibles a los usuarios novatos
  • En su tiempo recibí muy buenos comentarios sobre mis propios tutoriales, lo que me lleva a pensar que tal vez tengo algo de talento en eso

Antes de que se quieran poner a crackear sus programas favoritos, hay que estudiar lo que hay detrás de un programa. Es muy similar a tocar la guitarra: uno quiere agarrar la guitarra y tocar Stairway to Heaven, y con la suficiente práctica sucederá, pero tenemos que empezar por unos sencillos acordes primero. Todo es parte del proceso. Aún así, en este tutorial #0 voy a ilustrar la teoría utilizando un programa real, ejecutándose bajo un debugger.

Hay algunos conceptos que tenemos que revisar antes de comenzar a crackear. Algunos parecerán obvios, otros no tanto. Lo importante es tener la cabeza despejada, abrir la mente y comprender cada uno de los detalles. Uno de los conceptos clave es saber cómo se ejecuta un programa en la computadora. Esto nos ayuda a saber cómo atacar al programa. Un programa típicamente se guarda en memoria no volatil, es decir, memoria que se mantiene aún cuando se apaga la computadora (como el disco duro, memoria flash). Cuando el programa se ejecuta, este se copia a la memoria RAM, ya que de ahí el CPU puede accesarlo de manera directa. El CPU ejecuta el programa instrucción por instrucción. Como podemos ver, aún cuando la computadora se compone de múchos subsistemas, el que nos interesa para crackear es el CPU, ahí es donde ocurre la magia.

Para crackear, necesitamos entender cómo es que el CPU ejecuta el programa, el problema es que el CPU entiende instrucciones binarias solamente. Binario es muy conveniente para una máquina ya que es muy fácil de representar por hardware los dos estados (0 y 1), pero no lo es para nosotros y por eso necesitamos lenguajes de más alto nivel. El lenguaje que le sigue al lenguaje máquina es el llamado “ensamblador”. Cada familia de procesadores tiene su propio lenguaje ensamblador. En nuestro caso, necesitamos entender lenguaje ensamblador para el x86.

Algo que sería buena señal es que en estos momentos ya tienen en sus manos un manual para ensamblador x86, o mejor aún, ya lo estudiaron de alguna manera. Como recomendación personal está el libro “The Art of Assembly“. No es específico de cracking, e introduce un concepto de ensamblador de “alto nivel” que podría confundir a algunos, pero tiene una sección que deben leer titulada “Una introducción a la familia de CPUs 80×86 de Intel“. Del lenguaje ensamblador no necesitamos todo, aunque entre más sepas del lenguaje, más se te facilita tu tarea. Lo básico son algunas instrucciones con las que se van a topar al inicio: instrucciones de salto, comparaciones, movimiento de datos, llamadas a funciones y lo referente a la pila (es decir, stack, no pila de batería). Como primer ejercicio, vamos a revisar algunas de estas instrucciones: Leer el resto de este post.