Sliver(二):Armory

Sliver提供了Armory这个功能,允许操作者通过添加基于第三方工具的新命令来扩展本地客户端控制台及其功能。通过Armory可以实现BOF 和 COFF 的加载和执行,安装的扩展只会在Client下生效,不会上传到服务端或同步到其他Client。

Armory列表

https://github.com/sliverarmory/armory/blob/master/armory.json

Armory操作

安装扩展

安装扩展通过install指令实现,安装时需要去github下载,为了方便墙内用户,Sliver也提供了-p参数。

Untitled

从v1.5.14开始,可以通过armory install all直接安装所有官方扩展。

更新扩展

更新扩展通过update指令实现。它会更新所有已经安装的扩展。

Untitled

删除扩展

删除扩展需要区分安装的扩展是alias还是extension,可以通过aliasesextensions 命令查看扩展情况,然后再使用aliases rmextensions rm来删除。

自定义BOF

Sliver同样提供了方法去帮助用户添加自己的BOF。

假设需要安装klist(查看缓存的Kerberos票据)时,可以下载https://github.com/Cyb3rC3lt/SliveryArmory/releases/tag/v1.0.0。压缩包中包含了source文件夹和extension.json。

首先在client机器上安装mingw-w64make ,进入source目录,执行sudo make

Untitled

在上级目录底下生成了Klist.x64.o和Klist.x86.o(Extension.json文件中的Path需要修改成首字母大写)。

查看extension.json(此json文件在安装自定义BOF时需要自己编写):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{
    "name": "klist",
    "version": "1.0.0",
    "command_name": "klist",
    "extension_author": "Cyb3rC3lt",
    "original_author": "Cyb3rC3lt",
    "repo_url": "https://github.com/Cyb3rC3lt/SliverArmory/klistBOF",
    "help": "Displays a list of currently cached Kerberos tickets.",
    "long_help": "",
    "depends_on": "coff-loader",
    "entrypoint": "go",
    "files": [
        {
            "os": "windows",
            "arch": "amd64",
            "path": "Klist.x86.o"
        },
        {
            "os": "windows",
            "arch": "386",
            "path": "Klist.x86.o"
        }
    ],
    "arguments": [
        {
            "name": "purge",
            "desc": "Purge the cached Kerberos tickets.",
            "type": "wstring",
            "optional": true
        }
    ]
}

进入Sliver,执行extensions install /home/kali/klist ,随后在.sliver-client/extensions目录下可以看到klist文件夹。可以通过重启sliver-client或直接执行extensions load /home/kali/.sliver-client/extensions/klist 加载klist。

Untitled