Symbolic

WkhtmltoPDF Symbolic link ssh

  • Nom machine : Symbolic

  • Difficulté : Intermédiaire

  • OS : Windows

Enumération

NMAP

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-01 09:25 EDT
Nmap scan report for 192.168.209.177
Host is up (0.041s latency).
Not shown: 65533 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH for_Windows_7.7 (protocol 2.0)
| ssh-hostkey: 
|   2048 3e:40:e2:ef:21:ea:c1:77:b6:14:a3:f7:04:59:45:28 (RSA)
|   256 f8:fb:e3:c6:16:3a:e2:62:d0:e2:ae:d4:f2:9e:6f:6d (ECDSA)
|_  256 94:5e:97:ad:f9:0f:81:b6:6b:3b:bd:98:43:c0:0d:6a (ED25519)
80/tcp open  http    Apache httpd 2.4.48 ((Win64) OpenSSL/1.1.1k PHP/8.0.7)
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.7
|_http-title: WebPage to PDF

HTTP (80) : Apache httpd 2.4.48

WkhtmltoPDF

Nous pouvons accéder au dossier logs.

Nous allons vérifier si le fichier abf668cc40f70bd74ce74e67eb397c27.pdf existe.

Nous devons d'abord connaître le chemin pour accéder au fichier.

Nous avons donc lancer un server python sur notre machine (la machine n'étant pas connectée à internet) puis rentrer http://<notre_ip> dans la barre située au milieu de la page index.html de notre machine cible.

Le chemin /pdfs/ nous intéresse. Nous pouvons également en profiter pour télécharger le fichier et trouver le numéro de version.

wkhtmltopdf 0.12.3

Nous allons maintenant revenir au fichier pdf précédemment trouvé grâce au fichier log.

Bingo !

Nous avons donc une clef privée ssh, cependant nous n'avons pas récupéré de nom d'utilisateur.

Nous allons tenter de bruteforce avec hydra.

Accès initial

Bruteforce SSH avec une clef privé

Nous avons utilisé ce code bash :

Pas de résultat.

Après réflexion, le nom d'utilisateur se trouvait sur la page...... "Converter by p4yl0ad "

Il y avait un autre moyen de trouver la clef privée.

LFI

Nous avons dans un premier temps tester si une page web fonctionne.

Cela a fonctionnée, nous avons donc mis dans le body : <iframe src="C:/Windows/system32/drivers/etc/hosts" >

Cela fonctionne mais le texte est affiché dans un espace qu'on ne peut déplacer.

Nous allons donc agrandir cette espace et changer le fichier à lire.

Elévation des privilèges

Nous avons trouvé un dossier backup à la racine. Le fichier backup.ps1 appartient

Nous allons voir quel droit nous avons dans le dossier logs. Si nous avons tous les droits, nous pourrions créer un lien symbolique nous permettant de lire le fichier id_rsa de l'administrator.

Nous avons tous les droits.

Le binaire qui nous intéresse sur ce github est : CreateSymlink.exe.

En effet, la commande New-Item -ItemType SymbolicLink -Path "C:\xampp\htdocs\logs\request.log" -Target "C:\Users\Administrator\.ssh\id_rsa" ne fonctionne pas.

Nous allons donc le télécharger sur notre victime et l'utiliser pour créer notre lien symbolique. Mais nous devons tout d'abord supprimer le dossiers logs puis le re-créer :

Nous pouvons ensuite lire le dernier fichier de /backup/logs :

Nous nous connectons de la même manière que pour le premier utilisateur.

Nous sommes administrator ! Mais non NT AUTHORITY \ SYSTEM. Nous avons toutefois accès au flag.

SeImpersonatePrivilege

Nous allons utiliser GodPotato. Nous allons donc le télécharger sur la machine cible ainsi que nc.exe.

Un listener écoute sur le port 1234, nous sommes NT AUTHORITY \ SYSTEM !

Mis à jour