关于GTFOcli
GTFOcli是一款功能强大的命令行接口工具,该工具提供了简化的二进制搜索命令,可以帮助广大安全研究人员检测包含错误配置的目标系统,并执行绕过测试以对其进行安全评估。
工具要求
由于该工具基于Go语言开发,因此在使用该工具之前,我们需要在本地设备上安装并配置好最新版本的Go语言环境。
工具安装
Go安装
go install github.com/cmd-tools/gtfocli@latest
Homebrew安装
brew tap cmd-tools/homebrew-tap brew install gtfocli
Docker安装
docker pull cmdtoolsowner/gtfocli
工具使用
搜索Unix二进制
搜索tar二进制代码:
gtfocli search tar
从stdin搜索tar二进制代码
echo "tar" | gtfocli search
搜索指定位置文件的二进制代码:
cat myBinaryList.txt /bin/bash /bin/sh tar arp /bin/tail gtfocli search -f myBinaryList.txt
搜索Windows二进制
搜索Winget.exe二进制代码:
gtfocli search Winget --os windows
从stdin搜索Winget二进制代码:
echo "Winget" | gtfocli search --os windows
搜索指定位置文件的二进制代码:
cat windowsExecutableList.txt Winget c:\\Users\\Desktop\\Ssh Stordiag Bash c:\\Users\\Runonce.exe Cmdkey c:\dir\subDir\Users\Certreq.exe gtfocli search -f windowsExecutableList.txt --os windows
搜索Winget二进制代码,并将结果输出为yaml格式(使用-h参数可查看可用的格式选项):
gtfocli search Winget -o yaml --os windows
使用Docker化解决方案执行搜索
搜索Winget二进制代码,并将结果输出为yaml格式:
docker run -i cmdtoolsowner/gtfocli search Winget -o yaml --os windows
搜索tar二进制代码并将结果输出为json格式:
echo 'tar' | docker run -i cmdtoolsowner/gtfocli search -o json
搜索以卷形式加载在容器指定位置文件中的二进制代码:
cat myBinaryList.txt /bin/bash /bin/sh tar arp /bin/tail docker run -i -v $(pwd):/tmp cmdtoolsowner/gtfocli search -f /tmp/myBinaryList.txt
CTF场景
下面给出的例子中,我们将使用该工具结合find命令演示CTF场景中的使用:
find / -type f \( -perm 04000 -o -perm -u=s \) -exec gtfocli search {} \; 2>/dev/null
或
find / -type f \( -perm 04000 -o -perm -u=s \) 2>/dev/null | gtfocli search
工具使用演示
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可协议。
项目地址
GTFOcli:【GitHub传送门】
参考资料
GTFOBins
LOLBAS