在PHDays 8离开ATM Alone比赛

在Positive Hack Days 8上,再次举办了一次骇人的活动,目的是入侵“ Leave ATM Alone ATM”。 参与者可以使用两台ATM,硬件由我们的银行安全合作伙伴Alfa-Bank提供。 特别是在比赛中,我们建立了自动取款机,并在其中设置了漏洞。 在15分钟内,有必要绕过保护设备并从设备中提取金钱。 奖金总额为40 000₽。 大约有40名参与者来试图绕过防御。 竞赛的组织者,Positive Technologies的银行系统安全研究部门的专家Leonid Krolle讲述了如何做到这一点,并详细分析了任务。



让ATM独自参赛

参与者可以使用两台ATM。 其中之一安装了我们合作伙伴提供的应用程序控制软件,可防止启动不受信任的应用程序。 它不允许您运行需要提取现金的任何应用程序(您好,Cutlet Maker,BubbleMaker和nemagiya!)。

第二台ATM通过网络连接到测试处理,这使您可以进行现金提取操作(在ATM上可用)。 但是,该处理从没有钱的盒中发出要发行的信号。 因此,参与者的任务是代替处理响应来从正确的盒中发行钱。

ATM和测试处理的连接电缆位于外部,可以使用网络电缆(LAN)连接到它们。

玩家带走了从系统中提取的所有资金。



论坛的两天时间里的自动取款机:它们悲伤而孤独

应用程序控制


检查应用程序是否匹配给定白名单的方法有多种-从检查可执行文件的路径或其哈希值到分析数字签名和扩展名。 应用程序控制工具最常用于为客户端计算机提供额外的保护(它们禁止从白名单中启动软件)并为隔离的系统(例如ATM)提供安全性,这并不意味着持续的操作干预。

如果应阻止的扩展黑名单或多或少是通用的,并且易于配置,则默认情况下允许运行的白名单是多余的-配置时通常包括操作系统中的所有应用程序。

在过去的几年中,已经描述了许多方法来绕过使用Microsoft Windows工具的应用程序控制(例如,“ rundll32”,“ regsvr32”),这些方法的简单阻止会破坏操作系统的正常运行。 因此,对应用程序控制进行微调是一项艰巨而艰巨的工作,其结果已提交给了催泪大赛的参赛者。 请注意,在现实世界中,攻击者没有太多时间绕过应用程序控制。

比赛的第一天




生活的真相:)

比赛开始的第一天,论坛参与者众多,他们来设法绕过应用程序控制并替换处理响应-总共有40多人。



首批参与​​者

总共有15分钟的时间分配给具有应用程序控制的ATM绕过保护:在这段时间内,您必须设法运行代码。 不幸的是,在第一天,参与者发起攻击的所有尝试都失败了。 但是,一个参与者设法找到了安装在ATM上的奇怪设备。 这是一个撇渣器-可以连接到ATM的微型便携式阅读器。 此类设备可帮助欺诈者窃取银行卡数据:详细信息,PIN码-记录在磁条上的所有信息。



撇渣器

在检测到撇渣器后,需要从中提取卡片数据:在比赛的准备过程中,组织者在其中写了一张不存在的卡片的转储,其中有一定数量的卡片。

让我们谈谈为比赛准备撇油器的一些知识。
分离器由一个用于读取的磁头和一个用于记录音轨的设备(有时带有Wi-Fi或蓝牙)组成。 可以基于Explay播放器记录器或类似的USB语音记录器来创建此实例。 这里的例子。 就尺寸而言,它们仅适合防撇渣器的覆盖层,并且仍有电池的空间,因为必须准备并恢复科学怪人的迷你版:在另一台ATM型号的类似设备上进行了性能测试。 为了节省空间,修剪了USB端口安装垫,因此我必须自己做适配器。



制作适配器

我们根据互联网上播放器的指示测试了撇取器播放器是否正确包含(按钮上没有标志,因为它们仍留在箱子上),并写下了卡以及参与者必须从撇取器中删除的号码。



这就是应用了磁粉的卡的外观

卡磁条上的信息使用F / 2F频率编码(带有被吃的内容以及如何解码的信息- 在此处读取)记录,并表示7位编码的字母数字字符或5位编码的数字字符。 为了确定读取错误,使用了奇偶校验和纵向冗余校验(或纵向备用控制-LRC)。

任何磁道上的数据都必须以服务符号start开头,并以服务符号end结尾。 选择这些符号的方式应使其确定有用信息块的开头,确定读卡方向,甚至确定信息的编码格式(5位或7位)。

控制字符旨在控制硬件,不能用于传输信息(数据内容)。 分隔符用于分隔地图上的数据字段。

在7位编码中,字符[\]保留用于其他国家字符,并且不应用作国际信息交换的一部分,#字符保留用于任意其他图形字符。
这是一个外观的示例:

-标准ISO 2轨道:

; XXXXXXXXXXXXXXXX = YYYYYYYYYYYYYYYYY?Z -37个字符

X ... X-卡号,Z-LRC(数据以开始字符开始,以结束字符结束,卡号为16位数字,存在LRC)



测试和转储的时刻

实际上,您可以将播放器中的数据以MP3文件的形式复制,找到音轨的记录位置,在音频编辑器中将其放大并一点一点地解析,但是方法比较简单。

例如:

  • 刷卡是用于通过音频端口读取磁条卡的应用程序。
  • 磁条解码器。 一个对磁条卡进行解码的程序,可通过声卡从磁条接收原始数据。

它们使您或多或少地将音频轨道数据准确地转换为ASCII(解密数据)。

大约一个小时后,提供了撇渣器中记录的卡数据。 观众同情荣誉奖找到了它的所有者。 祝贺Maxim Vikhlyantsev!

其他参与者继续争夺上传到ATM的主要奖励:)有人试图破解防御,但有些人感到疲倦,对快速致富失去了希望。 尽管如此,第一天还是风雨如磐,尽管主要头奖仍由组织者负责...



第二天




保持最持久

在现场进行ATM骇客竞赛的第二天,可以观察到所有相同的参与者。 毅力和毅力试图找到一种绕过保护的载体没有白费,这里-斯坦尼斯拉夫·波沃洛茨基(Stanislav Povolotsky)安全地绕过了防御,并通过执行未签名的代码赢得了第一台ATM的现金奖。



演示成功的工作

第二台ATM上的网络攻击的实质如下:在ATM中,有一台笔记本电脑装有模拟该过程的已安装软件。



处理模拟器

该仿真器配置为可以插入任何没有PIN码的卡来发行货币,但是仿真器响应该请求而发送命令的卡匣为空。 为了解决这个问题,有必要:

  • 拦截处理模拟器的响应包;
  • 拆开包装并自行包装-仅使用正确的墨盒编号;
  • 插入卡,并在发送处理请求时,将更改后的数据回复至ATM;
  • 使用tcpdump,wireshark,scapy或ettercap工具,对修改后的数据执行重播攻击或欺骗攻击,以响应ATM。

tcpdump是UNIX实用程序,具有Windows的克隆,并允许您截取和分析通过运行此程序的计算机的网络流量。

wirehark是一个类似的实用程序,带有GUI,只是“收费”更多。

scapy是一个交互式外壳程序和软件库,用于以Python编程语言处理网络数据包。

ettercap是用于分析通过计算机接口传递的网络流量的实用程序,但具有附加功能。 该程序使您可以执行“中间人”之类的攻击,以迫使另一台计算机将数据包传输到路由器而不是路由器。



实际上,什么都没有改变

通过这种困难的方法,参与者遇到了困难,但他们克服了困难。 信息与公共,安全中心和乌兹别克斯坦团队获得了伪造第二台ATM上的处理响应的奖项。 我们向他们表示祝贺! 获奖者的完整名单在比赛页面上

Source: https://habr.com/ru/post/zh-CN412735/


All Articles