首页
社区
课程
招聘
[原创]对 VBAProject 的密码保护学习
发表于: 2020-8-3 14:41 9214

[原创]对 VBAProject 的密码保护学习

2020-8-3 14:41
9214

前言

VBA项目可以使用只读密码进行保护,需要输入密码才能在VBA IDE中查看和编辑VBA项目。不过这是一种由IDE实施的保护,而VBA代码本身未经编码或加密,可以使用工具oledump.py或Philippe的工具olevba.py进行查看,不会有任何问题。实际上,如果使用上述工具,甚至都不会注意到它受到密码保护。


实践

查看VBA项目是否受密码保护,可以看一下PROJECT流。此流是纯文本,结构类似于INI文件。会在里面找到一个ID条目,通常是第一行,这是GUID值。该GUID对于每个VBA项目都是唯一的,除非VBA项目受密码保护。受密码保护的VBA项目的GUID值具有“ NULL” 值:ID =“ {00000000-0000-0000-0000-000000000000}”


这是一个不带密码的VBA项目的PROJECT流示例,如下。


这是带有密码的VBA项目的PROJECT流的示例,如下。


原理

请注意,DPB(ProjectPassword)字段值很长,是因为此ID包含密码的哈希( 84bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8$3y4K6i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3X3c8#2M7#2)9J5c8X3!0H3k6h3&6K6M7r3g2U0M7#2)9J5c8X3!0X3k6X3W2U0k6g2)9#2k6X3k6A6L8r3g2Q4y4h3k6X3L8%4u0E0j5i4c8K6i4K6u0r3L8i4y4Q4x3X3c8G2N6X3u0S2i4K6u0r3y4K6V1$3z5o6f1@1x3U0k6Q4x3X3b7K6x3r3k6W2i4K6u0V1y4o6y4U0k6q4)9J5k6o6W2U0j5X3k6Q4x3X3b7%4k6U0p5$3x3h3x3K6k6r3f1%4k6o6R3`.)。VBA项目密码使用了salt,密码生成使用格式(sha1(MBCS(password)+salt))进行哈希处理,然后使用自定义可逆XOR编码进行编码,最后将其作为参数DPB的十六进制值存储在PROJECT流中。


插件

也有一个oledump插件来提取哈希并以与John Ripper和Hashcat兼容的格式表示它。此插件还会执行字典攻击,并在可以破解的情况下显示密码。


参考链接

d8bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6A6M7$3y4Q4x3X3g2K6j5h3&6K6i4K6u0W2k6h3c8#2i4K6u0r3k6r3W2S2M7Y4W2Q4x3V1k6J5M7%4y4Q4x3V1j5J5y4U0x3&6x3l9`.`.


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回