打开网易新闻 查看精彩图片

去年12月,韩国某科技公司员工收到一份简历附件。双击后,PDF正常打开,PowerShell脚本却在后台完成了整套入住流程——检查虚拟机、建立定时任务、连接GitHub仓库。全程没有文件落地,杀毒软件安静如鸡。

Fortinet FortiGuard Labs最近拆解了这套攻击链。攻击者把GitHub当成命令控制中心(C2),用" motoralis"等6个账号轮流收发指令。这种操作相当于把指挥所藏在人来人往的商场里,流量混在正常开发者中间,边界防火墙根本分不清。

LNK文件:双击即触发的基础设施

LNK文件:双击即触发的基础设施

攻击起点是Windows快捷方式(LNK)文件。这类文件原本用来创建桌面快捷启动,现在被塞进了恶意指令。用户双击"简历.pdf.lnk"的瞬间,系统按脚本执行三件事:弹出真正的PDF安抚用户、释放PowerShell载荷、检查运行环境是否安全。

环境检查清单包括:虚拟机进程、调试器、取证工具。任何一项命中,脚本立即自毁。

通过检测后,PowerShell会在后台建立持久化机制——创建一个每30分钟触发一次的定时任务,窗口隐藏运行。这意味着即使员工关机下班,第二天开机时恶意脚本会自动续上,像闹钟一样准时。

更隐蔽的是路径设计。AhnLab同期发现的变种把文件藏在"C:\windirr",拼写故意接近系统目录"C:\windows",肉眼扫过很难察觉异常。

GitHub变"暗房":开发者平台的信任套利

GitHub变"暗房":开发者平台的信任套利

传统C2服务器需要租用域名、搭建主机,流量特征明显,容易被安全设备标记。这次攻击者直接注册GitHub账号,用硬编码的访问令牌(access token)往仓库传数据、取指令。

被发现的账号包括"God0808RAMA""Pigresy80""entire73""pandora0009""brandonleeodd93-blip"。这些名字没有规律,注册时间分散,仓库内容混杂在正常项目中。企业防火墙通常放行github.com,SSL加密让内容检查也变得困难。

攻击者把受害主机信息写成日志文件上传,再从仓库特定文件读取下一步指令。整个通信过程看起来就像普通开发者在同步代码。

安全研究员Cara Lin评价这种做法:"不用复杂定制木马,全靠Windows原生工具完成部署、规避、持久化。减少PE文件落地,滥用LolBins(Living off the Land Binaries),检测率自然压低。"

Kimsuky的"简历"生意经

Kimsuky的"简历"生意经

这套手法归属朝鲜国家支持的组织Kimsuky。该组织过去三年频繁以"求职简历"为诱饵,针对韩国政府、智库、国防承包商。ENKI和Trellix去年就记录过他们用GitHub分发Xeno RAT及其变种MoonPeak。

LNK攻击链也在迭代。早期版本直接传播Xeno RAT木马,现在改成多阶段加载:LNK→PowerShell→VBScript→GitHub指令→最终载荷。每层都延迟暴露,给分析人员制造时间差。

AhnLab发现的Python后门变种更进一层。攻击者在LNK里嵌套另一个伪装成HWP文档(韩国主流办公软件)的LNK,双击后才会释放Python脚本。这种"俄罗斯套娃"结构让静态分析工具很难一眼看穿。

诱饵文档的主题高度本地化——"2024年外交政策方向""朝鲜人权报告""国防预算草案"。收件人往往是研究员、公务员、HR, opening rate(打开率)远高于 generic 钓鱼邮件。

Fortinet数据显示,这类攻击在2024年下半年显著增加,目标行业从政府扩展到科技、制造、金融。

技术层面,攻击者完全规避了传统杀软的特征检测。没有签名匹配的恶意文件,只有系统自带工具的组合调用。EDR(端点检测与响应)产品如果规则配置粗放,同样可能漏过。

防御建议倒不复杂:禁用从网络下载的LNK文件执行权限、监控PowerShell的-WindowStyle Hidden参数、对github.com的非浏览器流量做审计。但企业IT的实际部署率,和攻击者的进化速度之间,始终存在时间差。

GitHub方面已封禁相关账号,但令牌硬编码在旧样本里,已沦陷的主机仍在尝试连接。安全团队追踪到部分仓库的最后一次更新时间在今年1月——攻击者可能早已换了一批账号继续运营。

那个" motoralis"账号的仓库里,最早的活动记录可以追溯到2022年。三年间,多少韩国企业的内网数据曾以"代码提交"的形式,静静躺在这个公开的开发者平台上?