Digital-Signature-Hijack:一款针对数字签名劫持的PowerShell脚本
Digital-Signature-Hijack
Digital-Signature-Hijack是一款针对数字签名劫持攻击的PowerShell脚本。
在现代Windows操作系统中,代码签名技术用于帮助用户识别来自不可信源的可信二进制文件。二进制文件通过使用数字证书进行签名,数字证书包含有关发布者,嵌入的私钥和公钥的信息。 该脚本专为安全研究人员设计,开发人员通常会对其代码进行签名,以便向用户保证他们的软件是可信的,而且没有被恶意修改。这都通过使用数字签名来完成的。因此,签名代码是一种验证文件的真实性和完整性的方法。
功能介绍
1、以微软身份对目标主机中所有的可执行文件进行数字签名;
2、以微软身份对目标主机中所有的PowerShell脚本文件进行数字签名;
3、验证所有可移植可执行文件的数字签名;
4、验证所有PowerShell脚本文件的数字签名 Digital-Signature-Hijack通过劫持注册表并添加必要的值,以及利用Matt Graeber开发的自定义SIP DLL文件来实现其功能。因此,用户需要将MySIP.dll文件的路径修改为对应的本地路径: MySIP.dll-https://github.com/mattifestation/PoCSubjectInterfacePackage
工具下载
广大研究人员可以使用下列命令将该项目文件克隆至本地:
git clone https://github.com/netbiosX/Digital-Signature-Hijack.git
工具演示
对可执行文件进行签名:
SignExe
验证签名有效性:
ValidateSignaturePE
对PowerShell脚本文件进行签名:
SignPS
验证签名有效性:
ValidateSignaturePS
项目地址
Digital-Signature-Hijack:【GitHub传送门】
参考资料
1、https://pentestlab.blog/2017/11/06/hijacking-digital-signatures/
2、http://www.exploit-monday.com/2017/08/application-of-authenticode-signatures.html
3、https://specterops.io/assets/resources/SpecterOps_Subverting_Trust_in_Windows.pdf
4、https://www.*******.com/watch?v=wxmxxgL6Nz8
5、https://blog.conscioushacker.io/index.php/2017/09/27/borrowing-microsoft-code-signing-certificates/
参考来源
thelinuxchoice
- css实现图片横向排列滚动
- windows下nvm安装node之后npm命令找不到问题解决办法
- 元素加了position:absolute则该元素的text-align:center居中失效的解决办法
- Chrome设置断点的各种姿势
- React-native踩坑小记
- 带修改莫队算法
- P2590 [ZJOI2008]树的统计
- #103. 子串查找
- P2051 [AHOI2009]中国象棋
- P2216 [HAOI2007]理想的正方形(二维RMQ)
- P3376 【模板】网络最大流(70)
- android客服端+eps8266+单片机+路由器之远程控制系统
- P2740 [USACO4.2]草地排水Drainage Ditches
- P1343 地震逃生
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法