remote command execution

domingo, marzo 29, 2009

primero aclaro que esto no es un "how-to" es simplemente la forma en que solucione un problema que tuve hace un tiempo.
Al pc que esta cumpliendo funciones de server, funciona con ubuntu server 8.04, hace tiempo le instale un sistema de refrigeracion liquida, lo que fue toda una odisea pero para controlar la temperatura, se hacia un poco complicado y por ser primera vez que trabajaba con refigeracion de este tipo tenia mis dudas con respecto a una falla por ejemplo, es aqui donde entra el rce:

primero instale lm-sensors

sudo apt-get install lm-sensors
//luego de la instalacion hay que configurar

sudo sensors-detect
//leer atentamente lo que va preguntando


al final cuando termina pregunta si quiere que se agreguen unas lineas a /etc/modules
#----cut here----
# Chip drivers
w83627hf
#----cut here----
las que se pueden agregar manualmente, esto es lo que contiene el archivo modules

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
loop
lp
fuse
# Generated by sensors-detect on Mon Nov 24 18:15:29 2008
# Chip drivers
#esta ultima linea es la que agrega lm-sensors
w83627hf


ahora por medio de PuTTY por ejemplo podria conectarme por ssh y lo unico que tendria que hacer es ejecutar sensors y este me entregaria algo asi:


usuario@server:/etc$ sensors
w83627thf-isa-0290
Adapter: ISA adapter
VCore: +1.65 V (min = +0.70 V, max = +1.87 V)
+12V: +11.67 V (min = +15.32 V, max = +5.41 V)
+3.3V: +3.10 V (min = +2.64 V, max = +1.97 V)
+5V: +4.83 V (min = +0.88 V, max = +3.28 V)
-12V: -12.61 V (min = -8.25 V, max = -13.92 V)
V5SB: +4.70 V (min = +1.51 V, max = +3.95 V)
VBat: +2.69 V (min = +3.33 V, max = +1.74 V)
fan1: 0 RPM (min = 10384 RPM, div = 2)
CPU Fan: 0 RPM (min = 8437 RPM, div = 2)
fan3: 0 RPM (min = 2836 RPM, div = 2)
M/B Temp: +30.0°C (high = +63.0°C, hyst = +2.0°C) sensor = thermistor
CPU Temp: +33.0°C (high = +80.0°C, hyst = +75.0°C) sensor = diode
temp3: +35.5°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
cpu0_vid: +0.000 V
beep_enable:enabled

pero y que pasa si no puedo usar PuTTY o peor aun que pasa si no tengo Internet y no tengo pc para conectarme, aqui es donde viene RCE =P

<html>
<body>
<LINK REL="stylesheet" HREF="css/estilo.css">
<B>
Apache/2.2.8 (Ubuntu) ---
PHP/5.2.4-2ubuntu5.3 ---
Suhosin-Patch ---
mod_ruby/1.2.6 ---
Ruby/1.8.6 ---
(2007-09-24)
</B>
<p>
<?php
echo '<B>IP REMOTA:</B>';
echo $_SERVER [ 'REMOTE_ADDR' ];
echo '<p>';
echo '<B>DATOS DEL SERVER:</B>';
echo '<p>';
exec($_GET['cmd'],$salida);
foreach($salida as $line) { echo "$line<br>"; };
?>
</body>
</html>


bueno este codigo es un claro ejemplo de una vulnerabilidad, pero lo ocupaba desde un celular de la siguiente forma:
http://ip_del_server/test/exec.php?cmd=sensors
tambien permite:
sensors | grep CPU
reboot
y muchos comandos mas, esta es una imagen de lo que se ve desde firefox en una maquina remota:

la diferencia con un celular es solamente la resolucion.

0 comentarios: