使用Go语言实现的PPPwn.
- 失败重试
- 调试模式(更多日志)
- 配置文件
- MAC白名单
- WEB前端控制和日志显示
- 安装 npcap
- 获取
stage1
和stage2
文件 - 获取当前设备网卡名
PPPwn.exe --list
[+] PPPwn - PlayStation 4 PPPoE RCE by theflow
[+] PPPwn_go - Go rewrite version by wetor
Name: "\Device\NPF_{00000000-0000-0000-0000-000000000000}", Description: "Realtek Controller"
- 运行PPPwn
PPPwn.exe --fw="950" --interface="\Device\NPF_{00000000-0000-0000-0000-000000000000}" --stage1="stage1.bin" --stage2="stage2.bin"
- 获取
stage1
和stage2
文件 - 获取当前设备网卡名
./PPPwn --list
[+] PPPwn - PlayStation 4 PPPoE RCE by theflow
[+] PPPwn_go - Go rewrite version by wetor
Name: "enp4s0", Description: ""
- 运行PPPwn
./PPPwn --fw="950" --interface="enp4s0" --stage1="stage1.bin" --stage2="stage2.bin"
如果提示以下错误,请使用
root
用户或sudo
命令2024/05/13 09:39:28 enp4s0: You don't have permission to perform this capture on that device (socket: Operation not permitted
--config=config.yaml
使用配置文件启动,样例
config.yaml
interface: enp4s0
injects:
target_mac:
firmware: 1100
stage1_file: stage1/stage1.bin
stage2_file: stage2/stage2.bin
- 运行PPPwn
./PPPwn --config="config.yaml"
--target_mac="C8:23:41:41:41:41"
仅注入指定MAC地址的PS4,为空则尝试所有设备
--receive_timeout=30
主要步骤等待时间,秒
[*] Waiting for LCP configure request... (wait 30s)
[*] Waiting for LCP configure reject... (wait 30s)
[*] Defeating KASLR... (wait 30s)
--retry
开启时,失败后会自动重试--retry_wait=5
自动重试等待时间,秒
--debug
开启调试模式,会显示更多日志--log="log.log"
日志储存到文件,为空则不保存到文件
- 安装 npcap
set CGO_ENABLED=0
go build -o PPPwn.exe cmd/main.go
- 安装
libpcap-dev
CGO_ENABLED=1 go build -o PPPwn cmd/main.go
Scanning for corrupted object
执行较慢
- PPPwn: 漏洞实现
- zouppp:
LCP
和PPPoE
的结构,以及解码器和序列化器实现 - pppoe-hijack-go:
gopacket
使用样例 - PPPwn_cpp: 在workflows中使用zig交叉编译
libpcap
和udp分片发包实现
Thanks to Andy's wonderful magic