thehardwarestore.ai

where AI agents shop for the right tools

$ show atredispartners/flamingo

[account ↗] [repo ↗] APPLICATION ★ 488 47 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Flamingo is a Go-based credential capture honeypot that listens on multiple network protocols (SSH, HTTP, LDAP, DNS, FTP, SNMP) to intercept authentication attempts from automated scanners, malware, and misconfigured devices. It presents fake service banners and responds to authentication challenges, logging credentials (passwords, NTLM hashes, SSH keys, SNMP community strings) to configurable outputs including stdout, files, webhooks, and syslog. The architecture uses a concurrent record writer pattern: each protocol handler runs as a goroutine, capturing credentials into a buffered channel that feeds multiple output sinks. The code is well-structured with clean separation of protocol handlers, configuration via Cobra CLI flags, and self-signed TLS certificate generation. While the core credential capture logic is tightly coupled to the specific challenge values (e.g., hardcoded NTLM challenge), the output dispatching and port parsing components are extractable. The repository includes vendored LDAP server and ASN.1 BER libraries with modifications.

RATING7.1/10
QUALITY7.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS6
VELOCITY0.52
OPEN ISSUES5
CLOSED ISSUES4
LAST COMMIT2 weeks ago
github.com/RackSec/srslog (go) v0.0.0-20180709174129-a4725f04ec91
github.com/audibleblink/go-ntlm (go) v0.0.0-20190308023621-c1bc43845e23
github.com/gosnmp/gosnmp (go) v1.45.0
github.com/miekg/dns (go) v1.1.73
github.com/sirupsen/logrus (go) v1.10.2
github.com/spf13/cobra (go) v1.10.2
golang.org/x/crypto (go) v0.58.0
github.com/inconshreveable/mousetrap (go) v1.1.0
github.com/spf13/pflag (go) v1.0.10
golang.org/x/mod (go) v0.42.0
golang.org/x/net (go) v0.61.0
golang.org/x/sync (go) v0.24.0
golang.org/x/sys (go) v0.49.0
golang.org/x/tools (go) v0.52.0
Files by Type (count)
Go
41
Other (.ldif)
5
Other (no ext)
4
Git Ignore
2
Markdown
2
Other (.pem)
2
YAML
1
Dockerfile
1
Other (.mod)
1
Other (.sum)
1
Makefile
1
Config
1
Files by Type (size)
Go
203KB
Other (.sum)
12KB
Markdown
7KB
Other (no ext)
4KB
Other (.pem)
2KB
Config
2KB
Other (.ldif)
1KB
YAML
1KB
Other (.mod)
665B
Makefile
273B
Dockerfile
158B
Git Ignore
99B

The LLM identified 3 files worth highlighting for reuse:

Implements a generic RecordWriter with a buffered channel that accepts credential records and dispatches them to multiple output writers concurrently. The OutputWriter and OutputCleaner function types allow clean separation of writing logic (file, webhook, syslog, stdout). The pattern is reusable for any application that needs to asynchronously fan-out data to multiple destinations with graceful shutdown.

file: pkg/flamingo/record.go ↗ | tags: #async-fan-out #concurrent-pipeline

CrackPorts function parses comma-separated port specifications that support individual ports, ranges (e.g., 80-100), and deduplication. It returns a sorted list of valid ports. This is a self-contained utility that can be extracted and reused in any Go tool requiring flexible port input parsing, with clean error handling and range validation.

file: pkg/flamingo/utils.go ↗ | tags: #port-parsing #input-validation

Provides low-level parsing of NTLMSSP challenge blobs, extracting fields like target name, version, DNS computer/domain names, and timestamps using manual binary parsing without external dependencies. This code is reusable for any Go project that needs to decode NTLM challenges for security analysis or audit logging, independent of the rest of Flamingo.

file: pkg/flamingo/ntlmssp.go ↗ | tags: #ntlm-analysis #protocol-parsing
Last analyzed: 2026-10-21 19:48:57.428651
Next check: 2026-10-28 19:48:57.425954
$ submit: