Foro de elhacker.net

Seguridad Informática => Bugs y Exploits => Mensaje iniciado por: Lodos76 en 7 Abril 2014, 03:06 am



Título: Diferencia entre "shellcode" y "payload"
Publicado por: Lodos76 en 7 Abril 2014, 03:06 am
Según he podido googlear, "payload" a veces se usa como sinónimo de "exploit", y shellcode es SÓLO el código que se ejecutará en la máquina remota (sin contar el código necesario para que se ejecute dicho código). ¿Es así?

Gracias.


Título: Re: Diferencia entre "shellcode" y "payload"
Publicado por: Gh057 en 7 Abril 2014, 04:28 am
hola Lodos76, las diferencias son claras:
 
-> http://es.wikipedia.org/wiki/Agujero_de_seguridad

-> http://es.wikipedia.org/wiki/Exploit

un shellcode es

-> http://es.wikipedia.org/wiki/Shellcode

una vulnerabilidad es un fallo de seguridad, que puede ser de diferentes clases y alcances, un "exploit" intenta explotar dichas vulnerabilidades para obtener un beneficio, el payload son las funciones necesarias para explotar dicha vulnerabilidad.

por conveniencia y practicidad, se separa el exploit en si del payload, de esa forma se puede tener un exploit y diferentes payloads para el mismo, dependiendo el objetivo a conseguir.

saludos
 


Título: Re: Diferencia entre "shellcode" y "payload"
Publicado por: Lodos76 en 7 Abril 2014, 14:02 pm
Entonces el exploit está formado por el payload (método(s) de explotación) + shellcode (programa que se ejecutará remotamente).

Ok, muchas gracias  ;).


Título: Re: Diferencia entre "shellcode" y "payload"
Publicado por: .:UND3R:. en 7 Abril 2014, 16:26 pm
Shellcode es un conjunto de instrucciones que permite la ejecución de una shellcode (cmd, bash, etc.) ya sea de forma directa o remota (bind shellcode o reverse shellcode). Un payload es un conjunto de instrucciones que permite la ejecución de código, digamos que el payload engloba a la ejecución de código sin considerar lo que hace, y shellcode es la ejecución de terminal.

Saludos


Título: Re: Diferencia entre "shellcode" y "payload"
Publicado por: Gh057 en 7 Abril 2014, 18:01 pm
exacto, el shellcode como su nombre lo indica, solamente se limita a dicha función; obtener un "shell" o acceso a la terminal de manera local o remoto dependiendo el s.o.; el payload es un conjunto de instrucciones para diversos fines, puede ser para escalabilidad de privilegios, la obtención de shell, backdoors, redireccionar las peticiones http etc., etc. saludos


Título: Re: Diferencia entre "shellcode" y "payload"
Publicado por: srIkea en 15 Abril 2014, 05:07 am
-Soy nuevo en el foro, pero tengo claras las diferencias d los conceptos, no se si le ha
quedado claro a nuestro compañero Lodos..

Exploit: Simplemente es una pequeña porción de código(en la mayoría de los casos),
que ante una cierta vulnerabilidad, en servicios, aplicaciones, programas
sistemas, etc. la explota y nos deja un agujero de seguridad libre para nuestros propósitos.

Payload(Carga Útil): Una vez que el exploit realiza su cometido, este modulo de
 
código(Payload), es el que realmente nos brinda las características que necesitas
 
para interactuar con el sistema explotado, ejemplo, a través de una Shell(La típica
 
consola de un SO) del sistema remoto. El payload se puede configurar como
 
reverso(el sistema remoto se conecta a ti), o de forma Bind(tu te conectas al 
 
sistema remoto explotado). 

Aca dejo algo para leer un poco: http://www.seguridadparatodos.es/2013/03/Metasploit-Encoding-payloads.html (http://www.seguridadparatodos.es/2013/03/Metasploit-Encoding-payloads.html)  Espero que te sirva.


Título: Re: Diferencia entre "shellcode" y "payload"
Publicado por: wachaiti en 4 Junio 2014, 22:09 pm
Normalmente exploit es todo el conjunto. El codigo que explota la vulnerabilidad y el shellcode. El shellcode es un una secuencia de instrucciones que permite obtener cierto control sobre la maquina donde se ejecuto el exploit. Y en teoria es intercambiable para cualquier exploit. En realidad la palabra tiene shell pues los primeros levantaban un puerto donde escuchaba un shell donde se podian poner comandos de forma remota pero actualmente se le llama a todos los codigos. Digamos que ahora hay shellcodes para descargar files por http y ejecutarlos, shellcodes reversos que se conectan a una IP, que muestran un mensaje, que dicen palabras sintetizadas por la bocina, hacen beep. Shellcodes que buscan otros en memoria. Los Omelet que se injecta un shellcode en RAM por otro metodo que no sea shellcode y despues se injecta uno mas chico que es el que busca al otro por la memoria y permite ejecutar cosas mas complicadas. La imaginacion es el limite. Normalmente lleva bastante imaginacion hacerlos por el reducido espacio en el que se pueden ejecutar y que a veces no se le puede meter cualquier caracter a la maquina pues se rompe el exploit y hay que codificarlos con un codigo previo que los decodifica.

[MOD] Procura usar los punto y aparte y estructurar tu post en parrafos, para que sea legible, en lugar del tochazo que no hay quien lo lea. Gracias.