本文目的:学会使用BinDiff分析漏洞补丁。
一、工具与环境
分析环境:Win10 + IDA7.0 + BinDiff5.0
注:IDA7.4须搭配BinDiff6.0,IDA7.0/7.2必须搭配BinDiff5.0
BinDiff 下载地址:https://www.zynamics.com/software.html
选择好版本,下载后缀名为msi的安装程序。
安装BinDiff时,点击next即可,只需在选择IDA目录时,要选择IDA的根目录。
安装完成后,在IDA中可看到BinDiff
二、漏洞简述
本次比较的漏洞补丁版本为KB4551762,上一个版本为KB4540673,漏洞编号CVE-2020-0796,影响的操作系统为win10 1903/1909,受影响文件:客户端mrxsmb.sys,服务端srv2.sys。
2020 年3 月11 日,某国外安全公司发布了一个近期微软安全补丁包所涉及漏洞的综述,其中谈到了一个威胁等级被标记为Critical 的SMB 服务远程代码执行漏洞(CVE-2020-0796),攻击者可以利用此漏洞远程无需系统账户验证,通过发送构造特殊的恶意数据导致在目标系统上执行恶意代码,从而获取机器的完全控制权。此漏洞主要影响支持SMBv3.1.1
的设备,理论上存在蠕虫化的可能性。
下载打补丁前后的文件及其pdb文件
使用IDA加载,并生成idb(或i64)文件,将打补丁前后的idb都分析生成好
三、使用BinDiff进行比较
在IDA中点击BinDiff,选择另一个需要比较的idb(i64)文件,打开Matched Functions窗口,点一下左上角的Similarity,让相似度最低的排在前面
选择其中一个函数,右键——>View grow graphs,BiDiff便会打开一个比较窗口:
按ctrl + 鼠标滚轮可进行放大与缩小。
四、寻找漏洞函数
后边就是分析了……