Supershell防溯源反制配置
簡介
項目地址:https://github.com/tdragon6/Supershell
Supershell是一個集成了reverse_ssh服務的WEB管理平臺,使用docker一鍵部署(快速構建),支持團隊協作進行C2遠程控制,通過在目標主機上建立反向SSH隧道,獲取真正的完全交互式Shell,同時支持多平臺架構的客戶端Payload,客戶端Payload的大小為幾MB,可以理解為在目標主機上部署了一個幾MB的ssh服務器,然后獲取了一個ssh shell;Supershell集成了客戶端管理、客戶端Payload生成、交互式Shell、文件管理、文件服務器、內存注入、安裝服務、遷移guid、客戶端監聽、本地原生sftp命令傳輸文件、本地ssh隧道端口轉發和備忘錄等功能。
這里通過修改幾個小配置達成效果:無法判斷這個端口開放是是否是Supershell,無法通過jwt偽造登錄。
下載發行版:
wget -P /opt/ https://github.com/tdragon6/Supershell/releases/download/v2.0.0/Supershell.tar.gz
解壓:
cd /opt
tar zxvf Supershell.tar.gz
cd Supershell
修改配置文件
修改默認密碼和jwt鹽
Supershell根目錄下config.py默認內容如下
用python生成新密碼的md5,P@ssW0rd修改成自己的密碼
import hashlib
hashlib.md5('P@ssW0rd'.encode('utf-8')).hexdigest()
用secrets生成jwt加鹽密鑰
impoty secrets
secrets.token_hex(16)
最終文件如下:
'''
用戶配置頁
'''
# web登錄和會話配置信息
user = 'admin'
pwd = '5ca33d221fd09f16c1ecba9c1aadc3eb' # 明文密碼 P@ssW0rd 的md5
# jwt加密鹽
global_salt = '1a632e90f508692426baa98ca832c200' # 必須修改,不然可以偽造jwt token直接登錄
# 會話保持時間,單位:小時
expire = 48
# 共享遠控shell的共享密碼
share_pwd = '5ca33d221fd09f16c1ecba9c1aadc3eb' # 明文密碼 P@ssW0rd 的md5
# 共享shell會話保持時間,單位:小時
share_expire = 24
修改默認端口
修改docker-compose.yml文件,在第七行可以看到默認端口是8888,這里修改成30100這種不常用端口
設置Nginx基礎認證
進入volume/nginx目錄
用 htpasswd 生成認證文件,這里改成自己想用的賬號密碼
htpasswd -nbm admin password > admin.pwd
修改default.conf
在location /下面添加下面內容
auth_basic "please login";
auth_basic_user_file /etc/nginx/admin.pwd;
再次修改docker-compose.yml文件
在第十三行后面添加下面內容
- ./volume/nginx/admin.pwd:/etc/nginx/admin.pwd
效果
用docker-compose up -d啟動
訪問30100端口,效果是這樣的,沒有任何supershell的特征
輸入正確密碼才會進入SuperShell界面
這里由于剛才修改默認賬號密碼和jwt鹽,所以無法被暴力破解和jwt偽造
輸入正確賬號密碼即可登錄
可以正常上線主機
總結
以上是生活随笔為你收集整理的Supershell防溯源反制配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 麻了,这让人绝望的大事务提交
- 下一篇: 2024-01-06:用go语言,在河上