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:
CyberSecurityUP
2026-07-10 17:28:40 -03:00
parent 98616bca0b
commit ce31478068
15 changed files with 197 additions and 35 deletions
+4 -4
View File
@@ -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(", "));
+12 -5
View File
@@ -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 -1
View File
@@ -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: