Kenobi (Version Française)
Aujourd’hui nous allons mener un test d’intrusion sur la machine Kenobi sur TryHackMe. Nous utiliserons la reconnaissance active pour identifier les services potentiellement vulnérables. Par la suite, nous exploiterons une mauvaise configuration sur l’un des services. Et enfin, nous escaladerons nos privilèges grâce à une technique relativement simple.
Énumération
- Identifier les ports ouverts
┌──(ben㉿kali)-[~/thm/kenobi]
└─$ nmap -Pn -oN nmap/initial 10.10.0.119
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2021-05-04 16:52 EDT
Nmap scan report for 10.10.0.119
Host is up (0.11s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
2049/tcp open nfs
2. Identifier les versions
┌──(ben㉿kali)-[~/thm/kenobi]
└─$ nmap -Pn -p21,22,80,111,139,445,2049 -sV -sC -oN nmap/targeted 10.10.0.119
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2021-05-04 16:54 EDT
Nmap scan report for 10.10.0.119
Host is up (0.11s latency).PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.5
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 b3:ad:83:41:49:e9:5d:16:8d:3b:0f:05:7b:e2:c0:ae (RSA)
| 256 f8:27:7d:64:29:97:e6:f8:65:54:65:22:f7:c8:1d:8a (ECDSA)
|_ 256 5a:06:ed:eb:b6:56:7e:4c:01:dd:ea:bc:ba:fa:33:79 (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
| http-robots.txt: 1 disallowed entry
|_/admin.html
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100003 2,3,4 2049/tcp nfs
| 100003 2,3,4 2049/tcp6 nfs
| 100003 2,3,4 2049/udp nfs
| 100003 2,3,4 2049/udp6 nfs
| 100005 1,2,3 37731/tcp mountd
| 100005 1,2,3 40467/udp6 mountd
| 100005 1,2,3 52844/udp mountd
| 100005 1,2,3 60905/tcp6 mountd
| 100021 1,3,4 36221/tcp6 nlockmgr
| 100021 1,3,4 39821/tcp nlockmgr
| 100021 1,3,4 44764/udp6 nlockmgr
| 100021 1,3,4 52179/udp nlockmgr
| 100227 2,3 2049/tcp nfs_acl
| 100227 2,3 2049/tcp6 nfs_acl
| 100227 2,3 2049/udp nfs_acl
|_ 100227 2,3 2049/udp6 nfs_acl
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
2049/tcp open nfs_acl 2-3 (RPC #100227)
Service Info: Host: KENOBI; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernelHost script results:
|_clock-skew: mean: 1h40m00s, deviation: 2h53m12s, median: 0s
|_nbstat: NetBIOS name: KENOBI, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
| Computer name: kenobi
| NetBIOS computer name: KENOBI\x00
| Domain name: \x00
| FQDN: kenobi
|_ System time: 2021-05-04T15:54:16-05:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2021-05-04T20:54:16
|_ start_date: N/AService detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 16.32 seconds
FTP
Version : ProFTPD 1.3.5
- Pouvons-nous nous logger avec le compte ‘Anonymous’?
Non! Continuons.
SSH
Version : OpenSSH 7.2p2 Ubuntu 4ubuntu2.7 (Ubuntu Linux; protocol 2.0)
Nous avons aucun credentials. Passons à d’autres services
HTTP
Version :
- Identifions la page d’accueil
2. Identifions les répertoires du site web
Outil utilisé : Dirsearch (https://github.com/maurosoria/dirsearch)/robots.txt et /admin.html
3. Visitons les répertoires
/robots.txt
/admin.html
SMB
Version : Samba smbd 4.3.11-Ubuntu
- Pouvons-nous énumérer les dossiers de partages SMB?
Oui ! Continuons.
2. Pouvons-nous accéder à ces dossiers de partages?
Oui. Nous pouvons accéder au dossier de partage ‘anonyous’. Il se trouve qu’un fichier log.txt s’y trouve. Téléchargons le, et allons le lire.
Ce fichier divulgue des informations critiques. Par exemple :
Identifiant : kenobi
La structure du file system : /home/kenobi/
La configuration complète du service FTP.
NFS
- Pouvons-nous mount un répertoire du hôte cible vers notre machine Kali Linux?
Oui. Le répertoire /var * (et tous les répertoires qui suivent après)
2. Nous allons mount le répertoire /var
Ok.
3. Lootons
Exploitation
- Recherchons si un exploit n’est pas disponible sur le web pour la version du service FTP.
Nous avons le choix entre un RCE qui permettrait d’exécuter des commandes arbitraires dans le système de notre cible. Et la deuxième est une vulnérabilité qui permettrait de copier des fichiers (ça nous permettrait de copier le fichier id_rsa SSH)
Dans notre cas, nous choisirons la vulnérabilité qui nous permet de copier des fichiers (http://www.proftpd.org/docs/contrib/mod_copy.html#SITE_CPFR).
En effet, nous avons la structure du PATH pour copier la clé SSH de l’utilisateur kenobi. Et nous avons mount le répertoire /var *
Sur la photo ci-haut, nous avons copié le fichier /home/kenobi/.ssh/id_rsa vers un répertoire (/var/tmp) sur lequel nous avons le droit de lire et d’écrire.
2. Copions le fichier id_rsa dans notre machine Kali Linux et changeons la permission du fichier (chmod 600)
3. Connectons-nous à SSH
Succès !
Escalade de privilèges
Kernel Exploit
- Identifions la version du système
Version du Kernel : 4.8.0.58-generic
OS : Ubuntu 16.04
2. Cherchons la version Kernel et du OS sur Google avec le mot clé exploit.
https://www.exploit-db.com/exploits/43418
Intéressant. La version Kernel et OS de notre cible est potentiellement vulnérable à cet exploit.
Testons le pour voir. Nous allons transférer l’exploit dans notre machine Kali Linux.
Compilons…
Transférons…
Exécutons…
Root !