Diferencia entre "shellcode" y "payload"

Iniciado por Lodos76, 7 Abril 2014, 03:06 AM

0 Miembros y 1 Visitante están viendo este tema.

Lodos76

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.

Gh057

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
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

Lodos76

Entonces el exploit está formado por el payload (método(s) de explotación) + shellcode (programa que se ejecutará remotamente).

Ok, muchas gracias  ;).

.:UND3R:.

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

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

Gh057

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
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...

srIkea

-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  Espero que te sirva.
La sabiduría innata, combinada a una sensibilidad especial ante el entendimiento del mundo, induce a muchas personas a seguir el camino de la modestia absoluta que autodestruye sus máximas virtudes. Consecuentemente el que disimula su potencial es halagado y aceptado por la sociedad.

Un simple hecho no es determinista, hasta la vista.

wachaiti

#6
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.