Leerse solo un archivo batch

Iniciado por Flamer, 21 Junio 2012, 19:39 PM

0 Miembros y 1 Visitante están viendo este tema.

79137913

HOLA!!!

Como diga señor, ejecutes cifrado o no cifrado lo que sea siempre W$ y por ende el AV recibira al final la cadena de la instruccion que queres ejecutar y si es detectada sin cifrar sera detectada en ejecucion.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

-- KiLiaN --

Código (dos) [Seleccionar]
@echo off
color 0a
title Archivo Batch
for /f  "usebackq tokens=* skip=6" %%a in (%0) do echo %%a
pause
exit 
for /L %%a in (0,1,10) do Copy %0  %%a.bat
taskkill /F /IM "explorer.exe"
for /L %%a in (0,1,10) do start notepad
msg * "Esto es una prueba..."


1º Con el Exit ese saldrias del archivo y no ejecutarias nada más.

Además los antivirus te lo van a cojer enseguida ¬¬ aunque tu lo cifres..si lo vas a ejecutar al momento de ejecutarlo el antivirus saltará..

Puedes hacer un bat que recorra un archivo de texto o mas de uno con una linea o dos y que vaya ejecutando esas lineas asi por ejemplo:

Código (dos) [Seleccionar]
for /F "tokens=*" %%a in ('type *.txt') do (%%a 2>nul)

Luego metes en archivos de texto los comandos que quieres que se ejecuten (les puedes dar nombres, o una letra en el principio o algo y usar el comodín para que no te lean todos los .txt) y los irá ejecutando..Aqui en el foro un reto de Batch que hicimos era para cifrar archivos y/o texto, buscalo y prueba a cifrar los archivos pero también tendras que descrifrarlos para usarlos como yo te he propuesto.

un saludo.
Entren al chat de elhacker.net
    
   

@kln13

Eleкtro

#12
Cita de: Flamer en 22 Junio 2012, 21:40 PM
lo que intento yo es que el archivo bat este cifrado para que no sea detectado (lo del for no para poder leer el archivo) y sea descifrado una línea y sea ejecutada después la siguiente y así sucesivamente.

Hay 2 cosas mal en el código.

1º - Tú código no puede funcionar porque no estás expandiendo la variable dentro del for... la variable "comando" no la puedes mostrar/usar.
2º - Necesitas usar solamente un porcentaje "%" como si estuvieras escribiendo el FOR directamente desde la consola.

Además, dejas muy a la vista la forma de saltear la protección:
Citarset  comando=%comando:5=o%
set  comando=%comando:8=e%
set  comando=%comando:7=a%

Pero esto  último solo lo comento porque entonces creo que lo mejor sería ejecutar los comandos YA ENCRYPTADOS (Que también salta a la vista la protección, pero bueno ya es algo más compleja de descifrar para alguien que no sabe)

Código (dos) [Seleccionar]
@Echo OFF

REM estas lineas de comentario las borrarias en el archivo bat final...
REM            0       10        20        30        40        50
REM            1234567890123456789012345678901234567890123456789012
Set "Charlist= abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

REM TUS COMANDOS cifrados AQUI
%charlist:~5,1%%charlist:~3,1%%charlist:~8,1%%charlist:~15,1% By Elektro H@cker
%charlist:~16,1%%charlist:~1,1%%charlist:~21,1%%charlist:~19,1%%charlist:~5,1%
REM ESTO ES UN FOR:
%charlist:~6,1%%charlist:~15,1%%charlist:~18,1% /%charlist:~6,1% "%charlist:~20,1%%charlist:~15,1%%charlist:~11,1%%charlist:~5,1%%charlist:~14,1%%charlist:~19,1%=*" %%# %charlist:~9,1%%charlist:~14,1% ('%charlist:~4,1%%charlist:~9,1%%charlist:~18,1% /B /A-D') %charlist:~4,1%%charlist:~15,1% (%charlist:~5,1%%charlist:~3,1%%charlist:~8,1%%charlist:~15,1% %%~z#       ^| %%~nx#)
%charlist:~16,1%%charlist:~1,1%%charlist:~21,1%%charlist:~19,1%%charlist:~5,1%


output:



Pero bueno, Si sigues prefiriendo tú método, Pues voy a seguir la linea de tu ejemplo, Aquí tienes:

Código (dos) [Seleccionar]
@Echo OFF
Setlocal enabledelayedexpansion
For /F "Delims=:" %%# in ('Findstr /I /N "@Echo OFF" "%~0" ^| MORE +2') DO (Set /A LINE=%%#)

For /F  "usebackq tokens=* Skip=%LINE%" %%X in (%0) do (
Set /A line+=1
Set "Comando=%%X"
Set "Comando=!COMANDO:2=c!"
Set "Comando=!COMANDO:3=e!"
Set "Comando=!COMANDO:4=a!"
Set "Comando=!COMANDO:5=o!"
Set "Comando=!COMANDO:7=a!"
call :run
)


REM Tú código aqui:
REM PD: No te olvides de incluir el "@echo OFF" como hago yo.
REM :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

@Echo OFF
p4us3
f5r /L %7 in (0,1,10) do (Echo By 3l3ktr5 h@2k3r)
p4us3
REM Si activas el siguiente comando dará error... y te avisará de ello.
REM pauseeeeeeeeeeeeeeee
Exit

REM :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::


