Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions AUDIT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Audit — keyhunt

Generated 2026-06-12 UTC.

```json
{
"repo": "keyhunt",
"parse_errors": [],
"tests_passed": 13,
"tests_failed": 0,
"tests_errored": 0,
"has_tests": true,
"pytest_tail": "............. [100%]\n13 passed in 0.37s",
"package": "https",
"cli_version": "C:\\Python314\\python.exe: No module named https",
"clean": true
}
```

## pytest
```
............. [100%]
13 passed in 0.37s
```

## CLI
```
C:\Python314\python.exe: No module named https
```
42 changes: 39 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@

<img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=18&duration=3500&pause=1000&color=6B46C1&center=true&vCenter=true&width=720&lines=Scan+firmware+blobs+and+filesystem+dumps+for+hardcoded+priva;Self-hostable+%C2%B7+MCP-native+%C2%B7+CI-ready+%C2%B7+polyglot" width="720"/>

[![PyPI](https://img.shields.io/pypi/v/cognis-keyhunt.svg?color=6b46c1)](https://pypi.org/project/cognis-keyhunt/) [![CI](https://github.com/cognis-digital/keyhunt/actions/workflows/ci.yml/badge.svg)](https://github.com/cognis-digital/keyhunt/actions) [![License: COCL 1.0](https://img.shields.io/badge/License-COCL%201.0-2b6cb0.svg)](LICENSE) [![Suite](https://img.shields.io/badge/Cognis-Neural%20Suite-6b46c1.svg)](https://github.com/cognis-digital)
[![install](https://img.shields.io/badge/install-git%2B%20%C2%B7%20pipx%20%C2%B7%20uv-6b46c1.svg)](#install--every-way-every-platform) [![CI](https://github.com/cognis-digital/keyhunt/actions/workflows/ci.yml/badge.svg)](https://github.com/cognis-digital/keyhunt/actions) [![License: COCL 1.0](https://img.shields.io/badge/License-COCL%201.0-2b6cb0.svg)](LICENSE) [![Suite](https://img.shields.io/badge/Cognis-Neural%20Suite-6b46c1.svg)](https://github.com/cognis-digital)

*IoT / OT / Embedded — firmware, buses, and device security.*

</div>

```bash
pip install cognis-keyhunt
pip install "git+https://github.com/cognis-digital/keyhunt.git"
keyhunt scan . # → prioritized findings in seconds
```

Expand Down Expand Up @@ -49,7 +49,7 @@ Instant gratification — point at any router firmware and get 'hardcoded root S
## Quick start

```bash
pip install cognis-keyhunt
pip install "git+https://github.com/cognis-digital/keyhunt.git"
keyhunt --version
keyhunt scan . # scan current project
keyhunt scan . --format json # machine-readable
Expand Down Expand Up @@ -123,6 +123,16 @@ Pipes into your stack: **SARIF** for code-scanning, **JSON** for anything, an **
<div align="right"><a href="#top">↑ back to top</a></div>

<a name="install-anywhere"></a>
<!-- cognis:domains:start -->
## Domains

**Primary domain:** Cyber & Security · **JTF MERIDIAN division:** NULLBYTE · SPECTER

**Topics:** `cognis` `security` `infosec` `cybersecurity` `blue-team`

Part of the **Cognis Neural Suite** — 300+ source-available tools organized across 12 domains under the JTF MERIDIAN command structure. See the [suite on GitHub](https://github.com/cognis-digital) and [jtf-meridian](https://github.com/cognis-digital/jtf-meridian) for how the pieces fit together.
<!-- cognis:domains:end -->

## Install — every way, every platform

```bash
Expand All @@ -142,6 +152,32 @@ curl -fsSL https://raw.githubusercontent.com/cognis-digital/keyhunt/main/install
<div align="right"><a href="#top">↑ back to top</a></div>

<a name="related"></a>
<a name="verification"></a>
## Verification

[![tests](https://img.shields.io/badge/tests-13%20passing-2ea44f.svg)](AUDIT.md)

Every push is verified end-to-end. Latest audit (2026-06-12):

```text
tests : 13 passed, 0 failed, 0 errored
compile : all modules parse
cli : C:\Python314\python.exe: No module named https
package : https
```

<details><summary>CLI surface (<code>--help</code>)</summary>

```text
C:\Python314\python.exe: No module named https
```
</details>

Full machine-readable results: [`AUDIT.md`](AUDIT.md) · regenerate with `python -m https --help` + `pytest -q`.

<div align="right"><a href="#top">↑ back to top</a></div>


## Related Cognis tools

- [`fwxray`](https://github.com/cognis-digital/fwxray) — Diff two firmware images and surface exactly what changed: new binaries, flipped config flags, added certs, and shifted entropy regions.
Expand Down
2 changes: 1 addition & 1 deletion demos/01-basic/firmware_dump.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ---- extracted from /etc/init.d/rcS (busybox) ----
# default management login left in the image
telnetd -l /bin/sh -b 0.0.0.0 admin
telnetd -b 0.0.0.0 -l admin

# ---- /etc/config/httpd.conf ----
admin_user=admin
Expand Down
3 changes: 2 additions & 1 deletion keyhunt/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@ def _shannon_entropy(s: str) -> float:
description="Hardcoded password assignment",
severity="high",
regex=re.compile(
r"(?i)(?:^|[^A-Za-z0-9_])(?:passwd|password|pwd|admin_pass|root_pass)"
r"(?i)(?:^|[^A-Za-z0-9_])(?:passwd|password|pwd|"
r"(?:admin|root)_pass(?:word|wd)?)"
r"\s*[:=]\s*['\"]([^'\"\n]{3,64})['\"]"
),
secret_group=1,
Expand Down
Loading