Fix WEBRUNNER: attack_box format, self-contained CIDR, tools submenu, Tor, teardown

- deploy_webrunner.py: full rewrite following attack_box pattern exactly — auto-generate
  engagement name when blank, select_provider+gather_provider_config per provider (handles
  region selection), separate teardown_after_scan (default=yes) from enhanced_opsec,
  use_tor prompt, bundled YAML defaults, setup_logging+confirm_action+show_naming_relationship
- utils/cidr_resolver.py: self-contained RIR delegation file downloader/parser — downloads
  APNIC/ARIN/RIPE/LACNIC/AFRINIC, caches 24h in ~/.cache/c2itall/cidr/, no geo-scout dep
- utils/chunk_utils.py: remove geo-scout _try_load_geo_scout() dependency, use cidr_resolver
- modules/webrunner/inputs/countries.yaml: bundled default country list (no external dep)
- modules/webrunner/inputs/targets.yaml: bundled default scan targets and ports
- deploy.py: move WEBRUNNER from main menu (item 14) to tools submenu (item 10)
- configure_node.yml: install tor+proxychains4, start tor service, configure proxychains,
  wait for circuit establishment when use_tor=true
- run_scan.yml: prefix command with proxychains4 when use_tor=true
- providers/webrunner.yml: add Play 4 teardown — Linode DELETE + AWS terminate-instances
  using hostvars instance IDs stored during provisioning, conditional on teardown_after_scan
This commit is contained in:
n0mad1k
2026-04-30 16:45:41 -04:00
parent 5a0a49a9c8
commit 131543d148
9 changed files with 502 additions and 194 deletions
+3 -3
View File
@@ -47,7 +47,6 @@ def main_menu():
print(f"11) Deploy Privacy Server {COLORS['GREEN']}(Phantom — VPN, DNS, Matrix, etc.){COLORS['RESET']}")
print(f"12) Tools & Utilities")
print(f"13) Cleanup & Teardown")
print(f"14) WEBRUNNER {COLORS['CYAN']}(Distributed Geo-Targeted Recon){COLORS['RESET']}")
print(f"\n99) Exit")
choice = input(f"\nSelect an option: ")
@@ -75,8 +74,6 @@ def main_menu():
tools_menu()
elif choice == "13":
cleanup_menu()
elif choice == "14":
deploy_webrunner()
elif choice == "99":
print(f"\n{COLORS['GREEN']}Exiting C2ingRed. Goodbye!{COLORS['RESET']}")
sys.exit(0)
@@ -247,6 +244,7 @@ def tools_menu():
print(f"7) Ops Dashboard {COLORS['CYAN']}(Real-Time Engagement Monitor){COLORS['RESET']}")
print(f"8) Claude Bot {COLORS['CYAN']}(Matrix-Claude Code Bridge){COLORS['RESET']}")
print(f"9) Chaos C2 {COLORS['CYAN']}(Deploy / Manage Chaos teamserver){COLORS['RESET']}")
print(f"10) WEBRUNNER {COLORS['CYAN']}(Distributed Geo-Targeted Recon){COLORS['RESET']}")
print(f"99) Return to Main Menu")
choice = input(f"\nSelect an option: ")
@@ -279,6 +277,8 @@ def tools_menu():
chaos_module = import_module_from_path('deploy_chaos', chaos_module_path)
if chaos_module:
chaos_module.chaos_menu()
elif choice == "10":
deploy_webrunner()
elif choice == "99":
return
else: