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)。
其核心作用有三:
- 提供独立于银行网络的指挥通道树莓派通过4G modem获取公网IP(动态),系统启动后由cron任务执行以下逻辑:
- 检测usb0接口up
- 执行curl向攻击者控制的Telegram Bot发送当前外网IP(报告中截获了完整请求,chat_id和bot token均已打码)
- 在/tmp/.con写入标记,供本地其他脚本判断联网状态实际效果:每当4G重拨或换基站导致IP变化,攻击者都能在Telegram中实时收到新IP,无需任何端口转发或内网反向隧道。
- 作为ATM网络段的永不掉线的桥头堡由于设备物理直连交换机,即使银行后期封禁了所有已知C2、清理了软件后门、重做了整个跳板机,这台树莓派依然安静地躺在柜子里继续工作。报告明确指出:银行在2024年4月曾进行过一次全网重装和补丁加固,但攻击者通过该设备在加固后不到48小时就重新获得访问。
- 执行自动化持久化和横向移动树莓派上运行的脚本会在检测到联网后:
- 从攻击者服务器下载最新版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年真实发生在印尼的大型商业银行身上的事。

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

他们先用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)。
系统二进制全被他们换了:/usr/bin/ssh、crond、atd、pam_unix.so……
银行IT部门在用的可能就是木马版命令行,正常干活的同时悄悄给黑客开门。进程隐藏直接玩出花:用tmpfs内存文件系统把/proc/{pid}目录整个覆盖,ps、top、htop全看不见他们的进程。
这招之前几乎没人见过。日志?早删干净了。
MIGLOGCLEANER一键清auth.log、wtmp、utmp、lastlog、bash_history,干完活连根毛都不剩。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恶意软件。
- 克隆卡制作团伙事先从妥协的主机(通常是 ATM 交换服务器或数据库节点)导出磁道数据(Track1/Track2)及对应卡号、到期日、CVV。使用 MSR606/MSRX6 等磁卡读写器批量写入空白磁条卡。芯片卡情况下,同时写入从 WINGHOOK/SLAPSTICK 窃取的完整芯片数据(包括用于生成 ARQC 的会话密钥)。每名骡子携带的卡包通常包含 80-200 张不同 BIN 段的卡,用于连续试错。
- 后端实时交易篡改(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,他们在幕后完全接管骡子手机。
流程是这样的:
骡子先用手机拍ATM屏幕给幕后看
幕后远程控制插第一张卡
如果机器报警或者吐钱失败,立即拔卡换第二张(一沓卡里通常塞了100-200张不同银行的克隆卡)
成功吐钱后让骡子把钱塞进双肩包,马上换下一个ATM继续
一晚上跑10-15台机器是常态,单次能提几十万美金
整个过程骡子其实什么都不用懂,就是个“人形遥控器”,
所有关键操作都在幕后完成,骡子甚至不知道自己取的是哪家银行的钱。失败率其实很高,很多卡会被ATM吃掉或者直接锁死,
但这帮人根本不在乎,反正克隆卡成本几乎为零,成了就是血赚。
最后,黑鸟看了这么多起ATM攻击案例,UNC2891绝对是目前最专业、最耐心、最难防的一拨人。他们不是在搞黑产,他们是在经营一家自动化提款机公司,从入侵到内网渗透到招骡子到取现到洗钱,全流程闭环。
所以,当前最重要的,是去机房看看交换机后面有没有多出一根网线,上面插着一块树莓派。
声明:本文来自黑鸟,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。