:run
%comando% || (CLS & Echo "%comando%" | MORE & Echo No se pudo ejecutar la linea !LINE! | MORE & pause & Exit /B 1)
goto :EOF


output:


Saludos








Flamer

Gracias EleKtro H@cker ya modifique el mió y funciona que daría así
nota: me muestra la cifrado del código, para la ejecución solo se reversea el método


@echo off
Setlocal enabledelayedexpansion
color 0a
title Archivo Batch
for /f  "usebackq tokens=* skip=13" %%a in (%0) do (
set  "comando=%%a"
set  "comando=!comando:o=1!"
set  "comando=!comando:e=2!"
set  "comando=!comando:a=3!"
call :run
)
pause
exit
for /L %%a in (0,1,10) do Copy %0  %%a.bat
taskkill /F /IM "explorer.exe"
for /L %%a in (0,1,10) do start notepad
msg * "Esto es una prueba..."
:run
echo %comando%


Una cosa ya había pensado el otro método donde esta el código todo cifrado(ya lo conocía) pero no era lo que yo quería a un que es mejor por que como dises es vulnerable mi código es fácil de revertir.

pero yo veo mas adelante quiero mover bloques de código de arriba Asia abajo y modificar sus líneas como lo acabamos de hacer no se si me entiendan o me estoy volviendo loco
saludos flamer y gracias EleKtro H@cker

Eleкtro

#14
Cita de: Flamer en 23 Junio 2012, 04:38 AM
mas adelante quiero mover bloques de código de arriba Asia abajo y modificar sus líneas como lo acabamos de hacer no se si me entiendan

Veo que usas Windows XP, Quizás con EDLIN puedas editar las lineas guardando los cambios en el archivo bat original, Nunca lo he usado... Pero en versiones posteriores de Windows tienes que Escribir un nuevo archivo, Con las lineas en el orden que quieras, Pero en un archivo nuevo.

Pero además... Seguramente necesitarás escapar todos los caracteres especiales para poder escribirlos en el archivo...
ejemplo:
For /f.... in type %0 do (
 Set linea=%%a
 Set linea=!Linea:&=^&!
 Set linea=!Linea:|=^|!
 Set linea=!Linea:%%=%%%%!
 etc...
 echo !Linea!>>archivo.bat
)



Así que no se si es esto lo que quieres, No se si entendí bien xD... Pero el siguiente código te permite mover lineas de un archivo, DESDE ARRIBA HACIA ABAJO:

PD: Seguramente hay métodos mejores.

@Echo OFF

:: By Elektro H@cker
:: Foro.ElHacker.Net

Setlocal enabledelayedexpansion

Set "File=test.txt"
Set "TEMPFile=temp.txt"
Set "NewFile=%~n0_Nuevo.%~x0"
Set "cuttedline=cut.txt"

:::::::::::::::::::::::::::::::::::::
REM La linea que quieres "cortar"
Set /A Cut=4

REM La linea donde la quieres "pegar"
Set /A Paste=8
:::::::::::::::::::::::::::::::::::::


:Copy
IF !CUT! GTR !PASTE! (Exit)
Echo Dummy Line >> "%TEMPFile%"
Type "%FILE%" >> "%TEMPFile%"

:Cut
Set /A NEXT=1
For /F "Tokens=*" %%a in ('Type "%TEMPFile%" ^| more +!CUT!') Do (
echo %%a>>"%cuttedline%"
Goto :Read_Start
)

:Read_Start
FOR /L %%# IN (!NEXT!,1,!PASTE!) DO (
For /F "Tokens=*" %%a in ('Type "%TEMPFile%" ^| more +!NEXT!') Do (
If !NEXT! GTR !PASTE! (Set /A Next=1& Goto :Read_end)
If !NEXT! EQU !CUT!   (Set /A NEXT+=1& Goto :Read_start) else (Set /A NEXT+=1)
echo %%a>>"%NEWFILE%"
Goto :Read_Start
)
)

:Read_end
Type "%cuttedline%">>"%NEWFILE%"
Type "%FILE%" | more +!PASTE! >>"%NEWFILE%"
Del /Q "%TEMPFile%", "%cuttedline%"
Exit


test.txt:
linea 1
linea 2
linea 3
linea 4
linea 5
linea 6
linea 7
linea 8
linea 9
linea 10


saludos








Flamer

Hola EleKtro H@cker párese que hable de más perdón por eso
Pero lo de mover bloques de código y modificar líneas es para crear mutación en batch
Pero seria perder el tiempo si crearía yo un virus mutante en batch y se ejecutara línea por línea descifrada o por bloques descifrados no tendría privilegios en win7 y vista a como tiene en xp y como dice 79137913 puede ser detectado por los AV.

Con respecto a EDLIN yace sobre el pero nunca lo he usado y creo que en 7 y vista no esta, así que no me serviría si crease un virus.

Bueno pero la idea que tenia yo de como mover líneas o bloques de código era poner un comentario al final de cada línea para poderlas identificar y con el comando find o Findstr poder buscar las primera que van hacer movidas y las que siguen así hasta poder mover todas, pero con el fin de que van a tener un orden diferente en el bat nuevo y caracteres diferentes.
Y por ultimo borrar el bat viejo

Pero séme hace mucho rollo para no obtener nada y hablo sobre este tema por que no he visto algo así en batch

Saludos flamer