树莓派最早作为一个公益项目,已经走过了六年的发展历程。

树莓派由注册于英国的慈善组织“Raspberry Pi 基金会”开发,Eben·Upton/埃·厄普顿为项目带头人。2012年3月,英国剑桥大学埃本·阿普顿(Eben Epton)正式发售世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是Raspberry Pi电脑板,中文译名"树莓派"。这一基金会以提升学校计算机科学及相关学科的教育,让计算机变得有趣为宗旨。

当初由于受到Windows IoT项目的支持,大量商家以“35美元的个人电脑”为卖点大肆宣传,但实际上能运行window IoT的电脑并不能像网吧里的电脑那样运行各种程序与游戏,它最初被设计来是运行linux 的系统,而linux并不是所有人都可以驾驭的。它也许能达到学习用PC的定义,但却不能代替个人用于日常使用的电脑。但是,树莓派因为其低廉的价格(每一代的B+版本价格都是35美元)和能够运行完整linux系统的特性收到了极客们的青睐。不管是无人机,个人NAS,集群式计算机,还是作为各种嵌入式项目的大脑,树莓派都显得八面玲珑得心应手,我在高中入手过一块2B+版本,折腾来折腾去,最后拿来搭建了一个Minecraft的服务器,用来和朋友联机,但是其性能还是稍显羸弱,并不能良好的作为一个服务器工作。

 

半导体行业还在摩尔定律最后的夕阳中发展,数代树莓派在价格不上涨的情况下成功做到了性能不断翻倍,在世界各地也拥有了越来越多的用户,一个个创意项目不断的涌现,它是极客们最爱的玩具。更令人兴奋的是,官方于2015年11月发布了售价5美元的raspberry zero,不到半张信用卡的大小,让你可以把一个可以运行完整linux系统的小卡片放到任何地方。而在树莓派五周年生日之际,Raspberry Pi Zero W发布,相比于Zero,它加入了蓝牙和WiFi,由此,一个半张信用卡大小,拥有几乎完全功能的linux卡片式电脑诞生了。极客们天马行空的想象力,得以更自由的发挥。
介绍完树莓派,我们再来说说Bad USB。没有一款杀毒软件会阻止用户关掉的操作(国产毒瘤除外),也没有一台电脑会审查用户对电脑所作的每个操作。但问题在于,用户与电脑交互的方式只有两种--键盘和鼠标,但电脑并不能判断,来自这两个设备的用户输入动作,是来自于一个真正的人类,还是一个不怀好意的病毒?Bad USB正是利用了USB这个几乎根深蒂固的逻辑漏洞,将一个硬件设备伪装为一个键盘或者鼠标,骗取系统的信任,让系统误以为,来自这个设备的输入,是“用户的正常操作”。理论上,人类操作电脑所能对电脑做的任何事,Bad USB设备都能做到,而系统不会产生任何的怀疑,这是软件病毒无法比拟的。它唯一的缺点在于,需要将一个硬件设备插入到用户的电脑上,而且不被发现。

今天我就来尝试搭建这样一个现阶段可以为所欲为的“硬件病毒”(基于P4wnP1项目)

 

需要的设备有:

Raspberry Pi Zero W

运行window或者linux 的电脑

Raspberry Pi Zero W  USB OTG直连接口

一个8g或以上的TF卡

 

首先是烧录Raspbian系统镜像。

系统下载地址:https://www.raspberrypi.org/downloads/

烧录软件win32diskimager

 

然后我们对第一次启动进行配置,设置wifi和启动ssh

将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot 目录下新建 wpa_supplicant.conf 文件,按照下面的参考格式填入内容并保存 wpa_supplicant.conf 文件。
country=CN
ctrl_interface=DIR=var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="WiFi-A"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}

在 boot 分区新建一个文件,空白的即可,文件命名为 ssh。注意要小写且不要有任何扩展名。

