├── .dockerignore ├── .github └── workflows │ └── docker.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── agent ├── attack_agent.py └── tools.py ├── assets ├── dark.js ├── favicon.ico ├── halberd.css ├── halberd_attack_view_v1.png ├── halberd_attack_view_v2_0.png ├── halberd_logo_banner.jpg └── home.css ├── attack_techniques ├── __init__.py ├── aws │ ├── __init__.py │ ├── aws_assume_iam_role.py │ ├── aws_delete_dynamodb_table.py │ ├── aws_delete_s3_bucket.py │ ├── aws_delete_s3_bucket_object.py │ ├── aws_disable_cloudtrail_logging.py │ ├── aws_enumerate_cloudtrail_trails.py │ ├── aws_enumerate_dynamodb_tables.py │ ├── aws_enumerate_ec2_instances.py │ ├── aws_enumerate_guardduty_detectors.py │ ├── aws_enumerate_iam_policies.py │ ├── aws_enumerate_iam_roles.py │ ├── aws_enumerate_iam_users.py │ ├── aws_enumerate_s3_bucket_objects.py │ ├── aws_enumerate_s3_buckets.py │ ├── aws_establish_access.py │ ├── aws_exfil_s3_bucket.py │ ├── aws_expose_s3_bucket_public.py │ ├── aws_get_bucket_acl.py │ ├── aws_modify_guardduty_trusted_ip.py │ ├── aws_recon_account_authorization_info.py │ ├── aws_recon_ec2_over_permissive_sg.py │ ├── aws_recon_iam_user_info.py │ ├── aws_recon_risky_iam_policy_users.py │ └── aws_recon_s3_public_buckets.py ├── azure │ ├── __init__.py │ ├── azure_abuse_azure_policy_to_disable_logging.py │ ├── azure_assign_role.py │ ├── azure_create_new_resource_group.py │ ├── azure_delete_vm.py │ ├── azure_deploy_malicious_extension_on_vm.py │ ├── azure_disable_resource_diagnostic_logging.py │ ├── azure_disable_storage_account_firewall.py │ ├── azure_dump_automation_accounts.py │ ├── azure_dump_keyvault.py │ ├── azure_dump_storage_account.py │ ├── azure_elevate_access_from_entra_id.py │ ├── azure_enable_storage_account_public_access.py │ ├── azure_enumerate_assigned_roles.py │ ├── azure_enumerate_key_vaults.py │ ├── azure_enumerate_logic_apps.py │ ├── azure_enumerate_resource_groups.py │ ├── azure_enumerate_resources.py │ ├── azure_enumerate_storage_accounts.py │ ├── azure_enumerate_storage_containers.py │ ├── azure_enumerate_vm.py │ ├── azure_enumerate_vm_in_vmss.py │ ├── azure_enumerate_vmss.py │ ├── azure_establish_access_as_app.py │ ├── azure_establish_access_as_user.py │ ├── azure_establish_access_via_device_code.py │ ├── azure_execute_script_on_vm.py │ ├── azure_exfil_storage_account_container.py │ ├── azure_exfil_vm_disk.py │ ├── azure_expose_storage_account_container_public.py │ ├── azure_extract_cache_tokens.py │ ├── azure_generate_storage_container_sas.py │ ├── azure_generate_vm_disk_sas_url.py │ ├── azure_mass_resource_deletion.py │ ├── azure_modify_keyvault_access.py │ ├── azure_modify_logic_app_trigger.py │ ├── azure_password_spray.py │ ├── azure_remove_role_asignment.py │ └── azure_scan_logic_apps_for_credentials.py ├── base_technique.py ├── entra_id │ ├── __init__.py │ ├── entra_abuse_family_refresh_token.py │ ├── entra_add_trusted_ip_config.py │ ├── entra_add_user_to_group.py │ ├── entra_assign_app_permission.py │ ├── entra_assign_directory_role.py │ ├── entra_assign_license.py │ ├── entra_bruteforce_graph_apps.py │ ├── entra_bruteforce_password.py │ ├── entra_check_user_validity.py │ ├── entra_create_backdoor_account.py │ ├── entra_create_new_app.py │ ├── entra_device_code_flow_auth.py │ ├── entra_enumerate_app_permissions.py │ ├── entra_enumerate_apps.py │ ├── entra_enumerate_cap.py │ ├── entra_enumerate_directory_roles.py │ ├── entra_enumerate_groups.py │ ├── entra_enumerate_licenses.py │ ├── entra_enumerate_one_drive.py │ ├── entra_enumerate_sp_site.py │ ├── entra_enumerate_users.py │ ├── entra_establish_access_as_app.py │ ├── entra_establish_access_as_user.py │ ├── entra_establish_access_with_token.py │ ├── entra_generate_app_credentials.py │ ├── entra_invite_external_user.py │ ├── entra_password_spray.py │ ├── entra_recon_role_info.py │ ├── entra_recon_tenant_info.py │ ├── entra_recon_user_info.py │ ├── entra_remove_account_access.py │ └── entra_remove_user_license.py ├── gcp │ ├── __init.py │ ├── gcp_enumerate_cloud_storage_buckets.py │ ├── gcp_enumerate_cloud_storage_objects.py │ ├── gcp_enumerate_compute_engine_instances.py │ ├── gcp_establish_access_as_au_application_default.py │ ├── gcp_establish_access_as_sa_private_key.py │ ├── gcp_establish_access_as_sa_short_lived_token.py │ ├── gcp_exfilterate_cloud_storage_objects.py │ ├── gcp_expose_public_cloud_storage.py │ └── gcp_persistence_via_ssh_key_addition.py ├── m365 │ ├── __init__.py │ ├── m365_add_external_user_to_teams.py │ ├── m365_add_team_member.py │ ├── m365_deploy_email_deletion_rule.py │ ├── m365_deploy_mail_forwarding_rule.py │ ├── m365_enumerate_team_members.py │ ├── m365_enumerate_teams.py │ ├── m365_exfil_sharepoint_data.py │ ├── m365_exfil_user_mailbox.py │ ├── m365_search_outlook_messages.py │ ├── m365_search_teams_chat.py │ ├── m365_search_teams_messages.py │ ├── m365_search_user_one_drive.py │ └── m365_send_outlook_email.py └── technique_registry.py ├── cli.py ├── core ├── Constants.py ├── Functions.py ├── __init__.py ├── aws │ ├── __init__.py │ └── aws_session_manager.py ├── azure │ ├── __init__.py │ └── azure_access.py ├── bootstrap.py ├── entra │ ├── __init__.py │ ├── entra_token_manager.py │ ├── graph_request.py │ └── token_info.py ├── gcp │ └── gcp_access.py ├── logging │ ├── __init__.py │ ├── logger.py │ ├── logging_config.yml │ └── report.py ├── output_manager │ ├── __init__.py │ └── output_manager.py └── playbook │ ├── __init__.py │ ├── playbook.py │ ├── playbook_error.py │ └── playbook_step.py ├── docker-compose.yml ├── halberd.py ├── pages ├── __init__.py ├── attack.py ├── attack_agent.py ├── attack_analyse.py ├── attack_history.py ├── automator.py ├── dashboard │ ├── __init__.py │ └── entity_map.py ├── home.py └── schedules.py ├── requirements.txt ├── run.py └── version.py /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/workflows/docker.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/.github/workflows/docker.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/README.md -------------------------------------------------------------------------------- /agent/attack_agent.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/agent/attack_agent.py -------------------------------------------------------------------------------- /agent/tools.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/agent/tools.py -------------------------------------------------------------------------------- /assets/dark.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/assets/dark.js -------------------------------------------------------------------------------- /assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/assets/favicon.ico -------------------------------------------------------------------------------- /assets/halberd.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/assets/halberd.css -------------------------------------------------------------------------------- /assets/halberd_attack_view_v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/assets/halberd_attack_view_v1.png -------------------------------------------------------------------------------- /assets/halberd_attack_view_v2_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/assets/halberd_attack_view_v2_0.png -------------------------------------------------------------------------------- /assets/halberd_logo_banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/assets/halberd_logo_banner.jpg -------------------------------------------------------------------------------- /assets/home.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/assets/home.css -------------------------------------------------------------------------------- /attack_techniques/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/__init__.py -------------------------------------------------------------------------------- /attack_techniques/aws/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /attack_techniques/aws/aws_assume_iam_role.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_assume_iam_role.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_delete_dynamodb_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_delete_dynamodb_table.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_delete_s3_bucket.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_delete_s3_bucket.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_delete_s3_bucket_object.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_delete_s3_bucket_object.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_disable_cloudtrail_logging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_disable_cloudtrail_logging.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_cloudtrail_trails.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_cloudtrail_trails.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_dynamodb_tables.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_dynamodb_tables.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_ec2_instances.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_ec2_instances.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_guardduty_detectors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_guardduty_detectors.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_iam_policies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_iam_policies.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_iam_roles.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_iam_roles.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_iam_users.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_iam_users.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_s3_bucket_objects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_s3_bucket_objects.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_enumerate_s3_buckets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_enumerate_s3_buckets.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_establish_access.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_establish_access.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_exfil_s3_bucket.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_exfil_s3_bucket.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_expose_s3_bucket_public.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_expose_s3_bucket_public.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_get_bucket_acl.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_get_bucket_acl.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_modify_guardduty_trusted_ip.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_modify_guardduty_trusted_ip.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_recon_account_authorization_info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_recon_account_authorization_info.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_recon_ec2_over_permissive_sg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_recon_ec2_over_permissive_sg.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_recon_iam_user_info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_recon_iam_user_info.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_recon_risky_iam_policy_users.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_recon_risky_iam_policy_users.py -------------------------------------------------------------------------------- /attack_techniques/aws/aws_recon_s3_public_buckets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/aws/aws_recon_s3_public_buckets.py -------------------------------------------------------------------------------- /attack_techniques/azure/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /attack_techniques/azure/azure_abuse_azure_policy_to_disable_logging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_abuse_azure_policy_to_disable_logging.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_assign_role.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_assign_role.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_create_new_resource_group.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_create_new_resource_group.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_delete_vm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_delete_vm.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_deploy_malicious_extension_on_vm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_deploy_malicious_extension_on_vm.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_disable_resource_diagnostic_logging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_disable_resource_diagnostic_logging.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_disable_storage_account_firewall.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_disable_storage_account_firewall.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_dump_automation_accounts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_dump_automation_accounts.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_dump_keyvault.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_dump_keyvault.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_dump_storage_account.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_dump_storage_account.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_elevate_access_from_entra_id.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_elevate_access_from_entra_id.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enable_storage_account_public_access.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enable_storage_account_public_access.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_assigned_roles.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_assigned_roles.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_key_vaults.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_key_vaults.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_logic_apps.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_logic_apps.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_resource_groups.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_resource_groups.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_resources.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_resources.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_storage_accounts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_storage_accounts.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_storage_containers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_storage_containers.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_vm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_vm.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_vm_in_vmss.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_vm_in_vmss.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_enumerate_vmss.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_enumerate_vmss.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_establish_access_as_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_establish_access_as_app.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_establish_access_as_user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_establish_access_as_user.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_establish_access_via_device_code.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_establish_access_via_device_code.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_execute_script_on_vm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_execute_script_on_vm.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_exfil_storage_account_container.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_exfil_storage_account_container.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_exfil_vm_disk.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_exfil_vm_disk.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_expose_storage_account_container_public.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_expose_storage_account_container_public.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_extract_cache_tokens.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_extract_cache_tokens.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_generate_storage_container_sas.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_generate_storage_container_sas.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_generate_vm_disk_sas_url.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_generate_vm_disk_sas_url.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_mass_resource_deletion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_mass_resource_deletion.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_modify_keyvault_access.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_modify_keyvault_access.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_modify_logic_app_trigger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_modify_logic_app_trigger.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_password_spray.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_password_spray.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_remove_role_asignment.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_remove_role_asignment.py -------------------------------------------------------------------------------- /attack_techniques/azure/azure_scan_logic_apps_for_credentials.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/azure/azure_scan_logic_apps_for_credentials.py -------------------------------------------------------------------------------- /attack_techniques/base_technique.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/base_technique.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_abuse_family_refresh_token.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_abuse_family_refresh_token.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_add_trusted_ip_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_add_trusted_ip_config.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_add_user_to_group.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_add_user_to_group.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_assign_app_permission.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_assign_app_permission.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_assign_directory_role.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_assign_directory_role.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_assign_license.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_assign_license.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_bruteforce_graph_apps.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_bruteforce_graph_apps.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_bruteforce_password.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_bruteforce_password.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_check_user_validity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_check_user_validity.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_create_backdoor_account.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_create_backdoor_account.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_create_new_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_create_new_app.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_device_code_flow_auth.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_device_code_flow_auth.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_app_permissions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_app_permissions.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_apps.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_apps.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_cap.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_cap.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_directory_roles.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_directory_roles.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_groups.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_groups.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_licenses.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_licenses.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_one_drive.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_one_drive.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_sp_site.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_sp_site.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_enumerate_users.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_enumerate_users.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_establish_access_as_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_establish_access_as_app.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_establish_access_as_user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_establish_access_as_user.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_establish_access_with_token.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_establish_access_with_token.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_generate_app_credentials.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_generate_app_credentials.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_invite_external_user.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_invite_external_user.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_password_spray.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_password_spray.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_recon_role_info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_recon_role_info.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_recon_tenant_info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_recon_tenant_info.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_recon_user_info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_recon_user_info.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_remove_account_access.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_remove_account_access.py -------------------------------------------------------------------------------- /attack_techniques/entra_id/entra_remove_user_license.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/entra_id/entra_remove_user_license.py -------------------------------------------------------------------------------- /attack_techniques/gcp/__init.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_enumerate_cloud_storage_buckets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_enumerate_cloud_storage_buckets.py -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_enumerate_cloud_storage_objects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_enumerate_cloud_storage_objects.py -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_enumerate_compute_engine_instances.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_enumerate_compute_engine_instances.py -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_establish_access_as_au_application_default.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_establish_access_as_au_application_default.py -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_establish_access_as_sa_private_key.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_establish_access_as_sa_private_key.py -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_establish_access_as_sa_short_lived_token.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_establish_access_as_sa_short_lived_token.py -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_exfilterate_cloud_storage_objects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_exfilterate_cloud_storage_objects.py -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_expose_public_cloud_storage.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_expose_public_cloud_storage.py -------------------------------------------------------------------------------- /attack_techniques/gcp/gcp_persistence_via_ssh_key_addition.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/gcp/gcp_persistence_via_ssh_key_addition.py -------------------------------------------------------------------------------- /attack_techniques/m365/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /attack_techniques/m365/m365_add_external_user_to_teams.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_add_external_user_to_teams.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_add_team_member.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_add_team_member.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_deploy_email_deletion_rule.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_deploy_email_deletion_rule.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_deploy_mail_forwarding_rule.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_deploy_mail_forwarding_rule.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_enumerate_team_members.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_enumerate_team_members.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_enumerate_teams.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_enumerate_teams.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_exfil_sharepoint_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_exfil_sharepoint_data.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_exfil_user_mailbox.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_exfil_user_mailbox.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_search_outlook_messages.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_search_outlook_messages.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_search_teams_chat.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_search_teams_chat.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_search_teams_messages.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_search_teams_messages.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_search_user_one_drive.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_search_user_one_drive.py -------------------------------------------------------------------------------- /attack_techniques/m365/m365_send_outlook_email.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/m365/m365_send_outlook_email.py -------------------------------------------------------------------------------- /attack_techniques/technique_registry.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/attack_techniques/technique_registry.py -------------------------------------------------------------------------------- /cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/cli.py -------------------------------------------------------------------------------- /core/Constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/Constants.py -------------------------------------------------------------------------------- /core/Functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/Functions.py -------------------------------------------------------------------------------- /core/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/aws/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/aws/aws_session_manager.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/aws/aws_session_manager.py -------------------------------------------------------------------------------- /core/azure/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/azure/azure_access.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/azure/azure_access.py -------------------------------------------------------------------------------- /core/bootstrap.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/bootstrap.py -------------------------------------------------------------------------------- /core/entra/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/entra/entra_token_manager.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/entra/entra_token_manager.py -------------------------------------------------------------------------------- /core/entra/graph_request.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/entra/graph_request.py -------------------------------------------------------------------------------- /core/entra/token_info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/entra/token_info.py -------------------------------------------------------------------------------- /core/gcp/gcp_access.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/gcp/gcp_access.py -------------------------------------------------------------------------------- /core/logging/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/logging/logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/logging/logger.py -------------------------------------------------------------------------------- /core/logging/logging_config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/logging/logging_config.yml -------------------------------------------------------------------------------- /core/logging/report.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/logging/report.py -------------------------------------------------------------------------------- /core/output_manager/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/output_manager/output_manager.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/output_manager/output_manager.py -------------------------------------------------------------------------------- /core/playbook/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/playbook/playbook.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/playbook/playbook.py -------------------------------------------------------------------------------- /core/playbook/playbook_error.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/playbook/playbook_error.py -------------------------------------------------------------------------------- /core/playbook/playbook_step.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/core/playbook/playbook_step.py -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /halberd.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/halberd.py -------------------------------------------------------------------------------- /pages/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/__init__.py -------------------------------------------------------------------------------- /pages/attack.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/attack.py -------------------------------------------------------------------------------- /pages/attack_agent.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/attack_agent.py -------------------------------------------------------------------------------- /pages/attack_analyse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/attack_analyse.py -------------------------------------------------------------------------------- /pages/attack_history.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/attack_history.py -------------------------------------------------------------------------------- /pages/automator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/automator.py -------------------------------------------------------------------------------- /pages/dashboard/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pages/dashboard/entity_map.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/dashboard/entity_map.py -------------------------------------------------------------------------------- /pages/home.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/home.py -------------------------------------------------------------------------------- /pages/schedules.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/pages/schedules.py -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/requirements.txt -------------------------------------------------------------------------------- /run.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/run.py -------------------------------------------------------------------------------- /version.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vectra-ai-research/Halberd/HEAD/version.py --------------------------------------------------------------------------------