Hacking Ético, Seguridad Informática, RedTeam, Pentesting.

Mostrando entradas con la etiqueta Android. Mostrar todas las entradas
Mostrando entradas con la etiqueta Android. Mostrar todas las entradas

jueves, 13 de junio de 2024

Pentesting Móvil Parte 5

IDOR 2 - REALIZANDO TRANSFERENCIAS

¿Cómo se hacen?

En este ejemplo, el usuario autorizado está transfiriendo dinero de su cuenta (1111111111) a la cuenta de destino (2222222222). Si la aplicación no valida correctamente que el usuario está autorizado a transferir dinero desde la cuenta 1111111111, un atacante podría cambiar el valor de accountNo para transferir dinero desde la cuenta de otra persona.



Ahora veremos que al modificar “accountNo”, con una cuenta que no nos pertenece podemos realizar la transferencia a mi cuenta o a otra, esto sin que el usuario se dé cuenta, la mayoría de las veces nos pedirá un token el cual podremos realizar un ataque “ByapassToken”, para poder realizar la transferencia con éxito, en este caso no nos lo pide.

acá vemos la petición modificada y la respuesta de la misma, y si vemos le historial de transferencias del usuario “emma”, vemos que efectivamente se realizo una transferencia de $100 a otra cuenta.





Vemos en otro ejemplo, al momento de realizar un transferencia con valor Negativo vemos que se resta de la otra cuenta y se suma a la de nosotros.





Realizamos la transferencia de -$1,000 de la cuenta de michael a la cuenta de emma, consultamos el historial y el balance y vemos que en la cuenta michael se sumaron y en la cuenta emma se restaron los $1,000.






¿Cómo lo puedo solucionar?

Para prevenir los IDORS, debemos implementar controles de autorización robustos. Aquí hay algunas estrategias:

  1. Validación de la Autorización del Usuario: Asegúrate de que el usuario tiene permisos para realizar acciones sobre los recursos que está solicitando. Esto implica validar que el usuario puede acceder y realizar operaciones en la cuenta especificada en Account.

  2. Uso de IDs Indirectos: En lugar de exponer IDs directos, utiliza IDs indirectos o tokens que no puedan ser fácilmente adivinados o manipulados por el usuario.

  3. Validación de Entrada: Asegúrate de que todas las entradas proporcionadas por el usuario sean válidas y pertenezcan al usuario autenticado.

  4. Firewalls de Aplicación Web (WAF): Están diseñados específicamente para proteger aplicaciones web de una variedad de ataques, incluidos los IDOR.

Espero les sea de utilidad, nos vemos en la sexta parte.

Happy-Hacking 😊

miércoles, 13 de abril de 2022

Pentesting Móvil Parte 4

 Pentesting Móvil Parte 4


Como en las entras anteriores ya vimos como crear nuestro laboratorio de pruebas, las herramientas que estamos usando y como capturar trafico.

En esta entrada veremos que podemos hacer cuando ya podemos capturar tráfico, o interactuar con la aplicación de forma dinámica.


¿Qué podemos hacer?

Lo que podemos realizar cuando estemos testeando una Aplicación de forma dinámica, es:
  • Hacer fuzzing en los parámetros de nos muestra la aplicación 
  • Realizar prueba de lógica de negocios.
  • Idors
  • Etc.

¿Como lo realizo?

Al momento de capturar tráfico, podemos modificar los parámetros de la misma, mostraremos unos ejemplos de cómo hacerlo.

Idors (Insecure Direct Object Reference).

Es un tipo de vulnerabilidad que ocurre cuando una aplicación permite a un usuario acceder directamente a recursos, sin realizar el debido control de acceso.

Para realizar idors debemos tener en cuenta un par de cosas: el rol de la aplicación es decir el tipo de negocio, como lo son: los ids, roles, números de cuenta, números de tarjetas, entre otros datos.

 Ejemplo:

Ahora veremos como podemos hacer un IDOR, como ya mencionamos cambiaremos los datos para ver información de otro usuario, los datos de los demás usuarios están acá: https://github.com/WaTF-Team/WaTF-Bank/tree/master/Backend










