连接一句话
webshell
,并获取到可交互的虚拟终端
PHP
支持proc_open
函数(默认支持)- 目标支持可写目录(默认在当前目录,可修改代码为其他可写目录)
Eval2Term
是一个能直接连接eval
一句话,并得到一个可交互终端的小工具。
比如在一些环境下:
- 目标机器不出网
- 没有权限开启
sock
端口 - 目标没有反弹程序或脚本环境
- 本机无外网IP可供监听
安装golang
,下载源码,编译:
$ cd eval2term
$ go build
编译得出文件:eval2term
用法:
$ ./eval2term -url http://target/shell.php -pwd ant
按 Ctrl+D
结束程序
说明:服务端代码仅在
Linux
机器上测试,客户端代码仅在macOS
系统上测试 如无法顺利使用,请参考下方原理说明,用你聪慧的大脑和勤劳的双手,改造之!
由于我们没法采用socket
进行长连接通信,所以采用了HTTP
长轮询的思路:
首先,注入代码,php
后台运行bash
进程
然后,客户端监听用户按键,把按键数据发送到目标
接着,后台获取按键数据,发送到进程句柄,把结果输出到文件
最后,客户端再轮询获取结果,输出
这种方式在以前,应该是非常好用的。
随着科技发展,未来应该采用 HTTP2
、websocket
等方式,以实现长连接操作。
这种方式的缺点有如下:
- 有延迟,因为我们发送按键数据、获取命令结果,都需要发起
http
请求 - 同上,多次发起请求,可能会导致防火墙拦截
- 暂不支持中文等语言(要解决按键问题)
目前程序主要功能和逻辑已完成,你可以根据自己需求改动代码使用。
我觉得,后续应该会有如下功能:
- 多脚本支持
- 多用户操作
- 流量加密等常规操作
- 还没想好
疫情,封城,宅家,想起微博密码
五年,奔三,回望,我们都已长大
我是蚁逅,奔三前留点作品的少年。
微博:https://weibo.com/antoor
微信:Shell_Way