trustedsec / SliverKeylogger使用指南

380 阅读2分钟

Sliver 键盘记录器

写这个扩展主要是为了学习 imageSliver如何处理扩展的问题。

我想感谢整个Sliver团队在这个公共植入框架上的工作。我尤其要感谢@rkervell,他回答了我关于Sliver如何处理它的扩展的许多问题。

它是如何工作的

基本上它使用原始输入。这与其他常见的键盘记录方法相比有优点也有缺点。

我喜欢它,因为它不需要注入其他二进制文件,也不需要频繁地轮询某个给定的调用而可能会错过结果。

这段代码是我自己的一些工作,也是在互联网上找到的一些混杂的例子。

如何构建它

使用visual studio 2019打开解决方案文件,并构建x86和x64版本。

如何加载/安装它

在这个文件有可能包含在军火库中之前,可以在windows系统上构建。然后将生成的$(solutiondir)/bin文件夹放在sliver客户端上,运行extensions install <path to folder> ,安装扩展。你可能需要重新启动或同时运行extensions load <path to folder>

使用

raw_keylogger 。

以下cmdid是有效的

0 = stop
1 = start
2 = get keystrokes

如果一切顺利的话,它看起来像这样 Screen Shot 2022-06-17 at 3 05 09 PM

经验之谈

Sliver的api有以下两个主要部分

typedef

植入器将调用.json文件中定义的 "入口"。它指向你的入口函数(不一定要有这个名字,只需遵循签名)。

goCallback是一个用于返回输出到go的函数,其调用方式为callback(string, string_length)

在对扩展进行编码时,"name "和 "command_name "必须匹配,否则植入器将在每次调用时重新加载你的扩展。

截至目前,非BOF扩展不支持强类型的参数,所以在命令名之后提供给cli的所有内容都将以字符串的形式被发送下来。