domingo, 13 de mayo de 2012

Pentesting App Ipod Touch Jailbraked

Tomando un rumbo mas serio, posterior al jailbreak ahora voy a comentar aplicaciones para el pentesting para el iPod Touch... Vale hacer la aclaratoria, que las app que comento, las coloco como parte de mi trabajo y bajo ninguna circunstancia para atarcar redes, equipos, servicios o sistemas que no nos pertenezcan...

"Con un Gran poder viene una Gran responsabilidad..."

Ben Parker

El primero de los pasos a tomar es instalar (si no lo han hecho ya), MobileTerminal; esta es una App, que nos brindará una Cli dentro de iOS... El segundo de los pasos obvios es mejorar nuestra propia seguridad cambiando la clave de root y ya que estamos en eso pues instalemos openSSH de una vez (Todo eso ya lo comente en la entrada anterior....).

Nuevos Lenguajes:

Ahora lo que vamos a hacer es instalar Soporte para algunos lenguajes, para ello en cydia buscaremos e instalaremos:
  • Python
  • Ruby
Ahora vamos a las apps:

Nmap iOS:

Esta es una app que nos permite realizar un mapa de la red, se emplea para exploración o para auditoria de seguridad, en ocaciones se usa tambien para hacer inventario de red, y otras gestiones. Nmap lo que haces es emplear paquetes IP crudos en nuevas formas para determinar qeu hosts estan disponibles en la red, ver que servicios ofrecen estos equipos, qué sistemas operativos tienen, qué filgro de paquetes o firewall están siendo usados y muchas otras caracteristicas.

Instalarlo es muy sencillo puesto que viene en el repo de Cydia, asi que lo que hay que hacer es:

  • Ingresar a Cydia,
  • Click en Buscar (Parte Inferior derecha),
  • Tecleamos Nmap,
  • Seleccionamos la app,
  • Click en Instalar (parte superior derecha),
  • Confirmamos la instalación (parte superior derecha),
  • Dejamos que se ejecute el proceso y al finalizar click en volver a cydia.
Sniffit:

Este, al igual que nmap es otro sniffer de red, es mucho mas  sencillo que Nmap, pero puede ser util para quien se inicia en este tema, al igual que Nmap viene por default disponoble asi que no hay mucho que hacer:

  • Ingresar a Cydia,
  • Click en Buscar (Parte Inferior derecha),
  • Tecleamos Sniffit,
  • Seleccionamos la app,
  • Click en Instalar (parte superior derecha),
  • Confirmamos la instalación (parte superior derecha),
  • Dejamos que se ejecute el proceso y al finalizar click en volver a cydia.
Tcpdump:

Este es un programa utilizado como analizador de paquetes y puede almacenar y descargar el tráfico de la red, en un ipod lo qu epodemos hacer con el es rastrear el trafico y descargar ese log a un archivo para su posterior analisis.

Dado que esta en Cydia, lo que debemos hacer para tenerlo es:
  • Ingresar a Cydia,
  • Click en Buscar (Parte Inferior derecha),
  • Tecleamos Tcpdump,
  • Seleccionamos la app,
  • Click en Instalar (parte superior derecha),
  • Confirmamos la instalación (parte superior derecha),
  • Dejamos que se ejecute el proceso y al finalizar click en volver a cydia.
Whois:

Esta app nos da detalles de los dominios y como han sido registrados, es algo sencilla, pero muy util en realidad, ya que se encuentra en los repos de cydia instalarla es muy sencillo:

  • Ingresar a Cydia,
  • Click en Buscar (Parte Inferior derecha),
  • Tecleamos Whois,
  • Seleccionamos la app,
  • Click en Instalar (parte superior derecha),
  • Confirmamos la instalación (parte superior derecha),
  • Dejamos que se ejecute el proceso y al finalizar click en volver a cydia.
Pirni:

