Comando embebido linux

  • 8 Respuestas
  • 2917 Vistas

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

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Comando embebido linux

  • 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

Código: You are not allowed to view links. Register or Login
./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
« Última modificación: Julio 22, 2015, 12:51:44 pm por Gabriela »

Desconectado MagoAstral

  • *
  • Underc0der
  • Mensajes: 115
  • Actividad:
    0%
  • Reputación 0
  • Nada resulta más engañoso que un hecho evidente.
    • Ver Perfil

Re:Comando embebido linux

  • 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) You are not allowed to view links. Register or Login
./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
Lo que sabemos es una gota de agua; lo que ignoramos es el océano.

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Re:Comando embebido linux

  • 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


Desconectado blackdrake

  • *
  • Co Admin
  • Mensajes: 2001
  • Actividad:
    80%
  • Country: es
  • Reputación 22
    • Ver Perfil

Re:Comando embebido linux

  • en: Julio 22, 2015, 04:39:30 pm
Reto de cybercamp mode on jajajajajaja


Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Re:Comando embebido linux

  • en: Julio 22, 2015, 05:06:14 pm
Exacto jaja pero bueno esto es tema aparte, no tiene nada que ver con la solucion

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Re:Comando embebido linux

  • en: Julio 24, 2015, 11:48:26 am
Entonces, es imposible hacerlo?... @You are not allowed to view links. Register or Login

Desconectado blackdrake

  • *
  • Co Admin
  • Mensajes: 2001
  • Actividad:
    80%
  • Country: es
  • Reputación 22
    • Ver Perfil

Re:Comando embebido linux

  • en: Julio 27, 2015, 05:01:24 am
You are not allowed to view links. Register or Login
Entonces, es imposible hacerlo?... @You are not allowed to view links. Register or Login

Todo es posible, además, si es un wargame, será porque tiene solución :P


Desconectado DarkSpark

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • el blog de darkspark

Re:Comando embebido linux

  • 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 ?
Código: You are not allowed to view links. Register or Login
[email protected]:~/test> ./test
Cual es tu nombre:carlos
hola carlos
[email protected]:~/test> ./test
Cual es tu nombre:python -c 'print "A"*100'
hola AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

[email protected]:~/test>


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


Código: You are not allowed to view links. Register or Login
#!/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

You are not allowed to view links. Register or Login
[email protected]

Desconectado nuclan

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Re:Comando embebido linux

  • en: Agosto 12, 2015, 08:18:38 am
You are not allowed to view links. Register or Login
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 ?
Código: You are not allowed to view links. Register or Login
[email protected]:~/test> ./test
Cual es tu nombre:carlos
hola carlos
[email protected]:~/test> ./test
Cual es tu nombre:python -c 'print "A"*100'
hola AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

[email protected]:~/test>


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


Código: You are not allowed to view links. Register or Login
#!/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