前言

之前一直想买橡皮鸭(USB RUBBER DUCKY)来着,奈何Hak5的东西实在是太贵了,加上运费寄过来欧洲更贵了,得,刚刚本来想上官网看一下价格,记得是49.99还是59.99刀来着,结果现在显示已经卖完了。这么贵还有人买,真是世界上有钱人一大把orz。后来看NetworkChuck的频道发现能用树莓派Pico实现橡皮鸭一样的功能,笑,那能省钱的东西,能不整一个吗,于是乎这周二立马在Amazon下了一单Pico想来试试看。

正文

1. 概论

基本的操作已经在Github: dbisu/pico-ducky的Github里面写的差不多了,唯一要做的只是按照他的步骤复现一遍即可。

Install and have your USB Rubber Ducky working in less than 5 minutes.

  1. Download CircuitPython for the Raspberry Pi Pico. *Updated to 7.0.0
  2. Plug the device into a USB port while holding the boot button. It will show up as a removable media device named RPI-RP2.
  3. Copy the downloaded .uf2 file to the root of the Pico (RPI-RP2). The device will reboot and after a second or so, it will reconnect as CIRCUITPY.
  4. Download adafruit-circuitpython-bundle-7.x-mpy-YYYYMMDD.zip here and extract it outside the device.
  5. Navigate to lib in the recently extracted folder and copy adafruit_hid to the lib folder in your Raspberry Pi Pico.
  6. Click here, press CTRL + S and save the file as code.py in the root of the Raspberry Pi Pico, overwriting the previous file.
  7. Find a script here or create your own one using Ducky Script and save it as payload.dd in the Pico.
  8. Be careful, if your device isn't in setup mode, the device will reboot and after half a second, the script will run.

大概的步骤就是如此,然后我们来复现吧!但是在此之前~ 让我们看看我可爱的Pico~
059b8428d5d60374dfd8a6aeb1b6dec
fc1a9e2291139d7b8769a469255daa7

2. 将Pico变成Pico-Ducky

  1. 首先根据Github: dbisu/pico-ducky的操作,我们从CircuitPython需要下载一个.uf2文件,然后将下载好的文件拖入pico里面。这个时候我们的Pico会自动弹出,然后再次被计算机读取,这个时候我们会发现pico已经从RPI-RP2变成了CIRCUITPY了。
  2. 然后我们需要从Github: dbisu/pico-ducky的Github里面下载duckyinpython.py文件,然后将这个文件放入到Pico里面,也就是CIRCUITPY里面,并且将原有的code.py文件删除,将新加入的duckyinpython.py更名为code.py文件。就在这个步骤完成的一瞬间,你的Pico就已经成功变成了橡皮鸭(USB RUBBER DUCKY)了,这个时候我们只需要去找Payload即可。
  3. 作为Payload我们需要Payload.dd文件,而Payload.dd文件可以从hak5darren/USB-Rubber-Ducky下载,或者我们可以自己制作,具体如何制作请参考Duckyscript官方文档
  4. 假设我们用Hak5预设的Payload.dd文件,我们这里以一个最没有危害的Payload.dd文件来作为演示吧,Payload youtube roll,这个Payload的作用是打开YouTube并且播放著名的Rick Astley - Never Gonna Give You Up (Official Music Video),具体的Payload.dd代码如下,我们只需要将以下的代码全部复制,并且打开notepad(Windows)或者vim(Linux/MacOS),保存为Payload.dd然后放入Pico内即可(注意:当Payload.dd被放入Pico的一瞬间,如果你不是在安全模式的话,他会立即开始执行。)
DELAY 3000
GUI r
DELAY 200
STRING https://www.youtube.com/watch?v=dQw4w9WgXcQ
ENTER
DELAY 3000
STRING f
  1. 这个地方我稍微做一下代码的修改,把打开Roll变成,打开我的个人导航,(●'◡'●)嘻嘻。
DELAY 3000
GUI r
DELAY 200
STRING http://navi.seanzou.com
ENTER
DELAY 3000
STRING f
  1. 然后插入将Pico插入任何一台电脑开始测试吧!具体测试视频

  2. 然后就搞定了,O(∩_∩)O 完美撒花,可以去测试一些奇奇怪怪的代码了。

参考

[1] bad USBs are SCARY!! (build one with a Raspberry Pi Pico for $8)
[2] Github: dbisu/pico-ducky
[3] Github: hak5darren/USB-Rubber-Ducky

Q.E.D.


立志做一个有趣的碳水化合物