Espero les sea de utilidad, nos vemos en la quinta parte.

Happy-Hacking 😊


sábado, 19 de febrero de 2022

Pentesting Móvil Parte 3

 Pentesting Móvil Parte 3

Luego de un merecido descanso volvemos con las entradas.
 
En esta entrada veremos cómo interceptar tráfico, esto lo haremos con la herramienta de Burpsuite.
 
¿Qué es BurpSuite?
Es una herramienta fundamental dentro de la seguridad informática, creada por la empresa PortSwigger permite realizar pruebas de seguridad de aplicaciones web, cuenta con una versión gratuita (Burp Free) y una versión de pago (Burp Professional).
 
¿Cómo configurar mi ambiente de trabajo?
Para poder realizar este paso, tenemos que configurar el proxy en nuestro teléfono ya sea virtual o físico, para ello podemos usar Nox o GenyMotion, y desde luego BurpSuite.
 
¿Cómo Generar el certificado en BurpSuite?
Para modo Sistema: Nos vamos al menú de options, luego configuramos la ip y el puerto, una vez configurado esto vamos a   import/export CA certificates, y  seleccionamos la opción “Export” –  “Certificate in DER format”, colocamos un nombre con la extensión “.der” para instalar en modo usuario lo haremos con la extencion “.cer”.





Luego de esto procedemos a usar alguna disto de Linux y hacemos lo siguiente: convertiremos el archivo con openssl.


Para ello usaremos estos comandos:


sudo openssl x509 -inform DER -in prueba.der -out prueba.pem
sudo openssl x509 -inform PEM -subject_hash_old -in prueba.pem |head -1
sudo mv prueba.pem <hash>.0

 

Ahora procedemos a instalarlo en el dispositivo en este ejemplo usaremos Nox, abrimos ADB y hacemos lo siguiente.

 
Adb devices
Adb connect
Adb root
Adb remount
adb push 9a5ba575.0 /sdcard/
mv /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0





Con esto ya tendríamos instalado nuestro certificado a nivel de sistema.

ahora procederemos hacerlo a nivel de usuario, Para instalarlo a nivel de usuario lo hacemos de la siguiente forma: procedemos a pasar el archivo .cer al dispositivo, vamos a configuración, seguridad e instalar desde la tarjeta sd, buscamos el archivo y lo seleccionamos, colocamos un patrón o pin, conjuntamente con un nombre y procedemos a instalarlo.

 







Otra forma es ir a configuraciones, wifi, ajustes avanzados, instalar certificados, los buscamos, le colocamos un nombre, el pin o el patrón, instalamos y por ultimo reiniciamos el dispositivo y listo.









Por ultimo configuramos el proxy en nuestro teléfono:

vamos a ajustes, wifi, dejamos presionado y escogemos las opciones avanzadas, luego proxy y seleccionamos manual, colocamos la ip y el puerto que configuramos previamente y con ellos ya podemos capturar trafico.


Espero les sea de utilidad, nos vemos en la cuarta parte.

Happy-Hacking 😊

domingo, 19 de septiembre de 2021

Pentesting Móvil Parte 2

 

Pentesting Móvil Parte 2

En la entrada de hoy veremos como hacer el bypass de Root para poder iniciar sesión y así poder usar la aplicación correctamente.

la instalación y configuración de  Frida y WaTF-Bank, se las dejo en los enlaces al final del post.


¿Cómo hacer el ByPass?

Iniciamos la aplicación y vemos que nos dice que no se puede usar en dispositivos rooteados, procedemos a usar Frida y los scripts que la app de prueba trae.

 




Ejecutamos dos cosas. 1. el server de la aplicación. 2. iniciamos el servidor de frida lo hacemos desde en el teléfono e iniciamos desde otra consola la aplicación de la siguiente forma como se ve en la imagen.

 


 de esta forma procedemos a hacer el bypass  ya solo nos queda iniciar sesión.


Otro método de hacer el Bypass, si se usa nox, podemos desmarcar la opción de arrancar en modo root, y con ello ya nos saltaríamos la pantalla del login.