树莓派在启动之后会在检测到这个文件之后自动启用 ssh 服务。随后即可通过登录路由器找到树莓派的 IP 地址,通过 ssh 连接到树莓派了。

然后我们需要对树莓派进行本地化设置(否则更新下载软件时只能忍受奇慢的速度)

首先使用 
raspi-config
修改时区并扩展文件系统

使用管理员权限(经由sudo),编辑/etc/apt/sources.list文件。参考命令行为:

$ sudo nano /etc/apt/sources.list

用#注释掉原文件内容,用以下内容取代:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

使用管理员权限(经由sudo),编辑/etc/apt/sources.list.d/raspi.list文件。参考命令行为:

$ sudo nano /etc/apt/sources.list.d/raspi.list

用#注释掉原文件内容,用以下内容取代:

deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
注意: 网址末尾的raspbian重复两次是必须的。因为Raspbian的仓库中除了APT软件源还包含其他代码。APT软件源不在仓库的根目录,而在raspbian/子目录下。
编辑镜像站后,使用sudo apt-get update
命令,更新软件源列表,同时检查编辑是否正确。
最后,进行系统的完整更新
$ sudo apt-get upgrade

完成了这些准备以后,我们就可以开始正式搭建Bad USB了

首先用以下格式git项目

apt-get update
sudo apt-get update
sudo apt-get install git john
git clone –recursive http://github.com/mame82/P4wnP1

注意:从此处Git项目以后没有包含duckencoder文件夹里的重要文件,需要手动导入

然后我们执行

cd P4wnP1/
./install.sh

在漫长的等待过后,我们会看见

"==========================================================================="
"If you came till here without errors, you shoud be good to go with your P4wnP1..."
"...if not - sorry, you're on your own, as this is work in progress"
"Attach P4wnP1 to a host and you should be able to SSH in with pi@172.16.0.1 (via RNDIS/CDC ECM)"
"If you use a USB OTG adapter to attach a keyboard, P4wnP1 boots into interactive mod"
"If you're using a Pi Zero W, a WiFi AP should be opened. You could use the AP to setup P4wnP1, too."
" WiFi name: P4wnP1"
" Key: MaMe82-P4wnP1"
" SSH access: pi@172.24.0.1 (password: raspberry)"
" or via Bluetooth NAP: pi@172.26.0.1 (password: raspberry)"
"Go to your installation directory. From there you can alter the settings in the file 'setup.cfg',"
"like payload and language selection""If you're using a Pi Zero W, give the HID backdoor a try ;-)"
"You need to reboot the Pi now!"
"==========================================================================="

安装完毕wifi会修改为P4wnP1

密码是MaMe82-P4wnP1

ssh连接的地址是172.24.0.1账号和密码还是之前的ssh密码。

如果一切正常,登陆后会直接进入P4wnP1的界面

功能测试

输入“help”查看所有可用的命令

输入“FireStage1”,会观察到插入树莓派的电脑出现一个短暂的powershell窗口,在运行一条很长的命令以后关闭。实际上是树莓派模拟键盘功能,先用“win+r”组合键打开“运行”,运行了powershell,随后用命令在后台开启了一个木马使pc与树莓派之间建立双工连接。待控制端显示connect以后,输入shell,则可以进入宿主机的命令提示符界面,就可以为所欲为了。

在使用FireStage1命令之前,连接上电脑设备的zero w可以实现模拟为键盘和鼠标的基本功能(单工)
输入“SendDuckscrips”,会显示预置的Duckscrips列表,输入序号选择要运行的黄鸭注入脚本,可以在相关文件夹编辑。树莓派会按脚本模拟键盘依次输入。
输入“SendMousescrips”,会显示预置的Mousescrips列表,输入序号选择要运行的鼠标注入命令,可以在相关文件夹编辑。树莓派会按脚本模拟鼠标进行输入。(比较鬼畜)
梓沨

站长 INTP,生物搬砖工

Leave a Reply

Your email address will not be published.