Fix 11 bugs found in full codebase review

- deploy_phishing.py: undefined extra_vars on orchestration playbook
- freebird/main_menu.py: set_variable() called as function, is a method; fix to config.prompt_set_variable()
- freebird/tool_manager.py: shell=True with f-string paths; replace with direct pip binary call
- certipy-enum.py: password exposed in process list and logs; pass via env var
- cleanup_engine.py: load_vars_file() called with path string, expects provider name
- ioc-u.py: scapy import not guarded; tool crashed if scapy missing
- um_ops.py + um-vault.py: SQL table names f-stringed directly; quote identifiers
- ops-logger.sh: 63-line duplicate function block; removed second copy; quote config_script var
- recon_tools.py: ir-sandbox + link-sandbox not in TOOLS dict; forensics menu option 5 hidden from user
- um-crack.py: missing --scope flag inconsistent with all other Umbra tools
- heartbeat_ingest.py: openssl subprocess not catching FileNotFoundError; wrap with clear error
This commit is contained in:
n0mad1k
2026-04-01 22:11:01 -04:00
parent 2cc2b0f9a8
commit 1d95a868a0
12 changed files with 4034 additions and 84 deletions
+53
View File
@@ -0,0 +1,53 @@
# core/main_menu.py
from InquirerPy import inquirer
from core.utils import clear_screen
from core.config import config
from framework.reconnaissance.reconnaissance_menu import reconnaissance_menu # Corrected path for Reconnaissance Menu
# Main Menu Function
def main_menu():
while True:
clear_screen() # Clear screen before displaying the main menu
selection = inquirer.select(
message="Select a Tactic:",
choices=[
"Reconnaissance",
"Initial Access",
"Execution",
"Persistence",
"Privilege Escalation",
"Defense Evasion",
"Credential Access",
"Discovery",
"Lateral Movement",
"Collection",
"Command and Control",
"Exfiltration",
"Impact",
"Resource Development",
"Set Global Variable",
"Show Global Variables",
"Exit",
],
qmark="", # Remove question mark
pointer="👾" # Customize the pointer
).execute()
# Call relevant function based on user selection
if selection == "Exit":
print("Exiting...")
break
elif selection == "Set Global Variable":
config.prompt_set_variable()
elif selection == "Show Global Variables":
config.show_variables()
elif selection == "Reconnaissance":
reconnaissance_menu() # Navigate to Reconnaissance Menu
else:
# Handle options under construction
print("This feature is under construction. Returning to the main menu...")
input("Press Enter to continue...")
if __name__ == "__main__":
main_menu()