Estava realizando pesquisas sobre rubber ducky e fiquei interessado no projeto pico-ducky que transforma um Raspberry Pi Pico em um Rubber Ducky.
Comecei a estudar sobre e percebi que era uma ótima vantagem, ja que o Raspberry pi pico custa aproximadamente 50 reais (na postagem que realizei hoje 11/04/2025). Ou seja. Hardware barato para hacking!
Resolvi trazer nesse blog como foi fácil e realizar a configuração e barato ao ponto de vista economico para construir um rubber ducky funcional.
Comprando as peças
No site oficial da raspberry você consegue encontrar empresas parceiras que fazem a venda do Raspberry Pi Pico 2.
Eu recomendo comrpar o Raspberry Pi Pico 2 W caso você queira fazer outros projetos no futuro que envolvam rádio. O preço é quase o mesmo até.
Também é interessante, caso você não tenha, um cabo tipo A para Micro B e alguns jumpers macho - macho.
Passo 1 - baixar o projeto
Após a compra dos materiais, você ja pode começar a seguir o passo a passo do pico-ducky. Porém vou deixar aqui de forma mais rapida um script para te ajudar.
Os script abaixo funcionam para a versão 3.2 do pico ducky.
cd /tmpcurl -o https://github.com/dbisu/pico-ducky/releases/download/v3.2/pico-ducky-v3.2-WIN_BR.zip pico-ducky.zipunzip pico-ducky.zipcd pico-ducky-v3.2-WIN_BRPasso 2 - Conectar o raspberry pi pico
Conecte o raspberry pi pico no computador enquanto pressiona o botão “BOOTSEL”

Após conectar o raspberry pi pico, ele irá conectar o Filesystem no seu computador como se fosse um pendrive.
O nome do Pi Pico montado em forma de boot normalmente é: RPI-RP2 ou RP2350 ou RP2040
Agora passe o arquivo uf2 referente a versão do seu raspberry que está no diretório pico-ducky-v3.2-WIN_BR para dentro do RPI-RP2.
Passo 3 - Flash CircuitPython
Listar diretório montado. O nome pode variar como mencionado anteriormente
lsblkPi Pico 2
cp /tmp/pico-ducky-v3.2-WIN_BR/adafruit-circuitpython-raspberry_pi_pico2-en_US-9.2.1.uf2 <Diretório montado>Pi Pico 2w
cp /tmp/pico-ducky-v3.2-WIN_BR/adafruit-circuitpython-raspberry_pi_pico2_w-en_US-9.2.1.uf2 <Diretório montado>Passo 4 - Enviar os arquivos
Após realizar o envio do arquivo uf2 para o diretório do Pi Pico, ele irá reiniciar e se conectar novamente com o nome CIRCUITPY.
cp -r /tmp/pico-ducky-v3.2-WIN_BR/lib <Diretório>/libcp /tmp/pico-ducky-v3.2-WIN_BR/*.py <Diretório>/Agora você pode criar o seu payload e enviar para o raspberry
Mude “<Diretório>” pelo diretório montado
cat << EOF >> <Diretório>/payload.ddREM Payload simples para mostrar um hello world no bloco de notas do windowsDELAY 500GUI rDELAY 250STRING notepadENTERDELAY 800STRING Ola Mundo!EOFPasso 5 - Executar, Editar e Have Fun
Agora que você ja criou seu payload na fase anterior, pode remover o raspberry pi pico e plugar ele em um windows e pronto, voce tem o seu rubber ducky.
Preciso fazer todos os passos anteriormente para editar o arquivo payload.dd ?
NÃO
Agora você irá precisar do seu jumper macho-macho que você ja possui ou comprou anteriormente para conectar no GP0(Pino 1) e GND (Pino 3).

Agora pluge novamente o pi pico e pronto. Você terá o seu pi pico em moto de setup para editar o arquivo payload.dd
Plus - Bypass
Se você vai usar para engajamentos e testes presenciais, você pode se preocupar com AntiMalware.
Uma forma simples de usar o modo “Stealth” do pico-ducky é apenas conectar os pinos GND(pino 18) e GP15(pino 20) o raspberry irá aparecer como um mass storage.
Caso você precise de um detalhe mais técnico de como fazer bypass irei dar um norte
Low Level
O USB possui informações utilizadas pelo dispositivo que irá carregar, ajudando o dispositivo a carregar Drivers necessarios.
As principais informações são
- Interface Class
- Interface SubClass
- Interface Protocol: 1 keyboard, 2 mouse
- ID
- Vendor ID
- Product ID
A biblioteca usada pelo adafruit e o projeto pico-ducky é o TinyUSB.
Essa wiki mostra bem sobre como e por onde você pode seguir para mudar manualmente as informações.
TIPO modo stealth do pico-ducky ja é o suficiente para o Crowdstrike não detectar…