mirror of
https://github.com/nox-project/nox-framework.git
synced 2026-06-08 16:07:17 +00:00
release: v1.0.3
- Fix Avalanche Engine: paste pattern identifiers now harvested as pivot seeds - Bump version to 1.0.3
This commit is contained in:
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
All notable changes to NOX are documented here.
|
All notable changes to NOX are documented here.
|
||||||
|
|
||||||
|
## [1.0.3] — 2026-04-15
|
||||||
|
|
||||||
|
### Engine
|
||||||
|
- **Fixed:** Recursive Avalanche Engine — identifiers extracted from paste content (`paste["patterns"]`) were not being harvested as pivot seeds. Bare emails and other identifiers found in IntelX paste bodies that lacked a `:password` separator were silently dropped from the pivot queue. All `scrape_res["pastes"]` pattern matches are now fed into `_extract_ids_from_text` and reinjected consistently with `credentials`, `telegram`, and `dork_misconfigs`.
|
||||||
|
|
||||||
## [1.0.2] — 2026-04-14
|
## [1.0.2] — 2026-04-14
|
||||||
|
|
||||||
### Sources
|
### Sources
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
**Cyber Threat Intelligence Framework**
|
**Cyber Threat Intelligence Framework**
|
||||||
|
|
||||||
[](https://github.com/nox-project/nox-framework/releases/tag/v1.0.2)
|
[](https://github.com/nox-project/nox-framework/releases/tag/v1.0.3)
|
||||||
[](https://www.python.org/)
|
[](https://www.python.org/)
|
||||||
[](LICENSE.txt)
|
[](LICENSE.txt)
|
||||||
[](https://www.kali.org/)
|
[](https://www.kali.org/)
|
||||||
|
|||||||
+2
-2
@@ -1,10 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# NOX v1.0.2 — .deb build script (FPM)
|
# NOX v1.0.3 — .deb build script (FPM)
|
||||||
# Requires: fpm → gem install fpm
|
# Requires: fpm → gem install fpm
|
||||||
|
|
||||||
VERSION="1.0.2"
|
VERSION="1.0.3"
|
||||||
PKG_NAME="nox-cli"
|
PKG_NAME="nox-cli"
|
||||||
ARCH="all"
|
ARCH="all"
|
||||||
OUT_DIR="dist"
|
OUT_DIR="dist"
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ except Exception:
|
|||||||
VERSION = _sp2.check_output(["dpkg-query", "-W", "-f=${Version}", "nox-cli"], stderr=_sp2.DEVNULL).decode().strip() or VERSION
|
VERSION = _sp2.check_output(["dpkg-query", "-W", "-f=${Version}", "nox-cli"], stderr=_sp2.DEVNULL).decode().strip() or VERSION
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
BUILD_DATE = "2026-04-14"
|
BUILD_DATE = "2026-04-15"
|
||||||
|
|
||||||
# ── Smart Path Layout ──────────────────────────────────────────────────
|
# ── Smart Path Layout ──────────────────────────────────────────────────
|
||||||
HOME_NOX = Path.home() / ".nox"
|
HOME_NOX = Path.home() / ".nox"
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "nox-cli"
|
name = "nox-cli"
|
||||||
version = "1.0.2"
|
version = "1.0.3"
|
||||||
description = "Advanced Asynchronous Cyber Threat Intelligence Framework"
|
description = "Advanced Asynchronous Cyber Threat Intelligence Framework"
|
||||||
readme = { file = "README.md", content-type = "text/markdown" }
|
readme = { file = "README.md", content-type = "text/markdown" }
|
||||||
license = { text = "Apache-2.0" }
|
license = { text = "Apache-2.0" }
|
||||||
|
|||||||
@@ -362,6 +362,13 @@ class AvalancheScanner:
|
|||||||
for val, vqtype in _extract_ids_from_text(raw, exclude=asset):
|
for val, vqtype in _extract_ids_from_text(raw, exclude=asset):
|
||||||
if vqtype in _PIVOT_TYPES:
|
if vqtype in _PIVOT_TYPES:
|
||||||
new_ids.append((val, vqtype, "scrape", ref))
|
new_ids.append((val, vqtype, "scrape", ref))
|
||||||
|
for paste in (scrape_res or {}).get("pastes", []):
|
||||||
|
ref = f"paste:{paste.get('id', paste.get('site', 'paste'))}"
|
||||||
|
for matches in (paste.get("patterns") or {}).values():
|
||||||
|
for m in (matches or []):
|
||||||
|
for val, vqtype in _extract_ids_from_text(str(m), exclude=asset):
|
||||||
|
if vqtype in _PIVOT_TYPES:
|
||||||
|
new_ids.append((val, vqtype, "scrape", ref))
|
||||||
for tg in (scrape_res or {}).get("telegram", []):
|
for tg in (scrape_res or {}).get("telegram", []):
|
||||||
ref = f"t.me/{tg.get('channel','')}"
|
ref = f"t.me/{tg.get('channel','')}"
|
||||||
for val, vqtype in _extract_ids_from_text(tg.get("text", ""), exclude=asset):
|
for val, vqtype in _extract_ids_from_text(tg.get("text", ""), exclude=asset):
|
||||||
|
|||||||
Reference in New Issue
Block a user