Catégorie :

HTB

Lame Writeup | HackTheBox

IP: 10.10.10.3 Hostname: lame.htb

Matrice:

Sommaire

Récapitulatif

Lame est une machine Linux très facile qui ne demande que très peu d’énumération. Grâce à un scan de ports il nous est possible de déterminer la version de samba. Avec cette version il suffit de trouver le bon exploit dans Metasploit (ou à la main via un script) et de passer directement root sur la machine.

Énumération avec nmap

La première phase et d’avoir une vue globale sur la machine et cela se fait avec un scanner de ports comme nmap. Il s’agit du plus connu mais il en existe plein d’autres.

La commande nmap ci-dessous utilise les options suivantes:

Starting Nmap 7.80 ( https://nmap.org ) at 2022-10-03 10:41 CEST
Nmap scan report for lame.htb (10.10.10.3)
Host is up (0.030s latency).
Not shown: 65530 filtered ports
PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to 10.10.14.3
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      vsFTPd 2.3.4 - secure, fast, stable
|_End of status
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey: 
|   1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
|_  2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
3632/tcp open  distccd     distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: OpenWrt White Russian 0.9 (Linux 2.4.30) (92%), Linux 2.6.23 (92%), Belkin N300 WAP (Linux 2.6.30) (92%), Control4 HC-300 home controller (92%), D-Link DAP-1522 WAP, or Xerox WorkCentre Pro 245 or 6556 printer (92%), Dell Integrated Remote Access Controller (iDRAC5) (92%), Dell Integrated Remote Access Controller (iDRAC6) (92%), Linksys WET54GS5 WAP, Tranzeo TR-CPQ-19f WAP, or Xerox WorkCentre Pro 265 printer (92%), Linux 2.4.21 - 2.4.31 (likely embedded) (92%), Citrix XenServer 5.5 (Linux 2.6.18) (92%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
|_ms-sql-info: ERROR: Script execution failed (use -d to debug)
|_smb-os-discovery: ERROR: Script execution failed (use -d to debug)
|_smb-security-mode: ERROR: Script execution failed (use -d to debug)
|_smb2-time: Protocol negotiation failed (SMB2)

TRACEROUTE (using port 21/tcp)
HOP RTT      ADDRESS
1   30.29 ms 10.10.14.1
2   30.49 ms lame.htb (10.10.10.3)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 89.61 seconds

Ici ce qui nous intéresse c’est tout d’abord le port 21 (FTP). Avec une recherche sur la version (vsftpd 2.3.4), on découvre que celle-ci est vulnérable et qu’il y a même un module dans Metasploit: exploit/unix/ftp/vsftpd_234_backdoor

Cependant celui-ci ne fonctionne pas pour cette machine. Elle a dû être patchée.

Le port 22 (SSH) est classique sur les machines de type boot2root. On peut quand même tenter de s’y connecter avec un utilisateur aléatoire juste pour voir si on a besoin d’une clé privée. Cela peut nous donner un bon indice sur ce dont on doit se focus par la suite. Ici on peut se connecter avec un mot de passe classique. Ça ne nous aide pas plus que ça.

Viennent ensuite les deux ports 139 et 445 (SMB). Si on fait une recherche Google sur le numéro de version: Samba smbd 3.X - 4.X, des résultats intéressants apparaissent:

L’exploit correspond bien à notre version du service et on a un nom pour cet exploit. Heureusement pour nous, il existe dans Metasploit. On peut donc aller l’utiliser.

Exploit avec Metasploit

Si c’est la première fois que vous utilisez Metasploit et que vous ne savez pas comment faire, je peux vous suggérer d’aller faire la room correspondante sur TryHackMe.

On va aller chercher notre exploit et le sélectionner:

Il faut ensuite indiquer les bonnes options:

Il ne nous reste plus qu’à lancer notre exploit et attendre les résultats:

Il faut ensuite aller chercher les deux flags, user et root dans le répertoire home de l’utilisateur et dans le /root.

Exploit sans Metasploit

Pour ma part j’ai utilisé ce script. Si vous regardez le code source il n’est vraiment pas compliqué et ça peut être un bon entraînement de le refaire de votre côté.

Il faut tout d’abord installer la version Python de samba si ce n’est pas déjà fait:

python3 -m pip install pysmb

On se met d’abord en écoute sur le port désiré en utilisant netcat (voir écran du bas). On va ensuite lancer le script avec les informations nécessaires: