4.2 社会工程工具集(SET)
社会工程工具集(SET,Social Engineer Toolkit) 是由TrustedSec 的创始人创建并开发的。它是一个基于Python的开源工具,主要功能是利用社会工程进行渗透测试。SET深受专业安全人员的欢迎,用于测试某个企业的安全态势。真实攻击者也会利用SET进行主动或恶意攻击。它是最常见的用来进行社会工程攻击的工具。
如果想启动SET,请点击浏览Exploitation Tools > Social Engineering Tools ,然后选择se-toolkit 。
在Kali上首次启动SET时,SET分发会直接从GitHub 上更新。它会弹出个选项说自动接收更新。如果同意自动更新,选择yes 。
SET会要求你确认是否已安装git。Kali已经预载了git,不过最好的方式还是沿用第1章中介绍的的步骤更新Kali。这一更新将包括获取能确保SET正常工作的git版本。
Kali 1.0不包含.git目录,所以如果想要更新,你需要参照以下步骤:
1.打开终端,切换目录到cd /usr/share。
2.备份老的set
目录,输入:mv set backup.set
。
3.依照下面的命令,重新从GitHub上下载SET:git clone
https://github.com/trustedsec/social-engineer-toolkit/set/
4.找回老的config文件,避免重新设置MSF的路径,使用如下命令:
cp backup.set/config/set_config set/config/set_config
5.使用se-toolkit命令验证SET能否正常工作。
使用SET来进行克隆和攻击
现在你已经知道了SET的基本工作原理,让我们用一个可能会被信任的网站来攻击一下客户端机器。尽管我们可以用任意网站来举例子,但还是使用一个简单点儿的更好。
这里我们举一个通过克隆企业的SharePoint 站点来借助meterpreter 对受害者进行利用的例子。实际上,它可以是你想攻击的任何网站。我们选择SharePoint站点是因为作为渗透测试人员,你可能更想选择一个能够达到目的的目标。许多带有邪恶企图的攻击者可能会克隆一个公共站点。
下一步是浏览Exploitation Tools > Social Engineering Toolkit > se-toolkit 来启动SET。
接受所有授权证书和服务条款之后,你就能看到SET的主屏幕。
我们建议选取选项5) Update the Social-Engineer Toolkit 。更新后,选择选项1) Social-Engineering Attacks 。下一个截图会显示SET中社会工程攻击 下可用的不同的网站攻击向量。Spear-Phishing(鱼叉式网络钓鱼)选项是一种常见的攻击,它能将攻击嵌入到电邮和PDF中。鱼叉式网络钓鱼会直接在SET中将攻击文件伪装成由受害人发出的电邮发送。
在本例中,我们选择了Website Attack Vectors 。前面我们已经克隆了一个网站用于针对网站的攻击。接下来,我们需要决定如何发出攻击载荷。这里有几种可用选项。选择Java Applet Attack ,通常也就是第1个选项。
SET会询问你是想使用SET自带的现有模板,还是想自己克隆一个网站。默认的模板并不好用,我们建议你克隆一个网站,如前面提到的SharePoint的那个例子。
在下一屏内容中,SET会显示若干个有关用户如何复制该网站的选项。在本例中,我们会选取site-cloner选项。选择site-cloner后,SET会提出一系列问题。这些问题可以引导你克隆一个网站,然后让它在Kali中运行。站点克隆器会询问如下设置:
你可以导入自己的可执行文件。有自己的工具/恶意软件的攻击者或其他人群喜欢用这种方式。
SET会询问你希望使用哪种类型的反病毒混淆技术。与此同时,它会在各个选项旁边显示一个评分。我们建议通常情况下,最好选择评分较高的选项,除非你有特定的需要。下面的截图显示了可用的选项。我们选择选项16,因为它的得分排名最高。
SET会询问你要用哪个监听端口。大多数情况下,请坚持选用默认端口。在回答了最后一个问题之后,SET会启动克隆的网站。
新克隆的网站可以用来攻击目标用户。首先,你要诱导用户使用互联网浏览器来访问我们克隆的网站。然后,访问了克隆的仿冒网站的用户会接收到一个Java弹出框。如果运行了的话,它能提供一个连到你的Kali服务器的Reverse_TCP Meterpreter。作为攻击者,你可以启动一个meterpreter会话,并在访问克隆网站的设备上获得全部的管理员权限。
如下图所示,用户的客户端机器上会出现一个简单的Java弹出消息,这看上去很正常,而且普通用户一般会不假思索的选择运行。
在终端用户运行克隆网站的Java applet之时,Kali服务器会连接到受害者的机器上,如下面的截图所示:
在下一个示例截图中可以看到,SET可以和meterpreter会话交互,并直接调用命令在受害者的机器上执行:
你可以跟meterpreter保持多个会话。在本例中,我们用的是命令sessions -I 1 。最重要的是,我们是在跟meterpreter的第一个会话进行交互。如果我们攻陷了多台主机,我们可以有多个meterpreter会话、跟他们交互、在他们之间切换,或是将他们逐个关掉。
现在我们已经了解了使用SET的一些基础知识,让我们再看一个例子。我们将要学习如何克隆一个网站来窃取密码。
这次在到达攻击选项界面时,我们选择凭据收集器攻击(Credential Harvester Attack)。凭据收集器攻击可以通过浏览Social Engineering Attacks > Website Attack Vectors > Credential Harvester Attacks 来打开。
你可以选择克隆网站、使用网站模板或是导入自己的Web文件(HTML、图片及其他文件)。
流行站点如Facebook、Gmail和Twitter都有模板可供利用。其他网站则可以通过输入相应的URL来克隆。但有些情况下,我们会发现网站模板和克隆站点都有一些小问题。这时候,你需要使用定制导入。首先,用Web复制工具或是Web克隆软件在Kali中保存一份某个网站的拷贝。然后,使用定制导入选项指定该站点拷贝所在的目录。你需要试试看哪些选项最适合你的网站。
我们选择了选项2) Site Cloner 。之后它会让我们输入一个URL。我们要克隆https://www.facebook.com 。
我们输入的都是很确切的URL,并且要指定使用的是HTTPS还是HTTP URL。大多数情况下,二者并没什么区别,因为我们不会托管一个安全的网站。但某些情况下,HTTP站点跟HTTPS站点会有所不同。
我们还会被要求输入SET用来托管假冒网站的IP地址。通常这个地址也就是你的Kali Linux环境的IP地址。不过,如果你计划将受害者引导到一个使用NAT转换的地址上(可能通过上游的防火墙),那么输入NAT地址。
在你克隆了网站并将监听端口配置好后,SET会开始等待连接,如下面的截图所示:
下一步是将用户引导到假冒的站点上。常用的办法是发送一封假冒的电子邮件,也就是所谓的钓鱼电邮。SET可以帮你自动化实现,但在这个例子中,我们打算手动操作。下面这个例子显示了一个链接到我们克隆的Facebook站点的假冒电邮。当用户点击链接www.facebook.com 时,他会被引导到我们假冒的位于facebook.secmob.net 的网站。
在下面的截图中你可以看到我们克隆的Facebook很逼真,但URL并不是真的Facebook的URL。这个攻击假设受害者并未注意到URL的细微差异。这也是为什么真实的钓鱼攻击都使用跟真实站点类似的域名。
当受害者在假冒网站上输入他的或她的名字时,SET会将用户重定向跳转到真实的站点。大多数情况下,用户会在真实站点再次输入他们的密码并登入网站,而不会意识到他们已经被攻击了。在运行SET的Kali Linux上,你能看到密码被截获了。
除了实时日志,SET还会生成一份该事件的报告,这样攻击者之后就能使用窃取的凭据了。
在使用如SET这样的工具攻击客户端时,渗透测试人员一定要对客户端的行为进行了解。一种很有效的办法就是使用代理服务器来检查和拦截Web请求。
在第6章中,我们会深入介绍代理服务器。但目前,我们还是需要先简单了解一下,在使用像SET这样的工具进行Web攻击时,如何检查客户端的工作方式。