Group-IB发布了一份报告,曝光了黑客团伙UNC2891多个针对ATM进行入侵的案例,这个从2017年就开始活动的黑客团伙,专挑印尼银行下手,2022年干了银行A,2023年换银行B,2024年又回头把银行A再干一遍。

最离谱的是,他们直接派人潜入机房,在ATM交换机后面插了一块树莓派+4G网卡。

对,你没看错,就是那块树莓派,从此银行整个内网对他们敞开,防火墙、入侵检测全成摆设。

一块树莓派插进去,整间银行就成他们的了

这帮人到底怎么玩的?今天黑鸟主要围绕他们的攻击手段进行复盘。

2024年2月4日,银行A的ATM网络段内首次出现未知设备的外出流量,源IP属于印尼本地移动运营商。经过现场勘查,取证人员在ATM交换机柜后方发现一台Raspberry Pi 4 Model B,通过以太网口直连交换机镜像端口或未受控端口,同时插入USB 4G modem(接口标识usb0)。该设备被攻击者用作长期物理跳板(persistent physical foothold)。

其核心作用有三:

  1. 提供独立于银行网络的指挥通道

    树莓派通过4G modem获取公网IP(动态),系统启动后由cron任务执行以下逻辑:
    • 检测usb0接口up
    • 执行curl向攻击者控制的Telegram Bot发送当前外网IP(报告中截获了完整请求,chat_id和bot token均已打码)
    • 在/tmp/.con写入标记,供本地其他脚本判断联网状态

      实际效果:每当4G重拨或换基站导致IP变化,攻击者都能在Telegram中实时收到新IP,无需任何端口转发或内网反向隧道。
  2. 作为ATM网络段的永不掉线的桥头堡

    由于设备物理直连交换机,即使银行后期封禁了所有已知C2、清理了软件后门、重做了整个跳板机,这台树莓派依然安静地躺在柜子里继续工作。报告明确指出:银行在2024年4月曾进行过一次全网重装和补丁加固,但攻击者通过该设备在加固后不到48小时就重新获得访问。
  3. 执行自动化持久化和横向移动

    树莓派上运行的脚本会在检测到联网后:
    • 从攻击者服务器下载最新版SUN4ME(2024年新工具)和更新后的TINYSHELL
    • 自动向ATM交换服务器、授权服务器、跳板主机重新投毒(主要通过SLAPSTICK魔法密码+已替换的pam_unix.so)
    • 运行端口扫描和弱口令爆破,确保即使银行改密或重装系统也能迅速重新站稳脚跟

取证人员最终提取到的关键文件包括:

  • /usr/bin/con.sh(IP上报脚本)
  • /etc/cron.d/root(开机自启任务)
  • /tmp/.con(联网状态标记文件)
  • 残留的OpenVPN配置文件(ovpn客户端配置,连接到攻击者VPS)

这台树莓派自2024年2月4日首次上线至7月被发现,持续稳定运行超过150天,期间银行经历了多次安全加固和补丁投放,却始终未能检测到这台“藏在柜子里的敌人”。

结论一句话:

UNC2891已经把传统的“软件后门”进化成了“硬件后门”。

当你的ATM网络还允许任何人在交换机上插一根网线而不触发告警时,所有的零信任、EDR、SIEM都只是给攻击者腾硬盘空间。 这不是科幻,这是2024年真实发生在印尼的大型商业银行身上的事。

这帮人进银行网络后,根本不急着搞钱,而是慢慢渗透,手段很多但是大多因为失去痕迹难以查明内网手段,剩下的基本是以木马手段为主。

  1. 他们先用SLAPSTICK这个PAM后门,为每一台他们控制的内网服务器设置一个独一无二的魔法密码。

    这里黑鸟觉得可以详细说明一下,SLAPSTICK 是一个针对 Linux/Unix 系统的 PAM(Pluggable Authentication Module)后门,核心功能是在认证阶段植入魔法密码逻辑,攻击者为每台受控服务器单独生成一个独一无二的硬编码密码(长度通常 12-16 位随机字符串)。

    工作原理如下:

    攻击者用提权后的权限将被篡改的 pam_unix.so(或 pam_unix_auth.so)替换掉系统原版文件(路径为 /lib64/security/pam_unix.so(CentOS/RHEL)或 /lib/x86_64-linux-gnu/security/pam_unix.so(Ubuntu/Debian)。

    替换后文件大小、时间戳、权限完全与原版一致(通过 touch -r 和 chmod 复制原文件属性),因此常规完整性检查(如 rpm -V 或 debsums)不会告警。

    认证阶段逻辑篡改

    在 pam_unix.so 的 pam_sm_authenticate() 函数中,攻击者插入以下判断:

    if(strcmp(password,"hARdC0d3d_M4g1c_P455w0rd_p3r_h0st")==0){

    // 直接返回 PAM_SUCCESS,不再检查账户实际密码、锁状态、过期状态

    return PAM_SUCCESS;

    }

    最后结果导致,只要用户(任意用户名,包括 root)在 SSH/login/su/sudo 时输入这个魔法密码,系统立即认证通过,完全绕过 /etc/shadow 中的真实密码哈希、账户锁定策略、PAM 其他模块(如 pam_tally2、pam_faillock)。

  2. 系统二进制全被他们换了:/usr/bin/ssh、crond、atd、pam_unix.so……

    银行IT部门在用的可能就是木马版命令行,正常干活的同时悄悄给黑客开门。

  3. 进程隐藏直接玩出花:用tmpfs内存文件系统把/proc/{pid}目录整个覆盖,ps、top、htop全看不见他们的进程。

    这招之前几乎没人见过。

  4. 日志?早删干净了。

    MIGLOGCLEANER一键清auth.log、wtmp、utmp、lastlog、bash_history,干完活连根毛都不剩。

  5. C2通信用iodine做DNS隧道,偶尔再套一层OpenVPN,平时三四层TINYSHELL链式跳板,

    一般你取证发现的是最外层那台跳板机,里面还有三层等你剥,剥到最后发现是2020年就废弃的云主机

最恶心的是,他们的所有恶意文件都改名成kthreadd、ypbind、ipstat这种系统进程名,时间戳全修改成2017-2019年的时间,让人一眼看过去就以为是正常进程,上机取证都怀疑自己眼花。

团伙现金提取分为两个阶段:后端交易篡改(CAKETAP恶意软件 负责让克隆卡通过 HSM 验证)和前端资金骡子执行(远程操控取现)。两者结合后,克隆卡在银行系统中显示为完全合法交易,对账前无任何异常告警。

HSM(Hardware Security Module),所有ATM取款的合法性最终都要由HSM来拍板:它负责验证卡片产生的ARQC是否正确,再签发ARPC授权交易。没有HSM点头,ATM一分钱都不会吐。正常流程是:ATM服务器把交易报文发给HSM → HSM验证通过 → 返回授权 → ATM吐钱。CAKETAP就是专门干掉这个保险柜验钞功能的rootkit恶意软件。

  1. 克隆卡制作

    团伙事先从妥协的主机(通常是 ATM 交换服务器或数据库节点)导出磁道数据(Track1/Track2)及对应卡号、到期日、CVV。

    使用 MSR606/MSRX6 等磁卡读写器批量写入空白磁条卡。

    芯片卡情况下,同时写入从 WINGHOOK/SLAPSTICK 窃取的完整芯片数据(包括用于生成 ARQC 的会话密钥)。

    每名骡子携带的卡包通常包含 80-200 张不同 BIN 段的卡,用于连续试错。
  2. 后端实时交易篡改(CAKETAP 核心机制)

    CAKETAP 以内核模块形式加载于 ATM 交换服务器(伪装为 ipstat.ko),在内核态对发往 HSM 的 ISO8583 报文进行实时拦截。

具体流程:

  • ATM 读取克隆卡 → 生成非法/可预测 ARQC(因为卡片密钥已被团伙掌握或暴力生成)
  • ATM 服务器构造交易请求报文 → 进入内核网络栈 → 被 CAKETAP 的 Netfilter 钩子捕获
  • CAKETAP 检查报文中的卡号是否在团伙内置白名单(硬编码或从 C2 动态更新)
  • 若命中,立即用团伙预先生成的合法 ARQC/ARPC 值替换 DE55 字段(或直接重构整个 ICC 数据块)
  • 篡改后的报文继续发往 HSM
  • HSM 收到合法 ARQC → 返回正确 ARPC → 交易授权成功 → ATM 正常吐钞

整个篡改发生在 ATM 服务器内核,HSM 侧看到的永远是合法报文,因此不产生任何授权拒绝日志。银行风控、反欺诈系统、交易监控全部失效,因为从字段到加密 MAC 都是正确的,所以银行往往要好几个月后对账才发现不对,但钱早被提光了。

资金骡子运营的手段才是最黑的部分,这帮人搞钱从来不自己出面,全靠骡子。

资金骡子/钱骡(Money Mule)是什么?

其实就是被黑产团伙当“人肉转账工具”使唤的倒霉蛋,中文化表达就是资金中转工具人。

简单来说:

犯罪团伙(诈骗、黑客、洗钱团伙)搞到一大笔脏钱,不能直接转到自己账户(会被银行风控直接冻结),于是他们就在全世界招人,让你用你的银行账户/支付宝/微信/甚至实体取现帮他们把钱转出去或取现,事后给你一点“佣金”(通常5%-15%)。

你以为自己在做“高薪兼职”“海外代收款”“刷单赚钱”,其实就是在帮他们洗钱。常见招募话术:

“国外客户付款不方便,帮我收一下款,转给我就行,给你8%手续费”

“出国玩帮我取点钱,日结5000刀,机票我报销”

“测试支付通道,帮我走一笔账,赚点零花钱”

UNC2891团伙的招募骡子方式有两套:一套是Google广告投“海外高薪兼职、日结500-1000美金”,专门钓想出国玩又想赚外快的年轻人。另一套直接上Telegram私聊,话术永远是那一套:

“你在××国家对吧?帮我们取个款,事成给你5000美金,机票酒店我们报销……”

典型的Telegram钓鱼话术,很多人上当就是因为看到‘日结5000刀’这几个字

骡子一旦上钩,他们立刻转到Wickr Me(自毁消息软件),全程指挥。

设备交付方式:

让骡子去指定咖啡店/商场,会有个戴头盔+口罩的“神秘人”当面交一个黑色小包,里面是磁卡读写器、一沓克隆卡、手机热点。

取现当天晚上,骡子被要求开TeamViewer或者AnyDesk,他们在幕后完全接管骡子手机。

流程是这样的:

  1. 骡子先用手机拍ATM屏幕给幕后看

  2. 幕后远程控制插第一张卡

  3. 如果机器报警或者吐钱失败,立即拔卡换第二张(一沓卡里通常塞了100-200张不同银行的克隆卡)

  4. 成功吐钱后让骡子把钱塞进双肩包,马上换下一个ATM继续

  5. 一晚上跑10-15台机器是常态,单次能提几十万美金

整个过程骡子其实什么都不用懂,就是个“人形遥控器”,

所有关键操作都在幕后完成,骡子甚至不知道自己取的是哪家银行的钱。失败率其实很高,很多卡会被ATM吃掉或者直接锁死,

但这帮人根本不在乎,反正克隆卡成本几乎为零,成了就是血赚。

最后,黑鸟看了这么多起ATM攻击案例,UNC2891绝对是目前最专业、最耐心、最难防的一拨人。他们不是在搞黑产,他们是在经营一家自动化提款机公司,从入侵到内网渗透到招骡子到取现到洗钱,全流程闭环。

所以,当前最重要的,是去机房看看交换机后面有没有多出一根网线,上面插着一块树莓派。

声明:本文来自黑鸟,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。