Caza de patos: detener los ataques de los duques de goma

[*][*]

Una mañana, un pirata informático ingresa a su oficina. Asumes que es un compañero de trabajo porque lleva un pasamontañas. El pirata informático inserta un disco USB en una computadora en el cubo adyacente. En la pantalla aparecen extrañas herramientas de línea de comandos. Minutos después, toda su empresa está comprometida. El pícaro se retira rápidamente con un disco para el pulgar en la mano.

Este es el escenario imaginado por los proveedores de pasamontañas y patitos de goma USB, diminutos dispositivos USB capaces de inyectar código, ejecutar programas y extraer datos de cualquier sistema. La mejor manera, y la más común, de prevenir un ataque de este tipo es llenar los puertos USB con epoxi. [pmsosa] pensó que tenía que haber un método de defensa de software contra estos patitos de goma, por lo que creó un cazador de patos, un pequeño y eficaz demonio que puede capturar y prevenir estos ataques.

El ataque Rubber Ducky simplemente abre una línea de comando y lanza un ataque desde un teclado USB HID copiado. Si el atacante no puede abrir cmd o PowerShell, el ataque se interrumpe. Sin embargo, eso es bastante simple de codificar [pmsosa] tiene algunos trucos más bajo la manga. Duck hunter tiene una función de contramedida "oculta" en la que se bloquea una de cada 5-7 pulsaciones de teclas. Para el atacante, la contramedida "insidiosa" parece que el ataque funcionó, donde de hecho fracasó sensacionalmente.

Hay algunos ataques diferentes similares a los que puede lograr Rubber Fellowship. Mousejack realiza el mismo ataque a través de Bluetooth. BadUSB es un poco más técnico, lo que permite que cualquier persona con acceso al firmware del dispositivo ponga su propio teclado en su contra. Debido a la naturaleza del ataque, Duck Hunter apaga a todos.

En este momento, la compilación es solo para Windows, pero de acuerdo con [pmsosa]Las versiones de Linux y OS X vendrán en GitHub.

