志当存高远

如何在网络上抢银行:开曼国家银行入侵启示

Phineas Phisher 在 2016 年对位于马恩岛的开曼国家银行实施的黑客攻击,是一个引人深思的案例。他通过这次攻击非法获得了数十万英镑。结合 Phisher 自己撰写的《如何抢银行》以及普华永道对该银行的网络安全调查报告,我们可以清晰地看到攻击的关键时间节点和步骤。

这一事件对于银行安全领域的从业者来说,提供了宝贵的学习机会。通过分析这一案例,我们能够更深入地了解到银行系统的潜在安全漏洞,以及黑客是如何利用这些漏洞进行攻击的。这不仅展示了黑客的攻击手法,而且对于提高银行系统的安全防范意识和能力具有重要意义。

入侵过程

背景信息

在数字时代,银行抢劫的概念已经从传统的暴力手段转变为利用网络技术进行的攻击。这种方式的风险更低,回报却可能高得惊人。尽管新闻中偶尔会报道银行遭受黑客攻击的事件,如孟加拉国银行事件,或者描述CarBanak这样的大型俄罗斯黑客组织的精密组织结构,但实际上,进行此类攻击可能并不像许多人想象的那么复杂。

金融体系本身给人一种安全稳定的印象,因此,银行一旦遭受黑客入侵,通常不愿公开这一情况,并往往会夸大黑客团伙的攻击复杂度。通过这一案例,可以看到,即使是业余黑客,只要掌握了基本的网络安全工具和脚本知识,也完全有可能入侵银行并盗取资金,而不必依赖于政府或专业黑客组织的支持。

这次银行入侵并非一次针对性的攻击,攻击者的目标只是入侵任何一家银行。他在反击安全公司HackingTeam期间发现并利用了SonicWall SSL-VPN的漏洞。起初,在寻找漏洞时没有什么成果,直到意识到这个漏洞可以被ShellShock利用。当ShellShock漏洞曝光时,许多SonicWall设备都受到了影响,攻击者只需向cgi-bin/welcome发送Payload即可。尽管Dell随后针对这些漏洞版本发布了安全补丁,但却遗漏了cgi-bin/jarrewrite.sh。许多人认为他花了几周时间发现了一个远程代码执行(RCE)漏洞,因而将他视为一个高水平的黑客。实际上,他花了两周时间一无所获,直到突然意识到可以使用ShellShock。

关键时间线

2015年7月12日,攻击者开始对马恩岛开曼国家银行的服务器进行扫描。他使用zmap和zgrab扫描互联网,寻找存在SonicWall服务的IP地址,并通过IP反向查找其归属信息。搜索含有“bank”关键词的结果时,“Cayman”一词吸引了攻击者的注意,最终确定了这个银行作为目标。攻击者通过RCE漏洞成功获取了VPN服务器的管理权限,进而控制了域控服务器。通过域控,他们在多台员工电脑上安装了键盘记录器和屏幕截图软件,并开始潜伏分析银行内部运作流程,持续了几个月。

2015年12月8日及之前,为了深入了解银行的运作方式以及盗取资金的方法,攻击者下载并翻阅了大量内部文档,使用grep工具搜索“SWIFT”和“wire”等关键词。通过屏幕截图和键盘记录器观察银行员工的日常工作。发现一些员工会访问“SWIFT Access Service Bureau – Login”网站。通过执行meterpreter,并使用post/windows/gather/screen_spy模块每五秒截取一次屏幕,以此来监视他们的工作流程。发现他们通过Bottomline的远程Citrix系统访问SWIFT。每条SWIFT MT103支付信息都必须经过三名员工的操作:一名负责创建,一名负责验证,一名负责授权。利用键盘记录器,攻击者获取了这三名员工的账户凭证,使其能够独自完成这三个步骤。并且观察到银行并未审查发送的SWIFT消息,这意味着有足够的时间在银行发现之前转移资金。

2015年12月17日,攻击者试图通过Primacy Support账号提取Audery Butterworth的邮箱内容,但似乎未能成功。

2016年1月5日,攻击者通过Primacy.Support账号登录到员工Andrew Cubbon的电脑,并进行了两次SWIFT付款操作(总共进行了10次)。

2016年1月6日,攻击者在下午6点至晚上9点之间通过SWIFT进行了8次付款,其中两笔被拒绝。之后,攻击者退出了Primacy.Support账户。

2016年1月7日,下午5点,使用Primacy.Support2账户登录到Andrew Cubbon的电脑,并立即退出。此时,开曼国家银行和信托公司在日常检查中发现了大量异常的SWIFT付款。

2016年1月19日,普华永道(PwC)受开曼国家银行委托进行网络安全事件响应服务。调查发现,攻击者通过合法系统、用户账户和凭证进行了非法付款。攻击者获得了对员工系统和服务器的远程特权访问,这种访问允许他们控制银行网络上的所有系统。攻击者在多个地方安装了恶意软件,研究了支付流程相关的文档,并随后进行了一系列的欺诈交易。调查未发现有银行员工参与了此次入侵和攻击。

