1. 程式人生 > >記一次在實戰靶機中使用`SearchSploit`的總結

記一次在實戰靶機中使用`SearchSploit`的總結

記一次在實戰靶機中使用SearchSploit的總結

什麼是SearchSploit

GitHub上的漏洞資料庫儲存庫中包含 “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

如果您安裝了自制程式公式),執行以下命令將使您進行設定:

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 ”,您可以看到可用的所有功能和選項:

詳細引數

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. 版本).
 * 當更新或顯示幫助時,搜尋項將被忽略。

基本搜尋

只需新增您想要查詢的任意數量的搜尋詞:

[email protected]:~# 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

[email protected]:~# 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/"

[email protected]:~# 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/'

[email protected]:~# 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

[email protected]:~#
[email protected]:~# 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

[email protected]:~# 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

[email protected]:~# 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/
--------------------------------------------------------------------------------------- ------------------------------------------