VulnDbGen使用方法

使用前注意事项:

  1. linux系统能联网
  2. 安装openjdk(根据不同linux操作系统在网上查找安装指令)

参考https://blog.csdn.net/EahanZhang/article/details/88085561

sudo apt-get install openjdk-8-jdk

  会安装这些:

ca-certificates-java fonts-dejavu-extra java-common libatk-wrapper-java libatk-wrapper-java-jni libgif7 openjdk-8-jdk openjdk-8-jdk-headless openjdk-8-jre openjdk-8-jre-headless

然后配置profile环境变量

   export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

 

安装vulDBGen(在linux操作系统中):

  1. 获取vulDBGen资源包

Github链接:https://github.com/squizz617/vulnDBGen

2. 解压vulDBGen压缩包

3. 在压缩包内新建一个空文件夹,命名为gitrepos

4. 把config.py文件中找到以下代码,并将红色部分仿照修改为刚才新建的gitrepos的路径:

gitStoragePath = r"/home/czx/vulDBGen/vulnDBGen-master/gitrepos/"

     5.  执行initialize.py 完成工具初始化

python initialize.py

 

6. cd到gitrepos目录下,执行:

 git clone +软件所对应的github地址:如linux kernel的地址为:

git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

则该命令为git  clone  git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

(不要从GitHub上直接下载,版本不全,下载慢可以找镜像下载)

 

7. 查看当前目录下是否有一个以软件名命令的文件夹并且文件夹内包含有该软件的核心代码,如有则进行下一步

8. 退回上一目录,分别执行以下两条命令:

  1.  从Git存储库中提取CVE补丁   

 python src/get_cvepatch_from_git.py  +第7条所生成的新的文件夹名字

如 python src/get_cvepatch_from_git.py  linux   (得到文件级的diff文件)

 

Input: Specified Git repository

Output: CVE patches (*.diff)

 

       2. 从Git存储库中的CVE补丁恢复补丁前/补丁后功能

python src/get_source_from_cvepatch.py   软件名   (得到函数级diff文件)

 

Input: CVE patches (*.diff)

Output:  Old (unpatched) functions (*_OLD.vul)   

New (patched) functions (*_NEW.vul)   

Patch contents (*.patch)

若无误,在diff文件夹以及vul文件夹下会有以软件名命名的一个新的文件夹,该文件夹下面存放的分别是文件级的diff文件和函数级的diff文件。

(文件级的diff文件以.diff结尾,函数级的diff文件以.patch结尾,.NEW文件表示修补后的函数,.OLD表示修补前的函数)

 

 

9. 针对函数级的diff文件总结加号行在OLD文件中所对应的漏洞代码的规则

 

 

 

 

 

 

 

 

 

 

 

 

 

python initialize.py 

工具初始化的时候,会自动下载nvd上的JSON漏洞摘要–文件中的每个漏洞都包括CVE®词典摘要中的描述和相关的参考链接,以及CVSS基本分数,易受攻击的产品配置和漏洞分类。

 

python src/get_cvepatch_from_git.py  linux

从Git存储库中提取CVE补丁,输入是linux生成*.diff

 

python src/get_source_from_cvepatch.py   软件名

从Git存储库中的CVE补丁恢复补丁前/补丁后功能,生成OLD.c  NEW.c  *.patch

 

 

 

 

第五步下载失败时

 

https://nvd.nist.gov/vuln/data-feeds#JSON_FEED上下载zip文件,解压为json,;复制到data/CVEXML中,执行tools/cvedatagen/cveXmlParser.py生成data/cvedata.pkl

 

 

 

 

 

 

第八步出错时

 

找到get_cvepatch_from_git.py文件,按下面修改即可

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值