Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: nuclan en Julio 22, 2015, 12:13:06 PM

Título: Comando embebido linux
Publicado por: nuclan en Julio 22, 2015, 12:13:06 PM
Hola, tengo un quebradero de cabeza impresinante y espero que alguien sepa echarme una mano.

La cuestion es que para un exploitme quiero ejecutar un comando, en este caso uno de python, dentro de un programa que pide el nombre.

Me explico: lo normal seria ./exploitme $(python -c 'print "A"*100') y seria lo mismo que si de parametro le pasara 100 A

Pero en este caso los parametros me los pregunta una vez que he ejecutado el archivo

./exploitme
Hola! Dime tu nombre: $(python -c 'print "A"*100')
Tu nombre es $(python -c 'print "A"*100')


Yo quiero que ejecute el codigo python y que al responderme me responda con 100 A. En este caso podria copiarlas manualmente, pero en otros necesito obligatoriamente usar python para meter otros parametros

Un saludo y gracias
Título: Re:Comando embebido linux
Publicado por: MagoAstral en Julio 22, 2015, 12:43:42 PM
No te líes simplemente si quieres ejecutar un comando utilices o no un debugger se ejecuta entre comillas no se si me explico, te pondré un ejemplo con tu programa:
Código (bash) [Seleccionar]

./exploitme
Hola! Dime tu nombre: `python -c  'print "A"*10'`
Tu nombre es AAAAAAAAAA

Simplemente pones unas comillas simples y a continuación la sintaxis si usas python pues python -c, si usas perl pues perl -e o lo que tu quieras.
Un saludo
Título: Re:Comando embebido linux
Publicado por: nuclan en Julio 22, 2015, 01:21:44 PM
Gracias por la respuesta, aunque sigo teniendo el mismo problema. He probado tambien a cambiar el orden de las comillas `´ pero nada

(http://i.imgur.com/wisz90d.png)
Título: Re:Comando embebido linux
Publicado por: blackdrake en Julio 22, 2015, 04:39:30 PM
Reto de cybercamp mode on jajajajajaja
Título: Re:Comando embebido linux
Publicado por: nuclan en Julio 22, 2015, 05:06:14 PM
Exacto jaja pero bueno esto es tema aparte, no tiene nada que ver con la solucion
Título: Re:Comando embebido linux
Publicado por: nuclan en Julio 24, 2015, 11:48:26 AM
Entonces, es imposible hacerlo?... @blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972)
Título: Re:Comando embebido linux
Publicado por: blackdrake en Julio 27, 2015, 05:01:24 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Entonces, es imposible hacerlo?... @blackdrake (https://underc0de.org/foro/index.php?action=profile;u=24972)

Todo es posible, además, si es un wargame, será porque tiene solución :P
Título: Re:Comando embebido linux
Publicado por: DarkSpark en Julio 27, 2015, 03:58:19 PM
a ver si entendí bien.

la idea es crear un programa que te pide tu nombre y lo imprime con un saludo, pero que si algun usuario malicioso sel le ocurre meterle un "comando" este se ejecute ?
darkspark@darkspark:~/test> ./test
Cual es tu nombre:carlos
hola carlos
darkspark@darkspark:~/test> ./test
Cual es tu nombre:python -c 'print "A"*100'
hola AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

darkspark@darkspark:~/test>


si estoy en lo correcto, en perl lo e conseguido de la siguiente manera:


#!/usr/bin/perl
print "Cual es tu nombre:";
chomp($resp=<STDIN>);
$chek=`$resp`;
$respuesta=$resp;
if($chek){
$respuesta=`$resp`;
}
print "hola $respuesta\n";
exit;


lo cual funciona, pero en un entorno real ningún programador en su sano juicio lo haría, pues seria hacerlo vulnerable a propósito. seguiré buscando si ay una manera de hacerlo en un entorno real
Título: Re:Comando embebido linux
Publicado por: nuclan en Agosto 12, 2015, 08:18:38 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
a ver si entendí bien.

la idea es crear un programa que te pide tu nombre y lo imprime con un saludo, pero que si algun usuario malicioso sel le ocurre meterle un "comando" este se ejecute ?
darkspark@darkspark:~/test> ./test
Cual es tu nombre:carlos
hola carlos
darkspark@darkspark:~/test> ./test
Cual es tu nombre:python -c 'print "A"*100'
hola AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

darkspark@darkspark:~/test>


si estoy en lo correcto, en perl lo e conseguido de la siguiente manera:


#!/usr/bin/perl
print "Cual es tu nombre:";
chomp($resp=<STDIN>);
$chek=`$resp`;
$respuesta=$resp;
if($chek){
$respuesta=`$resp`;
}
print "hola $respuesta\n";
exit;


lo cual funciona, pero en un entorno real ningún programador en su sano juicio lo haría, pues seria hacerlo vulnerable a propósito. seguiré buscando si ay una manera de hacerlo en un entorno real

No era asi, en realidad mi pregunta no tenia nada que ver con el wargame... pero bueno.

Ya hablando en tema general, para explotar un buffer overflow se suele poner como parametro $(python -c 'print "A"*100'), y seria lo mismo que si escribiera 100 A's manualmente, pero te quitas del lio de estar generandolo y copiando y pegando.
El problema esta cuando no se pasa como parámetro sino como entrada de teclado en mitad de la ejecucion del programa que recoge lo que hayas escrito tal cual.

Saludos