记一次在实战靶机中使用 SearchSploit 的总结
本文首发: 记一次在实战靶机中使用 SearchSploit 的总结: https://xz.aliyun.com/t/2857
什么是 SearchSploit?
GitHub 上的漏洞数据库存储库 https://GitHub.com/offensive-security/exploitdb 中包含 "searchsploit", 这是一个 Exploit-DB 的命令行搜索工具, 它还允许您随身携带漏洞利用数据库的副本.
SearchSploit 使您能够通过本地检出的存储库副本执行详细的离线搜索. 此功能对于无法访问 Internet 的隔离或空中网络的安全评估特别有用.
许多漏洞包含指向未包含在标准存储库中的二进制文件的链接, 但可以在我们的漏洞利用数据库二进制漏洞存储库中找到. 如果您预计在评估时
无法访问 Internet, 请确保检出两个存储库以获取最完整的数据集.
注意: 此实用程序的名称是 Search Sploit, 正如其名称所示, 它将搜索所有漏洞和 shellcode,
它不会包含 Google Hacking Database 的任何结果, 终端输 searchsploit 启动 (已经默认在 Kali/Parrot 中安装)
如何安装 SearchSploit
Linux 的
Kali Linux:
如果您使用的是 Kali Linux 的标准 GNOME 版本, 默认情况下已经包含 "exploitdb" 软件包! 但是,
如果您使用的是 Kali Light 变体或您自己定制的 ISO, 则可以按如下方式手动安装软件包:
root @ kali:#apt update && apt -y install exploitdb
Apple OS X / macOS
如果您安装了自制程序 https://brew.sh/ (包, 公式 https://formulae.brew.sh/formula/exploitdb ), 运行以下命令将使您进行设置:
- user @ MacBook:$ brew update && brew install exploitdb
- Windows
对于 Windows 没有简单或直接的方式来使用 searchsploit(官方给的消息), 并且建议的最佳替代方案是在虚拟机, docker 或 Linux 子系统 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", 您可以看到可用的所有功能和选项:
详细参数
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.cnblogs.com/lxz-1263030049/p/9751257.html