Sliver 键盘记录器
我想感谢整个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
经验之谈
Sliver的api有以下两个主要部分
typedef
植入器将调用.json文件中定义的 "入口"。它指向你的入口函数(不一定要有这个名字,只需遵循签名)。
goCallback是一个用于返回输出到go的函数,其调用方式为callback(string, string_length)
在对扩展进行编码时,"name "和 "command_name "必须匹配,否则植入器将在每次调用时重新加载你的扩展。
截至目前,非BOF扩展不支持强类型的参数,所以在命令名之后提供给cli的所有内容都将以字符串的形式被发送下来。

