超好用的漏洞查询工具-Searchsploit

免责声明:使用本教程或工具,用户必须遵守所有适用的法律和法规,并且用户应自行承担所有风险和责任。

一、介绍

Searchsploit是一款基于命令行的搜索工具,专为Exploit-DB设计。Exploit-DB是一个由Offensive Security赞助的开源漏洞利用程序数据库,包含了大量的漏洞信息和渗透脚本。Searchsploit允许用户通过简单的命令,在Exploit-DB中快速搜索和定位所需的漏洞信息

主要功能

  • 搜索漏洞和利用代码:通过关键词、CVE 编号、平台或软件名来查找相关的漏洞。
  • 列出 Exploit-DB 中的 exploit:可以列出与某个特定软件或版本相关的所有漏洞利用代码。
  • 支持本地搜索:Searchsploit 将 Exploit-DB 的内容下载到本地,因此可以离线使用。

帮助文档https://www.exploit-db.com/searchsploit

EXP下载https://www.exploit-db.com/

二、安装Searchsploit

sudo apt update && sudo apt -y install exploitdb

三、升级Searchsploit

searchsploit -u

四、参数选项

用法格式

Usage: searchsploit [options] term1 [term2] ... [termN]

1. 搜索项选项

在这里插入图片描述

  1. -c, --case [term]

    • 执行区分大小写的搜索。默认情况下,searchsploit 的搜索是不区分大小写的
  2. -e, --exact [term]

    • 执行完全匹配搜索,即按照确切的顺序匹配漏洞利用标题中的所有术语。默认情况下,searchsploit 会执行每个术语的 AND 匹配
  3. -s, --strict

    • 执行严格搜索,这意味着输入的值必须完全匹配,禁用了版本范围的模糊搜索
  4. -t, --title [term]

    • 仅搜索漏洞利用的标题,而不是标题和文件路径
  5. –exclude=“term”

    • 从结果中排除特定的值。可以使用 “|” 来分隔多个值
  6. –cve [CVE]

    • 根据 Common Vulnerabilities and Exposures (CVE) 值搜索

2. 输出选项

在这里插入图片描述

  1. -j, --json [term]
    • 以 JSON 格式显示搜索结果
  2. -o, --overflow [term]
    • 允许漏洞利用标题超出其列宽,不进行截断
  3. -p, --path [EDB-ID]
    • 显示特定漏洞利用文件(由 Exploit Database ID 指定)的完整路径,并且如果可能的话,将路径复制到剪贴板
  4. -v, --verbose
    • 在输出中显示更多的信息
  5. -w, --www [term]
    • 显示指向 Exploit-DB.com 的 URL 而不是本地路径
  6. –id
    • 显示 Exploit Database ID(EDB-ID)值而不是本地路径
  7. –disable-colour
    • 禁用搜索结果中的彩色高亮显示

3. 非搜索选项

在这里插入图片描述

  1. -m, --mirror [EDB-ID]
    • 将指定的漏洞利用代码(由 Exploit Database ID 指定)复制到当前工作目录
  2. -x, --examine [EDB-ID]
    • 使用环境变量 $PAGER 指定的程序(如 lessmore)打开并查看指定的漏洞利用代码

4. 帮助和更新选项
在这里插入图片描述

  1. -h, --help
    • 显示帮助屏幕,提供所有 searchsploit 选项的概览
  2. -u, --update
    • 检查并安装任何可用的 exploitdb 包更新

5. 自动化选项
在这里插入图片描述

  1. –nmap [file.xml]
    • 检查 Nmap 的 XML 输出文件中所有结果的服务版本,并与 Exploit Database 中的漏洞利用进行匹配

五、搜索

1. 基本搜索

只需添加任意数量的关键词即可进行基本搜索:

searchsploit <关键词>

查找mysql相关的漏洞:

searchsploit mysql

在这里插入图片描述

查找mysql sql注入相关的漏洞:

searchsploit mysql sql injection

在这里插入图片描述

会匹配mysql、sql、injection三个关键词

  searchsploit mysql "sql injection" 

用引号引起来 ,就会匹配sql injection这个关键词,而不会被分开


2. 标题搜索

使用 -t 选项可以仅对漏洞利用脚本的标题进行搜索:

searchsploit -t <关键词>

搜索标题中包含 smbwindowsremote 的漏洞信息:

searchsploit -t smb windows remote

在这里插入图片描述


3. CVE 搜索

使用 --cve 选项可以直接根据 CVE 编号搜索漏洞:

searchsploit --cve <CVE-ID>

搜索 CVE-2017-0146 的漏洞:

searchsploit --cve CVE-2017-0146

在这里插入图片描述


4. 区分大小写搜索

使用 -c 选项可以启用区分大小写的搜索:

searchsploit -c <关键词>

对漏洞标题中严格区分大小写的关键词 smbwindowsremote 进行搜索:

searchsploit -c -t smb windows remote

在这里插入图片描述
查不到结果,因为限制了小写,但是数据库中的单词首字母都是大写


5. 完全匹配搜索

