严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。
社会工程攻击,是一种利用“社会工程学” (Social Engineering)来实施的网络攻击行为。比如免费下载的软件中捆绑了流氓软件、免费音乐中包含病毒、钓鱼网站、垃圾电子邮件中包括间谍软件等,都是近来社会工程学的代表应用。
Kali Linux系统集成了一款社会工程学工具包 Social Engineering Toolkit
(SET),它是一个基于Python的开源的社会工程学渗透测试工具。这套工具包由David Kenned设计,而且已经成为业界部署实施社会工程学攻击的标准。
SET利用人们的好奇心、信任、贪婪及一些愚蠢的错误,攻击人们自身存在的弱点。SET最常用的攻击方法有:用恶意附件对目标进行 E-mail 钓鱼攻击、Java Applet攻击、基于浏览器的漏洞攻击、收集网站认证信息、建立感染的便携媒体、邮件群发等攻击手段。
环境说明
主机 | IP地址 |
---|---|
Kali Linux 攻击机 | 192.168.0.211 |
Win 7 虚拟机靶机 | 192.168.0.103 |
Windows 10 物理机 | 192.168.0.104 |
本文目的
本文将演示如何借助 SET+MSF 渗透工具对局域网内(桥接模式)的 Win 7 虚拟机靶机进行 网络钓鱼(欺骗用户的账号密码)、生成木马、获得主机Shell、权限提升、远程桌面监控、账户Hash值获取、日志清除、后门植入、钓鱼邮件等一套较为完整的渗透测试流程。
钓鱼网站
下面演示如何借助 SET 工具构建钓鱼网站,并窃取用户的账号密码。 【注意】下面所述的钓鱼网站攻击方法将不适用于动态验证机制的网页。网站登录机制分为动态和静态验证两种,比如说有些网站的登录使用了图形验证码、短信验证码、二维码登录、图形滑块验证等,这些就是动态验证。而比如一些企业内部后台、部分低级网站、各种学校管理平台、校园网登录平台等基本都是只要账号密码对就能上去,不用其他验证的网站就是静态验证。
默认模板
1、在使用 SET 之前,检查并更新其版本,确保最新: 2、在终端输入 setoolit
开始运行 SET,选择第1项进入社工模块:
3、然后选择第2项——网站攻击模块: 4、接着下选择第3项——凭证收集攻击: 5、选择第1项——Web模板: 6、接着需要设置用于钓鱼的IP地址(此处默认Kali本机IP,同时会默认设定80端口,故需要提前执行命令systemctl stop apache2
关闭Apache服务,避免80端口占用,引起冲突),然后选择钓鱼的网站(下面选择谷歌登录): 7、最后,在物理机 Win 10上面访问 Kali 的IP地址,即可得到谷歌登录页面,输入账号和密码(登录后会进行跳转到谷歌官网): 8、此时返回Kali,可以看到成功收集到刚才输入的账号和密码,攻击成功:
站点克隆
除了选择 SET 自带的三个登录站点的模板外,SET 也允许攻击者自己选择站点进行克隆,伪造钓鱼网站。
1、在上面第五步选择第2项——站点克隆: 2、接着将监听的地址设为本机IP(直接 Enter 键默认即可),然后将克隆的网站地址设置为美团的登录页面,即可成功克隆并进入监听状态: 3、在 Win10 物理机访问 Kali 攻击机的 IP 地址,效果如下: 4、输入账号和密码后,在 Kali 中可以收集到该信息,钓鱼攻击成功: 5、此处还进一步对QQ邮箱、QQ空间、微博等社交平台的登陆页面进行钓鱼尝试,然而都报错如下(不知道如何解决,如有大佬知情请赐教):
谈二维码
SET 工具包中使用QR Code Attack
模块发起二维码攻击,使被欺骗用户扫描你的二维码进入一个伪装钓鱼网站。有人肯定会认为那这个软件没啥用,但是请问正常情况下,给你一个二维码和一个未知网址,你更愿意相信哪一个?答案当然是二维码。
1、进入社工攻击并选择二维码攻击模块: 2、输入要跳转的钓鱼网站的地址(此处拿合天网安实验室的首页来做示范),即可生成二维码:
3、然而使用手机微信扫描出来的结果如下: 4、使用手机UC浏览器扫描才可以跳转到相应网站: 5、以上 Kali 显得太垃圾了……推荐一个在线二维码生成平台,可生成在微信即可扫描并跳转的二维码并且种类丰富,大可为所欲为: 6、上图在手机微信扫描的效果如下: 【小结】以上的攻击演示告诉我们几点:
-
不要轻易打开一个安全性未知的网站链接或者去扫描二维码,并且傻乎乎地输入自己的账号密码等敏感信息,你看到的网站不一定是真的(现实中攻击者会绑定公网IP、公网域名来以假乱真);
-
同时请务必留意,不要轻易连接安全性未知的WIFI,因为一旦你进入攻击者设定的WIFI,攻击者完全可以利用局域网内部的DNS欺骗攻击,使得你访问
www.baidu.com
这样的域名都能跳转到他指定的钓鱼网站!
关于局域网内如何欺骗网关并进行DNS域名劫持,可参考先前写的另一篇博文:Kali渗透-DNS域名劫持与钓鱼。
远控木马
SET 同时集成了木马生成工具,可以生成木马并调用MSF框架对远程主机进行控制。直接使用MSF生成木马并控制主机的可参考之前另一篇博文:渗透测试-Kali入侵Win7主机。
控制主机
1、运行 SET,选择创建攻击载荷和监听器: 2、选择攻击模式,然后设置监听的主机IP(kali攻击机的IP地址)和端口,即可在本地生成木马程序: 3、将木马程序传给 Win 7 虚拟机,Kali攻击机开启监听后,Win 7虚拟机双击运行木马程序: 4、此时 Kali 攻击机启动了MSF框架并成功获得攻击会话: 5、激活 Meterpreter 会话,获得 Shell 后即可操控 Win 7 靶机,如下图所示: 6、执行screenshot
命令进行屏幕截图(可输入help
命令查看 Meterpreter 支持的所有攻击命令和描述),如下图所示: 7、执行命令getsystem
进行提权攻击,提升至system系统最高权限: 8、执行命令hashdump
,尝试获取系统所有账户的密码的hash值,发现失败。没关系,可以执行Meterpreter 提供的脚本: 9、最后补充下Meterpreter 提供的其他攻击脚本: 执行远程桌面如下: 10、进一步的攻击还可以执行background
将当前会话转移到后台执行,达到后台进程切换的目的。同时可以执行migrate
命令迁移会话进程到指定的进程pid,达到隐藏控制会话的进程,此时原来的进程是看不到的目的(通过ps
命令可以看到受害机的哪些进程)。
日志清除
1、为了不暴露攻击者的痕迹行为,需要清除系统事件,先打开 Windows 事件查看器: 2、在 Meterpreter 执行命令 clearev
命令,对靶机的日志进行清除,如下图所示: 3、此时重新查看 Win7 的事件查看器,系统日志信息已经被清空: 但该命令存在的弊端的是,没法指定清除哪一部分的日志,一次性清除容易引起系统管理员的注意。
创建后门
当成功获取目标系统的访问权限后,需要寻找方法来恢复与目标主机的连接,而无需再进入目标系统。如果目标用户破坏了该连接,例如重新启动计算机,此时使用后门将允许自动重新与目标系统建立连接。为了后续渗透方便,所以需要创建一个后门,这样即使连接被中断也不会影响工作。
1、创建持久后门之前,先查看下它的帮助文件,如下所示: 2、执行命令创建一个持久后门,输出的信息将显示创建后门的一个过程。Kali 将在目标系统中创建了一个持久脚本(保存在C:\Users\thinkpad\AppData\Local\Temp\naBffRVEO.vbs
)并篡改注册表,如下所示:
3、查看 Win 7 靶机的注册表和系统文件看看: 4、为了验证后门是否可利用,关闭当前攻击会话,重启 Win 7 虚拟机: 5、此时在 Kali 虚拟机重新开启一个终端,运行 MSF 框架,监听 Win 7 虚拟机是否重启后能自动上线获得攻击会话: 至此,后门植入成功!以后只要Win 7系统开机便会自动运行后门脚本,攻击者可以随时入侵!除非受害主机的管理员发现后删除了注册表相应的键值和系统中植入的后门脚本。此时即使 Win 7 靶机中的远控木马文件 payload.exe
被管理员删除也没关系,下面验证一下。
6、删除Win 7靶机桌面的木马文件后重启主机: 7、此时 Kali 攻击机依然可以控制靶机,只不过功能受限,无法提权到最高权限了: 8、实验最后,将 Win 7靶机上的后门脚本、注册表注册项清除,Kali 攻击机则无法再随意入侵 Win 7 虚拟机靶机了,如下图所示: 以上通过 SET + MSF 渗透工具,演示了如何生成木马、获得主机Shell、主机提权、远程桌面控制、日志清除、后门植入等完整的一次渗透测试攻击。
钓鱼邮件
当攻击者制作了钓鱼网站、木马程序后,便会想法设法将其传给受害者,而常见的传播方式便是钓鱼网站了。安全意识较差的用户在收到钓鱼邮件后点击邮件中的钓鱼链接、下载附件中的木马程序,便可能遭受攻击!
工具简述
Swaks 是一款类似于“瑞士军刀”的工具,之所以这么说是因为它在SMTP邮件协议领域有非常非常广泛的应用,同时对于一名信息安全高级工程师来说也是一个不错的利用工具!它通常被用来伪造邮件,进行钓鱼、社工等操作。
Swaks基本用法:
1、swaks --to test@qq.com 测试邮箱的连通性;
2、参数说明(这里只是简单的罗列了一些,至于更加具体的内容可以使用–help进行查看了解):
--from test@qq.com //发件人邮箱;
--ehlo qq.com //伪造邮件ehlo头,即是发件人邮箱的域名。提供身份认证
--body "http://www.baidu.com" //引号中的内容即为邮件正文;
--header "Subject:hello" //邮件头信息,subject为邮件标题
--data ./Desktop/email.txt //将正常源邮件的内容保存成TXT文件,再作为正常邮件发送;
3、Kali 内置了swaks,如下图所示:
攻击实例
1、在进行攻击演示之前,先在以下网站申请一个临时邮箱用于收件: 2、伪造一份来自 360hr 的邮件,收件人为clearsky@4533.top
,内容为:“Congratulations on your 360 interview. Please click on the link below to enter our employee information page. https://fishing.com/test.php”,如下图所示: 3、此时可以在临时邮箱中收到来自 360hr 的邮件: 4、点击查看邮件详情: 但是,QQ邮箱和网易云邮箱暂不可送达,应该是腾讯、网易设定的安全机制的原因!在此提醒遇到可疑邮件要查看源邮件,判断发信人IP是否为可信任的IP,不然一个贸然的操作有时候将可能导致自己被钓鱼甚至攻击!
总结
废话不多说,给出几条防范社工攻击的建议:
-
当心来路不明的服务供应商等人的电子邮件、即时简讯以及电话。在提供任何个人信息之前验证其可靠性和权威性;
-
永远不要点击来自未知发送者的电子邮件中的嵌入链接,如果有必要就使用搜索引擎寻找目标网站或手动输入网站URL;
-
永远不要在未知发送者的电子邮件中下载附件,如果有必要可以在保护视图中打开附件,这个在许多操作系统中是默认启用的;
-
使用强大的防火墙来保护你的电脑空间,及时更新杀毒软件同时提高垃圾邮件过滤器的门槛;
-
下载软件及操作系统补丁,预防零日漏洞,及时跟随软件供应商发布的补丁同时尽可能快地安装补丁版本;
-
关注网站的URL,有时网上的骗子对URL做了细微的改动,将流量诱导进了自己的诈骗网站;
-
不要随意扫描二维码!你所扫描后到的网站可能是一个钓鱼网站;
-
不要轻易连接公告WIFI,进入攻击者设定的局域网环境,你的很多上网隐私将处于裸奔状态,同时容易遭受 ARP欺骗、DNS劫持、网络钓鱼等攻击!