标题可能会让人误以为物理黑客是这样的。当然,今天我们不会讨论这种情况。小时候,大家可能在电影中看到过,一个黑客从口袋里拿出一个U盘,然后迅速进行一系列操作,就能破解某个大BOSS的电脑。在电脑被破解的那一刻,大家是否也曾想过,总有一天我能不能也做到这样呢?
这种U盘被称为badusb,在国外有团队制作的成品(Bash Bunny),但价格实在令人望而却步。作为一个具有geek精神的(基)机佬,自然要用最低的成本来实现。因此,我发现了一个名为P4wnP1的开源项目。
P4wnP1是一个高度可定制的USB攻击平台,基于低成本的Raspberry Pi Zero或Raspberry Pi Zero W(需要HID后门)。废话不多说,让我们直接进入主题吧!
所需材料包括:
- 树莓派 Pi Zero W(在某宝上可以找到Zero、Zero W、Zero WH,由于我们只需要蓝牙和WiFi,所以选择Zero W)
- 一张microSD(TF)卡(8G足够,也可以更大)
- USB扩展板(可选购,这样可以直接插入USB进行数据连接,如果不想购买,也可以使用micro USB数据线)
- 系统:这里有一个问题,我安装最新版本的镜像系统时遇到了问题(无法配置WiFi连接)…所以我选择了2017年的raspbian jessie版本。下载地址:[点我下载]。下载后缀为zip的文件并解压成img格式。
硬件安装:
由于我觉得麻烦,所以直接购买了带有USB扩展的版本。以下是安装完成后的成品。
系统安装:
所需软件:win32diskimager或rufus-3.4,两者都可以,这里提供rufus的下载链接。[rufus下载地址]
以rufus为例,使用读卡器将TF卡插入电脑,打开rufus,选择我们下载好的镜像文件作为引导文件,然后点击开始即可。
大约等待5分钟左右,镜像就会写入完成。
WiFi配置:
注意:Pi Zero W只支持2.4G频率!
在写入镜像后,我们需要配置树莓派的网络连接。打开boot分区,在根目录下创建wpasupplicant.conf和ssh文件(注意,ssh文件没有后缀名)。
在wpasupplicant.conf文件中写入您的网络配置(这一步操作是为了让您的电脑和树莓派处于同一个网络环境下,这样您才能通过SSH连接上),配置格式如下:
network={
ssid=”您的WiFi名称”
psk=”您的WiFi密码”
}
配置完WiFi后,在根目录下创建一个名为ssh的空文件(记住没有后缀名)。配置完成后,如下图所示。
完成上述工作后,将TF卡插入树莓派,然后将树莓派插入电脑。
SSH连接到树莓派:
插入USB后,等待1-2分钟,我们就可以在路由器管理界面上找到名为raspberrypi的设备,并记录下其IP地址。
接下来,我们使用putty进行SSH连接(也可以使用其他SSH软件,这里以PUTTY为例):
填写树莓派的IP地址,然后点击连接。账号为pi,密码为raspberry。
配置安装P4wnP1:
建议连接后,先更改源以提高速度(针对国内用户)。
配置环境:
克隆完毕后,执行以下操作。在安装过程中可能会遇到一些询问,都按默认情况执行即可。
出现这个界面时,表示安装成功!
使用:
完成上述步骤后,将树莓派插入想要入侵的电脑(这里以一台安装了Windows 10的台式机为例)。
连接到名为P4wnP1的WiFi,初始密码为MaMe82-P4wnP1。
连接成功后,打开PUTTY,连接到172.24.0.1的22端口,账号密码仍然是树莓派的密码。
连接成功后,可能会直接进入如下界面。
我们可以进入P4WNP1的安装路径,找到setup.cfgpayloads进行更换。
在networkonly前加上#号,然后去掉backdoorremote前的#号。
保存并退出。可以选择重新启动或拔掉数据线再插上。
再次连接时,如果出现如下图所示的情况,说明更换成功,您就可以开始使用了。
实战(以hidbackdoorremote为例):
在进入P4wnP1 shell时,我们需要先输入FireStage1,对靶机进行连接操作。当出现”client connect”字样时,说明连接成功。
P.S:您可以输入help查看可用的命令。这里以shell为例,输入shell。
可以看到我们正在以当前主机的身份进行操作。
如果想要退出shell模式,按Ctrl+C即可退出。
以下是对一些命令的解释:
- SendDuckyScript:发送键盘脚本
- SendMouseScript:发送鼠标脚本
- download:将文件下载到树莓派
- upload:将文件上传到主机
- shell:以靶机的身份访问控制台
- CreateProc:创建进程(打开记事本的命令为:CreateProc notepad)
- sendkeys xxx:发送’xxx’键盘输入
- 其他命令的解释可以在官方手册中查看
在Windows 10上破解密码:
这是P4wnP1上比较特别的一个功能。但是经过个人测试后发现,实际上有一定的限制。
简单来说,插入设备后,在输入密码进入系统界面时,树莓派会截取到密码的哈希值,然后进行逐个比对的暴力破解…对于简单的密码,如abc、123,速度确实很快,但如果是字母+数字或者复杂的组合密码,可能需要很长时间才能破解。
假设密码是弱密码:
在设置完payloads后,插入电脑。在受害者输入密码后,树莓派会利用John the Ripper模块进行破解,这也是作者在文档中提到的。
例如,如果受害者的密码是abc,在插入树莓派后等待片刻,输入密码进入Windows系统,然后用另一台机器连接到树莓派的热点。执行以下命令:
cd /usr/local/P4wnP1/scripts
./john.sh
在collected文件夹中存储了窃听到的哈希值。如果密码是弱密码,后面会直接生成.hashes.cracked文件。此时,您只需查看该文件即可获得密码。
假设密码是强密码且您知道密码的组成:
这里推荐一个工具,叫做hashcat:[下载地址],它需要使用GPU进行计算。
将我们得到的哈希值应用于以下命令:
hashcat -m 1000 -a 3 hash.txt ?d?d?d?d?d?l?l
上述命令中,hash.txt是.hashes文件中的内容。问号表示密码中不同位置的取值范围。例如,上面的例子中,密码的前五位是数字,后两位是字母。
在手机上进行渗透测试:
推荐两个APP:
- 安卓:JuiceSSH
- 苹果:shelly
遇到的问题:
如果您觉得安装过程太麻烦,作者提供了一个打包好的系统镜像,可以直接写入TF卡。[下载地址]
SSH连接问题:
如果遇到SSH拒绝连接,请先检查是否在配置完WiFi后创建了ssh文件。如果创建了但仍无法连接,可以尝试重启路由器,看是否是路由器记录出现了问题(这种情况可能发生在您之前使用过这个树莓派安装系统,但重新安装系统后导致无法连接)。如果仍然无法解决,请重新安装系统。
WiFi名称设置问题:
“为什么我在setup.cfg中修改了WiFi名称,但加载出来的不是我修改的?”
这是因为在加载payload时,项目会先从payload中加载一些配置,而payload的设置是默认使用setup.cfg中的配置。如何修改?将payload中相应选项注释掉,程序会自动从setup.cfg中补充缺少的选项。
树莓派没有开启热点模式,仍然作为WiFi连接的情况:
将图中框住的部分删除即可。
连接成功,但无法弹出主程序shell界面:
尽量选择3.0接口的靶机,使用2.0接口可能会出现这种情况。
在Win10破解密码模式下无法获得哈希值:
如果在锁屏状态下插入树莓派,等待片刻后进入系统,有时会出现一定的延迟或无法截取到哈希值的情况。此时,最好先清空collected文件夹中的内容,然后注销靶机再尝试。
参考文档:
- P4wnP1
- P4wnP1OfficalWiki
- hashcat
- 如何将自己的树莓派打造成“渗透测试神器”
- Snag Windows Passwords With Pi Zero | P4wnp1