对于攻击者使用的位于荷兰的服务器,普华永道正在申请访问数据。银行已采取了补救措施,包括重置AD域和SWIFT账户密码、修改防火墙规则等,以阻止攻击者进一步访问其网络。攻击者主要使用了Primacy Support账号进行活动,该账号具有管理员权限。尽管攻击者进行了一些清理操作,并且由于数据老化等原因,无法确定是否有其他数据被盗取,但普华永道已经追踪到了攻击者的一些活动。

为了彻底剔除攻击者的访问权限,当普华永道开始监控网络时,攻击者开始采取低调行动。他们使用Mimikatz工具获取了修改后的新密码,并通过Outlook Web Access阅读邮件,以此来跟踪调查的进展。

在对全部邮件进行扫描的过程中,防守方发现了一封来自csdeployment@swift.com的针对性钓鱼邮件,标题为“Price Changes”,附件名为“1_Price_Updates_099123876_docs.jar”。这封邮件是从cncim.com域名发送的,该域名注册于2015年7月27日,意味着它是一个新注册的域名。邮件附件AdWind是一个完全用Java编写的跨平台后门程序,可以被任何人购买并使用。一旦用户点击执行附件,它会连接到198.101.10.208:1234。

通过分析反弹Shell,可以看出攻击者使用了PowerShell来执行base64编码的shellcode,这些shellcode主要依赖于Metasploit框架,其主要目的是回连到控制服务器(C2)。此外,键盘记录器是结合nishangPowerSploit这两个开源项目创建的,它能够捕获并将收集到的键盘输入信息回传给C2服务器。

从真实事件中学习成本最低

0day漏洞的发现与防护缺失

从漏洞产生上来看,这应该属于一个0day,但payload其实还是shellshock,如果有统一的接入层,在流量侧还是比较容易能发现这类攻击的。但从拦截上来看,互联网侧三方供应链软件的0day/nday漏洞对于大多数企业来说难以解决,但由于使用范围非常广,往往受到攻击者青睐。近些年的HW中,这类通用暴露在互联网中的服务不断的被挖出0day,在入侵过程中屡试不爽。三方软件尤其是非标,应避免直接开放互联网,并做好和其他区域的隔离。

员工身份凭证盗取成为后渗透中最薄弱点

攻击者拿到域控,控制员工电脑后,并没有进一步去寻找内部系统的漏洞,而是给所有员工下发恶意软件,通过观察员工的行为,了解他们日常的工作。这个case中,他们仅使用密码来访问SWIFT系统。尽管大多数银行采用双因素验证,但仍然可以在输入双因素验证令牌后迅速窃取并使用。盗取他们的登录凭据,以他们的身份合法的进行各种业务操作。

身份冒用已经成为拿到电脑终端管理权限后必须要做的事情了,如何实现session信息被盗取后,能识别并阻断是一个非常关键的突破。在企业内部各类管理系统中,存在大量能查询/操作任意数据或者执行命令等高危功能。当身份冒用无法阻断或发现,后续的操作都贴近业务流程,就更难被发现了。如果有事后的审计流程,还是能起到一定效果。

应急未找到互联网侧入口,导致止血动作不彻底

PwC在溯源过程中并未找到互联网侧突破口,也就是那个SonicWall SSL-VPN漏洞。导致所做的止血动作并没起到效果,甚至攻击者还能在应急调查开始后,通过邮件看到调查进展,甚至最后的调查报告也被他发现并泄漏出来。

这让我想起来,卡巴斯基在发现三角测量行动时,在不了解三角测量行动的能力情况下,觉得攻击者拥有控制手机、实时监听录音等能力,所以在应急过程中专门找了个会议室,并尽量不带手机以及开启飞行模式。

和攻击者发布的信息比对后可以发现,基本的行为溯源还是比较准确的,但涉及到对恶意软件的分析就不是很深入。可以看到对恶意软件所做的行为分析只是表层,和攻击者所考虑的存在差距。另外钓鱼邮件也可以看到是其它人所为,意味着当时还有其他攻击者同时在针对该银行入侵,但PwC报告中并没能推断两者的关联性。

建高围墙式的安全体系并不适应于高级威胁

回顾整个事件,我们可以看到攻击者并没有使用特别复杂的技术,在利用了一个0day突破互联网边界后,就依赖了如PowerShell、Mimikatz、Metasploit等常见工具,就长驱直入。这一方面暴露了金融基础设施的安全脆弱性,也意味着大量攻击者有能力实施类似的攻击。另外一方面,可以猜测该银行在互联网边界应该还是做了很多安全工作,只是对于0day漏洞无法防御,但对于突破边界后没有看到任何安全能力起了效果。

在2019年Operation Aurora事件后,Google意识到原先建高围墙的安全思路无法应对高级持续威胁,于是开始启动BeyondCorp项目,之后诞生零信任与纵深防御。


志当存高远
Loading