openhound-collector-common
Shared pure-Python, in-process infrastructure for OpenHound on-prem / Windows-auth
collectors. Factored out of the SCCM extension so collectors (starting with mssql) reuse
one implementation of the hard parts instead of copying them.
No child processes, no native database/auth binaries — TDS, NTLM, Kerberos, EPA channel
binding, SPNEGO, LDAP, WMI, and SOCKS5 are all done in Python via impacket / ldap3 /
pywin32 and the stdlib.
Layout (built incrementally)
| Subpackage | Purpose |
|---|---|
clients/mssql.py |
TDS + TLS-over-TDS + NTLMv2 (EPA CBT/SPN) + Kerberos + SSPI; EPA detection. TLS-1.2 cap. |
clients/auth.py |
Kerberos AP-REQ/SPNEGO + NTLM + current-user SSPI token minting. |
clients/ad.py |
LDAP transport×bind waterfall (lockout-safe), SPN search, SID→AD-object resolution. |
clients/wmi.py |
WMI over impacket DCOM + pywin32 (Win32_GroupUser, Win32_Service). |
discovery/dns.py |
DC/SRV/A discovery + DNS resolver override (proxy-aware). |
dlt/source_bridge.py |
push→pull DLT emit-resource bridge for multi-target collection. |
dlt/convert_pipeline.py |
convert-reads-DuckDB (self-run pipeline + opengraph_file + no-op source). |
dlt/duckdb_safe.py |
_safe/_ensure_columns/_arr defenses against dlt column-dropping. |
logging/log_context.py |
VERBOSE tier + [target]/[phase] contextvar tagging. |
graph/stub_node.py, graph/graph_edge.py |
generic edge model + edge-endpoint stub backfill. |
proxy/socks.py |
pure-Python SOCKS5 dialer. |
Consumers
- ConfigManBearPig 2.0 (PyPI:
configmanbearpig) — the SCCM collector. Depends on a published, capped release (>=0.1.0,<0.2.0). mssql— the in-progress MSSQL collector.
This is a library: it has no CLI and is never installed on its own by an end user. It arrives as a transitive dependency when someone installs a collector:
uv tool install openhound --with configmanbearpig
Developing
See DEVELOPMENT.md — including how to work on this library and a collector at the same time without reinstalling after every edit.
License
Apache-2.0 (see LICENSE). This code was factored out of the SCCM collector, itself a port of
the Apache-2.0 ConfigManBearPig.ps1, so it inherits those terms.
Metadata
Release files for openhound-collector-common 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openhound_collector_common-0.1.0.tar.gz | 175.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openhound_collector_common-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 275.5 kB
Release files / openhound_collector_common-0.1.0.tar.gz
| Download URL | openhound_collector_common-0.1.0.tar.gz |
|---|---|
| Size | 175.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f542964047b44c5a0741ad3833410f93dda19caa38093d0721ed1165d78542d
|
|
BLAKE2b-256 checksum How to use checksums |
f6e10f32b0358245f5c4b1b0ffd9a25f7be933c9840c639afdb42e24cdfc6e79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / openhound_collector_common-0.1.0-py3-none-any.whl
| Download URL | openhound_collector_common-0.1.0-py3-none-any.whl |
|---|---|
| Size | 100.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1282c0373a195be1bee4bd34068c03025f7b28e2e5d54464f98f62c5c15bef2e
|
|
BLAKE2b-256 checksum How to use checksums |
0d45541a9fac781edd33b03ccd40aa10dab9752821972bbd6a9dd8637e35e0da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|