Havoc+Harriet,绕过EDR方案
2023-8-19 11:15:17 Author: 骨哥说事(查看原文) 阅读量:154 收藏

虽然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:

创建Payload

点击 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的检测结果,还是相当令人满意的:

你学会了么?如果觉得还不错的话,欢迎分享给更多喜爱的朋友~

====正文结束====


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5Mzc4MzUzMQ==&mid=2650256958&idx=1&sn=9d96571c3da54bbc846088941cb29550&chksm=be92ddba89e554ac713a98b00c04246003a254f449d23e30808a0b644942a7e3ee9123a8d559&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh