RubyDome

PDFkit ruby

  • Nom machine : RubyDome

  • Difficulté : Facile

  • OS : Linux

Enumération

NMAP

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-23 08:33 EDT
Nmap scan report for 192.168.194.22
Host is up (0.034s latency).
Not shown: 65533 closed tcp ports (conn-refused)
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 b9:bc:8f:01:3f:85:5d:f9:5c:d9:fb:b6:15:a0:1e:74 (ECDSA)
|_  256 53:d9:7f:3d:22:8a:fd:57:98:fe:6b:1a:4c:ac:79:67 (ED25519)
3000/tcp open  http    WEBrick httpd 1.7.0 (Ruby 3.0.2 (2021-07-07))
|_http-server-header: WEBrick/1.7.0 (Ruby/3.0.2/2021-07-07)
|_http-title: RubyDome HTML to PDF
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

HTTP (3000) : WEBrick/1.7.0

Nous avons lancer un server python sur le port 80 de notre machine kali et rentrer http://192.168.45.195 dans la barre de recherche. Le site nous renvoie un pdf qui liste le contenu de notre dossier.

Si on test http://localhost :

PDFKit est utilisé

Accès initial

PDFKit exploit

Nous allons utilisé l'exploit :

Ca fonctionne ! Nous allons créer un reverse shell :

Au même moment, le listener :

Elévation des privilèges

Executer script ruby

Nous poubons exécuter des scipt ruby en tant que root. Nous allons voir quelles sont les droits sur le répertoire app et le fichier app.rb.

Nous pouvons écrire ! Nous pouvons effectuer un backup de app.rb sur notre machine puis supprimer app.rb de la cible.

Nous avons copié le reverse shell ruby de : https://gist.github.com/gr33n7007h/c8cba38c5a4a59905f62233b36882325

Nous avons modifié pour correspondre à notre adresse ip puis ouvert un port http python.

Nous vons télécharger le fichier app.rb puis exécuter le fichier en tant que root.

Nous écoutons sur le port 1337

Nous sommes root !

Mis à jour