Clipboardme o cómo robar el contenido del portapapeles sólo con visitar una página maliciosa

Hasta no hace mucho todos lo navegadores usaban document.execCommand para todas las interacciones de las aplicaciones web con el portapapeles. Sin embargo, este método es síncrono por lo que la experiencia de usuario se veía muchas veces penalizada y por ello (y por otras razones pero por esa sobretodo) se desarrolló y empezó a usar una nueva API asíncrona Async Clipboard API.

Con esta API el texto se puede copiar silenciosa y automáticamente al portapapeles llamando a writeText(), sin solicitar permiso. Ejemplo:
<script>
navigator.clipboard.writeText('Malicious command to be copied');
</script>

Imaginaros qué tan peligroso puede ser que un usuario ejecute un código de portapapeles del tipo: windows+x, una shell reversa y ctrl+v. Y no hace falta ni presionar el enter, sólo un acceso directo...

Luego el texto se puede leer desde el portapapeles (aunque requiere permisos esta vez) llamando a readText(). Lo más sencillo:
<script>
navigator.clipboard.readText().then(clipText =>  document.write(clipText));
</script>

Como sabéis, los usuarios copian habitualmente información confidencial como contraseñas y detalles personales en el portapapeles, que luego puede leer cualquier página...

Pues bien, hoy traemos una herramienta de linux_choice llamada Clipboardme que (seguro lo habéis adivinado) crea una página HTTPS maliciosa para grabar estos "apetitosos" contenidos mediante Async Clipboard API y los envía a la máquina del atacante, en este caso mediante un túnel ngrok.


Es compatible con Chrome >66 y Opera >53 y sus respectivas versiones en Android. Como limitaciones tendremos que el acceso al portapapeles solo se permitirá cuando la página https esté en la pestaña activa y recordar que las páginas en pestañas activas pueden escribir en el portapapeles sin solicitar permiso, pero la lectura desde el portapapeles siempre requiere permiso.

Requisitos:

Ngrok Authtoken (para el tunneling TCP): https://ngrok.com/signup

./ngrok authtoken <YOUR_AUTHTOKEN>

Uso:

git clone https://github.com/thelinuxchoice/clipboardme
cd clipboardme
bash clipboardme.sh


 
Proyecto: https://github.com/thelinuxchoice/clipboardme

Comentarios