What's new in v2.0.5
LDAP Collaborator Server
New ldapserver package providing a lightweight LDAP server for credential capture and attack scenarios:
- Simple bind capture — logs DN and cleartext passwords
- SASL PLAIN capture — decodes and logs SASL PLAIN credentials
- NTLM hash capture — full NetNTLMv2 challenge-response exchange with inline hash cracking (built-in default wordlist + optional --ldap-wordlist file), hashcat-format output
- JNDI/Log4Shell mode (--ldap-jndi) — responds to any search with a javaNamingReference entry, turning goshs into a Log4Shell exploitation endpoint
- LDAPS support — use -s -ss (self-signed) or -s -sc/-sk (custom cert) to serve LDAP over TLS; port auto-switches from 389 to 636
- WebSocket UI — all events (bind, search, NTLM) stream live to the LDAP collaborator tab with cracked-password badges
- Webhook integration — bind/search/NTLM events forwarded to Discord/Slack/etc.
New CLI flags: --ldap, --ldap-port, --ldap-jndi, --ldap-jndi-base, --ldap-wordlist
Reverse Shell Catcher (Windows support)
The interactive shell catcher now builds and runs on Windows (previously stub-only). Build constraints have been dropped and the package is fully cross-platform.
Testing
- ldapserver: 27 new tests covering BER protocol parsing, response builders, plain TCP and TLS session integration, SASL binds, JNDI search responses, and the NewLDAPServer constructor
- catcher: 29 new tests covering session lifecycle, concurrent close, manager start/stop/kill, connection acceptance, broadcast notifications, and ensureCRLF
- Fixed a bug where catcher.Listener reported Port: 0 when using OS-assigned ports
Other changes
- Bumped github.com/google/go-github to v85.0.0 (#154)
- Simplified cleanup logic in integration tests (#156, @alexandear)
- README updated with LDAP collaborator and catcher documentation