记一次在实战靶机中使用SearchSploit的总结

本文首发:记一次在实战靶机中使用SearchSploit的总结:https://xz.aliyun.com/t/2857

什么是SearchSploit

GitHub上的漏洞数据库存储库中包含 “searchsploit”,这是一个Exploit-DB的命令行搜索工具,它还允许您随身携带漏洞利用数据库的副本。

SearchSploit使您能够通过本地检出的存储库副本执行详细的离线搜索。此功能对于无法访问Internet的隔离或空中网络的安全评估特别有用。

许多漏洞包含指向未包含在标准存储库中的二进制文件的链接,但可以在我们的漏洞利用数据库二进制漏洞存储库中找到。如果您预计在评估时

无法访问Internet,请确保检出两个存储库以获取最完整的数据集。

注意:此实用程序的名称是Search Sploit,正如其名称所示,它将搜索所有漏洞和shellcode

它不会包含Google Hacking Database的任何结果,终端输searchsploit启动(已经默认在Kali/Parrot中安装)

记一次在实战靶机中使用`SearchSploit`的总结-LMLPHP

如何安装SearchSploit

Linux的

Kali Linux:

如果您使用的是Kali Linux的标准GNOME版本,默认情况下已经包含“exploitdb”软件包!但是,

如果您使用的是Kali Light变体或您自己定制的ISO,则可以按如下方式手动安装软件包:

root @ kali:〜#apt update && apt -y install exploitdb

Apple OS X / macOS

如果您安装了自制程序公式),运行以下命令将使您进行设置:

user @ MacBook:〜$ brew update && brew install exploitdb

Windows

对于windows没有简单或直接的方式来使用searchsploit(官方给的消息),并且建议的最佳替代方案是在虚拟机,dockerLinux子系统 Linux中使用Kali Linux

Git

我们可以通过运行以下命令轻松检出git存储库

$ git clone https://github.com/offensive-security/exploitdb.git / opt / exploitdb

使SearchSploit保持最新状态

无论您如何安装SearchSploit,只需运行以下命令即可进行更新

$ searchsploit -u

如果您使用Kali Linux软件包一直未更新,您将首先需要以传统方式更新软件包:

root @ kali:〜#apt update && apt -y full-upgrade

使用SearchSploit

使用“ -h ”,您可以看到可用的所有功能和选项:

记一次在实战靶机中使用`SearchSploit`的总结-LMLPHP

详细参数

root @ kali:〜#searchsploit -h
  用法:searchsploit [options] term1 [term2] ... [termN]

==========
 例子
==========
  searchsploit afd windows local
  searchsploit -t oracle windows
  searchsploit -p 39446
  searchsploit linux kernel 3.2 --exclude =“(PoC)| / dos /”
  searchsploit linux反向密码

  有关更多示例,请参阅手册:[https://www.exploit-db.com/searchsploit/](https://www.exploit-db.com/searchsploit/)

=========
 Options
=========
   -c, --case [Term]       区分大小写(默认不区分大小写)
   -e, --exact[Term]       对exploit标题进行EXACT匹配 (默认为 AND) [Implies "-t"].
   -h, --help 显示帮助
   -j, --json [Term]       以JSON格式显示结果
   -m, --mirror [EDB-ID]   把一个exp拷贝到当前工作目录,参数后加目标id
   -o, --overflow [Term]   Exploit标题被允许溢出其列
   -p, --path [EDB-ID]     显示漏洞利用的完整路径(如果可能,还将路径复制到剪贴板),后面跟漏洞ID号
   -t, --title[Term]       仅仅搜索漏洞标题(默认是标题和文件的路径)
   -u, --update            检查并安装任何exploitdb软件包更新(deb或git)
   -w, --www  [Term]       显示Exploit-DB.com的URL而不是本地路径(在线搜索)
   -x, --examine [EDB-ID]  使用$ PAGER检查(副本)Exp
   --colour                搜索结果不高亮显示关键词
   --id   显示EDB-ID
   --nmap [file.xml]       使用服务版本检查Nmap XML输出中的所有结果(例如:nmap -sV -oX file.xml)
                           使用“-v”(详细)来尝试更多的组合

   --exclude="term"   从结果中删除值。通过使用“|”分隔多个值
                      例如--exclude=“term1 | term2 | term3”。

=======
 笔记
=======
 * 你可以使用任意数量的搜索词。
 * Search terms are not case-sensitive (by default), and ordering is irrelevant.
   * 搜索术语不区分大小写(默认情况下),而排序则无关紧要。
   * 如果你想用精确的匹配来过滤结果,请使用用 -e 参数
 * 使用' - t '将文件的路径排除,以过滤搜索结果
   * 删除误报(特别是在搜索使用数字时 - i.e. 版本).
 * 当更新或显示帮助时,搜索项将被忽略。

基本搜索

只需添加您想要查找的任意数量的搜索词:

root@kali:~# searchsploit afd windows local
--------------------------------------------------------------------------------------- ------------------------------------------
 Exploit Title |  Path
   | (/usr/share/exploitdb/)
--------------------------------------------------------------------------------------- ------------------------------------------
Microsoft Windows (x86) - 'afd.sys' Local Privilege Escalation (MS11-046)  | exploits/windows_x86/local/40564.c
Microsoft Windows - 'AfdJoinLeaf' Local Privilege Escalation (MS11-080) (Metasploit)   | exploits/windows/local/21844.rb
Microsoft Windows - 'afd.sys' Local Kernel (PoC) (MS11-046)| exploits/windows/dos/18755.c
Microsoft Windows 7 (x64) - 'afd.sys' Dangling Pointer Privilege Escalation (MS14-040) | exploits/windows_x86-64/local/39525.py
Microsoft Windows 7 (x86) - 'afd.sys' Dangling Pointer Privilege Escalation (MS14-040) | exploits/windows_x86/local/39446.py
Microsoft Windows XP - 'afd.sys' Local Kernel Denial of Service| exploits/windows/dos/17133.c
Microsoft Windows XP/2003 - 'afd.sys' Local Privilege Escalation (K-plugin) (MS08-066) | exploits/windows/local/6757.txt
Microsoft Windows XP/2003 - 'afd.sys' Local Privilege Escalation (MS11-080)| exploits/windows/local/18176.py

注意:SearchSploit使用AND运算符,而不是OR运算符。使用的术语越多,滤除的结果越多。

Tip:如果你没有收到预期的结果,可以使用更通用的术语进行更广泛的搜索。如:Kernel 2.6.25 - >Kernel 2.6 / / Kernel 2.x。

Tip:不要使用缩写如:SQLi -> SQL Injection

标题搜索

标题搜索只匹配标题,不会对路径中的关键词进行匹配

如:searchsploit -t oracle windows

root@kali:~# searchsploit -t oracle windows
--------------------------------------------------------------------------------------- ------------------------------------------
 Exploit Title |  Path
   | (/usr/share/exploitdb/)
--------------------------------------------------------------------------------------- ------------------------------------------
Oracle 10g (Windows x86) - 'PROCESS_DUP_HANDLE' Local Privilege Escalation | exploits/windows_x86/local/3451.c
Oracle 9i XDB (Windows x86) - FTP PASS Overflow (Metasploit)   | exploits/windows_x86/remote/16731.rb
Oracle 9i XDB (Windows x86) - FTP UNLOCK Overflow (Metasploit) | exploits/windows_x86/remote/16714.rb
Oracle 9i XDB (Windows x86) - HTTP PASS Overflow (Metasploit)  | exploits/windows_x86/remote/16809.rb
Oracle MySQL (Windows) - FILE Privilege Abuse (Metasploit) | exploits/windows/remote/35777.rb
Oracle MySQL (Windows) - MOF Execution (Metasploit)| exploits/windows/remote/23179.rb
Oracle MySQL for Microsoft Windows - Payload Execution (Metasploit)| exploits/windows/remote/16957.rb
Oracle VM VirtualBox 5.0.32 r112930 (x64) - Windows Process COM Injection Privilege Esc| exploits/windows_x86-64/local/41908.txt
Oracle VirtualBox Guest Additions 5.1.18 - Unprivileged Windows User-Mode Guest Code Do| exploits/multiple/dos/41932.cpp
--------------------------------------------------------------------------------------- ------------------------------------------

删除不想要的结果

使用--exclude=选项删除不想要的结果

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

root@kali:~# searchsploit linux kernel 3.2 --exclude="(PoC)|/dos/"
--------------------------------------------------------------------------------------- ------------------------------------------
 Exploit Title |  Path
   | (/usr/share/exploitdb/)
--------------------------------------------------------------------------------------- ------------------------------------------
Linux Kernel 2.6.39 < 3.2.2 (Gentoo / Ubuntu x86/x64) - 'Mempodipper' Local Privilege E| exploits/linux/local/18411.c
Linux Kernel 2.6.39 < 3.2.2 (x86/x64) - 'Mempodipper' Local Privilege Escalation (2)   | exploits/linux/local/35161.c
Linux Kernel 3.2.0-23/3.5.0-23 (Ubuntu 12.04/12.04.1/12.04.2 x64) - 'perf_swevent_init'| exploits/linux_x86-64/local/33589.c
Linux Kernel 3.2.x - 'uname()' System Call Local Information Disclosure| exploits/linux/local/37937.c
Linux Kernel 3.4 < 3.13.2 (Ubuntu 13.04/13.10 x64) - 'CONFIG_X86_X32=y' Local Privilege| exploits/linux_x86-64/local/31347.c
Linux Kernel 3.4 < 3.13.2 (Ubuntu 13.10) - 'CONFIG_X86_X32' Arbitrary Write (2)| exploits/linux/local/31346.c
Linux Kernel < 3.2.0-23 (Ubuntu 12.04 x64) - 'ptrace/sysret' Local Privilege Escalation| exploits/linux_x86-64/local/34134.c
--------------------------------------------------------------------------------------- ------------------------------------------

利用管道输出(删除不想要的结果的另一种方法)

如:searchsploit XnView | grep -v '/dos/'

root@kali:~# searchsploit XnView | grep -v '/dos/'
--------------------------------------------------------------------------------------- ------------------------------------------
 Exploit Title |  Path
   | (/usr/share/exploitdb/)
--------------------------------------------------------------------------------------- ------------------------------------------
XnView 1.90.3 - '.xpm' Local Buffer Overflow   | exploits/windows/local/3777.c
XnView 1.92.1 - 'FontName' Slideshow Buffer Overflow   | exploits/windows/local/5346.pl
XnView 1.92.1 - Command-Line Arguments Buffer Overflow | exploits/windows/remote/31405.c
XnView 1.93.6 - '.taac' Local Buffer Overflow  | exploits/windows/local/5951.c
XnView 1.97.4 - '.MBM' File Remote Heap Buffer Overflow| exploits/windows/remote/34143.txt
--------------------------------------------------------------------------------------- ------------------------------------------

Tip:建议使用“/ dos /”与grep而不是“dos”,以便过滤器应用于路径,而不是标题。虽然拒绝服务条目可能在其标题中不包含“dos”,

但它们在路径中仍然具有“dos”。根据路径删除结果还可以确保您不会无意中过滤掉在其标题中合法包含“dos”的结果

复制到剪贴板

-p参数可以获取更多关于该漏洞的信息,以及将完整的路径复制到剪贴板上(如果可能的话)

如:searchsploit -p 39446

root@kali:~#
root@kali:~# searchsploit -p 39446

  Exploit: Microsoft Windows 7 (x86) - 'afd.sys' Dangling Pointer Privilege Escalation (MS14-040)
  URL: https://www.exploit-db.com/exploits/39446/
 Path: /usr/share/exploitdb/exploits/windows_x86/local/39446.py
File Type: Python script, ASCII text executable, with CRLF line terminators

复制到文件夹

不建议在本地的漏洞数据库中修改exp,建议使用-m参数复制那些有用的到当前的工作目录

如:searchsploit -m 39446 win_x86-64/local/39525.py

root@kali:~# searchsploit -m 39446 win_x86-64/local/39525.py

  Exploit: Microsoft Windows 7 (x86) - 'afd.sys' Dangling Pointer Privilege Escalation (MS14-040)
  URL: https://www.exploit-db.com/exploits/39446/
 Path: /usr/share/exploitdb/exploits/windows_x86/local/39446.py
File Type: Python script, ASCII text executable, with CRLF line terminators

Copied to: /root/39446.py

联网搜索

一些开发的元数据没有保存在本地,如果要访问他们,需要联网搜索

如:searchsploit WarFTP 1.65 -w

root@kali:~# searchsploit WarFTP 1.65 -w
--------------------------------------------------------------------------------------- ------------------------------------------
 Exploit Title |  URL
--------------------------------------------------------------------------------------- ------------------------------------------
WarFTP 1.65 (Windows 2000 SP4) - 'USER' Remote Buffer Overflow (Perl)  | https://www.exploit-db.com/exploits/3482/
WarFTP 1.65 (Windows 2000 SP4) - 'USER' Remote Buffer Overflow (Python)| https://www.exploit-db.com/exploits/3474/
WarFTP 1.65 - 'USER' Remote Buffer Overflow| https://www.exploit-db.com/exploits/3570/
--------------------------------------------------------------------------------------- ------------------------------------------

参考资料:SearchSploit - 手册:https://www.exploit-db.com/searchsploit/#installgit

10-07 20:24