Skip to main content
Golay

Golay — Active Directory Relay Attack Framework

Golay is a comprehensive Active Directory relay attack framework written in Go. It combines the functionality of ntlmrelayx, Responder, Pretender, mitm6, Relay-King, and ASRepCatcher into a single, statically compiled binary. Single binary. Pure Go. Zero CGO. Cross-compiles to Linux, Windows, and macOS. No Python interpreters, no libpcap, no Docker, no dependency hell — just drop the binary on your operator box and start relaying.

What Golay Does

Golay covers the full relay attack lifecycle from poisoning through exploitation:

How It Works

Golay operates as a pipeline. Each stage can run independently or chained together for a full attack:
1

Poison Name Resolution

Golay poisons LLMNR, mDNS, NetBIOS-NS, and DHCPv6 on the local network. Victim machines that fail DNS lookups fall back to these multicast protocols, and Golay responds with the attacker’s IP address.With --search-domain, Golay also injects a DNS suffix via DHCPv6 Option 24 (the mitm6 technique), causing Windows clients to resolve single-label names like “wpad” through the attacker’s rogue DNS.
2

Capture Authentication

When victims connect to the attacker’s IP, Golay’s rogue servers (SMB, HTTP, LDAP, etc.) present NTLM authentication challenges. The victim’s machine automatically attempts to authenticate using the logged-in user’s credentials.For credential capture mode, hashes are extracted and saved in hashcat-compatible format. For relay mode, the authentication is forwarded to the real target instead.
3

Relay to Target

Golay takes the victim’s NTLM Type-1 (Negotiate), forwards it to the real target (e.g., an ADCS server, LDAP server, or SMB share), receives the Type-2 (Challenge), sends it back to the victim, captures the Type-3 (Authenticate), and forwards it to the target.The target sees a valid authentication from the victim’s account. Golay supports CVE-2019-1040 (MIC removal), CVE-2025-33073 (sign/seal stripping), and CVE-2019-1019 (target removal) for cross-protocol relay.
4

Execute Post-Auth Attack

Once authenticated on the target, Golay executes one of 12 attack modules:
  • ADCS ESC8: Request a certificate as the victim account
  • Shadow Credentials: Inject a KeyCredential for PKINIT authentication
  • RBCD: Configure delegation to an attacker-controlled account
  • DCSync: Grant replication rights for full domain compromise
  • Secret Dumping: Extract SAM hashes, LSA secrets, or NTDS.dit
  • Command Execution: Run commands via SMBExec, TaskExec, or WMIExec

Commands

Golay is organized into top-level commands, each targeting a specific phase of the attack:

Quick Examples

Relay to ADCS for certificate enrollment (ESC8)

The relay server listens on SMB (445) and HTTP (80) by default. When a victim authenticates, Golay relays to the CA’s web enrollment and requests a certificate as the victim account.

Full attack chain: Poison + Relay

Capture hashes (Responder mode)

All captured hashes are written to ./loot/ in hashcat-compatible format:
  • NTLMv2: -m 5600
  • NTLMv1: -m 5500
  • Kerberos: -m 7500

Coerce authentication

Tries PetitPotam, PrinterBug, ShadowCoerce, DFSCoerce, and MSEven against the target.

AS-REP hash capture with RC4 downgrade

Analyze relay paths


Relay Server + Client Matrix


Poisoning Protocols

Listens on multicast 224.0.0.252:5355 (IPv4) and ff02::1:3:5355 (IPv6). Responds to single-label name queries with the attacker’s IP. Effective when DNS fails for short hostnames.
Listens on multicast 224.0.0.251:5353 (IPv4) and ff02::fb:5353 (IPv6). Similar to LLMNR but uses the mDNS protocol and strips .local suffixes.
Listens on UDP port 137. Uses first-level NetBIOS name encoding. The oldest and most reliable poisoning vector on Windows networks.
Responds to DHCPv6 Solicit/Request/Rebind/Renew/InfoReq messages, injecting the attacker as the DNS server. With --search-domain, injects a DNS suffix via Option 24 so Windows clients append the domain to all single-label lookups (the core mitm6 technique).
Sends periodic ICMPv6 Router Advertisements with RDNSS option (RFC 8106) pointing to the attacker’s IPv6 address. Triggers Windows to start DHCPv6 negotiation.
Full rogue DNS server on TCP+UDP port 53. Responds to A, AAAA, ANY, SOA, and SRV queries. With --relay-host, returns SOA records to trigger Kerberos-authenticated DNS dynamic updates.

Capture Servers

When running in capture mode, Golay outputs hashes in hashcat-compatible format:

Global Flags


Tool Equivalents

Golay replaces the need for running multiple separate tools:

Installation

Golay ships as a single static binary. No runtime dependencies required.

Architecture

Golay is organized into modular packages. Each package handles one concern and can be used independently as a library: