Skip to content

imagemlt/WebShellManager

Repository files navigation

WebShellManager

WebShellManager build on cpp with libcurl

features

  • 多个webshell批量管理
  • 支持自定义参数位置及加密方式
  • 支持需要有附加参数的特殊shell
  • 可绕过open_basedir、disable_functions等限制
  • 一键不死shell,维持权限
  • 附有脚本批量生成可用的shell
  • 自定义header、cookie

build

CMake

cmake .
make

动态编译

g++ json.hpp cryptohelper.cpp curlhelper.cpp WebShell.cpp main.cpp -o test -lcurl -lpthread

静态编译

g++ json.hpp cryptohelper.cpp curlhelper.cpp WebShell.cpp main.cpp -static -o test -static-libgcc -static-libstdc++ /usr/local/lib/libcurl.a /usr/local/lib/libz.a /usr/local/ssl/lib/libssl.a /usr/local/ssl/lib/libcrypto.a  -ldl -lpthread

test文件为x64平台下静态编译好的可执行文件

note:由于使用https://github.com/nlohmann/json因此需编译器支持C++11

usage

  • list :列出所有的shell
  • delete index:删除指定index的shell
  • add json:添加shell,格式为json
  • execute index 命令:执行命令,当index为all时在所有shell中执行
  • push index 本地文件路径 目标文件路径:上传本地文件到制定路径
  • neverdie index:一键不死shell

json format:

	{
	"address":"地址",
	"custom":{
		"addonget":null,
		"addonpost":null,
		"cookies":null,
		"headers":null,
		"encrypt":null,
		"place":"COOKIE",
		"placevalue":"xss"
		},
	"pass":"xxx",
	"method":"GET"
	}

note:写为单行,例如:add {"address":"http://baidu.com/shell.php","pass":"mdzz","method":"GET"}

详细解释

  • 格式:json
  • 参数:
    • encrypt(string): 加密方法,目前支持BASE64_ENCODE BASE64_DECODE ROT13 PADDING 格式为"加密方法1 加密参数*加密方法2 加密参数"
    • place(string): 参数位置,值为GET POST COOKIE HEADER
    • placevalue(string): 与place对应,表示参数
    • addonget(object): 附加的get参数键值对,其中如果键与密码重复<+>将被替换为执行的脚本。
    • addonpost(object): 附加的post参数键值对,与上者相同。

所有添加过的shell会以json格式保存于shells.json文件夹下

About

WebShellManager build on cpp with libcurl

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published