mirror of
https://github.com/CyberSecurityUP/NeuroSploit.git
synced 2026-07-25 20:20:52 +02:00
v3.6.2: stream Codex tool-by-tool + capture agent commands in /logs & /status
- Drive `codex exec --json` and parse its JSONL event stream into the same categorized live feed as Claude Code (exec/edit/tool/net/tokens), so recon and exploitation are visible as each command runs instead of a silent black box. - Fix the activity feed to keep per-agent tool events (commands, network, files, findings) and only filter model reasoning + token telemetry, so /logs shows the real command trail and /status 'last:' is a true sign-of-life. - Surface failed internal commands as 'exec: (exit N)'; keep Codex auth/rate detection from stderr.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
//! NeuroSploit v3.6.1 — interactive harness + CLI (`run` / `whitebox` / `agents` / `models`).
|
||||
//! NeuroSploit v3.6.2 — interactive harness + CLI (`run` / `whitebox` / `agents` / `models`).
|
||||
|
||||
mod repl;
|
||||
mod tui;
|
||||
@@ -11,8 +11,8 @@ use std::path::{Path, PathBuf};
|
||||
#[command(
|
||||
name = "neurosploit",
|
||||
version,
|
||||
about = "NeuroSploit v3.6.1 — multi-model autonomous pentest harness",
|
||||
long_about = "NeuroSploit v3.6.1 — a Rust multi-model harness that drives a pool of LLMs \
|
||||
about = "NeuroSploit v3.6.2 — multi-model autonomous pentest harness",
|
||||
long_about = "NeuroSploit v3.6.2 — a Rust multi-model harness that drives a pool of LLMs \
|
||||
(API key or local subscription: Claude/Codex/Gemini/Grok) to autonomously test a target. \
|
||||
After recon it INTELLIGENTLY selects only the agents matching the discovered surface, runs \
|
||||
them in parallel, then validates every finding by cross-model voting before reporting.\n\n\
|
||||
@@ -721,7 +721,7 @@ pub(crate) fn spawn_engagement(base: &Path, mut cfg: RunConfig, mcp: bool, mode:
|
||||
println!(" │ ua : {ua}");
|
||||
write_status(&workdir, "running", &format!("\"target\":{:?}", cfg.target));
|
||||
|
||||
println!(" ┌─ NeuroSploit v3.6.1 · by Joas A Santos & Red Team Leaders");
|
||||
println!(" ┌─ NeuroSploit v3.6.2 · by Joas A Santos & Red Team Leaders");
|
||||
println!(" │ run id : {run_id}");
|
||||
println!(" │ target : {}", cfg.target);
|
||||
println!(" │ models : {}", cfg.models.join(", "));
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//! NeuroSploit v3.6.1 — interactive session (Claude-Code / Codex / Cursor-CLI style).
|
||||
//! NeuroSploit v3.6.2 — interactive session (Claude-Code / Codex / Cursor-CLI style).
|
||||
//!
|
||||
//! Launched when `neurosploit` runs with no subcommand. A persistent REPL with
|
||||
//! real line editing (arrow-key history recall, Ctrl-A/E/K, paste), model
|
||||
@@ -52,9 +52,16 @@ impl RunLive {
|
||||
fn ingest(&mut self, line: &str) {
|
||||
let low = line.to_lowercase();
|
||||
self.lines += 1;
|
||||
// Keep a compact activity trail for /logs and the /status sign-of-life
|
||||
// (skip the machine-only finding_json/ai/tokens noise).
|
||||
if !low.starts_with("finding_json:") && !low.starts_with("@") && !low.contains("ai:") && !low.starts_with("tokens:") {
|
||||
// Keep a compact activity trail for /logs and the /status sign-of-life.
|
||||
// Streamed agent events are tagged "@label <event>": keep the actionable
|
||||
// ones (commands, net, tools, file edits, phases) so the operator sees
|
||||
// exactly what each agent is running — drop only long model reasoning
|
||||
// (ai:), token telemetry (tokens:), and machine JSON (finding_json:).
|
||||
let payload = line.strip_prefix('@')
|
||||
.and_then(|r| r.split_once(' ').map(|(_, rest)| rest))
|
||||
.unwrap_or(line);
|
||||
let plow = payload.to_lowercase();
|
||||
if !low.starts_with("finding_json:") && !plow.starts_with("ai:") && !plow.starts_with("tokens:") {
|
||||
let clean: String = line.chars().take(160).collect();
|
||||
self.last = clean.clone();
|
||||
self.feed.push(clean);
|
||||
@@ -346,7 +353,7 @@ pub async fn repl(base: &Path) -> anyhow::Result<()> {
|
||||
let backends = harness::installed_cli_backends();
|
||||
println!("\x1b[1m");
|
||||
println!(" ███╗ ██╗███████╗██╗ ██╗██████╗ ██████╗");
|
||||
println!(" ████╗ ██║██╔════╝██║ ██║██╔══██╗██╔═══██╗ NeuroSploit v3.6.1");
|
||||
println!(" ████╗ ██║██╔════╝██║ ██║██╔══██╗██╔═══██╗ NeuroSploit v3.6.2");
|
||||
println!(" ██╔██╗ ██║█████╗ ██║ ██║██████╔╝██║ ██║ interactive harness");
|
||||
println!(" ██║╚██╗██║██╔══╝ ██║ ██║██╔══██╗██║ ██║ by Joas A Santos");
|
||||
println!(" ██║ ╚████║███████╗╚██████╔╝██║ ██║╚██████╔╝ & Red Team Leaders");
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//! NeuroSploit v3.6.1 — TUI "Mission Control" mode.
|
||||
//! NeuroSploit v3.6.2 — TUI "Mission Control" mode.
|
||||
//!
|
||||
//! Concurrent panels that update live while the engagement runs in the
|
||||
//! background, with a composer input that stays active during execution:
|
||||
|
||||
Reference in New Issue
Block a user