Raspberry PI Zero安装P4wnP1

最近小伙伴要搞事情,看到他手上的硬件比较羡慕。正好看到白帽汇赵武发布过使用Raspberry PI安装P4wnP1破解Win10密码的视频。果断在某宝入手一个相关设备进行折腾,期间遇到了一些问题,查阅资料时发现国内相关资料相对较少,故进行了整理,供后面的小伙伴借鉴。

0x00 概述

P4wnP1是一个基于Raspberry PI Zero或RaspberryPI Zero W打造的高度定制化的USB攻击平台。利用该平可以实现获取Windows shell、破解锁屏的Windows密码等功能。其具体原理为利用Raspberry PI模拟HID实现攻击。

0x01 环境及设备

Win10 专业版、Raspberry PI Zero W、microUSB To U线、读卡器

0x02 安装系统

下载操作系统,P4wnP1的官方Wiki推荐使用Stretch Lite image,可直接下载[1]。

用SD Card Formatter软件格式化存储卡。

将下载的操作系统写入至U盘,该步骤与制作启动U盘的过程类似,但不能使用某桃、某菜类的软件进行写入。本文中使用的是Etcher[2],网上也有一些教程使用Win32 Disk Imager,都可以。

修改写入系统的配置文件。将系统写入U盘之后,在文件面板中可以看到有一个boot盘符(如果没有可以插拔U盘试一下)。

进入该盘符,找到并打开config.txt文件,在文件的末尾添加“dtoverlay=dwc2”,保存并退出。

打开cmdline.txt文件,找到rootwait字符,并在rootwait字符后面添加“modules-load=dwc2,g_ether”,保存并退出。

在2016年11月之后发布的RASPBIAN系统(即刚刚下载的系统)默认是禁用SSH的。需要在boot目录中添加一个名称为ssh的空白文件[3]。注意该文件的名称为ssh,无任何后缀。如果不创建,本文后面的ssh连接无法进行。

0x03 连接 Raspberry PI Zero

将SD卡放至Raspberry PI Zero W当中,用USB转换线将Win10与Raspberry PI的第二个micro usb接口相连。此时win10会自动安装驱动,可以用设备管理器进行查看。如果新安装的设备为网络适配器,即RNDIS/Ethernet Gadget,则证明设备安装正确,可直接跳过下一步骤,进入连接阶段。如果识别的设备为串口设备,则需要按照下面的步骤进行设置。

0x04 解决Raspberry PI Zero W会识别为COM设备的问题

安装bonjour[6],下载bonjour并安装。

安装RNDIS驱动[7][8]。下载该zip文件,并将其解压到某一目录。在设备管理器中右键USB串行设备,在弹出的对话框中选择更新驱动程序。弹出如下对话框。

选择“浏览我的计算机以查找驱动程序软件”,找到驱动解压的目录,点击下一步,便会提示成功更新驱动程序。此时在设备管理界面看到如下的设备,则证明驱动安装成功。

0x05 连接 Raspberry PI Zero W

0x06 配置SSH并设置网络共享

开启SSH服务。进入Raspberry PI之后,运行sudo raspi-config命令,此时会弹出Raspberry PI Software Configuration Tool 命令会话框。

选择5 Interfacing Options。

选择P2 SSH,此时会弹出是否开启SSH Server的询问框,选择Yes即可。接下来利用Tab键,将光标导向至Finish,回车确认一下,便开启了SSH服务。最后在终端的命令行界面运行sudo update-rc.d ssh enable命令,将ssh服务设置为开机启动。

设置USB网络共享连接[9]。打开Windows的网络连接面板,此时会有一个新增的以太网6(每个人的名称可能会不一样)。

选择已经联网的网络适配器,本文中是WLAN,右键选择属性,在弹出的对话框中选择网络选项。会看到一个下拉选框,在该下拉选框中选择新出现的网络适配器,然后一路确定即可。

重启Raspberry PI。

0x07 安装P4wnP1

重新登录Raspberry PI,ping www.qingteng.cn,便可以看到有数据进行传输了。如果网络ping不通的话,可以尝试在windows中换一个网卡进行共享。

安装P4wnP1[10]。运行git clone -recurive https://github.com/mame82/P4wnP1命令从git下载P4wnP1库(注意一定要添加-recurive参数,如果没有该参数,可能会导致安装失败)。下载完毕后,进入P4wnP1目录,执行 ./install.sh 命令安装P4wnP1。(安装时可能会有wireshark的弹窗,询问是否允许非root用户使用wireshark进行抓包,选择yes即可)。

等待一段时间,如果一切正常的话会出现如下界面,证明安装成功。

重启Raspberry PI,打开电脑的无线网络,会看到一个P4wnP1的无线网络,连接该无线网络,密码为:MaMe82-P4wnP1。

成功连接无线网之后在ssh终端中运行ssh pi@172.24.0.1命令,密码:raspberry,连接Raspberry PI。

进入P4wnP1目录,找到setup.cfg文件并打开。在该配置文件中可以对无线网络的名称、无线密码及加载的payload进行配置,具体的配置可参考Freebuf的相关文章[11]或官方文档[12]。找到Payload selection选项,将其它payload注释掉,然后取消PAYLOAD=hid_backdoor.txt的注释,保存并退出。

0x08 P4wnP1利用

用USB线将配置好的Raspberry PI连接至目标主机。

一段时间后,会在无线网络中出现配置好的无线网,连接该无线网。用ssh终端登录Raspberry PI。登录之后便会进入到一个shell会话当中。

在shell会话当中,可以使用help命令查看支持的命令列表。

可以看到系统支持很多命令,但是许多命令此时是无法执行的。并且在执行其它命令之前需要设置键盘的语言,如果键盘语言设置不正确,会出现命令无法执行的问题。由于payload在目标主机上是以powershell的方式执行的,语言设置不正确,则会在目标主机上弹出powershell窗口,且powershell窗口不关闭的尴尬情况,很容易被发现。

输入SetKeyboardLanguage命令选择键盘的语言。在ThinkPad上进行测试时发现,需要将KeyboardLanguage设置为us,而不是ch。设置完成后可以运行GetKeyboardLanguage命令查看是否设置成功。

成功设置好KeyboardLanguage之后,运行FireStage1命令便会连接目标主机。运行FireStage1命令之后,目标主机上会弹出一个powershell终端窗口,自动输入代码并执行,大约2~3秒的时间。成功之后会在shell中看到client connectd的状态。

成功连接目标主机之后,可以执行其它命令获取系统信息。例如,运行ls命令显示当前目录下的文件。

直接执行shell命令获取系统的shell。

0x09 参考链接

https://www.raspberrypi.org/downloads/raspbian/

https://etcher.io/

http://www.freebuf.com/articles/wireless/149832.html

https://github.com/samyk/poisontap/issues/75

https://answers.microsoft.com/en-us/windows/forum/windows_10-networking/windows-10-vs-remote-ndis-ethernet-usbgadget-not/cb30520a-753c-4219-b908-ad3d45590447?page=3

https://support.apple.com/kb/DL999?locale=zh_CN

http://domotique.caron.ws/cartes-microcontroleurs/raspberrypi/pi-zero-otg-ethernet/

http://domotique.caron.ws/wp-content/uploads/telechargement/RPI%20Driver%20OTG.zip

http://www.circuitbasics.com/raspberry-pi-zero-ethernet-gadget/

http://p4wnp1.readthedocs.io/en/latest/Getting-Started-Subfolder/Installation/

http://www.freebuf.com/articles/wireless/149832.html

http://p4wnp1.readthedocs.io/en/latest/Getting-Started-Subfolder/Setup.cfg/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180213G0OD7700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券