Sharp4NodeKey.exe 是一款合法的微软签名程序,用于执行指定的命令或脚本,避免被杀毒软件或端点检测与响应系统阻止。其微软签名使其能够在红队渗透测试中悄无声息地运行命令,而不被基于签名的安全防护机制检测到。这使得它在需要隐蔽执行任务时成为一项强大的工具。
Sharp4NodeKey.exe 通过合法的微软签名程序,执行指定的命令或脚本,避免被杀毒软件或端点检测与响应系统阻止。常用的命令格式如下所示。
Sharp4NodeKey.exe normal 1 cmd.exe "/c whoami"
该命令的作用是通过 cmd.exe 执行系统命令 whoami,从而返回当前用户的身份信息。
Sharp4NodeKey.exe 核心机制是使用 Process.Start 方法启动系统命令,同时将其伪装为受信任的操作。这种方式可以通过白名单机制绕过常见的安全限制。以下是 Sharp4NodeKey 的核心代码片段及其功能介绍
if (args.Length < 3)
{
Console.WriteLine("Usage: {0} (normal|abnormal|both) (pid file) (path to exe) [args]", Assembly.GetExecutingAssembly().GetName().Name);
}
代码中,normal|abnormal|both 参数表示执行模式,path to exe 表示要执行的程序路径。
ProcessStartInfo 用于配置新进程的启动信息。args[2] 指定要执行的程序路径,后续参数则被组装为命令行参数,并确保每个参数都被正确引号包裹,具体代码如下所示。
Console.Title = args[2];
ProcessStartInfo startInfo = new ProcessStartInfo(args[2], string.Join(" ", from arg in args.Skip(3)
select ProcessOutput.QuoteSingleArgument(arg)))
{
UseShellExecute = false
};
UseShellExecute = false 指定不使用外壳程序启动进程,确保命令直接在系统内执行。最后,代码尝试启动进程,并将进程 ID 写入 pid file
,随后等待进程结束并记录退出代码:
Process process = Process.Start(startInfo);
File.WriteAllText(args[1], process.Id.ToString());
process.WaitForExit();
num = process.ExitCode;
综上,Sharp4NodeKey 的关键优势在于它的微软签名,能够在不引起注意的情况下执行系统命令。工具已经打包在星球,感兴趣的朋友可以加入自取。
原文始发于微信公众号(哈拉少安全小队):一款红队执行命令回显的白名单工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论