文章总结: 本文通过追踪GitHub提交元数据中的邮箱,关联到被信息窃取木马感染的攻击者工作站,还原了盲眼鹰APT组织的完整作业流水线。发现该组织使用多RAT家族、本地制作钓鱼模板、批量邮件发送及商业免杀工具,揭示了从代码托管到C2基础设施的完整攻击链与规避策略。 综合评分: 92 文章分类: 漏洞分析,威胁情报,恶意软件,渗透测试,实战经验
黑客电脑也会被黑:从邮箱到盲眼鹰APT组织工作站的追踪过程
原创
黑鸟 黑鸟
黑鸟
2026年8月30日 22:25 贵州
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
一个名为盲眼鹰的APT组织利用GitHub账号托管恶意加载器组件,把攻击行动藏在合法代码托管平台的背后。这种手法不算新鲜,但顺着GitHub提交元数据里一个不起眼的邮箱地址,一路追到了攻击者自己的操作工作站。
更具戏剧性的是,那台工作站本身已经被另一个毫不相干的infostealer(信息窃取木马)入侵,攻击者用来窃取别人信息的工具,反过来把自己的电脑暴露在了全网面前。恢复出来的stealer日志里有浏览器历史、保存的密码、本地文件目录,甚至还有多个RAT家族的构建文件夹、现成的哥伦比亚政府钓鱼模板、批量邮件发送软件的测试记录,以及购买商业crypter(免杀加密工具)的痕迹。
换句话说,这不是一份单纯的恶意软件技术分析,而是一次难得的”进入攻击者车间”的机会。
下面就从那个GitHub提交里的邮箱开始,一步步还原这条调查链,以及它最终拼出的完整攻击作业流水线。
从一个GitHub提交到一个邮箱地址
最初的调查聚焦在cabeto850128这个GitHub账号以及它用来暂存恶意软件的代码仓库。一个有用的细节就藏在眼皮底下,GitHub的原始提交视图会直接暴露提交作者关联的邮箱地址,不需要专门的恶意软件分析,打开补丁元数据就能看到这个账号使用的邮箱。
GitHub原始提交补丁视图,提交作者邮箱地址直接暴露在补丁元数据中
这给了第一个调查支点,一个可以独立于GitHub进行搜索的邮箱地址。这个账号创建于2024年11月25日,最初只有一个名为test的占位仓库,之后大约18个月没有可见活动,直到2026年5月25日重新活跃,创建了最初调查中提到的comicsam仓库。账号创建和后续活动之间的间隔值得注意,但现有证据没有说明账号为何在这段时间处于休眠状态。
活动一直持续到8月,包括更多文件上传。8月6日又出现了另一个名为jacobo的仓库,里面有一个archivo.zip文件,内容不同。这一点很重要,因为最初的调查发布之后这个账号仍在被使用,研究人员因此既有一个有用的标识符,也有一个活跃账号可以持续追踪。
邮箱出现在stealer日志集合中
下一个支点产生了更有意思的结果。在stealer日志聚合器中搜索这个邮箱地址,在一个和Telegram频道ALIEN%20TXTBASE关联的集合中找到了匹配记录。
在ALIEN%20TXTBASE集合中查询该邮箱,返回两条凭证记录,密码已打码
stealer日志本质上是信息窃取恶意软件从被感染电脑上能收集到的内容快照,根据恶意软件不同,可能包括浏览器历史、保存的密码、Cookie、自动填充信息和本地文件。这个集合规模庞大,去重和移除已知虚假条目之后仍然包含大量唯一记录,包括邮箱地址、电话号码、IP地址、明文密码,以及这些凭证被使用的网站和应用信息。
来自GitHub账号的邮箱出现了两次,两条记录都关联着保存的密码。这是一条重要线索,但仅凭一个泄露的凭证本身,并不能证明邮箱背后的人就是运营恶意软件活动的人。
Have%20I%20Been%20Pwned独立确认该邮箱出现在六次数据泄露中,其中包括ALIEN%20TXTBASE%20stealer日志集合
Have%20I%20Been%20Pwned证明了是同一个集合,该邮箱在六次泄露中都有记录,其中一次就是ALIEN%20TXTBASE%20stealer日志集合本身。
第二个情报源提供了确认。Hudson%20Rock的Email%20Compromise%20Analysis工具独立识别出该邮箱曾被infostealer暴露,还返回了关于被入侵系统的两个有用信息,主机名Ghost,以及大致的感染日期。
Hudson%20Rock独立妥协情报确认被感染设备,返回主机名Ghost和大致感染日期
这改变了调查的性质。研究人员不再只是追踪一个恰好出现在泄露数据库中的邮箱地址,而是有证据表明这个邮箱和一台被入侵的电脑关联。下一个问题就有意思得多了,那台电脑上到底有什么。
进入恢复日志:一个名为Rats的文件夹立刻跳出来
为了回答这个问题,研究人员通过IntelX访问了底层stealer日志归档。归档里有常见的浏览器相关材料,但也暴露了对这次调查更有价值的东西,这台电脑的本地目录结构。
恢复的stealer日志归档及其浏览器目录结构
到这一步,调查超出了普通公开搜索能揭示的范围。stealer日志给了研究人员一扇窥视这台机器本身的窗口,包括文件、文件夹、浏览活动和操作痕迹。有一个文件夹立刻跳了出来,名字很简单,就叫Rats。
从关联设备恢复的本地目录结构,显示按恶意软件家族分类的RAT构建文件夹
这比最初调查暗示的AutoIt/GitHub加载器要广泛得多。攻击者看起来并没有依赖单一恶意软件家族,而是维护了好几个选项,根据需要在它们之间切换。Rats目录下能看到AsyncRAT、DcRat、Remcos、njRAT、Rundll32、Xworm等多个家族的构建文件夹。
GitHub仓库不是整个行动,它只是从外面能看到的那一部分。恢复的机器展示了它背后发生的事情,恶意软件构建、钓鱼模板、发件人身份、交付工具、托管账号和基础设施记录。原本看起来像一个单一GitHub仓库的东西,开始呈现出一条小型生产流水线的面貌。
Remcos文件夹提供了另一条线索,里面有一个systeminfo目录,存放着许多以不同主机名和标签命名的文本文件。研究人员没有发布这些内容,因为文件名指向其他被感染的系统,但其结构和数量与之前RAT活动中收集的材料一致,而非单次测试安装。综合来看,这些文件指向一台被用于恶意软件操作的机器,而不只是一台碰巧有人下载了RAT的电脑。
钓鱼模板也在这台机器上制作
这台机器里不止有恶意软件,还有现成的钓鱼材料,伪装成哥伦比亚政府和司法机构的HTML和Word模板,主题包括司法通知和交通违章。
本地存储的钓鱼模板,伪装成哥伦比亚最高司法委员会(Consejo%20Superior%20de%20la%20Judicatura)
基本手法很常见。受害者收到一条看似来自合法机构的消息,被引导到一个网站,被告知下载一个带密码保护的压缩包,密码就在消息里提供。其中一个模板引用了consultanotificacionesjuridicas[.]site这个域名,使用的司法通知主题和最初调查中识别的一致,另一个域名simpmit[.]co和它一起出现。
这一点很重要,因为它把调查中此前分离的两个部分连接了起来。钓鱼基础设施不只是攻击者访问过或链接过的东西,模板本身就在同一台机器上被存储和准备。
攻击者还在关注一个不那么技术的东西,外观。浏览器历史显示搜索了通用律师事务所图片,包括搜索abogados%20logo(律师标志),不久之后,一个Google账号的头像被换成了一张带有天平图案的图片。
搜索abogados%20logo(律师标志)的图片搜索结果
随后被用作Google账号头像的天平图案图片
这看起来可能是个小细节,但它说明了整个活动是如何组装的。攻击者不是简单创建一个恶意附件然后发出去,而是有一个完整的序列,制作诱饵,给它机构化外观,创建匹配的发件人身份,准备交付基础设施,然后发送钓鱼活动。
这台机器里还有交付过程本身的证据。SendBlaster是一个桌面批量邮件应用,配置了外部SMTP中继,它的日志显示在更大规模活动之前完成了一次测试发送。其中一个测试收件人就是和GitHub账号关联的同一个操作邮箱,这又给GitHub活动和钓鱼基础设施之间提供了一个有用的连接。
SendBlaster配置了SMTP中继,显示已完成一次测试发送
周围的浏览器历史进一步强化了这个画面。这台机器反复访问合法的邮件营销服务和托管提供商,包括Brevo、Mailrelay、HubSpot、DreamHost、HostGator和Firebase。同一台机器被用来研究或管理邮件发送、托管、域名、恶意软件和文件存储,攻击者实际上在组装一个小型生产环境。
浏览器历史中最能说明问题的部分,可能是搜索那些专门用来让恶意软件更难被检测到的工具。这台机器显示出涉及商业crypter(加密免杀工具)和protector(保护工具)的活动。历史记录包括对多个此类服务的研究,包括FUD%20Crypter、MI6%20Crypter、PolyCrypt和Cassandra%20Protector,至少有一个案例的证据表明完成了付费订阅。还有一个Discord服务器被用作文件存储,%20alongside(同时使用)paste和云存储服务。
一个特别有意思的线索涉及别名Roda/Roda-Modder,这个引用出现在一封看起来普通的Skype通知邮件中,对应一个在之前威胁情报报告中公开和crypter开发关联的别名。单看这一点证据很弱,不能识别攻击者,它的意义来自周围的证据,同一台机器显示出对商业crypter的活跃兴趣,并且包含多个RAT构建。因此研究人员把这个引用当作支撑线索,而非归因依据。
到这一步,调查已经从多个不同来源获得了证据,GitHub提交元数据、stealer日志数据、浏览器历史、本地文件和目录、钓鱼模板、邮件发送软件、域名和托管活动、恶意软件样本、基础设施记录。这些来源揭示了一个清晰得多的结构。
从GitHub、stealer日志和浏览器历史痕迹重建的基础设施地图
GitHub账号被用来暂存文件,一个独立域名用于payload交付,DuckDNS提供命令控制C2基础设施,钓鱼域名支持初始交付,邮件软件处理批量分发,云和文件存储服务提供额外的文件移动或暂存位置。
突出的是这种组合。同一条操作轨迹连接了多种交付方法、多个恶意软件家族和多个暂存位置,全部围绕一个持续活跃的账号。基础设施可以换前门,但底层工作流不变。
这也让最初的发现有了更好的上下文。comicsam仓库被用作两个组件的暂存位置,一个合法的AutoIt解释器,和一个包含实际脚本逻辑的独立文件。把这些组件分开给了攻击者一个有用的优势,解释器可以保持不变,而脚本可以独立替换或更新,这意味着每次活动变化时GitHub仓库不需要包含一个明显被修改过的可执行文件。
comicsam仓库,显示AutoIt解释器和独立的脚本逻辑文件
和从被感染工作站恢复的所有东西放在一起看,它更像是一个更大的、可重复流程中的一步。
研究人员获取了攻击者构建记录中引用的三个自解压RAR样本,独立检查了它们的文件类型、SHA-256哈希、归档内容和嵌入的payload信息,这些检查和之前报告的该活动特征匹配。
样本使用多阶段交付过程,涉及VBScript、PowerShell和一个受信任的Windows工具。基于记录的静态和行为指标,RAR/VBScript投放器结构、PowerShell混淆模式、滥用InstallUtil.exe、AsyncRAT%20SSL证书指纹,重建的执行链如下。
投放器重建执行链,从SFX%20RAR到VBScript、PowerShell、InstallUtil.exe,最终加载AsyncRAT
这是一个相当干净的living-off-the-land(借道合法工具)链示例。wscript.exe启动一个带Base64编码payload的PowerShell命令,该阶段把一个.vbs文件复制到%ProgramData%,接着第二次wscript/PowerShell传递,最终执行落到InstallUtil.exe,这是一个签名的.NET工具,经常被滥用于进程注入,恰恰因为它默认受信任。
这个构建产生的流量之前和一个属于AsyncRAT的SSL证书以及到dccomicrat81[.]duckdns.org的C2连接关联,和攻击者自己设备上发现的更广泛RAT库存一致。这个主机名提供了另一个有意思的连接,它的名字把comic(呼应comicsam%20GitHub仓库)和rat(呼应DcRat,恢复的Rats目录中发现的RAT家族之一)组合在一起。这不是个人身份的证明,而是更朴素但有用的东西,一个把暂存账号和操作基础设施连接起来的命名惯例。
同一分析还识别出creainovada[.]xyz。和只出现在网络流量中的域名不同,这个域名在恢复的机器上有对应的跟踪文件NUEVO4343.txt。这个文件的功能就像一个简单的内部交付列表,把简短的构建名和URL配对。
NUEVO4343.txt,显示恶意软件构建和交付URL之间的对应关系
每个条目遵循相同模式,一个简短的构建标签(NJ4343、QSART、REMCOS、XWORM5、ASYNC、DCRAT、XWORM3.1)旁边是一个或多个creainovada[.]xyz/instructions/或/start/%20URL。这符合一个轻量内部分发清单的特征,哪个payload%20URL对应哪个构建,而不是受害者会看到的东西。
对一个相关样本的引爆独立确认,creainovada[.]xyz在扫描时处于活跃状态并提供payload(creainovada[.]xyz/instructions/Wscript.txt,返回200%20OK),同时还有一个Bitbucket托管路径和一个预签名AWS%20S3%20URL,遵循完全相同的img_test.jpg命名模式。这和最初文章中记录的GitHub裸文件托管技术一样,在另外三个平台上被复制。
放在一起看,GitHub、Bitbucket、一个S3存储桶和creainovada[.]xyz似乎在不同时间点承担相同的功能角色,为一个核心机制从不改变、只换前门的加载器链提供一次性的、看起来可信的文件托管。
恢复的Rats目录中最能说明问题的文件之一是caratsimithtml.txt,它包含一个完整交通违章钓鱼诱饵的源代码。模板伪装成波哥大地区交通秘书处(Secretaría Distrital de Movilidad),引导收件人访问simpmit[.]co,还提供了受害者被要求下载的压缩包密码。
两个细节特别能说明问题。第一,展示给受害者的URL和实际目的地不匹配,可见文本被设计成看起来像一个特定的政府相关网址,而底层链接指向别的地方。第二,消息告诉收件人使用PC或笔记本电脑。这是一个小但能说明问题的细节,它暗示诱饵是围绕payload的预期行为设计的,攻击者希望收件人在Windows电脑上而不是手机上打开。这些细节显示钓鱼材料在围绕受害者预期的交互方式进行打磨。
最初的调查显示GitHub被滥用作恶意软件加载器的低成本暂存点,这次后续调查展示了那个暂存点背后是什么。GitHub账号通过提交元数据连接到一个邮箱地址,而这个邮箱也出现在infostealer数据集中。独立情报确认该地址和一台被入侵的机器关联,恢复的日志随后暴露了这台机器的文件、浏览器历史和操作痕迹。
这些痕迹揭示了一个大得多的工作流,RAT被收集和整理,钓鱼模板在本地编写,发件人身份被打扮成合法外观,批量邮件软件被测试,域名和托管服务被管理,检测规避工具被研究和购买,多个交付位置被跟踪。
因此重要的发现不是一个文件、一个域名或一个GitHub仓库,而是把它们连接起来的工作流。GitHub加载器只是一个更大行动中可见的一部分。
这里还有一个更广泛的教训。攻击者往往把他们最强的线索留在他们分发的恶意软件之外。一个提交作者可以暴露邮箱地址,一个浏览器可以记住一个域名,一个工作站可以保留旧的构建文件夹,一个钓鱼模板可以揭示活动是如何设计的,一封测试邮件可以把一个账号和基础设施操作连接起来。在这个案例中,这些碎片把一个单一的GitHub暂存账号变成了对其背后生产流水线的观察窗口。
故事中心还有一个令人不安的讽刺,一个参与从别人电脑窃取信息的操作者,自己的操作机器似乎被一个不相关的infostealer入侵了。这个错误暴露的恰恰是防御者通常需要非常努力才能获得的那类信息。
IOC
| | | | | — | — | — | | 类型 | 值 | 说明 | | GitHub暂存仓库 | github[.]com/cabeto850128/comicsam | 账号上创建的第二个仓库,托管AutoIt3解释器和加载器payload | | GitHub暂存仓库(后期) | github[.]com/cabeto850128/jacobo | 第三个仓库,2026年8月6日创建,复用archivo.zip文件名但内容不同 | | Payload URL | raw.githubusercontent[.]com/cabeto850128/comicsam/…/kiSBJ4DDvg.pif | 以installer.exe交付(裸AutoIt3.exe) | | Config URL | raw.githubusercontent[.]com/cabeto850128/comicsam/…/CdBhhfa.html | 以config.data交付 | | C2域名 | dccomicrat81[.]duckdns.org | AsyncRAT C2 | | 二级暂存域名 | creainovada[.]xyz | 为至少7个不同RAT构建托管按构建分类的instructions payload,引爆时也处于活跃状态 | | 备用暂存路径 | bitbucket[.]org/adssgfdsg/testing/downloads/img_test.jpg | 和GitHub相同的CDN裸加载器技术,在第二个代码托管平台上 | | 备用暂存路径 | bbuseruploads.s3.amazonaws[.]com/…img_test.jpg | 预签名AWS S3 URL用作第三个暂存位置 | | 恶意投放器样本 | Ad20240730000024566F002152112200602430D-pdf.vbs (SFX RAR) | 发票/PDF主题文件名,解压为VBScript | | 钓鱼域名 | consultanotificacionesjuridicas[.]site | 司法通知诱饵主题 | | 钓鱼域名 | simpmit[.]co | 交通违章诱饵主题,直接从HTML模板链接 |
参考来源:Trustwave SpiderLabs《Still Circling: Inside the Operator Behind Blind Eagle’s GitHub Loader》
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:黑鸟 黑鸟 黑鸟《黑客电脑也会被黑:从邮箱到盲眼鹰APT组织工作站的追踪过程》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论