1d95a868a0
- 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
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
# 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()
|