PE(Portable Executable File Format)
关于PE,查看上图即可。
原理剖析
注意看上图中PE结构体,在数据目录表(IMAGE_DATA_DIRECTORY)下存在安全(IMAGE_DIRECTORY_ENTRY_SECURITY)这一项,使用CFF Explorer打开有无签名的文件对比可发现签名文件此处(在PE解析工具中对应的名称是Security Directory RVA与Security Directory Size两项)有具体内容,而无签名的文件这里为NULL。
而我们的签名窃取也是为了这两个关键配置而来,实际上签名窃取就是获取一个已签名文件的安全信息,也就是Security Directory RVA字段地址开始,大小为Security Directory Size这段数据,将其附加到没有签名的文件中,并且修改Security Directory RVA与Security Directory Size这两项PE配置属性即可,这两项是PE文件本就存在的属性,不需要添加等操作。
常规窃取手法
常规手法就是解析有签名的文件的PE格式,获取其这两部分(Security Directory RVA、Security Directory Size)信息,根据这两部分信息拿到签名数据,接着打开目标文件(需要签名的),解析PE,在其文件末尾添加这段签名数据,修复Security Directory RVA、Security Directory Size信息即可。
注意事项
记得判断文件类型是32位还是64位,根据
IMAGE_OPTIONAL_HEADER中的Magic判断即可。
原文始发于微信公众号(安全之道):签名窃取原理剖析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论