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

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

    TheHackerWorld官方

使用CAT文件数字签名的技巧


HACK7YD

推荐的帖子

0x00 前言

Windows系统中的重要文件经常添加数字签名以防止篡改,一些白名单规则也是基于数字签名的。

作为数字签名研究系列的基本内容,本文介绍了两种添加数字签名的方法,分析了CAT文件数字签名的特点,并纠正了一位读者对我的文章的回复。地址如下:

《利用xwizard.exe加载dll》

基于我的测试,个人认为移动位置后,CAT文件的数字签名不会失效。

0x01 简介

本文将介绍以下内容:

生成证书的方法

在文件末尾添加数字签名的方法(验证码)

在CAT文件(目录)中保存数字签名的方法

使用CAT数字签名的文档的特征

0x02 将数字签名添加在文件末尾的方法(Authenticode)

在关于隐写术技术的系列文章中,我研究了在数字签名中隐藏有效载荷的方法。地址如下:

《隐写技巧——在PE文件的数字证书中隐藏Payload》

证书格式在本文中已有介绍,此处不再赘述。

在文件末尾添加数字签名后,可以通过文件属性查看它。

示例:

c:\ Windows \ System32 \ comment . exe

使用Microsoft数字签名,如下所示

2-1.png

powershell可以验证数字签名:

Get-AuthenticodeSignature。\mimikatz.exe

您也可以使用工具从命令行查看数字签名。

使用signtool.exe查看:

signtool.exe验证/v C:\ Windows \ System32 \ comment . exe

如下图

2-2.png

使用sigcheck.exe查看:

sigcheck.exe-q C:\ Windows \ System32 \ comment . exe/accept EULA

如下图

2-3.png

注:

signtool.exe

可用于查看文件的数字签名。

安装Visual Studio后,SDK被包含在内,您可以在其中找到signtool.exe,它位于C:\ Program Files \ Microsoft SDKS \ Windows \

Cmd进入开发者工具可以直接调用signtool.exe。

Windows 7 SDK下载地址:

https://www.microsoft.com/en-us/download/details.aspx?id=8279

sigcheck.exe:

可用于查看文件的数字签名。

下载地址:

https://docs . Microsoft . com/zh-cn/sysinternals/downloads/SIG check

本文的相关文档已经上传到github,地址如下:

https://github.com/3gstudent/signtools

生成测试证书的命令如下:

makecert-n ' CN=Microsoft Windows Test '-r-SV root . pvk root . cer

cert2spc Root.cer Root.spc

pvk 2 pfx-pvk root . pvk-pi 123456-SPC root . SPC-pfx root . pfx-f

证书注册:

(管理员权限)

certmgr.exe-add-c root . cer-s-r本地计算机根目录

注:

详情请参考之前的文章《A dirty way of tricking users to bypass UAC》。

签名mimikatz.exe:

sign tool sign/f root . pfx/p 123456 mimikatz.exe

数字签名是正常的,如下图所示。

2-4.png

0x03 将数字签名保存在CAT文件中的方法(catalog)

在Windows系统中,有些文件无法通过文件属性获取其数字签名信息,但这些文件也包含数字签名。这里的数字签名是指CAT(安全目录)文件的数字签名。

信息可参考:

https://docs . Microsoft . com/en-us/windows-硬件/驱动程序/安装/目录-文件

对签名流程的直观理解:

将sha1加密后的文件哈希值保存在CAT文件中(一个CAT文件可以保存多个文件哈希值)

向CAT文件添加数字签名。

将CAT文件添加到系统的安全目录数据库中。

这些文档是数字签名的。

示例:

c:\ Windows \ System32 \ catroot \ { f 750 E6 c 3-38EE-11 D1-85e 5-00 c 04 fc 295 ee } \ ntph . cat

属性-安全目录-项目详情-文件,可以找到哈希值对应的文件。

如下图

3-1.png

无法通过文件属性查看CAT数字签名。

的。cat文件以ASN.1标准保存,不能直接通过记事本查看,需要解密。在线地址如下:

https://lapo.it/asn1js/

选择要解密的cat文件并显示完整的格式。

格式分析可以参考:

https://support . Microsoft . com/en-us/help/287547/object-ids-associated-with-Microsoft-cryptography

示例:

c:\ Windows \ System32 \ xwizard . exe

使用CAT格式的数字签名,您无法通过文件属性查看CAT数字签名。

无法使用powershell获取CAT文件的数字签名:

get-AuthenticodeSignature C:\ Windows \ System32 \ xwizard . exe

如下图

3-11.png

注意:

Win10系统可以获得CAT文件的数字签名,而Win7不能。

但是您可以使用signtool.exe和sigcheck.exe来查看数字签名。

使用signtool.exe查看:

signtool.exe验证/pa/a/v C:\ Windows \ System32 \ xwizard . exe

如下图

3-2.png

使用sigcheck.exe查看:

sigcheck.exe-q C:\ Windows \ System32 \ xwizard . exe/accept EULA

如下图

3-3.png

下面描述了如何对CAT文件进行数字签名。

1、生成CAT文件

使用以下内容创建一个新的文本文档cat.txt:

[目录标题]

Name=makecat1.cat

[目录文件]

ExeFile1=mimikatz.exe

注:

txt文件末尾需要有一个空行,否则下一次操作会报错,表示找不到文件。

如下图

3-4.png

使用makecat.exe生成cat文件:

makecat -v cat.txt

2、使用证书为CAT文件添加签名

sign tool sign/f root . pfx/p 123456 make cat 1 . cat

注:

这里的证书使用0x02中生成的证书Root.pfx。

3、将cat文件添加到系统的安全编录数据库

(管理员权限)

signtool catdb -v makecat1.cat

注:

使用-r参数:signtool catdb -r makecat1.cat

如果没有添加到系统的安全目录数据库中,签名状态为未签名,如下图所示

3-5.png

添加到系统的安全目录数据库相当于将makecat1.cat文件添加到目录c:\ windows \ system32 \ cat root \ { f 750 E6 c 3-38ee-11 D1-85e 5-00 c 04 fc 295 ee }。

删除等同于删除C:\ Windows \ System32 \ CAT root \ { f 750 E6 C 3-38EE-11 D1-85e 5-00 C 04 fc 295 ee }目录下对应的CAT文件makecat1.cat

使用signtool.exe获取数字签名:

signtool.exe验证/pa/a mimikatz.exe

使用sigcheck.exe获取数字签名:

sigcheck.exe-q mimikatz.exe/accept EULA

移动位置后,签名仍然有效。

如下图

3-6.png

验证结论:移动位置后,CAT文件数字签名不会失效

当然,使用带有CAT文件数字签名的xwizard.exe加载dll,一定程度上可以绕过应用白名单的拦截。

0x04 小结

介绍了添加数字签名的两种方法,分析了CAT文件数字签名的特点。对于可执行文件,Process Explorer可以验证两种不同的数字签名。

如下图

4-1.png

留下回复

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

黑客攻防讨论组

黑客攻防讨论组

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

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