[*]

  • Jon dice:

    ¿Entonces "rm -rf ./" podría convertirse en "rm -rf /"? ¡Oculto!

    • Arcilla dice:

      Suponiendo GNU Coreutils, necesitaría una raíz no guardada allí.

      • Bumbo dice:

        mata ligeramente el humor

      • k dice:

        A menos que tenga una versión antigua. IIRC -no-preserv-root solo se introdujo a mediados de la década de 2000.

  • Saabman dice:

    Recientemente, la semana pasada, los componentes de RS enviaron un artículo promocional que se parecía a su catálogo en una memoria USB.

    Beauty, pensé y lo inserté y WTF, era un emulador de teclado USB HID que abrió el programa de comandos y lanzó un comando que le dijo a mi IE que se conectara a su sitio web. Bastante amable pero con componentes RS, ¡tus ideas de marketing apestan!

    ¿Dónde estaba entonces mi espécimen de cazador de patos?

    • Steven Gann dice:

      En la universidad, el Gobierno Estudiantil llevó a cabo una campaña de concientización y distribuyó unidades USB con su logo, etiquetadas como 8GB. Agarré uno, y siendo el patín profesional y barato que soy (soy judío, ¿qué puedo decir?) Di una vuelta y obtuve dos más.

      Vuelvo a casa e inserto uno, y descubro que en realidad era un emulador de teclado HID que abrió IE en el sitio web de Student Government. Aparentemente, tampoco puedes confiar en los políticos estudiantiles.

      • Addidis dice:

        Solía ​​vender garajes y vender palos por $ 1. No quieres saber qué había en ellos.

        • Descalzo dice:

          Quiero saber qué había en ellos ...

      • nwildner dice:

        - Estudia este dispositivo[*]
        - Cree una bifurcación con "Open IE -> escriba www_xvideos_com"[*]
        - Déjelo a su hermano menor / mesa de syster[*]
        - Llama a tu mamá cuando entre[*]
        'Reír en voz alta

        • Addidis dice:

          lels jp. conseguir una fuga.

    • ATWolf dice:

      Conseguí uno de esos hace aproximadamente un mes de RS.[*]
      Es un grupo de publicidad con sede en HK, además se les envió directamente desde allí lo que RS le dio a esa empresa su nombre y dirección.

      Lo que es aún peor es que no va directamente a su sitio web. funciona con un redireccionamiento de URL controlado por la empresa de marketing. tiene la palabra 'seguro' en la URL pero no usa HTTPS.[*]
      Si la empresa se presenta alguna vez, alguien solo tiene que comprar ese dominio y redirigir a algo incorrecto si alguien más tarde conecta el dispositivo.

      Hay 2 almohadillas diminutas cerca del cabezal del conector USB. Si es similar a otros de estos dispositivos publicitarios, pude encontrar, entonces probablemente sea un vínculo al chip flash que almacena la URL. No tengo un hacker de bus o similar, pero probablemente sea una interfaz i2c simple. Sería divertido descubrir y reprogramar la URL.

  • pff dice:

    o simplemente bloquea tu computadora cuando afk

  • williamderieux dice:

    > Duck Hunter tiene una función de contramedida 'oculta' en la que se bloquea una de cada 5-7 pulsaciones de teclas.[*]
    Puedo ver que el equipo de alta dirección está cerrando rápidamente esa función ... porque un empleado no podrá realizar el trabajo porque entre el 14 y el 20% de las veces su teclado no funciona, los usuarios y el equipo de gestión bombardearán el Soporte de TI. un equipo con quejas sobre teclados fallidos, y eso será el final.

    • Steven Gann dice:

      Acordado. Para los cazadores como yo, difícilmente se notaría, pero para cualquiera que mecanografiara con una velocidad decente, sería paralizante.

      Me pregunto si podría limitar el efecto de bloqueo a los dispositivos que no estaban conectados al inicio. Los teclados normales no suelen funcionar si el usuario no inserta uno nuevo ese día, e incluso entonces podría resolverse con un sarcástico "Hola, soy IT. ¿Has intentado restablecerlo? ... De nada. . "

      • williamderieux dice:

        No sé si sería una buena idea bloquearlo de los dispositivos que estaban conectados al inicio, simplemente porque un atacante hará todo lo posible para asegurarse de que el patito de goma no se destaque, como conectarse a los puertos USB. en la parte posterior de la máquina (y estaría presente en el encendido).

        El cazador de patos, en general, suena como la elección nuclear: podría realizar la tarea, pero el daño adicional también sería alto.[*]
        Creo que sería mejor usar el método probado y verdadero, como muestra el artículo, para epoxi de los puertos o bloquearlos físicamente.

        • Steven Gann dice:

          Estoy en desacuerdo. El escenario presentado implica que la computadora ya está encendida y el atacante inserta la goma de la felicidad como un pulgar. Si el atacante está dispuesto a reiniciar la computadora con el dispositivo insertado, simplemente puede insertar una unidad USB de arranque real a través de Linux o incluso DBAN, según su propósito. No hay nada que pueda hacer para evitar eso a menos que logre apagar un arranque USB (sé que no puedo).

          > epoxi las puertas o bloquearlas físicamente.

          Eso todavía deja al menos 2 puertos USB abiertos, uno para el teclado y otro para el mouse, y tal vez también un puerto PS / 2. Si reiniciar la computadora es una opción para el atacante, el puerto PS / 2 se convierte en un vector de ataque.

          • williamderieux dice:

            Sí, hay varias formas, hasta el domingo, de atacar un sistema.

            Todos ellos, básicamente todo hace que el Duck Hunter sea ineficaz (especialmente porque, como dije antes, interrumpe las operaciones normales, hasta el trabajo que no es posible completar).

            Y claro, el escenario presenta una máquina en funcionamiento, pero si la máquina se puede reiniciar para engañarla (como con el bloqueo de la función contra dispositivos USB conectados al inicio), eso también la desactiva.

            Supongo que la única forma real de evitar el acceso al dispositivo sería bloquear la torre de la computadora (incluidos los puertos, etc.) con algún tipo de material protector (como una caja fuerte, etc.); la única forma en que un atacante haría algo físicamente al El sistema se cortaría y modificaría cables y eso sería muy notorio.

          • williamderieux dice:

            Tampoco veo que muchos atacantes quisieran dedicar tiempo a arrancar Linux desde una unidad USB (principalmente porque eso requeriría más tiempo del que probablemente tienen y los revelaría).

    • Matt Cramer dice:

      ¿Podría aplicar esto de forma selectiva solo a los comandos enviados a CMD o Powershell?

    • sosavpm dice:

      La velocidad a la que se establece ahora es simplemente irreconciliable para las personas (incluso si le permite presionar una tecla), por lo que, afortunadamente, no tendría ese problema.

  • biblioteca electrónica dice:

    del artículo diario pirateado en 2009[*]
    https://la-tecnologia.com/2009/09/18/how-to-write-udev-rules/#more-15328

    cualquier memoria USB en mis máquinas Linux que no esté "autorizada" tiene el formato EXT2.

    Hay gente triste “que perdieron sus datos” tras entrar, sin pedir que inserte un pulgar !!!!

    • barry99705 dice:

      Esto no funcionará con el patito de goma USB. No es una unidad USB, solo parece una.

      • nwildner dice:

        Simplemente use DENY ALL en Udev, replique también en initrd o initramfs.

        Pero sí, estoy de acuerdo contigo porque Rubber no es un almacenamiento USB.

    • CaptMcAllister dice:

      No te equivocas, Walter ...

  • Nwildner dice:

    Gracias a Dios que uso linux-grsec en un escritorio basado en Arch 🙂

    https://wiki.gentoo.org/wiki/Allow_only_known_usb_devices

    • barry99705 dice:

      ¿Cómo se instala un nuevo teclado si el actual muere?

      • nwildner dice:

        Es un escritorio. Simplemente inicie, espere a que finalice el proceso de apagado, inserte un nuevo teclado, comience de nuevo. La muerte del teclado no es un evento tan común como "conectar un disco", y no creo que este deba ser el fin del mundo.

        También puede averiguar cuál es el nuevo teclado con cualquier solución de teclado virtual y luego:

        eoo "1"> / sys / bus / usb / devices / xxx-y / autorizado

        Creo que la solución del teclado virtual llevará más tiempo;)

        • barry99705 dice:

          Entonces esto no funcionará, el patito aparece como un dispositivo oculto, no como un disco.

          • nwildner dice:

            ¿Leíste la documentación?

            GRKERNSEC_DENYUSB bloqueará TODOS LOS DISPOSITIVOS USB, excepto los conectados en el arranque, o aquellos que permita con eoo 1 en el archivo de identificación del dispositivo, sin importar si está en disco u oculto. Cuando se dice que la muerte del teclado no es tan común como un disco conectado a través de USB, esto no significa que GRKERNSEC_DENYUSB no funcione con hardware HID.

            Simplemente crea una montaña de molehil para una solución simple en un escritorio: reinicie (para que su dispositivo sea reconocido en el momento del arranque) o use un teclado virtual para habilitar un teclado recién conectado.

    • williamderieux dice:

      Desafortunadamente, esto aún no es lo suficientemente seguro y se puede omitir / reparar durante el reinicio y alguien con suficiente habilidad y determinación puede descubrir cómo volver a ingresar al sistema en el momento del inicio.

      • williamderieux dice:

        Además, si un dispositivo USB está conectado al inicio, ese dispositivo puede estar habilitado.

        • nwildner dice:

          Más seguridad también significa menos comodidad. También puede crear una regla udev / eudev que bloquee TODOS LOS DISPOSITIVOS excepto aquellos que conoce o en los que confía. Eche un vistazo al tema de la escritura de reglas eudev.

          Si alguien tiene acceso a su máquina y PUEDE reiniciarla, tiene otros problemas.

          Hay un cifrado de disco completo o una contraseña de BIOS que bloqueará el reinicio, pero nuevamente es la eterna lucha de la seguridad contra la conveniencia ...

      • RW dice:

        Bueno, cuando se trata de eso, un atacante tiene acceso físico a una máquina ... juego terminado, perdiste. Solo obstaculiza solo el nivel BS de skiddie.

        Si desea ser ridículamente avanzado y dirigido, habría vectores de ataque como equipos endoscópicos para encontrar la reconfiguración CMOS, o podría instalar interceptores SATA que informan todo el tráfico, o sockets PLCC que recortan el chip KB / IO heredado y emiten todo. , o inyectar cosas. Demonios, los chips BT son lo suficientemente pequeños ahora que podría quitar la tapa de la clavija plana de la base de plástico y reemplazar un reemplazo con un dispositivo BT, por lo que incluso una inspección visual regular de la máquina no valdría la pena para usted. Probablemente puedas esconderte. un dispositivo bastante complejo en algo que parece un clip en un supresor de heridas.

        Si eso suena demasiado a "James Bond", recuerde que los dispositivos JB clásicos eran el límite de la concebibilidad tecnológica en los años 70 y 80, presentados como el trabajo de una agencia con un enorme presupuesto negro para tales cosas. Este fue el momento en que la capacidad informática de Pi Zero costó varios millones de dólares. Hola, McFly, estamos en 2016.

        • Greenaum dice:

          Claro, pero todo esto es un poco más complicado y difícil que simplemente insertar un Rubber Duke. Eso no necesita acceso dentro del caso. ¡Un problema a la vez!

        • Galane dice:

          ¿Qué pasa con un transmisor Bluetooth que se conecta a una tapa USB sin usar o un encabezado de 1394 pines, y parece unas tapas de salto?

      • nwildner dice:

        y esto, no del todo cierto. Initrd puede cargar reglas de udev, para evitar la explotación "pre-core"[*]
        https://wiki.archlinux.org/index.php/Mkinitcpio

        Puede ir tan lejos como sea necesario para evitar la explotación de USB y posiblemente lanzar ataques (también conocidos como Bad Maid Attacks)

        - Arranque seguro UEFI[*]
        - También niegue el arranque desde unidades flash basadas en BIOS / MBR.[*]
        - Cifrado de disco completo (dejando solo la partición EFI sin cifrar).[*]
        - Firme su grub efi BOOTx64.efi con sus propias claves (recuerde que el kernel está dentro de su partición encriptada)[*]
        - Revocar claves de Microsoft en la configuración de UEFI.[*]
        - Oculte las variables UEFI después de que el control se pase al kernel.[*]
        - Contraseña en UEFI

        Las personas encontrarán una manera de romperlo si tienen acceso físico. O tal vez, el usuario simplemente comprará procesadores habilitados para vPro (SME) y dejará que las empresas lo espíen, porque los piratas informáticos con disfraces siempre son los más geniales;)

        Así que deja de crear más y más escenarios. Todos sabemos adónde irá este círculo de seguridad si implementa todas las mitigaciones disponibles.

  • nwildner dice:

    Por eso utilizo linux-grsec en mi Arch Linux[*]
    https://git.archlinux.org/svntogit/community.git/tree/trunk/config?h=packages/linux-grsec

    Los chicos de Hardy Gentoo tienen buena documentación al respecto:[*]
    https://wiki.gentoo.org/wiki/Allow_only_known_usb_devices

    Opciones de seguridad ->[*]
    Grsecurity ->[*]
    [*] Seguridad[*]
    Configurar ajustes ->[*]
    Protecciones físicas ->[*]
    [*] Denegar nuevas conexiones USB después de cambiar[*]
    [ ] Desconecte todos los dispositivos USB que no estén conectados en el momento del arranque

    GRKERNSEC_DENYUSB[*]
    Variables de sistema relacionadas:

    kerno.grsecurity.deny_new_usb

    Si responde S aquí, una nueva opción llamada "deny_new_usb"[*]
    se creará. Establecer su valor en 1 evitará nuevos[*]
    El sistema operativo no reconoce los dispositivos USB. Cualquier prueba USB[*]
    se grabará la entrada del dispositivo. Esta opción está destinada a ser[*]
    utilizado contra dispositivos USB convencionales diseñados para explotar vulnerabilidades[*]
    en varios controladores USB.

    Para una máxima eficiencia, este sistema debe configurarse después de que alguien[*]
    scripts de inicio en cuestión. Esta opción es segura para habilitar en distribuciones.[*]
    porque cada usuario puede elegir si desea encender el sistema o no.

  • RW dice:

    Consecuencias no deseadas # lo que sea, no cuento ...

    Su usuario que tiene una memoria de contraseña terrible encuentra que su mooltipass o similar ya no funciona, y nuevamente usa contraseña1, contraseña2, fútbol, ​​pez espada, pa55w0rd, etc., etc.

    • sosavpm dice:

      Hola RW, ese es un buen punto. En este momento, lo acabo de actualizar para que funcione con herramientas como LastPass, Breevy, KeePass u otras soluciones de software similares que ingresan automáticamente las contraseñas (para que no se detecten como falsos positivos). Debería analizar un poco más las soluciones de hardware como Mooltipass. 🙂

  • José dice:

    En lugar de omitir todas las pulsaciones de tecla x, ¿por qué no reconocer una pulsación de tecla cada x milisegundos? por lo tanto, un mecanógrafo humano no verá la diferencia. Una vez más, los kystrkes de patinaje no pudieron ser entretenidos. (si nunca revisa la ortografía, pero ¿quién lo hace?)

    • bien dice:

      Mejor aún, permita una cierta velocidad máxima en promedio más de 5 pulsaciones de teclas, por lo que es menos probable que las secuencias especialmente rápidas (letras dobles, llaves de inicio manuales alternas, etc.) en la escritura natural se atasquen mientras se captura la escritura automática de ametralladora.

      Este enfoque es tentador, pero, por supuesto, tan pronto como tal contramedida se vuelva popular, los propios dispositivos de ataque se limitarán por debajo de la velocidad común, por lo que a la larga no repele los ataques, simplemente los ralentiza. Eso hace que el ataque sea más obvio y podría Obtenga tiempo suficiente para sacar el dispositivo USB antes de que termine el ataque, pero la víctima prevista de estos problemas probablemente no se dará cuenta de lo que está sucediendo a tiempo para reaccionar.

  • Lucas dice:

    Pregunta tonta; ¿Puedes detectar un segundo teclado y no permitir 2?

    • Ricardo dice:

      Yo también pensé en eso. Apuesto a que udev guru podría crear una regla, esto tiene que estar en todas las distribuciones. Demonios, codifícalo en el kernel .......

      ¿Qué me estoy perdiendo, hay alguna razón por la que no funcionaría ?????

      • Lucas dice:

        La única razón por la que querría un segundo teclado es por esas pocas veces que conecto mi Model M convertido a USB a mi computadora portátil. Por lo tanto, debe haber un reemplazo simple para un segundo KB. El truco consiste en hacer que sea más fácil para mí sin facilitar la creación de un hacker.

        • Galane dice:

          'Es muy molesto cuando una configuración de BIOS reconoce un teclado, y la compatibilidad con USB heredado está habilitada, y una configuración de Windows reconoce el teclado; luego, de repente, Windows tiene toda la amnesia sobre el teclado hasta que la configuración termina y dice “¡Oh, eh! encontré un teclado! ¿Quieres que instale el controlador de teclado HID general para él? ”Luego también se olvidó del mouse USB que funcionaba hasta entonces.

          Luego tengo que navegar a través de mi antiguo almacenamiento de mouse PS / 2 o, a veces, simplemente insertar un segundo teclado USB o un mouse para encenderlo, mientras que Windows “instala” los que funcionó.

  • Maravilloso dice:

    ¿Qué hay de escribir un controlador de teclado / HID que requiera que escriba una frase de contraseña secreta antes de poder usarlo?[*]
    Por ejemplo, insertando un teclado, luz de bloqueo LED, para que sepa que el controlador está cargado, escriba una contraseña y presione enter, ¿es una buena contraseña? enciende los tres cueros ... ¿Contraseña incorrecta? párpados bloqueo numérico led.

    Después de haber escrito la contraseña incorrectamente 3 veces, evite que todos los dispositivos HID nuevos se registren durante unos 10 segundos para evitar que los dispositivos simulen diferentes combinaciones de VID-PID para volver a intentarlo inmediatamente.

  • 502 dice:

    ^ - una forma bastante ingeniosa de lidiar con eso

  • Greenaum dice:

    ¿Qué tal algo que detecta cuando se conectan 2 teclados? Entonces aparece una ventana en una pantalla que le pide que escriba algo, una colección aleatoria de letras, desde el teclado adjunto. Un tipo de Captcha para hardware.

    Incluso podría piratear algo así en el teclado USB estándar / controladores HID. Incluso podría requerirlo para todos los teclados, incluso 1, conectados al sistema. Podría ser posible recordar teclados legítimos anteriores si diferentes teclados envían datos diferentes al host USB cuando se enumeran. En ese caso sería necesario hacerlo una sola vez con un teclado.

    O de alguna manera completamente diferente. Parece que Rubber Ducky solo tuvo una oportunidad cuando la gente no lo sabía, ya que se vuelve más conocido, el problema se resolverá.

  • sosavpm dice:

    Hola, chicos, soy el devoto de Duckhunt. Me alegro de ver esto en la-tecnologia.com

    Este artículo omitió un detalle importante que me gustaría explicar más a fondo:[*]
    - Como muchos de ustedes han notado, esta no es una solución integral, sin embargo, mi gran motivación para comenzar este proyecto fue iniciar una discusión e involucrarme con otros sobre posibles formas de proteger a los usuarios contra tales ataques.[*]
    - Estoy sinceramente muy feliz de ver todos los comentarios y reacciones desde diferentes ángulos de protección, correcciones, problemas, etc. Y ciertamente continuará explorándolo.[*]
    - Sé que proteger a un usuario al 100% contra un ataque dirigido puede ser poco realista, pero me gustaría que un usuario estuviera al menos protegido contra los casos más comunes.[*]
    - Definitivamente siéntete libre de contactarme o involucrarte en el rap 🙂

    ¡Hola![*]
    Konuko II

  • sosavpm dice:

    ¡Ho! Otra cosa rápida para recordar es que los ataques de golpe de tratamiento podrían teóricamente hacerse con otros dispositivos (inyección HID, Mousejacking) además de goma, por lo que puede haber muchos ángulos que deben ser cubierto además del ataque Rubberducky / BadUSB.

  • GetRektboy724 dice:

    ay ... esto me interesa

Isabella Ortiz
Isabella Ortiz

Deja una respuesta

Tu dirección de correo electrónico no será publicada.