关于网络钓鱼的深入讨论
作者:admin | 时间:2018-3-21 01:28:26 | 分类:黑客技术 隐藏侧边栏展开侧边栏
网络钓鱼相信大家都不会太陌生。近年来,随着人们网络安全意识的提升,网络钓鱼的手法也变得越来越高明。攻击者的社工经验愈加丰富,钓鱼技术也愈加的先进和新颖。作为企业,通过技术手段似乎在一定程度上能保护员工免受大型钓鱼攻击的威胁,但这并不是解决问题的根本,更关键的是员工安全意识的加强和培养。下面,我们的讨论也将围绕该话题展开。
网络钓鱼听起来很容易,但大规模的钓鱼活动策划并不简单。以下是成功运行内部钓鱼邮件的一些提示和技巧。
网络钓鱼需要什么?
借口是攻击者用来诱导目标员工,以伪装的合法请求或任务欺骗员工接收钓鱼邮件的故事或诡计。
执行恶意活动的重要组成部分。
钓鱼邮件可能会要求目标点击链接,该链接会跳转到攻击者制作的假网站上,通常这些网站都是一些可信站点的副本,主要用来窃取目标的用户名和密码。
如果电子邮件被发送到了目标的“垃圾邮件”或“垃圾”文件夹中,那么邮件将很可能不会被打开甚至是被忽略。因此想要成功执行钓鱼攻击,将邮件准确的发送到目标收件箱是非常重要的。
我如何确保电子邮件到达目标的收件箱?
想象你正在对内部执行一场精心策划的钓鱼活动。你成功欺骗了目标用户,然后你发送了钓鱼邮件坐等shellz和creds进入,但你等了很长时间却一无所获……那么到底哪出了问题呢?这当中可能有许多原因,可能你的钓鱼邮件根本就没有发送至目标用户的收件箱中。
图1 – 将钓鱼邮件标记为垃圾邮件
首先我们先来确认下,我们发送钓鱼邮件的服务器IP/域是否被列入了黑名单。Mxtoolbox提供了一种快速检查方法。如果钓鱼邮件服务器IP未被列入黑名单,则该电子邮件很可能会被标记为垃圾邮件,原因很简单,因为域不受信任。DKIM可以帮助我们(攻击者)更受信任。我们可以尝试通过使用OpenDKIM制作DKIM密钥来验证自己是发件人。
图2 – ‘opendkim-genkey’是生成密钥的命令。 ‘-s’指定密钥选择器。 ‘-d’指定域
OpenDKIM是一个开源的DKIM发送者认证系统的C语言实现,现在由IETF(RFC6376)进行了标准化。
图3 – DKIM私钥和公钥
OpenDKIM成功安装后,会在’/etc/opendkim.conf’中创建一个配置文件。编辑该配置文件,指定上述命令中使用的selector(选择器)以及密钥生成中使用的域和私钥的位置。
图4 – DKIM配置文件
使用图6中的语法将公钥添加到TXT DNS记录中。
图5 – DKIM公钥
图6 – DKIM TXT记录。名称应该采用 ‘<Selector>_domainkey.<domain>’格式
应该为钓鱼网站域提供的其他DNS记录包括A,MX,SPF和DMARC记录。(DMARC与DKIM记录协同工作)。DMARC至少需要指定版本和策略,但只要你有这些信息,它就可以和DKIM一起验证你是否为发件人。
图7 – DMARC TXT DNS记录。名称应采用‘_dmarc.<domain>’格式
完成以上操作后,我们再次从我们的邮件服务器发送钓鱼邮件,就会被成功发送到目标收件箱中。
图8 – 从同一邮件服务器发送的同一钓鱼邮件已发送到收件箱中
钓鱼邮件头现在显示的SPF,DKIM和DMARC记录均被标记为了“PASS”。
图9 – 被标记为PASS的SPF,DKIM和DMARC记录
Payload该闪亮登场了
为了防止目标对出站流量使用代理的情况,一个SSL证书将有助于确保目标系统和攻击者系统间的通信。在攻击者控制的域使用SSL证书。使用Let’s Encrypt创建SSL证书。然后通过结合使用’privkey.pem’文件创建的’cert.pem’文件,创建一个名为’full.pem’的文件。 ‘full.pem’将与handler一起使用。
图10 – 使用我们加密的’certbot’工具创建SSL Cert的命令
图11 – 合并’cert.pem’和’privkey.pem’的命令
在以下演示中我使用nps_payload来创建一个“reverse_https”,具体创建步骤如下图所示:
图12 – 使用’nps_payload’创建有效载荷
图13 – 为Payload创建后续文件
可以使用下面的命令设置handler,并使用有效负载创建的’unicorn.rc’文件。
图14 – 处理程序设置
完美的借口
从开头我们就提到,一个完美的借口是钓鱼成功与否的关键因素。因此在实施钓鱼攻击之前我们需要做充足的信息收集,例如查看与目标组织/员工相关的新闻,关注他们的媒体账户(如Facebook和Eventbrite),以及企业的招聘人事等信息。
钓鱼网站
一个令人信服的钓鱼网站,可以是目标习惯使用网站的复制品,其中可以包含组织的徽标以及相关的登录表单。如下图所示。
图15 – 网络钓鱼站点示例
寻找目标
在LinkedIn.com上寻找将组织列为他们“present(当前)”雇主的目标。
在facebook.com上寻找将组织列为他们“present(当前)”雇主的目标。
使用诸如 Hunter.io等网站寻找目标。
等待Shellz
图16 - 在目标系统打开的shell会话
图17 – 活动会话
结语
内部的网络钓鱼测试,对提升企业以及员工的安全意识有很大的帮助。由于是内部测试,因此资源的利用率和可信度都相对较高,这对企业和员工来说都是一场很好的安全检验。当然,让外部承包商进行测试也有其好处。这样,企业也更能从一个攻击者的视角看到自身安全的不足之处。此外,外部测试也更加的公正和独立,不易受到一些问题的限制和影响。总之,无论是内部还是第三方网络钓鱼评估,最重要的是培养员工的用户意识,而不是单单的将责任归咎于他们。只有这样,企业的安全建设才能更加的完善和稳固。
*参考来源:trustedsec,FB小编 secist 编译