Peppo

postgresql rshell restricted shells docker

  • Nom machine : Peppo

  • Difficulté : Difficile

  • OS : Linux

Enumération

NMAP

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-18 08:12 EDT
Nmap scan report for 192.168.233.60
Host is up (0.035s latency).
Not shown: 65529 filtered tcp ports (no-response)
PORT      STATE  SERVICE           VERSION
22/tcp    open   ssh               OpenSSH 7.4p1 Debian 10+deb9u7 (protocol 2.0)
| ssh-hostkey: 
|   2048 75:4c:02:01:fa:1e:9f:cc:e4:7b:52:fe:ba:36:85:a9 (RSA)
|   256 b7:6f:9c:2b:bf:fb:04:62:f4:18:c9:38:f4:3d:6b:2b (ECDSA)
|_  256 98:7f:b6:40:ce:bb:b5:57:d5:d1:3c:65:72:74:87:c3 (ED25519)
|_auth-owners: root
53/tcp    closed domain
113/tcp   open   ident             FreeBSD identd
|_auth-owners: nobody
5432/tcp  open   postgresql        PostgreSQL DB 12.3 - 12.4
8080/tcp  open   http              WEBrick httpd 1.4.2 (Ruby 2.6.6 (2020-03-31))
|_http-title: Redmine
| http-robots.txt: 4 disallowed entries 
|_/issues/gantt /issues/calendar /activity /search
|_http-server-header: WEBrick/1.4.2 (Ruby/2.6.6/2020-03-31)
10000/tcp open   snet-sensor-mgmt?
|_auth-owners: eleanor
| fingerprint-strings: 
|   DNSStatusRequestTCP, DNSVersionBindReqTCP, Help, Kerberos, LANDesk-RC, LDAPBindReq, LDAPSearchReq, LPDString, RPCCheck, RTSPRequest, SIPOptions, SMBProgNeg, SSLSessionReq, TLSSessionReq, TerminalServer, TerminalServerCookie, X11Probe: 
|     HTTP/1.1 400 Bad Request
|     Connection: close
|   FourOhFourRequest: 
|     HTTP/1.1 200 OK
|     Content-Type: text/plain
|     Date: Sun, 18 Aug 2024 12:15:10 GMT
|     Connection: close
|     Hello World
|   GetRequest, HTTPOptions: 
|     HTTP/1.1 200 OK
|     Content-Type: text/plain
|     Date: Sun, 18 Aug 2024 12:15:04 GMT
|     Connection: close
|_    Hello World

HTTP (8080)

Redmine ?

Possibile de créer un compte mais l'administrator doit le valider. La recherche de répertoire ne mène à rien d'intéressant.

ident (113) : FreeBSD identd

Le script nmap a déjà permis d'énumérer mais nous allons reproduire cette commande :

Postgresql (5432) : PostgreSQL DB 12.3 - 12.4

Lire fichier

Nous allons tester de lire les fichier du server.

Accès initial

RCE

Nous sommes ensuite bloqués, nous sommes dans un conteneur docker et pas moyen d'en ressortir.... Nous décidons donc de nous replonger dans nos notes, et nous nous rappelons que nous avons le nom d'un user grâce au service ident : eleanor

Evidemment, le mot de passe est identique à l'identifiant...

Nous sommes dans un shell restreints, nous devons trouver quel commande nous pouvons utiliser dans ce shell pour pouvoir l'exploiter.

Nous recherchons via GFTObins quel commande peut permettre d'obtenir un shell et nous trouvons ed.

Nous devons ensuite changer le PATH

Elévation des privilèges

Le groupe docker est exploitable

Nous allons télécharger une image docker sur notre machine pour ensuite la transférer sur la cible.

Nous lançons un server python sur le port 10000.

Nous avons maintenant accès à tous les fichiers. Nous pouvions également directement utiliser les images précédentes dans la machine avec docker run -v /:/mnt --rm -it redmine chroot /mnt sh

Nous pouvons ainsi récupérer le flag, ou bien tenter de cracker le fichier shadow

Mis à jour