Lame HTB

Aujourd'hui, intéressons-nous à une autre machine HackTheBox facile créée par ch4p, Lame. Nous avons l'ip (10.10.10.3) et l'OS (Linux).

Lame HTB

Après avoir lancer le même script de découverte de ports utilisé pour Legacy, le scan nous donne le nom de la machine (lame), du domaine (hackthebox.gr) et du domaine absolu FQDN (lame.hackthebox.gr).

Quant aux services, nous en avons plusieurs face à nous qui sont potentiellement exploitables:

  • Un serveur de transfère de fichier VSFTPD (version 2.3.4) qui autorise les connexions anonymes sur le port 21
  • Un service de connexion à distance OpenSSH sur le port 22
  • Un service de partage de fichiers et de périphériques Samba (version 3.0.20) sur les ports 139 et 445
  • Et un service de compilation de code DISTCCD (version 1) sur le port 3632

Résultat

Cherchons des vulnérabilités connues avec NMAP.

Le service distccd présente une vulnérabilité qui nous permettra d'attaquer le compte daemon qui a probablement des droits limiter sur la machine. Cherchons d'abord un accès d'administrateur, nous y reviendrons ensuite.

Vulnérabilités

VSFTPD est un service de File Transfer Protocol (FTP) qui se veut plus rapide et plus sécurisé.

Nous allons doit vers un "rabbit hole", cependant la version 2.3.4 est connue pour avoir une vulnérabilité assez amusante...

Elle embarque une backdoor activable en insérant le smiley ":)" dans le nom d'utilisateur.

( exemple: "admin:)" )

Cela ouvre le port 6200 en écoute sur la machine cible pour de l'exécution de commandes à distance.

Voyons ce qu'il y a à voir sur ce serveur FTP en nous connectant en anonyme comme le préconisait notre scanner.

Ftp anonymous

Nous avons accès à un dossier vide et rien d'autre.

Interrogeons la base de données Exploit-DB !

Exploit-DB vsftpd

Le Framework Metasploit a un module pour exploiter cette vulnérabilité. Démarrons le service postgres et MSF5.

MsfDB run

Retrouvons le module en question...

MsfDB search

... Lançons-le !

Vsftpd msf exploit

Fausse joie :(

Cherchons d'autres options pour cet exploit, comme un script python trouvé sur le GitHub de Austin Hervias.

Vsftpd custom exploit

Définitivement, il n'y a aucun lapin dans ce terrier... Passons au suivant.

SSH

Pour se connecter à distance via SSH, nous aurons besoin de plus d'information sur les utilisateurs:

  • Couples identifiant / mot de passe
  • clés RSA
  • ou un moyen d'ajouter notre clé publique dans la configuration de connexion SSH d'un utilisateur sur la machine cible.

Ssh

N'ayant rien de tout ça pour le moment, inutile de bruteforce à ce stade. Nous y reviendrons plus tard.

Samba 3.0.20 (CVE-2007-2447)

Tant que Metasploit Framework est en route, voyons ce qu'il nous propose comme module pour cette version.

Exploit info

Ce service présente une vulnérabilité qui permet à l'attaquant d'exécuter des commandes au moment de l'authentification en insérant dans le nom d'utilisateur des caractères spéciaux et la commande.

L'exécution passe en priorité sur la vérification.

Exploit Smb

Et nous avons un shell en tant que root, que nous pouvons améliorer en shell TTY ou bien grâce à Metasploit en tapant shell.

Regardons dans le détail ce que fait ce module.

Exploit détails

Essayons d'obtenir un shell manuellement. Ouvrons un port en écoute sur la machine attaquante.

Listener

Connectons-nous en anonyme sur le service Samba. Nous avons accès au dossier tmp.

Essayons maintenant d'authentifier un utilisateur avec ./=`` et un payload basique à l'intérieur.

Smbclient Bypass

Améliorons notre shell en TTY pour plus de confort avant de passer à la post-exploitation:

  • Autocomplétion
  • historique des commandes
  • commandes (ex: clear, etc...).
  • en prévention d'un CTRL + C malencontreux.
  • stdin (au cas où nous devrions entrer un mot de passe, par exemple)

Upgrade TTY

Profitons-en pour fouiller un peu, récupérer les flags...

(Ici, je m'assure juste qu'il s'agit bien des flags (1 ligne de 32 caractères) et d'avoir les droits en lecture dessus.)

Flags

Post-exploitation

Cherchons à compromettre d'autres comptes. Récupérons les clés SSH...

Clés SSH

... et les mots de passe hashés en copiant les fichiers /etc/passwd et /etc/shadow.

Dans ces derniers, les hashes portent la signature $1$. Ce qui signifie qu'ils sont au format MD5, un algorithme assez faible.

Nous pouvons donc envisager une attaque bruteforce par dictionnaire pour retrouver les mots de passe.

Signature MD5

Utilisons unshadow et donnons le résultat à John the Ripper qui reconnaît le format md5crypt.

En quelques minutes, 4 passwords sont retrouvés avec le dictionnaire rockyou.txt.

Si John fait de la rétention d'information (c'est qu'il a déjà cracké ces hashes auparavant), l'option --show sur le fichier permet de les afficher.

Pour information, tout les mots de passe trouvés sont stockés dans le fichier john.pot.

hashes

Potentiellement, 4 passwords et 1 clé ssh/dsa à essayer en SSH.

SSH

La clé ssh trouvée dans le dossier /home/user/.ssh semble ne pas avoir de mot de passe mais ne fonctionne pas tel quel.

Elle semble être attribuée à l'utilisateur user mais sur une machine nommée "metasploitable". Mais j'ignore si elle est exploitable ou non sur Lame.

Ssh Dsa

Peu importe, nous avons d'autres pistes...

Tentons de nous connecter en tant que klog avec le password 123456789. L'absence de répertoire personnel provoque une erreur et bloque la connexion.

Klog

Cependant, les autres utilisateurs dont les mots de passe sont compromis nous ouvrent les bras:

  • user: X
  • klog: X
  • sys: OK!
  • postgres: OK!
  • system: OK!
  • et notre accès root.

Ssh users

DistCCD (CVE-2004-2687) BONUS

Nous avions vu qu'il est possible d'exploiter ce service de compilation de code pour exécuter des commande et prendre le contrôle de la cible avec le compte daemon. Utilisons Metasploit pour commencer.

Distccd info

Pas plus d'information sur le fonctionnement du module. Check, run, shell, et nous sommes daemon.

Distccd exploit