Commit Graph

660 Commits

Author SHA1 Message Date
s-b-repo 3183e5d0cc bruteforce: expose connection retries (medusa -r) via setg bruteforce_retries
creds_helper previously hardcoded BruteforceConfig.max_retries = 1. 'setg
bruteforce_retries N' now sets the per-combo retry count for retryable
(transient/connection) errors; unset or 0 keeps the historical default of 1.
show options: + bruteforce_retries. Build: 0 errors, 0 warnings.
2026-06-13 17:06:10 +02:00
s-b-repo 40b2659092 bruteforce: hydra -x mask brute + resumable streamed wordlists
- bruteforce_mask (hydra -x): 'setg bruteforce_mask MIN:MAX:CHARSET' enumerates
  candidate passwords. CHARSET placeholders mirror hydra: a->a-z, A->A-Z, 1->0-9;
  any other char is literal. e.g. '1:4:a1' = 1-4 chars of [a-z0-9]. Generated via
  an odometer counter, hard-capped at MAX_COMBOS with a warning. Mask candidates
  run AFTER the wordlist (lowest yield); skipped in credential_file_only mode.
  New: utils::bruteforce::generate_mask_passwords + creds_helper wiring.

- bruteforce_resume (batch-level): 'setg bruteforce_resume y' makes a streamed
  large-wordlist run record the last fully-completed 500k batch, keyed by
  target+port+wordlist+size+mode, under ~/.rustsploit/checkpoints/<key>.bfr. An
  interrupted run skips already-tried batches on restart and clears the marker on
  clean completion / first success. New checkpoint markers: read/write/clear_
  bruteforce_marker, mirroring the existing seq-marker pattern.

show options: + bruteforce_mask / bruteforce_resume. Build: 0 errors, 0 warnings.
2026-06-13 16:54:57 +02:00
s-b-repo d0e07e8d97 bruteforce: cross-batch give-up, combo-file exclusive mode, stop-mode (host/user/all)
- Cross-batch give-up: run_bruteforce split into a wrapper + run_bruteforce_with_abort
  taking a shared abort flag; the streaming driver reuses one flag so a host the
  engine gives up on stops the WHOLE run instead of re-pausing every 500k batch.
- credential_file_only: 'setg credential_file_only y' makes the combo file the
  ONLY credential source (exact hydra -C; ignores user/pass wordlists + streaming).
- cred_stop_mode (host|user|all): host = stop whole host on first success
  (default); user = stop a username once its password is found, keep other users
  (medusa); all = find every valid credential (hydra default). Engine reads the
  setg (no BruteforceConfig field change -> no ripple across 14 callers).

show options: + credential_file_only / cred_stop_mode. Build: 0 errors, 0 warnings.
2026-06-13 16:41:58 +02:00
s-b-repo c3d0556f77 bruteforce: cap per-host concurrency in batch, wire combo-file (-C), expose delay/jitter, medusa host give-up
1. Batch concurrency cap: in a mass-scan fan-out, per-host bruteforce concurrency
   is capped (4) so it no longer multiplies with scheduler host-concurrency into
   an RLIMIT_NOFILE-exhausting socket count.
2. Combo-file (hydra -C): 'setg credential_file <user:pass file>' is loaded via
   the engine's load_credential_file and tried alongside defaults. Verified:
   2-pair file -> +2 attempts.
3. Delay/jitter (hydra -w): 'setg bruteforce_delay_ms' + 'setg bruteforce_jitter_ms'
   now feed BruteforceConfig.delay_ms/jitter_ms (were hardcoded 0).
4. Host give-up (medusa): run_bruteforce now aborts a host after MAX_LOCKOUT_PAUSES
   (3) consecutive-error lockout pauses with no success, instead of pausing-and-
   grinding forever. run_subnet_bruteforce already had give-up.

Also surfaced credential_file/bruteforce_delay_ms/bruteforce_jitter_ms in
'show options'. Build: 0 errors, 0 warnings.
Known limitation: streaming-path give-up is per-batch (not cross-batch).
2026-06-13 16:16:45 +02:00
s-b-repo 5968d25b58 creds bruteforce: hydra-style -e nsr (null/same/reversed) + expose wordlist/cred_extras options
Adds the highest-yield hydra feature to the shared creds_helper: for each
username, optionally also try an empty password (null), the username as its own
password (same), and the reversed username. Opt-in via 'setg cred_extras' with a
subset of n/s/r (e.g. nsr); default off. Appended to the defaults-first rows so
they run before the wordlist; the engine's existing combo dedup avoids retrying
a pair already in defaults. Skipped for password-only services.

Also surfaced username_wordlist/password_wordlist/cred_extras in 'show options'.

Verified: elasticsearch_bruteforce + cred_extras=nsr + 1 username -> 6 defaults +
null + reversed (same deduped against the admin/admin default) = 8 attempts.
2026-06-13 15:55:28 +02:00
s-b-repo e6736530f0 creds bruteforce: run built-in defaults when no wordlist is set
creds_helper required a password wordlist (cfg_prompt_existing_file with no
default), so in a mass scan with no 'setg password_wordlist' every host errored
'Missing required prompt key' before the module's built-in DEFAULTS were ever
tried — making bruteforce sweeps look stuck/broken (the RTSP report). Wordlists
are now OPTIONAL when the module ships defaults: a missing wordlist falls back to
defaults-only instead of erroring. Modules with no defaults (postgres/mysql/snmp)
still require a wordlist. Verified: batch-mode elasticsearch_bruteforce with no
wordlist runs its 6 defaults and completes (was: error).
2026-06-13 14:47:50 +02:00
s-b-repo bc104901d9 shell: don't show a scary error when the history file doesn't exist yet
First run (or a clean ~/.rustsploit) has no history file; a NotFound on
rl.load_history is normal and was printing '[!] Failed to load history: No such
file or directory'. Now NotFound is logged at debug; only real failures
(permissions, corruption) are surfaced loudly.
2026-06-13 02:34:43 +02:00
s-b-repo 94899781d3 Framework hardening: retry-then-continue, panic fixes, WS/MCP bug fixes, no-swallow sweep + loud error surfacing; docs + release notes
Hardening (non-module framework files):
- Retry-then-continue: bounded per-host retry on transient failures across all 4
  mass-scan fan-outs; '10 errors -> abort sweep' softened to warn-and-continue
- Crash fixes: shell completer char-boundary guard; unreachable! -> bail!
- WS oversize-frame desync fixed (was bricking the PQ AEAD ratchet); MCP tenant
  job list/kill, out-of-range port, non-string option now correct/errored
- No silent error swallowing: swept framework files, every dropped error now
  bound + surfaced (warn for logged-only/data-loss, debug for already-propagated
  or aggregated per-host); removed _ => {} and Err(_)/|_| discards

Docs + release: README + docs/ updated for the release; RELEASE_NOTES.txt
section 6d added; new RELEASE_GITHUB.txt (GitHub release body).

Build: 0 errors, 0 warnings, 40/40 targeted tests green.
2026-06-13 02:29:12 +02:00
s-b-repo 05cfdc6d22 Ports (rmcp MCP SDK, Recog, JARM/JA3, SecLists) + mass-scan fixes + HTTP pooling + per-run output auto-save
Ports:
- MCP server migrated to official rmcp SDK (v1.7); all 29 tools/7 resources preserved
- Recog (Rapid7) fingerprint engine + DBs, wired into service_scanner
- JARM + JA3/JA3S TLS fingerprinting (tls_fingerprint) + jarm_scan module
- SecLists checksum-pinned wordlist catalog

Fixes / features:
- Full-internet sweep host-cap consistency
- Pre-config confirm-before-harvest + ModuleCtx.prompt_only mode; service_scanner
  batch-mode output gating
- HTTP client connection-pool reuse (cached) + bounded pool_idle_timeout
- show options: +scan_order/exclusions/target_rps/module_rps
- NEW: per-run output auto-save to ~/.rustsploit/loot/<module> <time> results.txt
  (append mode, all stdout+stderr; src/results_sink.rs)
- docs: drop stale check()/CheckResult + build.rs references
- assorted module additions + tommy interactive guide

Build: restore Cargo.lock (clean clone was unbuildable without it: transitive
cookie/time conflict). Working dir: clean build (0 warnings), 40/40 tests green.
2026-06-13 01:28:52 +02:00
S.B 929d39ebc4 Delete Cargo.lock
useless junk
2026-06-05 11:27:53 +02:00
S.B 8a8b7e8e5f Sync local dev: new modules + framework hardening & feature fixes
Modules:
- Refactor wpair (WhisperPair / CVE-2025-36911) into a module directory
  (crypto/db/gatt/protocol + model_ids.csv), replacing the single wpair.rs
- Add h3c_bmc suite (firewall/ipmi-hash/kvm-probe/redfish dumps),
  fortinet SSLVPN/magic-token, sharepoint_doc_harvest, m365_activesync_spray,
  ldap_anon_spray, php/git/tapestry webapp modules, h3c_cloudos_api_enum, etc.

Framework hardening / feature fixes:
- Background jobs capture module output (drainer) + wire progress counters
  (ScanCounters); tenant jobs record terminal status on their own JobManager
- SSRF: ssrf_gate distinguishes SSRF_BLOCKED vs TARGET_ERROR; fail-closed
  REST/WS/MCP dispatch; tenant-tagged PQ lifecycle events
- Scheduler: exclusions + service-port precheck on CIDR/file fan-out; accurate
  considered/skipped counters; cancellation-safe permit acquisition
- Mass scan works via shell/CLI/API/MCP (added MCP run_module background-job
  option so long scans don't hit the tool-call timeout)
- Bruteforce workers re-scope OUTPUT_BUFFER; cross-product combo default
- Stores: cred dedup/cap/scrub, loot scrub, workspace protocol scrub,
  spool explicit-owner + write_raw (no-newline spooling)
- Error handling: removed let _/discarded-error patterns; failures are
  distinguishable from negatives
- Removed dead check/CheckResult subsystem, OutputAccumulator, and the no-op
  --output-format flag; CredEntry.valid wired (creds invalidate/validate);
  typed HostUp/ServiceDetected events
- Add .gitignore (build artifacts, local config, engagement data)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 16:44:32 +02:00
S.B f229c3bd6c major restructure and future proofin 2026-05-24 20:08:19 +02:00
S.B 61816e04ab majot fixes 2026-05-10 20:28:09 +02:00
S.B c10eabe496 update and other bug fixes check changelog 2026-05-04 23:18:34 +02:00
S.B 6894c7523c Add alternative command for Bluetooth feature
Added alternative command for running with Bluetooth feature.
2026-04-22 14:09:17 +02:00
S.B 4403218c05 Update panos_authbypass_cve_2025_0108.rs 2026-04-22 14:05:57 +02:00
S.B a373f07870 Update README formatting and section headers 2026-04-22 14:04:32 +02:00
S.B ba92aa5d9e Update README with Bluetooth configuration instructions
Added instructions for turning Bluetooth ON and OFF using cargo commands.
2026-04-22 14:04:05 +02:00
S.B 4efe2a974a Merge pull request #42 from yonasBSD/yonasBSD
fix: Build on FreeBSD.
2026-04-22 14:03:40 +02:00
Yonas 699827a054 fix: Build on FreeBSD. 2026-04-21 18:36:41 -04:00
S.B 799ded9523 Update README.md 2026-04-21 23:21:18 +02:00
S.B ab748265a0 Update Cargo.toml v0.4.9 2026-04-21 21:25:17 +02:00
S.B 22852e571d Merge pull request #40 from s-b-repo/enic-enamle
Enic enamle
2026-04-21 21:24:35 +02:00
S.B 5667949990 Delete src/modules/scanners/amplification_scanner.rs 2026-04-21 20:34:25 +02:00
S.B a2b829f89c Delete src/modules/scanners/banner_grabber.rs 2026-04-21 20:33:54 +02:00
S.B c9b3d331e7 major update read changelog 2026-04-21 17:01:52 +02:00
S.B bb964cc062 massived updates and fixe 2026-04-13 23:06:31 +02:00
S.B cdaea5221e Update Getting-Started.md 2026-04-13 14:37:27 +02:00
S.B 64414efcf8 Update Getting-Started.md 2026-04-13 14:34:37 +02:00
S.B 1fbcf6d4b5 Update Getting-Started.md 2026-04-13 14:34:18 +02:00
S.B 61863cc301 bug fixes 2026-04-08 00:38:29 +02:00
S.B 906808f392 bug patching 2026-04-07 15:30:18 +02:00
S.B b2c6137389 Merge pull request #39 from s-b-repo/delta-wolf
Delta wolf
v0.4.8
2026-04-07 07:43:44 +02:00
S.B e232427464 Delete test_servers.py 2026-04-07 07:38:59 +02:00
S.B ab17b25589 Delete test_api_modules.sh 2026-04-07 07:38:46 +02:00
S.B 4762c3cb7f Delete fuzz_api.py 2026-04-07 07:38:33 +02:00
S.B 3d37c0c67d Delete todo.txt 2026-04-07 01:34:19 +02:00
S.B 8b69bb6234 detailed improvement
more info will be in change log
2026-04-07 01:26:05 +02:00
S.B f51d7c111b unifying more stuff and new docs
adding unify support for api and prompt usage and improving. also adding some preformance improvements new documentations and improvement
2026-03-24 16:17:10 +02:00
S.B 587f7a5163 api support improvements and more read
added api support migrated some other stuff to native modules for speed and also because some of them are not getting updates etc UWU also fixed bugs and also check changelog for info
2026-03-22 19:03:35 +02:00
S.B e0b1fbd06c Merge branch 'delta-wolf' of https://github.com/s-b-repo/rustsploit into delta-wolf 2026-03-19 17:35:22 +02:00
S.B fb9ae7f3c2 api migrations and migration from legacy stuff and fixing shiz
migrated away from free rdp lots of improvements there and created native libs feel free to use native libs but contribute  if you improve please add more wider api support and cli and shell payload mutator for api endpoint going to do that   for payloads gens and other stuff later and im also planning some more bug changes and improvement check the api template
2026-03-19 17:35:15 +02:00
S.B ebeb15e2b7 Update README.md 2026-03-16 11:04:56 +02:00
S.B 219f0710eb Merge branch 'delta-wolf' of https://github.com/s-b-repo/rustsploit into delta-wolf 2026-03-16 10:49:03 +02:00
S.B c2c03295d5 updating readme 2026-03-16 10:48:55 +02:00
S.B 12402c61c4 Update README.md 2026-03-16 10:45:50 +02:00
S.B 22aea2de44 qaultity improvements a fix up
unified default prompts and improved scanning and other target selction systems cleaning up bugs and further improvement read change logs
2026-03-09 01:55:23 +02:00
S.B 347fbd71ec Add quick run command for Debian 13
Added quick run command for Debian 13 to README.
2026-03-04 18:23:11 +02:00
S.B c35bcf50c5 delta wolf spawns
added my to do list this is a backup of progress so far fixed alot fo stuff check change log redisgning the way api runs and works fixing modules ooms adding extra security on prompt handling change some stuff this version is not stable yet so please do be aware
2026-03-04 18:19:35 +02:00
S.B ea1112ef4d Update README.md 2026-02-25 15:23:16 +02:00