Initial public portfolio release

Sanitized version of red team infrastructure automation platform.
Operational content (implant pipelines, lures, credential capture)
replaced with documented stubs. Architecture and infrastructure
automation code intact.
This commit is contained in:
Operator
2026-06-23 16:12:14 -04:00
commit 0799bfbae8
239 changed files with 40012 additions and 0 deletions
+121
View File
@@ -0,0 +1,121 @@
import os
import subprocess
import argparse
TOOLS_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../tools/') # Directory where all tools will be installed
def install_tool(tool_name, repo_url):
tool_path = os.path.join(TOOLS_DIR, tool_name)
if os.path.exists(tool_path):
print(f"{tool_name} is already installed.")
return
# Clone the repository
print(f"Cloning {repo_url}...")
subprocess.run(['git', 'clone', repo_url, tool_path], check=True)
# Set up a virtual environment if necessary
venv_path = os.path.join(tool_path, 'venv')
print(f"Setting up virtual environment for {tool_name}...")
subprocess.run(['python3', '-m', 'venv', venv_path], check=True)
# Activate virtual environment and install dependencies
requirements_file = os.path.join(tool_path, 'requirements.txt')
if os.path.exists(requirements_file):
print(f"Installing dependencies for {tool_name}...")
pip_bin = os.path.join(venv_path, 'bin', 'pip')
subprocess.run([pip_bin, 'install', '-r', requirements_file], check=True)
print(f"{tool_name} installed successfully.")
def install_tools_list(tools_list):
for tool_name, repo_url in tools_list:
install_tool(tool_name, repo_url)
def update_tool(tool_name):
tool_path = os.path.join(TOOLS_DIR, tool_name)
if not os.path.exists(tool_path):
print(f"{tool_name} is not installed.")
return
# Pull the latest changes
print(f"Updating {tool_name}...")
subprocess.run(['git', '-C', tool_path, 'pull'], check=True)
# Update dependencies if necessary
venv_path = os.path.join(tool_path, 'venv')
requirements_file = os.path.join(tool_path, 'requirements.txt')
if os.path.exists(requirements_file):
print(f"Updating dependencies for {tool_name}...")
pip_bin = os.path.join(venv_path, 'bin', 'pip')
subprocess.run([pip_bin, 'install', '-r', requirements_file], check=True)
print(f"{tool_name} updated successfully.")
def remove_tool(tool_name):
tool_path = os.path.join(TOOLS_DIR, tool_name)
if not os.path.exists(tool_path):
print(f"{tool_name} is not installed.")
return
# Remove the tool directory
print(f"Removing {tool_name}...")
subprocess.run(['rm', '-rf', tool_path], check=True)
print(f"{tool_name} removed successfully.")
def show_status(tool_name):
tool_path = os.path.join(TOOLS_DIR, tool_name)
if os.path.exists(tool_path):
print(f"{tool_name} is installed.")
else:
print(f"{tool_name} is not installed.")
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Tool Manager for Freebird Framework')
subparsers = parser.add_subparsers(dest='command', help='Subcommands')
# Install command
install_parser = subparsers.add_parser('install', help='Install a tool')
install_parser.add_argument('tool_name', help='Name of the tool to install')
install_parser.add_argument('repo_url', help='Git repository URL of the tool')
# Install multiple tools
install_list_parser = subparsers.add_parser('install-list', help='Install a list of tools')
install_list_parser.add_argument('file', help='Path to a file containing the list of tools and their repositories')
# Update command
update_parser = subparsers.add_parser('update', help='Update a tool')
update_parser.add_argument('tool_name', help='Name of the tool to update')
# Remove command
remove_parser = subparsers.add_parser('remove', help='Remove a tool')
remove_parser.add_argument('tool_name', help='Name of the tool to remove')
# Status command
status_parser = subparsers.add_parser('status', help='Show the status of a tool')
status_parser.add_argument('tool_name', help='Name of the tool')
args = parser.parse_args()
if args.command == 'install':
install_tool(args.tool_name, args.repo_url)
elif args.command == 'install-list':
# Read the file to get a list of tools to install
tools = []
with open(args.file, 'r') as f:
for line in f:
name, url = line.strip().split(',')
tools.append((name.strip(), url.strip()))
install_tools_list(tools)
elif args.command == 'update':
update_tool(args.tool_name)
elif args.command == 'remove':
remove_tool(args.tool_name)
elif args.command == 'status':
show_status(args.tool_name)
else:
parser.print_help()