Espero les sea de utilidad, nos vemos en la tercer parte.

Happy-Hacking 😊

Como instalar y usar Frida

Como instalar WaTF-Bank

viernes, 30 de julio de 2021

Pentesting Móvil Parte 1

Pentesting Móvil Parte 1


La entrada de hoy veremos cómo hacer pentestong móvil con la ayuda de un servidor de pruebas llamado “WaTF-Bank”, la herramienta Jadx y otras más, veremos lo relacionado a temas de OWASP Mobile Top 10, manos a la obra.  

¿Qué es Owasp Mobile Top 10?

Es un recurso centralizado destinado a brindar a los desarrolladores y equipos de seguridad los recursos que necesitan para crear y mantener aplicaciones móviles seguras.

Los 10 principales riesgos para dispositivos móviles: lista final de 2016



Herramientas:

Para la parte dinámica usaremos el servidor de pruebas WaTF-Bank, BurpSuite u Owasp-Zap, Nox o GenyMotion, Frida y ADB.  y para la parte  estática usaremos: Jadx y MobSF.

¿Qué es WaTF-Bank:?

La aplicación de banca móvil What-a-Terrible-Failure (WaTF-Bank), escrita en Java, Swift 4, Objective-C y Python (marco Flask) como servidor backend, está diseñada para simular servicios web del "mundo real". aplicación de banca móvil habilitada que contiene más de 30 vulnerabilidades.



¿Qué es Jadx?

Herramientas de línea de comandos y GUI para producir código fuente Java a partir de archivos Android Dex y Apk.

Principales características:

  • descompilar el código de bytes de Dalvik en clases de Java desde archivos APK, dex, aar, aab y zip
  • decodificar AndroidManifest.xml y otros recursos de resources.arsc
  • Desofuscador incluido

características de jadx-gui:

  • ver código descompilado con sintaxis resaltada
  • búsqueda de texto completo
  • entre otras cosas más

Otros servidores o entornos de prueba:

Diva

Insecurebank


Instalación WaTF-Bank: clonaremos el repositorio desde github: git clone https://github.com/WaTF-Team/WaTF-Bank.git, luego de ello entraremos la carpeta backend que nos crea e instalaremos los requerimientos: sudo pip3 install -r  requirements.txt, luego ejecutaremos el servidor de la siguiente forma: sudo python3 app.py -h 192.168.1.7 -p 5000, nos muestra que el funcionamiento del servidor esta correcto y nos muestra además una url con un puerto por defecto, procedemos a instalar la aplicación .apk en nuestro emulador. En mi caso usare Nox. Y modificaremos los parámetros ip:puerto con los que configuramos anteriormente en el servidor. Colocamos el usuario y la contraseña y con esto ya estría nuestro laboratorio listo para empezar las pruebas.

Nota: esta aplicación antes de conectarnos se necesita hacer un bypass de Root, se enseñara como realizarlo en la entrada siguiente.








Instalación Jadx-GUI: Para la instalación lo usaremos en Windows descargamos el .jar desde aquí, luego descomprimimos el archivo y ejecutamos el archivo.





Ejemplos:  M1. Uso Inadecuado de la Plataforma

Permisos excesivos: A menudo las aplicaciones nos solicitan un cantidad de permisos para su instalación, cuando revisamos estos detenidamente nos damos cuenta que algunos no los usan o no tendrían por qué solicitarlos.


Copia de seguridad Activa:  Es muy recurrente que se deje activa (true) andoird.allowBackup, esto de rebe de ir “false”.

Proveedor de contenido de Android:  Se encuentra que un receptor de transmisión se comparte con otras aplicaciones en el dispositivo, por lo tanto, lo deja accesible para cualquier otra aplicación en el dispositivo.

Receptor de radiodifusión de Android:

Se encuentra que un proveedor de contenido se comparte con otras aplicaciones en el dispositivo, por lo tanto, lo deja accesible para cualquier otra aplicación en el dispositivo.


Abarcaremos más contenido en las demás partes.

Happy-Hacking 😊