Esta app es un sniffer nativo  para iOS, lo que nos permite es capturar paquetes que se estan enviando en nuestra red y crear un log en formato .cap o .pcap lo que significa que podemos analizar nuestras capturas luego con wireshark. Lo cool de esta app es que esta de manera nativa en Cydia por lo que es secillo de intalar.

  • Ingresar a Cydia,
  • Click en Buscar (Parte Inferior derecha),
  • Tecleamos pirni,
  • Seleccionamos la app,
  • Click en Instalar (parte superior derecha),
  • Confirmamos la instalación (parte superior derecha),
  • Dejamos que se ejecute el proceso y al finalizar click en volver a cydia.
Del uso de las APP:

Para no hacer este post tan largo, en uno posterior les describire como emplear todo lo que hemos instalado hoy en una prueba de seguridad.... Hasta ese momento.... que la fuerza los acompañe

Introdución a las Roms Android (III)

Rootear vs Flashear

 A manera de introducción....

 

La memoria de solo lectura (ROM) no se llama así por nada... para reemplazar su contenido hace falta saltar algunos mecanismos de protección del móvil, mas especificamente es necesario obtener permisos de superusuario o rootear, ademas de poner el terminal en un estado especial para poder cargar la nueva ROM (flashear).

Rootear y flashear son acciones diferentes y que a veces se confunden. Lo primero es necesario para lo segundo, pero ninguna es obligatoria para disfrutar plenamente del móvil. Tener root es como ser el Administrador del móvil: da acceso a aplicaciones avanzadas y funciones ocultas, mientras que flashear implica cambiar radicalmente el sistema operativo.

Con un símil: si tu móvil fuese un Apartamento compartido, rootear sería obtener todas las llaves y flashear cambiar los muebles. Ahora bien, hay que tener en cuenta que algunos fabricantes pueden anular la garantía si les llevas un móvil rooteado a reparar...

 

Qué es rootear?

 

Quienes conozcan un poco Linux seguro que el término les suena. Root es una cuenta de usuario que tiene un control absoluto de todo lo que ocurre en un sistema. Es decir, que si rooteamos nuestro teléfono podremos acceder a todas sus funciones con todo lo que ello conlleva.
 
Rootear Android implica instalar un código dentro de tu dispositivo para que tu puedas acceder al sistema con todos los permisos sin restricciones, el procedimiento de Rootear Android no cambia la versión de tu sistema operativo ni elimina datos o aplicaciones, es un procedimiento seguro y puede revertirse fácilmente.

Rootear viene de la palabra root que en sistemas basados en Unix y Linux se trata de el usuario raíz con derechos absolutos para modificar o cambiar atributos de cualquier archivo o carpeta, esto nos da acceso completo a las opciones de Hardware como son el Audio, el GPS, Video, WiFi, etc, además de permitirnos ejecuar cualquier programa.
 
 

Pregunta Frecuentes del Rooteo:


Ser root es como hacer un jailbreak?

No, ser root implica tener acceso sin límites a Android. Mientras que hacer jailbreak significa poder cargar código no firmado, pero esto no aplica ya que Android es un ecosistema libre y no hay que pasar por un filtro para distribuir sin problemas nuestras aplicaciones, juego, etc.

Cuando se rootea se pierde la garantía?

Sí, pero el proceso es reversible. Si se tiene que mandar a reparar el móvil o tablet es posible deshacerlo y listo. Sin más problemas. Además para los que no quieran un root permanente existen aplicaciones para rootear de manera temporal y usarlo para acciones puntuales.

Es necesario hacerlo para disfrutar de Android?

No, pero si se quiere sacar todo el potencial al dispositivo se deberia.

Cómo se hace root?

La madre de todas las preguntas. El proceso varía en función del dispositivo pero existen aplicaciones casi universales que funcionan bien y son muy sencillas.

Qué es Flashear?


Bien, Flasear es simplemente el proceso por el cual instalamos una nueva rom (generalmente personalizada) en nuestro dispositivo móvil. Esta acción que nos permite tener una nueva interfaz, gozar de actualizaciones entre otras cosas.

Razones para rootear y/o Flashear Android:

  1. Mejora el rendimiento: Uno de los mayores problemas para akgunas personas es el rendimiento de sus teléfonos Android, muchas veces no son tan rápidos como les hubiera gustado. Dependiendo del fabricante, éste podría haber incluido algunos ajustes de rendimiento, como el overclocking de la CPU del teléfono. Así que en el Android Market hay aplicaciones que te permiten hacer overclock, pero para que funcionen el teléfono debe tener permisos de raiz lo que se logra Rooteándolo. Obviamente hay algunos riesgos aquí, pero de eso hablaremos luego. 
  2. Acceder a más aplicaciones y actualizaciones: La plataforma Android puede hacer un montón de cosas, sin embargo, todavía existen algunas limitaciones, impuestas por el fabricante o tal vez por la compañía telefónica, un teléfono Rooteado pasará por alto las limitaciones y te permitirá una mayor variedad de opciones de aplicaciones. Sólo por nombrar algunos de los numerosos ejemplos. Hay Firewalls, herramientas para hacer copias de seguridad, administradores de archivos de caché y mucho más.
  3. Evita la fragmentación: Una de las principales quejas de muchos usuarios de dispositivos Android es la fragmentación del sistema operativo. Esto sgnifica que entre todos los usuarios, hay muchas versiones diferentes del sistema operativo Android en uso. El Rootear un teléfono permitirá a un usuario utilizar una ROM que incluye las últimas características. Nuevamente, hay limitaciones aquí, ya que algunos teléfonos no son capaces de ejecutar las últimas ediciones. Entonces, lo recomendado es hacer alguna investigación para averiguar nuestro teléfono puede manejar el software a instalar.
  4. Mas Opciones: por ejemplo si se quiere ejecutar un ROM personalizado entonces tiene la opción de hacerlo o no, si se quiere que el teléfono trabaje en su máxima velocidad entonces se haces. Con un telefono Rooteado se tiene la opción de hacer casi todo lo que se quiera.
  5. Porque se puede: El proceso para Rootear Android es muy simple, casi cualquier persona lo pudes hacer, existen herramientas que con un solo click Rootean teléfonos con Android.


Introdución a las Roms Android (II)

En el articulo anterior, hable de la teoria de las Rom, Por qué cambiar la nuestra y los riesgos propios de este proceso. Bueno ahora llega el momento de definir los terminos mas comunes usados en los tutorias que los explican como llevar a cabo el proceso.

Para eso vamos a referirnos al articulo compilado por la gente de Android.es (aqui), el cual les transcribo a continuación ():

  • ADB – Del inglés Android Debug Bridge, es una herramienta para utilizar desde una terminal de comandos mediante la cual es posible comunicarse con un dispositivo Android conectado al mismo ordenador donde se ejecuta esta herramienta, o bien con una instancia del emulador de Android.
  • AOSP – Del inglés Android Open Source Project, hace referencia a las ROMs basadas en los códigos fuentes de Android proporcionados por Google, partiendo de la base del sistema original.
  • APP2SD – Proceso o aplicación que se encarga de forzar la instalación de las aplicaciones en la memoria externa del teléfono —incluso para aquellas aplicaciones que no lo permiten—, de modo que la memoria interna no se sature.
  • Backup – Copia de seguridad, generalmente de una ROM o de aplicaciones y/o datos de usuario.
  • Bootloader – Software que se encarga del arranque del dispositivo. Generalmente viene acompañado de una animación que se conoce como bootscreen.
  • Brick – Estado inservible en el que queda un dispositivo electrónico cuando se ha alterado de manera inapropiada alguno de los componentes críticos del mismo, como su firmware o su bootloader, de forma tal que no es posible volverlos a su estado normal de funcionamiento. Existe un estado “semi-brick” que presenta las mismas características que el “brick”, pero con la posibilidad de recuperarlo mediante un procedimiento específico.
  • Dalvik – Máquina virtual basada en la máquina virtual de Java que se encarga de la ejecución de las aplicaciones en Android.
  • Fastboot – Modo de arranque especial disponible en algunos dispositivos Android mediante combinación de teclas y que permite operaciones básicas similares a las de un recovery.
  • Firmware – Parte del software de un dispositivo grabado en una memoria ROM que se encarga de gestionar la lógica de más bajo nivel, siendo la parte software más cercana al propio hardware del dispositivo.
  • Flash – Método por el cual se instala una ROM o un recovery en un dispositivo.
  • Hard reset – Proceso mediante el cual se devuelve el dispositivo a su estado inicial de fábrica —o al estado inicial tras instalar una ROM—, mediante un proceso de recuperación disponible en el mismo.
  • JIT – Del inglés Just In Time. Método de compilación dinámica utilizado en Android para acelerar el rendimiento y la carga de las aplicaciones.
  • Kernel – Núcleo del sistema operativo que se encarga de realizar las operaciones relativas a la gestión del sistema operativo (gestión de memoria, planificador, etc.).
  • Mount – Proceso por el cual se “monta” una partición o unidad de almacenamiento, lo cual permite hacerla accesible ya sea para escribir o leer en la misma.
  • Nandroid – Sistema ampliamente utilizado para la realización y restauración de copias de seguridad del sistema completo (ROM, aplicaciones, datos de usuario, etc.).
  • OTA – Del inglés Over The Air, hace referencia generalmente a la posibilidad de obtener actualizaciones del sistema operativo “a través del aire”, es decir, sin necesidad de conectar el dispositivo a ningún ordenador para instalar una nueva versión.
  • Partición – Cada una de las distintas divisiones lógicas —es decir, no físicas— presentes en una unidad de almacenamiento mediante las cuales se “particiona” dicha unidad en tantas porciones como se requiera.
  • Radio – Parte del firmware que se encarga de realizar operaciones de bajo nivel, como gestionar la conectividad de red, el WiFi o la señal de GPS.
  • Recovery – Modo de arranque especial que se puede instalar en los dispositivos Android y que permite, entre otros, la recuperación o copia de seguridad del sistema y/o el flasheo de nuevas ROMs.
  • ROM – Del inglés Read Only Memory, es un tipo de memoria que, a diferencia de la RAM —Random Access Memory— no se elimina al interrumpir la alimentación eléctrica. En Android se utiliza este tipo de memoria para almacenar el sistema operativo, de forma que no interfiera con los datos del usuario. Generalmente verás utilizado el término ROM como sinónimo de una versión de Android que se instala en este tipo de memoria en un terminal.
  • ROOT – Tipo de usuario especial en sistemas tipo UNIX que posee permisos para realizar cualquier procedimiento. Es Android es necesario obtener permisos “root” o de superusuario para realizar algunas tareas específicas.
  • Swap – Partición especial que se realiza en una unidad de almacenamiento para servir de soporte a la memoria principal del sistema, de tal forma que se amplía virtualmente la capacidad de la RAM.
  • Wipe – Proceso por el cual se elimina toda la configuración de usuario y datos de las aplicaciones del dispositivo, dejando la ROM actual “limpia”.
  • ZipAlign – Herramienta proporcionada en el SDK de Android pensada para adaptar los paquetes .apk (contenedores de aplicaciones) de acuerdo con los requisitos óptimos del sistema Android.


Introdución a las Roms Android

Continuando con el proceso de personalización y escalada de privilegios en dispositivos ahora ha llegado el turno de Android... Desde hace unos 5 meses tengo un dispositivo con base en esta plataforma y es momento de dedicar tiempo a jugar con el -dios mediante tambien hacer que valla de mejor manera-

Ahora bien, como siempre voy a tratar el tema desde la teoria hasta llegar a la practica y este primer articulo lo dedicare a las roms Android personalizadas....

A manera de introducción...


Llevas ya un tiempo con tu ya-no-tan-flamante móvil Android. Va lento, hay apps que ya no son compatibles con tu versión del sistema operativo y los widgets ya no te transmiten ninguna emoción. Si tu móvil fuese un PC, lo formatearías y pondrías un sistema operativo más reciente. Al ser Android, la cosa es más complicada.

Tras el enésimo cuelgue, estás a punto de lanzar tu aparato por la ventana cuando, de improviso, un amigo te llama y te pide que no lo hagas, que aún queda esperanza. Que todo lo que tienes que hacer es ponerle una ROM nueva a tu celular. Levantas entonces una ceja y le preguntas qué es eso de una ROM.  

Qué es una ROM ?

  La Wikipedia define las ROM asi: 
Una imagen ROM, o simplemente ROM, es un archivo informático que contiene una copia de los datos de un chip de memoria de solo lectura, a menudo de cartuchos de videojuegos o del tablero de mandos de una máquina recreativa. El término es usado frecuentemente en el contexto de emulación, en la cual videojuegos antiguos son copiados a archivos ROM en ordenadores actuales y pueden, usando una parte de software conocido como emulador, ser jugados en el nuevo ordenador.
Las imágenes ROM también son usadas cuando se desarrollan para sistemas embebidos. El software con el que está siendo desarrollado para los ordenadores integrados es a menudo escrito en archivos ROM para testeo en un ordenador estándar antes de ser escrito en un chip ROM para uso en sistemas integrados embebido. A día de hoy, este artículo trata principalmente del uso de las ROM en relación a la emulación.

La ROM o memoria de solo lectura -en español- es el "alma" del movil -por así decirlo. Ella contiene el sistema operativo Android debidamente adaptado y configurado para funcionar con el hardware específico de cada teléfono móvil (antena, chip gráfico, cámaras, etcétera).

El sistema operativo se halla en una zona de memoria de solo lectura por dos motivos: 
  1. para evitar que lo dañes sin querer -por ejemplo, sobrescribiendo archivos- y,
  2. para que sigas fiel a las pequeñas modificaciones y aplicaciones integradas que los fabricantes suelen incluir en sus modelos (Algo muy ilogico de parte de los fabricantes de Telefonos Moviles siendo android producto de Software Libre).
La cosa es que al ser un sistema operativo de código fuente abierto, por suerte, se permite toda clase de modificaciones. Además de las ROM oficiales, es muy habitual encontrar ROM hechas por grupos de voluntarios y entusiastas que toman el código base y le añaden o quitan características o pieles. Incluso tú mismo puedes crear la tuya.

Por qué Cambiar... ? 

 Simple, Hay quien necesita más rendimiento, quien desea actualizar el sistema operativo a una versión superior sin esperar la actualización oficial y quien quiere renovar el aspecto de su móvil o simplemente probar cosas nuevas. La Verdad Cualquier motivo es bueno
 

Riesgos

  Generalmente no hay mayores riestos, aunque, es posible que tu móvil muera entre tus manos (bricking, literalmente "convertirse en ladrillo") si no sigues cuidadosamente los pasos recomendados o si llevas a cabo cada uno de ellos demasiado rápido y/o sin suficiente batería.  En cualquier caso, para la mayoria de estos insidentes, basta solo con reiniciar el móvil en modo recuperación y flashear otra ROM para solventar el problema.

Por los datos no hay que preocuparse, pero nunca esta de mas hacer una copia de seguridad -siempre es recomendable-. En teoría estos no se ven afectados ni por el rooteo, ni por el flasheo. Lo que sí puede ocurrir, y aquí conviene que estés atento, es que los datos pertenecientes a widgets y aplicaciones nativas de la ROM anterior no sean compatibles con las apps sustitutivas.