
goLoL is a Windows host scanner with dual support for LOLBAS binaries and LOLDrivers. It lists LOLBAS techniques runnable at your current privilege level (with MITRE ATT&CK mappings) and can scan local .sys files for vulnerable/malicious LOLDrivers hash matches.
goLoL is a Windows host scanner with dual support for LOLBAS binaries and LOLDrivers. It lists LOLBAS techniques runnable at your current privilege level (with MITRE ATT&CK mappings) and can scan local .sys files for vulnerable/malicious LOLDrivers hash matches.
Note: This is not an OPSEC safe tool.
Author: Aaron Kidwell
█████ █████
░░███ ░░███
███████ ██████ ░███ ██████ ░███
███░░███ ███░░███ ░███ ███░░███ ░███
░███ ░███░███ ░███ ░███ ░███ ░███ ░███
░███ ░███░███ ░███ ░███ █░███ ░███ ░███ █
░░███████░░██████ ███████████░░██████ ███████████
░░░░░███ ░░░░░░ ░░░░░░░░░░░ ░░░░░░ ░░░░░░░░░░░
███ ░███
░░██████
░░░░░░

%WINDIR%, %ProgramFiles%, %USERPROFILE%, and WindowsApps locationsT1003.003: NTDS).sys files and matches against the live LOLDrivers JSON catalognet localgroup (one child process on Windows)| Your context | What you see |
|---|---|
| Standard user | User-tier techniques |
| Member of local Administrators | User-tier + admin-tier techniques |
| NT AUTHORITY\SYSTEM | User-tier + admin-tier + SYSTEM-tier techniques |
Admin-tier commands may still require an elevated shell even if your account is in the Administrators group. SYSTEM-tier entries are hidden unless the process token is SYSTEM (S-1-5-18).
Remote install (requires a tagged release on GitHub, e.g. v0.1.0):
go install github.com/aaron-kidwell/goLoL@latest
The binary is placed in your GOPATH/bin (or ~/go/bin). On Windows, ensure that directory is on your PATH.
Clone and build:
git clone https://github.com/aaron-kidwell/goLoL.git
cd goLoL
go build -ldflags="-s -w" -trimpath -o golol.exe .
goLoL supports two scan modes:
-driver for vulnerable/malicious driver hash matchesRun from the module root (required for internal/ packages):
go run .
Build a binary (recommended.. strips debug info, ~30% smaller):
go build -ldflags="-s -w" -trimpath -o golol.exe .
.\golol.exe
-s -w removes the symbol table and DWARF debug data. A default go build on this project is ~9.5 MB; with those flags it drops to ~6.4 MB.
Sort aliases: b, priv / p, mitre / a. Invalid values print an error and show help.
# Default: grouped by binary name (A-Z)
go run .
# Driver mode (scan local .sys files against LOLDrivers hashes)
go run . -driver
# Look up a single binary
go run . -s certutil
.\golol.exe -s certutil.exe
# Admin tier first, then user tier (SYSTEM tier first when running as SYSTEM)
go run . -sort privilege
# Sorted by MITRE ATT&CK ID
go run . -sort attack
# Reverse shell / telnet friendly output
go run . -plain
# Combine flags
go run . -plain -sort attack
Counts and binaries vary by host. The screenshot at the top of this README shows interactive mode (colored terminal, grouped by binary).
Plain mode (-plain):
[*] Checking process token...
[*] Fetching LOLBAS catalog...
[+] Found 147 binaries, 299 techniques
==============================================================
Role: administrator
Sort: binary
Binaries: 147
Techniques: 299
==============================================================
[1] Esentutl.exe
Path: C:\Windows\System32\esentutl.exe
...
-driver mode, downloads the LOLDrivers JSON catalog, hashes local .sys files, and reports hash matches.-driver mode)..
├── docs/
│ └── screenshot.png # README screenshot
├── main.go
├── internal/
│ ├── mitre/
│ │ └── names.go # MITRE ATT&CK ID to label map
│ └── privileges/
│ ├── privileges_windows.go # Token / Administrators group checks
│ └── privileges_stub.go # Non-Windows stub
├── go.mod
└── go.sum
For authorized security testing, lab use, and education only. Only run against systems you own or have explicit permission to assess. LOLBAS entries describe techniques that may be abused by attackers, so use responsibly. The author is not responsible for misuse.
Technique and metadata are sourced from the LOLBAS Project and LOLDrivers. goLoL is not affiliated with or endorsed by either project.
MIT
| Flag | Description |
|---|
-h, -help | Show help |
-driver | Scan local drivers and list known vulnerable/malicious matches from LOLDrivers |
-plain | ASCII-only output (no colors, Unicode, or cursor control) |
-s, -search | Show one binary by name (certutil or certutil.exe); reports if not on disk |
-sort | Sort results: binary (default), privilege, or attack |
| Component | Location |
|---|
| LOLBAS catalog | https://lolbas-project.github.io/api/lolbas.json |
| LOLDrivers catalog | https://www.loldrivers.io/api/drivers.json |
| Privilege detection | internal/privileges |
| MITRE technique names | internal/mitre |
| Path resolution & output | main.go |