Skynet
Task 1
On commence par notre scan des ports :
On dispose donc d'un site, d'un serveur samba ainsi que de deux autres ports.
Commençons par le site internet :
SQLMap nous dit qu'il n'est pas injectable, une petite énumération via gobuster nous permet de découvrir SquirrelMail :
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 :
Le compte anonymous est ouvert donc on commence par ce connecter :
Le fichier attention.txt nous indique qu'il y a eu un problème avec les mots de passes :
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 :
On va utiliser cette liste pour bruteforcer le mot de passe de miles :
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 :
On peut donc ce connecter avec son compte :
Dans le dossier notes on découvre un fichier important.txt :
On découvre alors ce qui semble être un dossier caché :
La page ne semble pas nous donner plus d'informations, on relance alors notre gobuster :
Cette fois on découvre une page administrator :
Une rapide recherche de vulnérabilité nous indique qu'il existe une "remote file inclusion" :
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 :
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 :
Essayons avec le flag user :
Bingo le premier flag est à nous !
Essayons avec celui du root :
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 :
On lance une écoute sur le port que nous avons choisi :
Et on réalise notre exploit :
On commence par faire spawn un meilleur shell grâce à python :
Nous sommes donc en www-data, on découvre un dossier backup dans le répertoire de milesdyson :
Le script backup.sh fait penser qu'il y a sans doute un crontab qui doit être programmée :
Bingo le script est lancé en root toute les minutes il est donc possible de récupérer les droits root via ce script.
Le fait d'utiliser tar avec une wildcard est une faille de sécurité. (https://gtfobins.github.io/gtfobins/tar/)
On va donc l"exploiter. Pour cela on commence par créer un fichier qui va contenir un reverse shell en bash :
En suite on va créer deux autres fichier dont les noms vont être les instructions de commandes nécéssaires à l'exploit :
Ainsi on obtient nos 3 fichiers il ne nous reste plus qu'à attendre que le script soit appelé par la crontab pour obtenir notre reverse shell :
Nous voila root !