sábado, agosto 31, 2024
martes, junio 29, 2021
Nuestro nuevo "viejo" libro de Hacking de Aplicaciones Web: SQL Injection 4ª Edición ya disponible
Si fuera preciso explicar qué es un programa a alguien que no conociera nada en absoluto sobre el tema, quizá habría que comenzar indicándole que es "algo muy complejo". Algo que, aunque no lo parezca, hace muchas cosas y se relaciona con muchas otras componentes para realizar su trabajo. Algo que obedece ciegamente y al pie de la letra las instrucciones de su autor. Y algo a lo que no le preocupan las consecuencias de sus actos.
Complejidad. Ésa es la clave.Tanto en el producto como en el proceso de elaboración. Miles de líneas de código. Algoritmos complicados. Entornos de ejecución cambiantes. Presiones para entregar el producto en una determinada fecha. Escasez de medios humanos, materiales y técnicos... Pero esto es sólo el principio: después viene la puesta en producción y su posible exposición al mundo exterior. Un mundo que también es complejo.Visto lo visto, no es de extrañar que los programas contengan fallos, errores, que, bajo determinadas circunstancias los hagan funcionar de forma extraña. Que los conviertan en algo para lo que no estaban diseñados. Aquí es donde entran en juego los posibles atacantes. Pentesters, auditores,... y ciberdelincuentes. Para la organización, mejor que sea uno de los primeros que uno de los últimos. Pero para la aplicación, que no entra en valorar intenciones, no hay diferencia entre ellos. Simplemente, son usuarios.
Publicado por
Chema Alonso
a las
8:33 a. m.
0
comentarios
Etiquetas: 0xWord, Blind SQL Injection, BSQLi, Hacking, libro, Libros, MS SQL Server, MySQL, NoSQL, pentesting, PostgreSQL, SQL Injection, SQL Server, SQLi, SQLite
viernes, junio 05, 2020
La base de datos de WhatsApp en iPhone sigue sin cifrar, y estamos en 2020
![]() |
Figura 1: La base de datos de WhatsApp en iPhone sigue sin cifrar, y estamos en 2020 |
![]() |
Figura 2: Libro de Hacking iOS: iPhone & iPad 2ª Edición |
- PARTE 2: Cómo evitar que te espíen los mensajes de WhatsApp
- PARTE 3: Cómo mejorar la privacidad con WhatsApp
Figura 3: Tu iPhone es tan (in)seguro como tu Windows
![]() |
Figura 4: iMazing te extrae todos los ficheros haciendo un backup sin cifrar |
![]() |
Figura 5: Acceder a la SandBox de la app de WhatsApp ya no se puede directamente |
![]() |
Figura 6: Ficheros de iOS copiados al Mac |
![]() |
Figura 7: Con estos tres ingredientes, tenemos todo |
![]() |
Figura 8: En las tablas de la base de datos están los mensajes |
![]() |
Figura 9: Y toda la base de datos de contactos |
Debería haberlo hecho hace años.
Figura 10: Notas sobre el (No) cifrado de la base de datos de WhatsApp en iPhone
Autor: Chema Alonso (Contactar con Chema Alonso)
Publicado por
Chema Alonso
a las
12:03 p. m.
0
comentarios
Etiquetas: iOS, Iphone, Privacidad, SQLite, WhatsApp
lunes, junio 27, 2016
Recuperar información eliminada de BBDD SQLite #Forsensics #SQLite #Python
![]() |
Figura 1: Recuperar información eliminada de una base de datos SQLite |
De aquel trabajo de varias semanas, además de los 0days de las cámaras de seguridad que dieron la vuelta al mundo, salió una serie de artículos en Security By Default dedicados al Análisis Forense de SQLite que dividí en siete partes ([1], [2], [3], [4], [5], [6] y [7]) y una charla sobre ello en Rooted CON 2013 que titulé "Te pique lo que te pique analiza un SQLite". Con todo este trabajo, salió además una herramienta que fue el germen de la web Recover Messages.
Figura 2: RootedCON 2013 "Te pique lo que te pique analiza un SQLite"
![]() |
Figura 3: Recuperación de datos de una base de datos SQLite de Skype con RecoverMessages |
Debido a su ligero funcionamiento, estas bases de datos son ampliamente usadas en aplicaciones móviles como por ejemplo hace WhatsApp o Twitter para almacenar mensajes. También en aplicaciones de escritorio mucho más complejas, como es el caso de las conversaciones de Skype o las cookies en Firefox. Por eso, se podía utilizar RecoverMessages con Skype, WhatsApp - en la última versión de WhatsApp para iPhone la base de datos sigue sin cifrar - o bases de datos de Twitter.
![]() |
Figura 4: Estructura general de un fichero SQLite |
Pero pese a esas limitaciones y en función al origen del fichero, la herramienta es práctica para encontrar información que tal vez esclarezca un incidente de seguridad durante un proceso de análisis forense que deba realizar un perito, ya que tan solo una cookie recuperada o un trozo de mensaje podría llegar a ser más que suficiente para evidenciar un acontecimiento.
RecoverSQLite y DumpLite
Que no soy un programador experto no es ningún secreto, así que después de una primera versión llamada "recoversqlite.py", con ayuda de mi amigo WiredRat
![]() |
Figura 5: Dumplite en GitHub |
El uso es muy sencillo, solo hay que obtener el código de GitHub con gitclone e invocarlo con los parámetros deseados contra el fichero SQLite a analizar. Con la opción -h se muestra la ayuda tal y como se puede ver en esta captura durante una ejecución sobre Kali Linux.
![]() |
Figura 6: Descarga de dumplite y menú de ayuda de la herramienta |
Las propiedades del fichero y sus características se obtienen con el parámetro "-F". Entre las más relevantes, desde una perspectiva de investigación forense, son: (1) El número de páginas libres y (2) La codificación de los textos.
![]() |
Figura 7: accediendo a la información de un fichero SQLite |
Para obtener el contenido de las secciones marcadas como libres, tanto en formato ASCII como en hexadecimal, se usa el parámetro "-u".
![]() |
Figura 8: Volcado de los datos de la base de datos SQLite obtenidas |
Como comentaba anteriormente, tras ejecutar la herramienta se obtienen volcados de información y no se recuperan directamente los registros que hayan sufrido un "DELETE" como si nada hubiera pasado. El trabajo debe realizarse luego para ir conectando los datos volcados entre sí y extraer lo que había allí antes de ser eliminado. Espero que os sea de utilidad y cualquier comentario o Commit será bienvenido.
Autor: Alejandro Ramos (@aramosf), escritor del libro "Hacker Épico"
Publicado por
Chema Alonso
a las
7:24 a. m.
2
comentarios
Etiquetas: Análisis Forense, Firefox, forensics, Skype, SQLite, twitter, WhatsApp
martes, marzo 29, 2016
SIDU: Un Database Web GUI para escanear servidores
![]() |
Figura 2: Lista de bases de datos a las que se puede conectar para lanzar comandos SQL |
Remote XSPA (Cross-Site Port Attacks)
1.- Escanear puertos del propio servidor de bases de datos: Bastaría con manipular el valor del puerto con respecto a localhost.
2.- Escanear puertos de cualquier servidor de Internet: Esto se podría realizar si el firewall de la infraestructura de red donde está montado el servidor web que hospeda a SIDU no controlar las conexiones de salida.
3.- Escanear la DMZ: Esto se podría hacer si se averigua la dirección IP local del servidor en el que está hospedado SIDU.
![]() |
Figura 3: El puerto está cerrado |
![]() |
Figura 4: El puerto está abierto |
![]() |
Figura 5: El puerto está abierto y es un MySQL |
![]() |
Figura 6: Conexión a una base de datos SQLlite que no existe |
![]() |
Figura 7: En el menú interno hay acceso a un PHP Info |
![]() |
Figura 8: Acceso a la dirección IP local del servidor que hospeda SIDU |
![]() |
Figura 9: Escaneo por puertos de MySQL del segmento de red |
Figura 10: Connection String Attacks @ DefCON 18
Publicado por
Chema Alonso
a las
8:43 a. m.
0
comentarios
Etiquetas: bugs, Hacking, MS SQL Server, MySQL, Oracle, pentesting, SQL Server, SQLite, XSPA
jueves, septiembre 10, 2015
Dorking & Pentesting con Tacyt: Las P@ssw0rdS
![]() |
Figura 1: Dorking & Pentesting con Tacyt: Las passwords |
Estas búsquedas pueden llevar a resultados inesperados, pues muchos desarrolladores guardan la información sensible de sus sistemas en ubicaciones remotas enlazadas con un hipervínculo - por eso de que no se queden hardcodeadas en el código (sniff) - así que puede aparecer de todo.
¿Dónde pongo las passwords?
Sorprende ver la cantidad de veces que la gente es capaz de pensar que guardar la contraseña de algo en un fichero de texto es una buena idea. Así, basta con hacer una pequeña búsqueda por password o password.txt en los enlaces para descubrir que alguno utiliza este sistema.
![]() |
Figura 2: Un fichero en Dropbox llamado gmailpushpassword.txt (por si no lo tenías claro) |
De esto ya os había hablado en el pasado, y como podéis ver en una cuenta de Dropbox tenemos colgado un fichero con la contraseña de acceso al sistema de Gmail... ¿por qué? A alguien le pareció una buena idea.
![]() |
Figura 3: Y ahí está la contraseña |
Otra de las búsquedas que se pueden realizar es por los servicios de backend que guarden la lista de los usuarios y contraseñas. Para ello, buscando aplicaciones como UserList, Users, AllUsers, o similares, se puede llegar a lugares sorprendentes. En el siguiente ejemplo, tenéis un Users.txt de una app almacenado en el backend.
![]() |
Figura 4: Una base de datos en un fichero Users.txt |
Por supuesto, otra buena alternativa es utilizar una base de datos remota y cargarla en tiempo de ejecución. El uso de las bases de datos Sqlite es muy común, y buscando por dblink, database.db, BBDD, y nomenclaturas similares, es fácil dar con muchas de ellas con información sensible. Buscando por conexiones a bases de datos, llegué a un app con un enlace a un connexion_mysql con un parámetro sin valor.
![]() |
Figura 5: Acceso a una contraseña de administrador por medio de un enlace |
Este en concreto, por defecto no devuelve nada, pero... como ya sabéis que siempre hay que revisar un poco la zona por si falta algún parámetro, tocando lo suficiente es posible llegar a conseguir la consulta que devuelve el usuario administrador y su contraseña. Como podéis ver, nada complicado para un atacante con hacerse con los datos.
En otro caso, la base de datos no estaba directamente enlazada, había un enlace que llevaba a un servicio que devuelve la ruta en donde se encuentra la base de datos. Más vueltas, para llegar al mismo destino.
![]() |
Figura 6: Un enlace que da un enlace a una base de datos |
La base de datos es pública - para que la pueda cargar la app - y por lo tanto toda la información en ella es accesible... aunque alguna vez nos cueste entender qué es lo que está guardando.
![]() |
Figura 7: La base de datos |
Por supuesto, jugando con nombres como AllUsers, UserList, Usuarios, etcétera, es fácil localizar un montón de servicios de backend desprotegidos totalmente con la lista de cuentas que utiliza el sistema.
![]() |
Figura 8: Un enlace a una lista de usuarios en backend |
Nada Rocket-Science para un atacante. La gestión de las credenciales siempre es un problema que hay que resolver de manera robusta, pero si a una app le das una credencial o le das un enlace a un fichero que publicado en algún lugar de Internet tiene una credencial, asume que se has dado a todo el mundo y que es pública, por lo que deberás pensar en algún mecanismo para protegerte contra ataques.
![]() |
Figura 9: La lista de usuarios y sus códigos de accesos volcados del tirón |
Eso sí, para la tercera entrega me guardo otra de las cosas favoritas como buena idea. Yo la titularía... "¿Oye, y si dejamos las credenciales de acceso a los servicios de tercero directamente configuradas como parámetros?" Este es otro gran problema arquitectónico en las apps cuando tiras de APIs remotas que exigen autenticación y esta se hace por parámetros que van por GET. El resultado es que...
Saludos Malignos!
- Dorking & Pentesting con Tacty: Inyección de Comandos
Publicado por
Chema Alonso
a las
6:01 a. m.
3
comentarios
Etiquetas: Android, apps, Eleven Paths, pentesting, SQLite, Tacyt
lunes, diciembre 29, 2014
En apps de Android en Google Play te puedes encontrar enlaces locales, a cuentas Dropbox y hasta a contraseñas
Esta característica de buscar por enlaces de forma rápida y filtrada, nos permite, mediante los servicios de Vigilancia Digital, avisar cuando una nueva app está haciendo algo extraño y no controlado por el equipo de seguridad o de canales electrónicos de la empresa, pero también para detectar familias de adware que hacen uso de los mismos servicios para apuntarse dinero o, por ejemplo, hacer suscripciones ilícitas a servicios SMS de pago o similares como se hizo en la estafa de la linterna molona.
![]() |
Figura 3: Apps con enlaces a cuentas de usuario de Dropbox |
![]() |
Figura 4: App con un enlace a un servidor local |
![]() |
Figura 5: Enlaces remotos para cargar las API Keys |
![]() |
Figura 6: Otro enlace remoto para cargar API Keys |
![]() |
Figura 7: Un enlace a la password de Gmail en Dropbox |
![]() |
Figura 8: El Fichero con la passwod. Comienza por Money... }:) |
Algunas apps, hasta enlazan ficheros user.txt con cuentas de acceso que pueden utilizarse. Tal y como se ve, tienen datos de usuarios de QA y de pruebas, con ninguna complicación en las contraseñas.
![]() |
Figura 9: Lista de usuarios cargado desde un txt remoto |
![]() |
Figura 10: Una base de datos en txt publicada en Dropbox. El fichero es muy largo. |
![]() |
Figura 11: Enlaces a base de datos de app en formato Sqlite |
Publicado por
Chema Alonso
a las
8:21 a. m.
3
comentarios
Etiquetas: adware, Android, Dropbox, Eleven Paths, fuga de datos, Google Play, Malware, Path 5, Sinfonier, SMS, SQLite
Entrada destacada
+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial
Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares
-
Circula por la red un truco que llegó a mí de casualidad , donde se explica cómo conseguir ver más de una vez - e incluso capturar - las fot...
-
Ayer publiqué un post que tiene ver con las opciones de privacidad de Facebook asociadas a los correos electrónicos , y mañana sacaré la se...
-
Las técnicas de OSINT son aquellas que te permiten buscar información en fuentes abiertas. O lo que es lo mismo, sacar datos de plataformas...
-
Hoy os traigo una " microhistoria " peculiar que tiene que ver con la historia de la tecnología. Es una historia de esas que empie...
-
Hace mucho tiempo, cuando se creo el " Modo Incógnito " de los navegadores, que algunos llamaron también " Modo Privado ...
-
Dentro de una investigación de una fotografía, tal vez te interese saber dónde está hecha, o a qué hora se hizo. Cualquiera de esas dos info...
-
Conseguir la contraseña de Facebook de una cuenta es una de las peticiones más usuales que se suele recibir de la gente que busca solucion...
-
Una de las opciones que se puede configurar a nivel de hipervínculo, de documento o de servidor web en los navegadores es el funcionamiento...
-
El SEPE (Servicio Público de Empleo Estatal) ha sido víctima de la archiconocida crisis del COVID-19 enlazando la avalancha de expedientes...
-
La app de mensajería instantánea Telegram tiene muchos fans por el atributo de seguridad que ha querido potenciar desde el principio, per...