使用 -e 选项可以对漏洞利用脚本的标题进行完全匹配的搜索:

searchsploit -e "<完整关键词>"

查找完全匹配 wordpress 4.9 的漏洞:

searchsploit -e "wordpress 4.9"

启用-e选项
在这里插入图片描述
未启用时
在这里插入图片描述


6. 严格搜索

使用 -s 选项进行严格模式搜索,结果中只包含完全匹配的条目:

searchsploit -s <关键词>

严格搜索 openssl 的漏洞:

searchsploit -s "openssl < 0.9"
searchsploit -s openssl

暂时没看出有什么差别,说是禁用了版本范围的模糊搜索


7. 排除搜索

使用 --exclude 选项可以从搜索结果中排除不需要的内容。多个关键词可以用管道符 | 分隔,从而更精确地筛选结果:

searchsploit <关键词> --exclude="<关键词1>|<关键词2>"

搜索与 linux kernel 3.2 相关的漏洞,同时排除包含 (PoC)/dos/ 的条目:

searchsploit linux kernel 3.2 --exclude="(PoC)|/dos/"

六、输出

1. 查看漏洞详情

使用 -v 选项会在输出中显示更多信息:

searchsploit <关键词/漏洞编号> -v

搜索 OpenSSL 相关漏洞并查看详情:

searchsploit openssl -v

2. 以 JSON 文件格式输出结果

使用 -j 选项可以将搜索结果以 JSON 格式输出,便于进一步处理或与其他工具配合使用:

searchsploit <关键词/漏洞编号> -j

将 Apache 的漏洞以 JSON 格式输出:

searchsploit apache -j

在这里插入图片描述
看上去十分杂乱,通常会指定一个具体的漏洞编号来输出

searchsploit 21534 -j

在这里插入图片描述


3. 显示 EXP 文件完整路径

使用 -p 选项显示指定漏洞利用的完整路径:

searchsploit -p <漏洞编号id>

查看 ID 为 47832 的漏洞利用路径:

searchsploit -p 47832

在这里插入图片描述


4. 获取漏洞链接

使用 -w 选项生成一个包含漏洞链接的 URL,方便直接在浏览器中访问:

searchsploit <关键词> -w

示例:
获取 CVE-2021-44228(Log4j 漏洞)的链接:

searchsploit log4j -w

输出:


5. 复制 EXP 到当前目录

使用 -m 选项可以将指定的漏洞利用脚本复制到当前工作目录:

searchsploit -m <EXP-ID>

将 ID 为 21534 的漏洞利用脚本复制到当前目录:

searchsploit -m 21534

结果:
在这里插入图片描述


七、高级玩法

1. 管道输出

使用管道和其他命令(如 grep)对搜索结果进行进一步筛选

searchsploit <关键词> | grep <筛选条件>

1)搜索所有针对 Linux Kernel 2.6 的提权漏洞:

searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6

解释:

  • privilege:搜索关键词,意为提权。
  • grep -i linux:筛选出包含 “linux” 的结果。
  • grep -i kernel:进一步筛选出包含 “kernel” 的结果。
  • grep 2.6:聚焦于 Linux Kernel 版本 2.6 的漏洞。

在这里插入图片描述

2)搜索 mysql 的漏洞并通过 grep 进一步过滤结果:

searchsploit mysql | grep -i exploit

在这里插入图片描述

3)使用 jq 处理 JSON 格式的输出:

sudo apt install jq
searchsploit mysql -j | jq '.RESULTS_EXPLOIT[] | {Title: .Title, Path: .Path}'

在这里插入图片描述

这就比searchsploit的-j选项默认输出的json格式更加可观


2. 定位 EXP 位置

如果想直接定位漏洞文件的具体存储位置,可以使用 locate 命令:

locate <exp-path>

定位 ID 为 8572 的漏洞文件:
先查看漏洞文件路径
在这里插入图片描述
再定位详细路径

locate linux/local/8572.c

在这里插入图片描述


3. 结合多个选项进行精准搜索

搜索标题中包含 smb、windows 和 remote 的漏洞,同时排除 PoC 脚本:

searchsploit -t smb windows remote --exclude="PoC"

4. 配合 Nmap 查询漏洞

1)生成 Nmap 的 XML 输出
首先,用 Nmap 扫描目标并保存结果为 XML 文件:

nmap -sV -oX output.xml <目标IP>

2)使用 Searchsploit 解析 Nmap 的 XML 输出
通过 Searchsploit 的 --nmap 参数分析 Nmap 的 XML 输出文件:

searchsploit --nmap output.xml

Searchsploit 将会读取 XML 文件中的服务信息,对比 Exploit-DB 数据库,查找对应的漏洞利用脚本,输出与目标服务相关的漏洞及漏洞利用脚本的详细信息

比如从xml读取到了openssh服务,就会输出与目标服务相关的漏洞及漏洞利用脚本的详细信息
在这里插入图片描述
还读取到apache服务
在这里插入图片描述

文章原创,欢迎转载,请注明文章出处