由c语言编写,代码受orangetw/tsh启发,负责master和slave的通信
以django框架编写,负责浏览器与master的通信
browser --> master <----slave 1
|----> <----slave 2
|----> <----slave 2
- 支持通过浏览器不同标签页同时操作不同slave
- 浏览器页面的刷新/关闭不影响master与slave的连接
- 不需要slave具有公网ip
- 支持密码登录/访问控制
Centos 7
Python 3.7.2
channels 2.2.0
channels-redis 2.4.0
Django 2.1.8
django-channels 0.7.0
django-redis 4.10.0
libhiredis (c library)
【此处列举了作者的开发环境,实际安装过程中对于各模块的版本要求并不严苛】
- 将
ztsh.h
中CONNECT_BACK_HOST
项修改为master
的ip - 确保有足够的权限访问
INFILEPATH
项指向的路径,且该项的值与web_panel/revShell/consumers.py
中unix_socket_path
一致(默认值即为为一致) - 执行
gcc -O -W -Wall -o ztsh write_log.c socket_wrapper.c ztsh.c -L`pwd` -l:libhiredis.a -lpthread
gcc -O -W -Wall -o ztshd ztshd.c write_log.c socket_wrapper.c -lutil
将ztsh在master上执行,将ztshd在slave上执行,观察日志输出
- 取消注释
ztsh/web_panel/templates/#.html
第36行注册账户按钮 - 进入
ztsh/web_panel
目录,python3 manage.py runserver 0:8080
【注册后记得重新注释上注册账号按钮或干脆删去dj中处理账户注册的函数】