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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
51  Programación / Scripting / Re: FILTRO AntiBATCH Injections 2.5 en: 7 Agosto 2008, 22:08 pm
Modifiqué nuevamente el código, pues findstr se mareaba con las comillas, ahora quedó super bien. Sirdarckcat entendí el mensaje, pero pienso que esto es lo que más yo puedo hacer utilizando el propio batch. Vi tu filtro, y está muy bueno, l ovi con un editor hexadecimal y parece sacado de algún comando del dos.

52  Programación / Scripting / FILTRO AntiBATCH Injections 2.0 en: 7 Agosto 2008, 10:51 am
La versión 1.0 tiene un bug. El comando find es externo find.exe

Por eso si dentro de la misma carpeta donde tenga este filtro.bat coloco un archivo llamado FIND.BAT
con el siguiente contenido:
Código:
Código:

@echo off
echo hack | find.exe "crack" >NUL


cuando hago esto:
Código:

for %%a in ("|" "&" "^" ">" "<" "'" "." ";" "," " " "/" "\" "+" "-" "~" "!" ")" "(" "]" "[" "}" "{") do (
set pass|find %%a >NUL && goto warning)

la salida de set pass se la paso a find
cmd.exe encuentra a find.bat que imprime hack y la salida de esa palabra se la da a find.exe buscando la palabra "crack" y como esa palabra no está en la palabra hack retorna que no se encuentra.

Entonces si abro el filtro.bat e ingreso:
}] (cls ) else rem

hago la inyección, pues find (find.bat que llama a find.exe siempre retorna que no hay nada malo) :D

Dejo la última versión correjida:
Código:
@echo off

::FILTRO ANTI-BATCH-INJECTIONS 3.0
::BY CARLITOS.DLL

set findstr="%WinDir%\system32\findstr.exe"
set find="%WinDir%\system32\find.exe"

:Login
set pass=
set /p pass=Enter password:
if not defined pass (goto Login)

set pass | %find% """" >NUL 2>&1 && goto warning
rem identificamos las comillas

set pass | %find% " " >NUL 2>&1 && goto warning
rem identificamos los espacios

set pass | %findstr% "| & ^ > < # ' ` . ; , / \  + - ~ ! ) ( ] [ } { : ? *" >NUL 2>&1 && goto warning
rem identificamos una serie de caracteres

echo %pass% | find "=" >NUL 2>&1 && goto warning
rem identificamos el caracter =

if not [{entrar}]==[{%pass%}] (goto Login) 2>NUL
if "%errorlevel%"=="9009" (goto warning)

echo Password correcta

pause
goto :eof

:warning
echo Posible intento de batch injection
goto Login
53  Programación / Scripting / Re: Crear 120 carpetas con BAT! en: 6 Agosto 2008, 00:37 am
Código
  1. @echo off
  2. for /D %%a in (*) do (
  3. for /L %%b in (0,1,120) do (mkdir "%%a\%%b")
  4. )
  5.  

este code lo ejecutas, por ejemplo en la carpeta hola, y dentro de cada subcarpeta de hola creara 120 carpetas, en 1 segundo, o 2 según los MHz.

otra forma:
Código
  1. @echo off
  2. for /D %%a in (C:\ICR\DATA\*) do (
  3. for /L %%b in (0,1,120) do (mkdir "%%a\%%b")
  4. )
  5.  
54  Programación / Scripting / Re: Salvar caracteres [batch] en: 5 Agosto 2008, 00:50 am
Abrélo con el edit.com y verás que te reemplaza esos carácteres por otros, dentro del edit coloca la ñ y el otro carácter, y lo guardas, y funcionará.
55  Programación / Scripting / Re: Crackme in batch en: 4 Agosto 2008, 21:17 pm
kraszick, dejo una ayudita:

if not [{98974876}]==[{%pass:~-8%}] (call :job) 2>NUL
set pass=%pass:98974876=%
if not [{98974876}]==[{%pass%}] (goto mal) 2>NUL

es fácil, mira, verifica que el texto ingresado termine en 98974876, y para despistar llama igualmente a :job luego en job se borran esos caracteres, y luego con lo que queda del texto, saca un número, y ese número es 98974876

Ejemplo: si 000f da como resultado 11768896 la password sería 000f11768896 pero como 11768896 se borra, solo te queda 000f, entonces tienes que averiguar que palabra te da 11768896

Entonces para solucionar esto, lo único que tienes que encontrar es que palabra da como resultado 98974876, y modificas el fuente para que vaya más rápido.
56  Programación / Scripting / Re: Crackme in batch en: 4 Agosto 2008, 21:10 pm
bueno aquí dejo el fuente:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int randomizze(void);
  6. int semilla(void);
  7. void jugar(void);
  8.  
  9. int randomizze(void)
  10. {
  11.    srand(semilla());
  12.    int numero = rand();
  13.    return numero;
  14. }
  15.  
  16. int semilla(void)
  17. {
  18.    unsigned short int semilla;
  19.    semilla = time(NULL);
  20.    semilla /= 10;
  21.    semilla = (int) semilla;
  22.    return semilla;
  23. }
  24.  
  25. void jugar(void)
  26. {
  27.    int nA = randomizze();
  28.    int ingreso;
  29.  
  30.    int intentos = 0;
  31.    do
  32.    {
  33.        intentos++;
  34.        system("cls");
  35.        printf("Ingrese la password:\n");
  36.        scanf("%d",&ingreso);
  37.        fflush(stdin);
  38.        printf(ingreso < nA ? "<\n" : ingreso > nA ? ">\n" : "== Presiona una tecla para continuar\n");
  39.        getchar();
  40.        system("cls");
  41.    }while(ingreso != nA);
  42.  
  43.    if (ingreso == nA)
  44.    {
  45.     printf("Lo conseguiste en %d intentos\n",intentos);
  46.     printf("Felicitaciones\n");
  47.     printf("Pronto, mas y mejor\n");
  48.     printf("Codeado por CarlitoS.dll\n");
  49.     printf("Visita http://carlitosdll.blogspot.com\n");
  50.    }
  51.  
  52. }
  53.  
  54.  
  55. int main()
  56. {
  57.    jugar();
  58.    getchar();
  59. }
  60.  
  61.  
57  Programación / Scripting / Re: Seguimos con este maldito BAT, y pensar que se me hacia tan facil! en: 4 Agosto 2008, 07:36 am
Código
  1. @echo off
  2. if not exist "%SystemDrive%\ICR\DATA\" (
  3. echo No existe la carpeta "%SystemDrive%\ICR\DATA\"
  4. goto :eof
  5. )
  6.  
  7. cd /d %SystemDrive%\ICR\DATA\
  8.  
  9. if not exist ".\Procesados\Registros" (mkdir ".\Procesados\Registros")
  10.  
  11. for %%a in (?_*_*_*.txt) do (
  12. for /f "tokens=1,2 delims=_" %%b in ("%%a") do (
  13. for /f "tokens=* delims=0" %%d in ("%%c") do (
  14. call :comando %%a %%b %%d %date% %time:~0,2%.%time:~3,2%
  15. )
  16. )
  17. )
  18.  
  19. goto :eof
  20.  
  21. :comando
  22. %SystemDrive%\ICR\encolador.exe N %~dp1%1 Tabla:Entrada %2 %3 N sa sa CDRA-BAS BASCDR>NUL 2>NUL
  23. echo %SystemDrive%\ICR\encolador.exe N %~dp1%1 Tabla:Entrada %2 %3 N sa sa CDRA-BAS BASCDR>>%SystemDrive%\ICR\DATA\Procesados\Registros\%4-%5.txt
  24.  
  25. if not exist "%2" (mkdir "%2")
  26. if exist "%2" (
  27. if not exist "%2\%3" (mkdir "%2\%3")
  28. )
  29. goto :eof
  30.  

Si necesitas escribir códigos en batch, te recomiendo leas el post de sirdarckcat de programación avanzada en batch, en este mismo foro, y ss64.com/nt
58  Programación / Scripting / Re: Crackme in batch en: 2 Agosto 2008, 21:08 pm
Estoy mirando tu code y muy dificil de momento.. xD

A ver si me puedes explicar q son estas lineas o sino por mp, te lo agradeceria.

Código:
for /l %%a in (0,1,37) do (
set /a d%%a="%%a << 7"
set /a d%%a+="365%325"
)
Esta parte no la entiendo muy bien.

Y esta otra tampoco me queda clara:
Código:
set num=!d%1%!

saludos y buen code pa pensar un rato

ese código te crea variables d0 d1 ... hasta d37. con cierto contenido.
http://www.ss64.com/nt/set.html

set num=!d%1%!

eso asigna el contenido de una variable a num, ! es debido a setlocal enabledelayed expansion.
antes estaba así:
call set num=%%d%1%%

res1 recibe un parametro (%1), y segun ese numero, por ejemplo si recibe 10, asigna a la variable num el contenido de la variable d10

set num=!d%1%!
es lo mismo que:
set num=!d%1!


Es demoroso resolver este crackme, si te haces un generador de palabras puedes estar más de un día, ya lo resolví por fuerza bruta, y se demora :D
59  Programación / Scripting / Re: Crackme in batch en: 2 Agosto 2008, 13:48 pm
Modifiqué el post del reto 4, pues tenía un bug. Debí haber utilizado en un comienzo setlocal enabledelayedexpansion, pero ya lo corregí en el post original, y corregí todos los call set.
Espero que no se desanimen por esto, y que lo resuelvan como la gente :D

el bug estaba aquí:
Código:
call set limit=%%[%pass%.length]%%
for /l %%b in (0,1,%limit%) do (for /l %%c in (0,1,37) do (call :res %%b %%c))
set pass=
set pass=%res%
goto :eof
call set se confundía
Si tenía mi archivo crackme04.bat en el escritorio, y creaba un archivo llamado set.bat en el escritorio con el siguiente contenido:
Código:
set res=98974876
set limit=1) do rem (
el cmd.exe hacía esto:
Código:
call set
set res=98974876
set limit=1) do rem (
for /l %%b in (0,1,1) do rem () do (for /l %%c in (0,1,37) do (call :res %%b %%c))
set pass=
set pass=98974876
goto :eof

60  Programación / Scripting / Re: Crackme in batch en: 2 Agosto 2008, 10:27 am
Listo, este crackme va dedicado a quienes les gusta mirar el código fuente. Es más fácil que el anterior, pues pueden mirar el código fuente :D

Código:
::Crackme 04 CarlitoS.dll
::no importa que miren el fuente :D

@echo off
setlocal enabledelayedexpansion
title Error de teclado... presione F1 para continuar :D

:Login
set pass=
set /p pass=Enter password:
if not defined pass (goto Login)

for %%a in ("|" "&" "^" ">" "<" "'" "`" "." ";" "," " " "/" "\" "+" "-" "~" "!" ")" "(" "]" "[" "{" "}") do (
set pass|find %%a >NUL && goto warning)
for %%a in ("if" "else" "goto" "echo" "rem" "start" "set" "doskey" "pause" "cmd" "command") do (
set pass|find %%a >NUL && goto warning)
set pass=%pass:"=_%
::echo off

if not [{98974876}]==[{%pass:~-8%}] (call :job) 2>NUL
if "%errorlevel%"=="9009" (goto warning)
call :job
if not [{98974876}]==[{%pass%}] (goto mal) 2>NUL

echo Muy bien.
echo Pronto, mas y mejor.
echo Codeado por CarlitoS.dll
echo Visita http://carlitosdll.blogspot.com
pause>NUL
exit
goto :eof

:job
set dic=0123456789abcdefghijklmn@opqrstuvwxyz
for /l %%a in (0,1,37) do (
set /a d%%a="%%a << 7"
set /a d%%a+="365%325"
)
set /a res=0
set pass=%pass:98974876=%
call :contar %pass%
set limit=
set limit=![%pass%.length]!
for /l %%b in (0,1,%limit%) do (for /l %%c in (0,1,37) do (call :res %%b %%c))
set pass=
set pass=%res%
goto :eof

:warning
echo 
echo Posible intento de batch injection
echo.
goto Login

:contar
set palabra=%1
if defined palabra (call :length %palabra: =_%)
goto :eof

:length
set arg=%*
if not defined arg (goto :eof)
set word=%arg%
set /a cont=0
:loop
if not defined word (goto end)
set word=%word:~1%
set /a cont +=1
goto loop
:end
set [%arg: =_%.length]=%cont%
goto :eof

:res
set par1=%1
set par2=%2
set x=!pass:~%par1%,1%!
set z=!dic:~%par2%,1!
if "%x%"=="%z%" (call :res1 %par1% %par2%)
goto :eof
:res1
set /a sum="%2 + 3"
set num=!d%1%!
set /a mult="%num% * %sum%"
set /a res +=%mult%"
set /a res="%res%<<1"
goto :eof

:mal
echo Autentificacion incorrecta.
echo.
goto Login
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines