Damn Vulnerable Bank es una aplicación para Android que simula ser una app de un banco y que nos proporciona una interfaz para realizar pruebas y poder obtener una comprensión detallada de los aspectos internos y de seguridad más comunes.
Cómo utilizar la aplicación
- Clonar el repositorio:
$ git clone https://github.com/rewanth1997/Damn-Vulnerable-Bank.git
Servidor de Backend
$ cd Damn-Vulnerable-Bank/BackendServer
Con docker:
- $ docker-compose up --build
- Hacer una petición a /api/health/check para ver el estado
- curl <IP>:<magic_port>/api/health/check
Sin docker:
- Instalar dependencias
- nodejs (v10.19.0)
- npm (6.14.4)
- mysql (Ver 8.0.21)
- Actualizar la configuración de mysql (campos de nombre de usuario, contraseña) en config/config.json
- Insertar datos en la base de datos
- cat database/schema+data.sql | mysql -u root -p
- Instalar paquetes npm
- npm install
- Iniciar el servidor de aplicaciones
- npm start
- Hacer una petición a /api/health/check para ver el estado
- curl <IP>:<magic_port>/api/health/check
- Descargar la apk e instalarla a través de adb o manualmente
- Abrir la aplicación y agregar la IP de backend en la pantalla de inicio
- Probar el estado de ejecución presionando verificación de estado
- Crear una cuenta mediante la opción de registro o signup y luego iniciar sesión con las credenciales
- Realizar operaciones bancarias
- Iniciar sesión como administrador para aprobar al beneficiario
Username | Password | Account Number | Beneficiaries | Admin privileges |
---|---|---|---|---|
user1 | password1 | 111111 | 222222, 333333, 444444 | No |
user2 | password2 | 222222 | None | No |
user3 | password3 | 333333 | None | No |
user4 | password4 | 444444 | None | No |
admin | admin | 999999 | None | Yes |
Características
- Sign up/login
- Interfaz de profile
- Cambio de contraseña
- Interfaz de configuración para actualizar la URL del backend
- Agregar la verificación de fingerprints antes de transferir/ver fondos
- Agregar chequeo de PIN antes de transferir/ver fondos
- Ver saldo
- Transferir dinero
- Mediante entrada manual
- Mediante escaneo QR
- Agregar/Ver beneficiario (eliminar pendiente)
- Ver historial de transacciones (descarga pendiente)
- Ir a Opciones de compilación y seleccionar Generar paquete firmado/Apk
- Luego seleccionar Apk como opción y hacer clic en siguiente
- Crear un nuevo almacén de claves para firmar el apk y recordar la contraseña
- Seleccionar ese almacén de claves e ingresar la contraseña
- Ahora seleccionar Build variant como Release y Signature version como V2
- Construir (build) la apk
- Detección de root y emulador
- Comprobaciones anti-debugging (evita hooking con frida, jdb, etc.)
- SSL pinning: pinear el certificado/clave pública
- Ofuscar todo el código
- Cifrar todas las solicitudes y respuestas
- Información confidencial encodeada
- Fuga de Logcat
- Almacenamiento inseguro (tal vez números de tarjetas de crédito guardados)
- Actividades exportadas
- Token JWT
- Integración de WebView
- Deep links
- IDOR
- Agregar profile y rutas de cambio de contraseña
- Crear diferentes secrets para administradores y otros usuarios
- Agregar generación dinámica de secretos para verificar tokens JWT
- Introducir error o bug en la verificación de jwt
- Encontrar una manera de almacenar la base de datos y montarla mientras se usa Docker
- Entorno dockerizado
Rewanth Cool (Rest API) | Github | |
Hrushikesh Kakade (Android App) | Github | |
Akshansh Jaiswal (Android App) | Github |
Repo: https://github.com/rewanth1997/Damn-Vulnerable-Bank
Comentarios
Publicar un comentario