虽然Cobalt Strike(以下简称CS)好用,但毕竟人家是商业软件,贪便宜想用破解版又担心被种马,而且现如今很多EDR都会针对CS特征做防护,那不如试试Havoc这个平替。Havoc是什么?Havoc是一个现代化、可塑性较强的后渗透C2框架,被戏称为用go编写的CS。
骨哥使用的环境为Ubuntu 20.04,参考官方指导文档进行安装即可:
1、Clone 项目:
git clone https://github.com/HavocFramework/Havoc.git
generic
53 Bytes
© Guge's Blog
2、安装 Python 3.10,主要作为Client客户端的依赖:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-dev
generic
101 Bytes
© Guge's Blog
3、安装其它所需依赖:
sudo apt install -y git build-essential apt-utils cmake libfontconfig1 libglu1-mesa-dev libgtest-dev libspdlog-dev libboost-all-dev libncurses5-dev libgdbm-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev mesa-common-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5websockets5 libqt5websockets5-dev qtdeclarative5-dev golang-go qtbase5-dev libqt5websockets5-dev python3-dev libboost-all-dev mingw-w64 nasm
generic
436 Bytes
© Guge's Blog
4、安装其它Go依赖:
cd teamserver
go mod download golang.org/x/sys
go mod download github.com/ugorji/go
cd ..
generic
89 Bytes
© Guge's Blog
5、安装 musl 编译器并构建二进制文件(在 Havoc 根目录运行):
#编译
make ts-build
generic
17 Bytes
© Guge's Blog
骨哥在这步编译时报错,提示golang版本过低,发现Ubuntu20.04使用apt install
安装的golang版本是1.13,havoc要求为1.18,于是卸载原有的老版本,安装1.18版的golang:
#卸载旧版本golang
sudo rm -rf /usr/local/go
sudo apt-get remove golang
sudo apt-get remove golang-go
sudo apt-get autoremove
#安装1.18 golang
wget https://dl.google.com/go/go1.18.3.linux-amd64.tar.gz
#解压到/usr/local/lib/
sudo tar -zxvf go1.18.3.linux-amd64.tar.gz -C /usr/local/lib/
#建立软链接
sudo ln -s /usr/local/lib/go/bin/* /usr/bin/
# GOPATH需要设置成你自己的路径
sudo tee -a ~/.bashrc << EOF
export GOROOT=/usr/local/lib/go/
export GOPATH=/home/${USER}/sdk/go
export PATH=\$PATH:\$GOROOT/bin:\$GOPATH/bin
EOF
#开启Go模块代理(可选)
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
generic
575 Bytes
© Guge's Blog
编译通过后,就可以启动Havoc Server了:
#启动Server
./havoc server --profile ./profiles/havoc.yaotl -v --debug
generic
68 Bytes
© Guge's Blog
启动的配置文件中,可以看到默认的用户名和密码(5pider/password1234):
出现下面这个界面,就表示Server成功启动了:
成功启动Server后,就可以构建客户端了,构建并运行:
#构建客户端
make client-build
#运行客户端
./havoc client
generic
46 Bytes
© Guge's Blog
没报错的话,应该会弹出现客户端的创建UI了:
首先在启动后客户端UI界面,填写服务器信息:
Name:随便起
Host:服务器IP地址
Port:配置文件中的默认端口为40056
User/Password:对应profile配置文件中的用户名/密码
点击Connect,正确连接后就会进入Havoc界面(与CS的界面非常相似):
点击View – Listeners设置监听器,然后在最下方找到Add点击添加:
创建listener时报错,查看github issue,有人同样有此问题,暂未获得官方解决方案
于是重新使用一个kali 2023.2,重新按照上面的安装方法再来一遍,顺利建立listener:
点击 Attack – Payload选择Windows Shellcode,点击Generate生成Shellcode,然后选择保存位置:
git clone https://github.com/assume-breach/Home-Grown-Red-Team.git
cd Home-Grown-Red-Team/Harriet
bash setup.sh
generic
111 Bytes
© Guge's Blog
bash Harriet.sh
generic
15 Bytes
© Guge's Blog
选择1,建立EXE可执行文件,然后选择Fully-Automated AES Encryption,并指定刚刚生成的bin文件路径:
然后就会在Harriet目录下生成相应的.exe文件。
接着我们将这个exe文件放入Windows10目标机,可以看到微软的Windows Defender显示一切正常:
运行exe文件后,Havoc成功显示目标主机“上线”:
以下是Havoc远控部分功能一览–文件浏览器:
进程一览:
最后来看看VirScan的检测结果,还是相当令人满意的:
你学会了么?如果觉得还不错的话,欢迎分享给更多喜爱的朋友~
====正文结束====