Según lo que has dado hasta ahora, parece que estás intentando explotar un desbordamiento de búfer.
Logré llegar al punto de inyectar un código de shell como abrir una calculadora o msgbox
Entonces, asumiré que el calc o msgbox es solo una carga útil que usaste en la variable shellcode. Con estos, puedo pensar en un par de razones por las que no puedes hacer que funcione el shell de enlace.
- El shell de enlace funciona, pero el firewall le impide conectarse. Su puerto 4444 como usted mencionó, por lo que es posible. Use
netstat
en la máquina víctima y verifique si el puerto está escuchando o no. Si no, entonces realmente hay algo mal con la carga útil.
- Hay caracteres incorrectos en la carga útil de shell de enlace. Realice un análisis de caracteres incorrectos, codifíquelos y márquelos y vuelva a intentarlo.
- Estás utilizando una carga útil no válida. Esto se aplica si su sistema es de 32 bits.
- Hay una restricción de tamaño en el tamaño de la carga útil y la superaste.
- Los pasos de carga útil en su propio pie. Intente colocar los NOP en los primeros 4 a 8 bytes de su carga útil (aunque este no es probable si no codificó su carga útil).
Estas son solo las razones comunes por las que puedo pensar por qué tu shell de enlace no funciona. Espero que esto ayude.