cloudxpl 4.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cloudxpl/__init__.py +8 -0
- cloudxpl/__main__.py +188 -0
- cloudxpl/core/__init__.py +0 -0
- cloudxpl/core/credential.py +37 -0
- cloudxpl/core/dispatcher.py +575 -0
- cloudxpl/core/identity_resolver.py +192 -0
- cloudxpl/core/policy_engine.py +198 -0
- cloudxpl/core/shell_mixin.py +96 -0
- cloudxpl/core/shells/__init__.py +47 -0
- cloudxpl/modules/__init__.py +0 -0
- cloudxpl/modules/alibaba/__init__.py +0 -0
- cloudxpl/modules/alibaba/cloudtoolkit_bridge.py +40 -0
- cloudxpl/modules/alibaba/cve_2026_19339.py +40 -0
- cloudxpl/modules/alibaba/ecs_enum.py +40 -0
- cloudxpl/modules/alibaba/ecs_metadata.py +40 -0
- cloudxpl/modules/alibaba/oss_enum.py +40 -0
- cloudxpl/modules/alibaba/oss_exploit.py +40 -0
- cloudxpl/modules/alibaba/ram_enum.py +40 -0
- cloudxpl/modules/alibaba/rds_enum.py +40 -0
- cloudxpl/modules/aws/__init__.py +0 -0
- cloudxpl/modules/aws/cloudformation_exploit.py +61 -0
- cloudxpl/modules/aws/cloudtrail_disable.py +66 -0
- cloudxpl/modules/aws/cloudtrail_tamper.py +59 -0
- cloudxpl/modules/aws/codebuild_exploit.py +62 -0
- cloudxpl/modules/aws/codepipeline_exploit.py +62 -0
- cloudxpl/modules/aws/cognito_exploit.py +71 -0
- cloudxpl/modules/aws/cve_2024_28056.py +59 -0
- cloudxpl/modules/aws/cve_2026_5707.py +59 -0
- cloudxpl/modules/aws/cve_2026_5708.py +40 -0
- cloudxpl/modules/aws/cve_2026_5709.py +40 -0
- cloudxpl/modules/aws/dynamodb_enum.py +54 -0
- cloudxpl/modules/aws/ebs_snapshot.py +67 -0
- cloudxpl/modules/aws/ec2_enum.py +69 -0
- cloudxpl/modules/aws/ec2_imds_pivot.py +86 -0
- cloudxpl/modules/aws/ec2_ssm.py +64 -0
- cloudxpl/modules/aws/ec2_userdata.py +70 -0
- cloudxpl/modules/aws/ecr_enum.py +64 -0
- cloudxpl/modules/aws/ecs_exploit.py +77 -0
- cloudxpl/modules/aws/eks_enum.py +67 -0
- cloudxpl/modules/aws/eks_exploit.py +66 -0
- cloudxpl/modules/aws/eventbridge_exploit.py +65 -0
- cloudxpl/modules/aws/glue_exploit.py +63 -0
- cloudxpl/modules/aws/guardduty_bypass.py +71 -0
- cloudxpl/modules/aws/iam_enum.py +101 -0
- cloudxpl/modules/aws/iam_privesc.py +92 -0
- cloudxpl/modules/aws/lambda_enum.py +85 -0
- cloudxpl/modules/aws/lambda_inject.py +79 -0
- cloudxpl/modules/aws/lambda_persist.py +69 -0
- cloudxpl/modules/aws/org_enum.py +58 -0
- cloudxpl/modules/aws/pacu_bridge.py +45 -0
- cloudxpl/modules/aws/rds_enum.py +64 -0
- cloudxpl/modules/aws/rds_exploit.py +57 -0
- cloudxpl/modules/aws/route53_takeover.py +63 -0
- cloudxpl/modules/aws/s3_enum.py +96 -0
- cloudxpl/modules/aws/s3_exfil.py +60 -0
- cloudxpl/modules/aws/s3_exploit.py +85 -0
- cloudxpl/modules/aws/secrets_manager.py +62 -0
- cloudxpl/modules/aws/sns_exploit.py +66 -0
- cloudxpl/modules/aws/sqs_exploit.py +62 -0
- cloudxpl/modules/aws/ssm_param_store.py +69 -0
- cloudxpl/modules/aws/sso_enum.py +63 -0
- cloudxpl/modules/aws/ssrf_imds.py +97 -0
- cloudxpl/modules/aws/stepfunctions_exploit.py +57 -0
- cloudxpl/modules/aws/sts_enum.py +70 -0
- cloudxpl/modules/aws/vpc_enum.py +66 -0
- cloudxpl/modules/azure/__init__.py +0 -0
- cloudxpl/modules/azure/aks_enum.py +85 -0
- cloudxpl/modules/azure/aks_exploit.py +85 -0
- cloudxpl/modules/azure/app_service_exploit.py +85 -0
- cloudxpl/modules/azure/arm_injection.py +144 -0
- cloudxpl/modules/azure/automation_exploit.py +85 -0
- cloudxpl/modules/azure/azure_functions_escape.py +29 -0
- cloudxpl/modules/azure/azurehound_bridge.py +85 -0
- cloudxpl/modules/azure/azurescape.py +41 -0
- cloudxpl/modules/azure/azurescape_bridge.py +29 -0
- cloudxpl/modules/azure/blob_exfil.py +85 -0
- cloudxpl/modules/azure/blob_exploit.py +85 -0
- cloudxpl/modules/azure/conditional_access.py +85 -0
- cloudxpl/modules/azure/cosmosdb_exploit.py +85 -0
- cloudxpl/modules/azure/cve_2024_50603.py +85 -0
- cloudxpl/modules/azure/cve_2025_29813.py +85 -0
- cloudxpl/modules/azure/cve_2025_29827.py +85 -0
- cloudxpl/modules/azure/cve_2025_29972.py +85 -0
- cloudxpl/modules/azure/cve_2025_53767.py +85 -0
- cloudxpl/modules/azure/cve_2026_20965.py +41 -0
- cloudxpl/modules/azure/defender_bypass.py +85 -0
- cloudxpl/modules/azure/devops_exploit.py +85 -0
- cloudxpl/modules/azure/entra_consent.py +85 -0
- cloudxpl/modules/azure/entra_enum.py +85 -0
- cloudxpl/modules/azure/entra_privesc.py +85 -0
- cloudxpl/modules/azure/entra_tokens.py +85 -0
- cloudxpl/modules/azure/fabricscape.py +41 -0
- cloudxpl/modules/azure/fabricscape_cve_2022_30137.py +30 -0
- cloudxpl/modules/azure/function_exploit.py +85 -0
- cloudxpl/modules/azure/function_persist.py +85 -0
- cloudxpl/modules/azure/functions_escape.py +41 -0
- cloudxpl/modules/azure/graph_api_abuse.py +85 -0
- cloudxpl/modules/azure/keyvault_exploit.py +85 -0
- cloudxpl/modules/azure/logic_apps_exploit.py +85 -0
- cloudxpl/modules/azure/managed_identity.py +115 -0
- cloudxpl/modules/azure/nsg_enum.py +85 -0
- cloudxpl/modules/azure/pim_abuse.py +85 -0
- cloudxpl/modules/azure/rbac_enum.py +85 -0
- cloudxpl/modules/azure/rbac_exploit.py +85 -0
- cloudxpl/modules/azure/resource_group_enum.py +85 -0
- cloudxpl/modules/azure/sentinel_bypass.py +85 -0
- cloudxpl/modules/azure/service_principal.py +85 -0
- cloudxpl/modules/azure/sql_enum.py +85 -0
- cloudxpl/modules/azure/sql_exploit.py +85 -0
- cloudxpl/modules/azure/storage_enum.py +94 -0
- cloudxpl/modules/azure/stormspotter_bridge.py +85 -0
- cloudxpl/modules/azure/subscription_enum.py +72 -0
- cloudxpl/modules/azure/vm_enum.py +85 -0
- cloudxpl/modules/azure/vm_exploit.py +85 -0
- cloudxpl/modules/azure/vm_imds.py +85 -0
- cloudxpl/modules/cicd/__init__.py +0 -0
- cloudxpl/modules/cicd/cicd_secret_dump.py +22 -0
- cloudxpl/modules/cicd/circleci_runner_escape.py +22 -0
- cloudxpl/modules/cicd/gha_runner_escape.py +22 -0
- cloudxpl/modules/cicd/gha_supply_chain.py +22 -0
- cloudxpl/modules/cicd/gitlab_ci_rce.py +22 -0
- cloudxpl/modules/cicd/gitlab_runner_hijack.py +22 -0
- cloudxpl/modules/cicd/jenkins_agent_abuse.py +22 -0
- cloudxpl/modules/cicd/jenkins_plugin_privesc.py +22 -0
- cloudxpl/modules/cicd/terraform_agent_abuse.py +22 -0
- cloudxpl/modules/cicd/terraform_token_leak.py +22 -0
- cloudxpl/modules/cred/__init__.py +0 -0
- cloudxpl/modules/cred/config_file_scan.py +85 -0
- cloudxpl/modules/cred/credential_report.py +85 -0
- cloudxpl/modules/cred/env_var_scan.py +85 -0
- cloudxpl/modules/cred/federation_abuse.py +85 -0
- cloudxpl/modules/cred/key_rotation_check.py +85 -0
- cloudxpl/modules/cred/leaked_key_exploit.py +85 -0
- cloudxpl/modules/cred/metadata_harvest.py +85 -0
- cloudxpl/modules/cred/mfa_relay.py +40 -0
- cloudxpl/modules/cred/oauth_token_theft.py +85 -0
- cloudxpl/modules/cred/rsa_netwitness_exploit.py +40 -0
- cloudxpl/modules/cred/rsa_securid_enum.py +40 -0
- cloudxpl/modules/cred/seed_theft_check.py +40 -0
- cloudxpl/modules/cred/temp_cred_extend.py +85 -0
- cloudxpl/modules/cred/token_lifetime_abuse.py +85 -0
- cloudxpl/modules/digitalocean/__init__.py +0 -0
- cloudxpl/modules/digitalocean/api_token_abuse.py +40 -0
- cloudxpl/modules/digitalocean/doks_enum.py +40 -0
- cloudxpl/modules/digitalocean/droplet_agent_rce.py +40 -0
- cloudxpl/modules/digitalocean/droplet_enum.py +40 -0
- cloudxpl/modules/digitalocean/firewall_enum.py +40 -0
- cloudxpl/modules/digitalocean/metadata_ssrf.py +40 -0
- cloudxpl/modules/digitalocean/spaces_enum.py +40 -0
- cloudxpl/modules/digitalocean/spaces_exploit.py +40 -0
- cloudxpl/modules/gcp/__init__.py +0 -0
- cloudxpl/modules/gcp/artifact_registry.py +85 -0
- cloudxpl/modules/gcp/bigquery_exploit.py +85 -0
- cloudxpl/modules/gcp/bucket_enum.py +84 -0
- cloudxpl/modules/gcp/bucket_exfil.py +85 -0
- cloudxpl/modules/gcp/bucket_exploit.py +85 -0
- cloudxpl/modules/gcp/cloud_armor_bypass.py +40 -0
- cloudxpl/modules/gcp/cloudbuild_exploit.py +85 -0
- cloudxpl/modules/gcp/cloudbuild_supply_chain.py +40 -0
- cloudxpl/modules/gcp/cloudfunctions_exploit.py +85 -0
- cloudxpl/modules/gcp/cloudfunctions_persist.py +85 -0
- cloudxpl/modules/gcp/cloudrun_exploit.py +85 -0
- cloudxpl/modules/gcp/cloudsql_enum.py +85 -0
- cloudxpl/modules/gcp/cloudsql_exploit.py +85 -0
- cloudxpl/modules/gcp/composer_exploit.py +85 -0
- cloudxpl/modules/gcp/compute_enum.py +85 -0
- cloudxpl/modules/gcp/compute_exploit.py +85 -0
- cloudxpl/modules/gcp/compute_imds.py +85 -0
- cloudxpl/modules/gcp/cve_2025_51591.py +85 -0
- cloudxpl/modules/gcp/cve_2026_2031.py +85 -0
- cloudxpl/modules/gcp/cve_2026_2264.py +85 -0
- cloudxpl/modules/gcp/cve_2026_31431.py +40 -0
- cloudxpl/modules/gcp/cve_2026_46300.py +40 -0
- cloudxpl/modules/gcp/cve_2026_81867.py +85 -0
- cloudxpl/modules/gcp/dataflow_exploit.py +85 -0
- cloudxpl/modules/gcp/dns_takeover.py +85 -0
- cloudxpl/modules/gcp/gcpbucketbrute_bridge.py +85 -0
- cloudxpl/modules/gcp/gke_autopilot_escape.py +40 -0
- cloudxpl/modules/gcp/gke_enum.py +85 -0
- cloudxpl/modules/gcp/gke_exploit.py +85 -0
- cloudxpl/modules/gcp/iam_privesc.py +85 -0
- cloudxpl/modules/gcp/iap_bypass.py +40 -0
- cloudxpl/modules/gcp/imagerunner_exploit.py +40 -0
- cloudxpl/modules/gcp/kms_exploit.py +85 -0
- cloudxpl/modules/gcp/logging_bypass.py +85 -0
- cloudxpl/modules/gcp/metadata_ssrf.py +94 -0
- cloudxpl/modules/gcp/org_policy_enum.py +85 -0
- cloudxpl/modules/gcp/project_enum.py +123 -0
- cloudxpl/modules/gcp/pubsub_exploit.py +85 -0
- cloudxpl/modules/gcp/sa_impersonate.py +85 -0
- cloudxpl/modules/gcp/sa_key_theft.py +85 -0
- cloudxpl/modules/gcp/secretmanager_exploit.py +85 -0
- cloudxpl/modules/gcp/service_account_enum.py +107 -0
- cloudxpl/modules/gcp/terraform_state.py +85 -0
- cloudxpl/modules/gcp/vpc_firewall_enum.py +85 -0
- cloudxpl/modules/gcp/wif_abuse.py +40 -0
- cloudxpl/modules/gcp/workload_identity.py +85 -0
- cloudxpl/modules/hetzner/__init__.py +0 -0
- cloudxpl/modules/hetzner/api_token_abuse.py +40 -0
- cloudxpl/modules/hetzner/firewall_enum.py +40 -0
- cloudxpl/modules/hetzner/floating_ip_hijack.py +40 -0
- cloudxpl/modules/hetzner/metadata_ssrf.py +40 -0
- cloudxpl/modules/hetzner/server_enum.py +40 -0
- cloudxpl/modules/ibm/__init__.py +0 -0
- cloudxpl/modules/ibm/cloudpak_exploit.py +40 -0
- cloudxpl/modules/ibm/cos_enum.py +40 -0
- cloudxpl/modules/ibm/cos_exploit.py +40 -0
- cloudxpl/modules/ibm/iam_enum.py +40 -0
- cloudxpl/modules/ibm/qradar_exploit.py +40 -0
- cloudxpl/modules/ibm/vpc_enum.py +40 -0
- cloudxpl/modules/k8s/__init__.py +0 -0
- cloudxpl/modules/k8s/admission_bypass.py +85 -0
- cloudxpl/modules/k8s/api_server_anon.py +85 -0
- cloudxpl/modules/k8s/cluster_enum.py +85 -0
- cloudxpl/modules/k8s/configmap_dump.py +85 -0
- cloudxpl/modules/k8s/container_cve_2026_52910.py +42 -0
- cloudxpl/modules/k8s/container_escape.py +85 -0
- cloudxpl/modules/k8s/crd_abuse.py +85 -0
- cloudxpl/modules/k8s/cve_2019_5736.py +40 -0
- cloudxpl/modules/k8s/cve_2021_30465.py +40 -0
- cloudxpl/modules/k8s/cve_2022_0492.py +40 -0
- cloudxpl/modules/k8s/cve_2022_0847.py +40 -0
- cloudxpl/modules/k8s/cve_2022_23648.py +40 -0
- cloudxpl/modules/k8s/cve_2024_0132.py +41 -0
- cloudxpl/modules/k8s/cve_2024_1753.py +41 -0
- cloudxpl/modules/k8s/cve_2024_21626.py +85 -0
- cloudxpl/modules/k8s/cve_2024_23651.py +41 -0
- cloudxpl/modules/k8s/cve_2024_23652.py +41 -0
- cloudxpl/modules/k8s/cve_2024_23653.py +41 -0
- cloudxpl/modules/k8s/cve_2025_23266.py +41 -0
- cloudxpl/modules/k8s/cve_2025_31133.py +85 -0
- cloudxpl/modules/k8s/cve_2025_52565.py +85 -0
- cloudxpl/modules/k8s/cve_2025_52881.py +85 -0
- cloudxpl/modules/k8s/etcd_exploit.py +85 -0
- cloudxpl/modules/k8s/helm_exploit.py +85 -0
- cloudxpl/modules/k8s/hostpath_mount.py +85 -0
- cloudxpl/modules/k8s/kube_hunter_bridge.py +85 -0
- cloudxpl/modules/k8s/kubelet_exploit.py +85 -0
- cloudxpl/modules/k8s/network_policy_bypass.py +85 -0
- cloudxpl/modules/k8s/node_proxy.py +85 -0
- cloudxpl/modules/k8s/peirates_bridge.py +85 -0
- cloudxpl/modules/k8s/pod_enum.py +85 -0
- cloudxpl/modules/k8s/pod_escape_cve.py +85 -0
- cloudxpl/modules/k8s/privileged_pod.py +85 -0
- cloudxpl/modules/k8s/rbac_enum.py +85 -0
- cloudxpl/modules/k8s/rbac_escalation.py +85 -0
- cloudxpl/modules/k8s/registry_exploit.py +85 -0
- cloudxpl/modules/k8s/runc_cve_2019_5736.py +41 -0
- cloudxpl/modules/k8s/runc_cve_2024_23651.py +30 -0
- cloudxpl/modules/k8s/runc_cve_2024_23652.py +30 -0
- cloudxpl/modules/k8s/runc_cve_2024_23653.py +30 -0
- cloudxpl/modules/k8s/sa_token_theft.py +85 -0
- cloudxpl/modules/k8s/secret_dump.py +85 -0
- cloudxpl/modules/k8s/service_mesh_exploit.py +85 -0
- cloudxpl/modules/k8s/sidecar_inject.py +85 -0
- cloudxpl/modules/multi/__init__.py +0 -0
- cloudxpl/modules/multi/ci_cd_exploit.py +85 -0
- cloudxpl/modules/multi/cloud_side_channel.py +41 -0
- cloudxpl/modules/multi/cloudfox_bridge.py +85 -0
- cloudxpl/modules/multi/cloudtoolkit_multi.py +40 -0
- cloudxpl/modules/multi/container_escape_collection_bridge.py +41 -0
- cloudxpl/modules/multi/cross_cloud_pivot.py +85 -0
- cloudxpl/modules/multi/docker_escape.py +85 -0
- cloudxpl/modules/multi/docker_socket.py +85 -0
- cloudxpl/modules/multi/firecracker_escape.py +41 -0
- cloudxpl/modules/multi/git_secret_scan.py +85 -0
- cloudxpl/modules/multi/github_actions_runner_exploit.py +29 -0
- cloudxpl/modules/multi/huawei_recon.py +40 -0
- cloudxpl/modules/multi/iac_secret_scan.py +85 -0
- cloudxpl/modules/multi/openstack_generic.py +40 -0
- cloudxpl/modules/multi/prowler_bridge.py +85 -0
- cloudxpl/modules/multi/scoutsuite_bridge.py +85 -0
- cloudxpl/modules/multi/steampipe_bridge.py +85 -0
- cloudxpl/modules/multi/terraform_plan_inject.py +85 -0
- cloudxpl/modules/multi/terraform_state_exploit.py +85 -0
- cloudxpl/modules/net/__init__.py +0 -0
- cloudxpl/modules/net/dns_takeover.py +85 -0
- cloudxpl/modules/net/exposed_services.py +85 -0
- cloudxpl/modules/net/load_balancer_enum.py +85 -0
- cloudxpl/modules/net/peering_abuse.py +85 -0
- cloudxpl/modules/net/privatelink_abuse.py +85 -0
- cloudxpl/modules/net/sg_analysis.py +85 -0
- cloudxpl/modules/net/vpc_enum.py +85 -0
- cloudxpl/modules/net/vpn_exploit.py +85 -0
- cloudxpl/modules/oci/__init__.py +0 -0
- cloudxpl/modules/oci/audit_bypass.py +40 -0
- cloudxpl/modules/oci/bucket_enum.py +40 -0
- cloudxpl/modules/oci/bucket_exploit.py +40 -0
- cloudxpl/modules/oci/compute_enum.py +40 -0
- cloudxpl/modules/oci/cve_2025_61882.py +40 -0
- cloudxpl/modules/oci/cve_2026_21962.py +40 -0
- cloudxpl/modules/oci/iam_enum.py +40 -0
- cloudxpl/modules/oci/metadata_ssrf.py +40 -0
- cloudxpl/modules/oci/ocinfernobridge.py +40 -0
- cloudxpl/modules/oci/volume_attach.py +40 -0
- cloudxpl/modules/ovh/__init__.py +0 -0
- cloudxpl/modules/ovh/api_abuse.py +40 -0
- cloudxpl/modules/ovh/bare_metal_ipmi.py +40 -0
- cloudxpl/modules/ovh/email_spoof.py +40 -0
- cloudxpl/modules/ovh/openstack_enum.py +40 -0
- cloudxpl/modules/ovh/swift_exploit.py +40 -0
- cloudxpl/modules/ovh/vrack_lateral.py +40 -0
- cloudxpl/modules/paas/__init__.py +0 -0
- cloudxpl/modules/paas/aci_azurescape.py +22 -0
- cloudxpl/modules/paas/appservice_sandbox_escape.py +22 -0
- cloudxpl/modules/paas/beanstalk_escape.py +22 -0
- cloudxpl/modules/paas/cloudrun_runc_escape.py +22 -0
- cloudxpl/modules/paas/fargate_firecracker.py +22 -0
- cloudxpl/modules/paas/gcp_appint_sandbox.py +22 -0
- cloudxpl/modules/paas/heroku_dyno_recon.py +22 -0
- cloudxpl/modules/paas/lambda_tmp_persist.py +22 -0
- cloudxpl/modules/paas/paas_metadata_pivot.py +22 -0
- cloudxpl/modules/paas/railway_escape.py +22 -0
- cloudxpl/modules/serverless/__init__.py +0 -0
- cloudxpl/modules/serverless/api_gateway_bypass.py +85 -0
- cloudxpl/modules/serverless/cold_start_abuse.py +85 -0
- cloudxpl/modules/serverless/concurrency_abuse.py +85 -0
- cloudxpl/modules/serverless/env_extraction.py +85 -0
- cloudxpl/modules/serverless/event_injection.py +85 -0
- cloudxpl/modules/serverless/iam_role_chain.py +85 -0
- cloudxpl/modules/serverless/layer_poisoning.py +85 -0
- cloudxpl/modules/serverless/log_injection.py +85 -0
- cloudxpl/modules/serverless/reverse_shell.py +85 -0
- cloudxpl/modules/serverless/runtime_rce.py +85 -0
- cloudxpl/modules/serverless/step_function_abuse.py +85 -0
- cloudxpl/modules/serverless/tmp_persistence.py +85 -0
- cloudxpl/modules/serverless/trigger_hijack.py +85 -0
- cloudxpl/modules/serverless/vpc_pivot.py +85 -0
- cloudxpl/modules/storage/__init__.py +0 -0
- cloudxpl/modules/storage/acl_check.py +85 -0
- cloudxpl/modules/storage/bucket_bruteforce.py +85 -0
- cloudxpl/modules/storage/bucket_finder.py +85 -0
- cloudxpl/modules/storage/bucketloot_bridge.py +85 -0
- cloudxpl/modules/storage/cors_exploit.py +85 -0
- cloudxpl/modules/storage/download_mass.py +85 -0
- cloudxpl/modules/storage/grayhat_search.py +85 -0
- cloudxpl/modules/storage/policy_abuse.py +85 -0
- cloudxpl/modules/storage/presigned_abuse.py +85 -0
- cloudxpl/modules/storage/public_objects.py +85 -0
- cloudxpl/modules/storage/ransomware_sim.py +85 -0
- cloudxpl/modules/storage/s3scanner_bridge.py +85 -0
- cloudxpl/modules/storage/static_site_takeover.py +85 -0
- cloudxpl/modules/storage/upload_exploit.py +85 -0
- cloudxpl/modules/storage/versioning_exploit.py +85 -0
- cloudxpl/modules/tencent/__init__.py +0 -0
- cloudxpl/modules/tencent/cam_enum.py +40 -0
- cloudxpl/modules/tencent/cloudtoolkit_bridge.py +40 -0
- cloudxpl/modules/tencent/cos_enum.py +40 -0
- cloudxpl/modules/tencent/cos_exploit.py +40 -0
- cloudxpl/modules/tencent/cve_2026_30859.py +40 -0
- cloudxpl/modules/tencent/cvm_metadata.py +40 -0
- cloudxpl/modules/vdi/__init__.py +0 -0
- cloudxpl/modules/vdi/avd_privesc.py +22 -0
- cloudxpl/modules/vdi/citrix_session_recording_rce.py +22 -0
- cloudxpl/modules/vdi/citrix_vda_lpe.py +22 -0
- cloudxpl/modules/vdi/citrix_vdi_cve_2025_6759.py +30 -0
- cloudxpl/modules/vdi/horizon_escape.py +22 -0
- cloudxpl/modules/vdi/vdi_breakout_clipboard.py +22 -0
- cloudxpl/modules/vdi/vdi_breakout_dialog.py +22 -0
- cloudxpl/modules/vdi/vdi_breakout_drive.py +22 -0
- cloudxpl/modules/vdi/vdi_breakout_print.py +22 -0
- cloudxpl/modules/vdi/vdi_breakout_usb.py +22 -0
- cloudxpl/modules/vdi/vdi_kiosk_escape.py +22 -0
- cloudxpl/modules/vdi/workspaces_lpe.py +22 -0
- cloudxpl/modules/virt/__init__.py +0 -0
- cloudxpl/modules/virt/amd_microcode_cve_2024_56161.py +30 -0
- cloudxpl/modules/virt/awesome_hyperv_bridge.py +33 -0
- cloudxpl/modules/virt/awesome_vm_exploit_bridge.py +33 -0
- cloudxpl/modules/virt/citrix_cve_2026_53562.py +30 -0
- cloudxpl/modules/virt/citrix_escape.py +40 -0
- cloudxpl/modules/virt/citrix_vapd_exploit.py +34 -0
- cloudxpl/modules/virt/citrix_vdi_cve_2025_6759.py +30 -0
- cloudxpl/modules/virt/citrix_xsa_486.py +40 -0
- cloudxpl/modules/virt/container_cve_2026_80521.py +42 -0
- cloudxpl/modules/virt/container_escape_collection_bridge.py +33 -0
- cloudxpl/modules/virt/cve_2019_5544.py +40 -0
- cloudxpl/modules/virt/cve_2020_3952.py +40 -0
- cloudxpl/modules/virt/cve_2020_3992.py +40 -0
- cloudxpl/modules/virt/cve_2021_21972.py +40 -0
- cloudxpl/modules/virt/cve_2021_21974.py +40 -0
- cloudxpl/modules/virt/cve_2021_21985.py +40 -0
- cloudxpl/modules/virt/cve_2021_22005.py +40 -0
- cloudxpl/modules/virt/cve_2022_22954.py +40 -0
- cloudxpl/modules/virt/cve_2022_31705.py +40 -0
- cloudxpl/modules/virt/cve_2023_20867.py +40 -0
- cloudxpl/modules/virt/cve_2023_34048.py +40 -0
- cloudxpl/modules/virt/cve_2024_37085.py +40 -0
- cloudxpl/modules/virt/cve_2025_22225.py +40 -0
- cloudxpl/modules/virt/cve_2025_22226.py +40 -0
- cloudxpl/modules/virt/esxi_brute_bridge.py +33 -0
- cloudxpl/modules/virt/esxi_cve_2019_5544.py +30 -0
- cloudxpl/modules/virt/esxi_cve_2020_3992.py +30 -0
- cloudxpl/modules/virt/esxi_cve_2021_21974.py +30 -0
- cloudxpl/modules/virt/esxi_cve_2024_22252.py +41 -0
- cloudxpl/modules/virt/esxi_cve_2024_22253.py +41 -0
- cloudxpl/modules/virt/esxi_cve_2024_22254.py +41 -0
- cloudxpl/modules/virt/esxi_cve_2024_22255.py +41 -0
- cloudxpl/modules/virt/esxi_cve_2024_37085.py +30 -0
- cloudxpl/modules/virt/esxi_cve_2025_22224.py +40 -0
- cloudxpl/modules/virt/esxi_cve_2026_47876.py +30 -0
- cloudxpl/modules/virt/esxi_enum.py +40 -0
- cloudxpl/modules/virt/esxi_fingerprint_bridge.py +33 -0
- cloudxpl/modules/virt/esxi_log4shell.py +41 -0
- cloudxpl/modules/virt/esxi_ransomware.py +40 -0
- cloudxpl/modules/virt/esxi_ssh_exploit.py +40 -0
- cloudxpl/modules/virt/esxi_vm_escape.py +40 -0
- cloudxpl/modules/virt/firecracker_cve_2026_1386.py +30 -0
- cloudxpl/modules/virt/firecracker_cve_2026_5747.py +30 -0
- cloudxpl/modules/virt/firecracker_escape.py +40 -0
- cloudxpl/modules/virt/horizon_log4shell.py +30 -0
- cloudxpl/modules/virt/hyperv_cve_2019_0887.py +30 -0
- cloudxpl/modules/virt/hyperv_cve_2021_28476.py +40 -0
- cloudxpl/modules/virt/hyperv_cve_2021_34450.py +30 -0
- cloudxpl/modules/virt/hyperv_cve_2022_21995.py +30 -0
- cloudxpl/modules/virt/hyperv_cve_2022_30163.py +30 -0
- cloudxpl/modules/virt/hyperv_cve_2024_20700.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2024_21407.py +40 -0
- cloudxpl/modules/virt/hyperv_cve_2024_38080.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2024_49117.py +30 -0
- cloudxpl/modules/virt/hyperv_cve_2025_21333.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2025_21334.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2025_21335.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2026_40402.py +40 -0
- cloudxpl/modules/virt/hyperv_cve_2026_45607.py +30 -0
- cloudxpl/modules/virt/hyperv_cve_2026_45641.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2026_57092.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2026_69603.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2026_72961.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2026_80083.py +41 -0
- cloudxpl/modules/virt/hyperv_cve_2026_89927.py +41 -0
- cloudxpl/modules/virt/hyperv_enum.py +40 -0
- cloudxpl/modules/virt/hyperv_escape.py +40 -0
- cloudxpl/modules/virt/hyperv_remotefx.py +40 -0
- cloudxpl/modules/virt/hypervisor_resources_bridge.py +41 -0
- cloudxpl/modules/virt/intel_tdx_enum.py +29 -0
- cloudxpl/modules/virt/kata_cve_2026_24834.py +30 -0
- cloudxpl/modules/virt/kata_escape.py +40 -0
- cloudxpl/modules/virt/kvm_arm64_escape.py +40 -0
- cloudxpl/modules/virt/kvm_cve_2019_14835.py +40 -0
- cloudxpl/modules/virt/kvm_cve_2019_18389.py +40 -0
- cloudxpl/modules/virt/kvm_cve_2026_3842.py +41 -0
- cloudxpl/modules/virt/kvm_cve_2026_64561.py +41 -0
- cloudxpl/modules/virt/kvm_cve_2026_99999.py +41 -0
- cloudxpl/modules/virt/kvm_januscape.py +40 -0
- cloudxpl/modules/virt/libvirt_enum.py +40 -0
- cloudxpl/modules/virt/lolesxi_bridge.py +33 -0
- cloudxpl/modules/virt/msf_vmware_bridge.py +40 -0
- cloudxpl/modules/virt/nitro_sidechannel.py +29 -0
- cloudxpl/modules/virt/nutanix_cve_2018_7750.py +30 -0
- cloudxpl/modules/virt/nutanix_cve_2026_84731.py +30 -0
- cloudxpl/modules/virt/nutanix_enum.py +40 -0
- cloudxpl/modules/virt/qemu_cve_2019_14378.py +30 -0
- cloudxpl/modules/virt/qemu_cve_2019_18389.py +30 -0
- cloudxpl/modules/virt/qemu_cve_2020_14364.py +30 -0
- cloudxpl/modules/virt/qemu_cve_2023_6693.py +41 -0
- cloudxpl/modules/virt/qemu_cve_2024_3446.py +41 -0
- cloudxpl/modules/virt/qemu_cve_2024_4467.py +41 -0
- cloudxpl/modules/virt/qemu_cve_2024_49841.py +41 -0
- cloudxpl/modules/virt/qemu_cve_2024_6519.py +40 -0
- cloudxpl/modules/virt/qemu_dma_reentrancy.py +40 -0
- cloudxpl/modules/virt/qemu_rtl8139_chain.py +41 -0
- cloudxpl/modules/virt/qemu_slirp_escape.py +41 -0
- cloudxpl/modules/virt/qemu_slirp_escape_bridge.py +42 -0
- cloudxpl/modules/virt/qemu_virtio_exploit.py +40 -0
- cloudxpl/modules/virt/sev_snp_enum.py +29 -0
- cloudxpl/modules/virt/sidechannel_cachewarp.py +30 -0
- cloudxpl/modules/virt/sidechannel_ddrop.py +29 -0
- cloudxpl/modules/virt/sidechannel_downfall.py +30 -0
- cloudxpl/modules/virt/sidechannel_inception.py +30 -0
- cloudxpl/modules/virt/sidechannel_wesee.py +30 -0
- cloudxpl/modules/virt/sidechannel_zenbleed.py +30 -0
- cloudxpl/modules/virt/vcenter_cve_2020_3952.py +30 -0
- cloudxpl/modules/virt/vcenter_cve_2021_21972.py +30 -0
- cloudxpl/modules/virt/vcenter_cve_2021_22005.py +34 -0
- cloudxpl/modules/virt/vcenter_cve_2021_44228.py +34 -0
- cloudxpl/modules/virt/vcenter_cve_2024_22252.py +30 -0
- cloudxpl/modules/virt/vcenter_cve_2024_22274.py +30 -0
- cloudxpl/modules/virt/vcenter_cve_2024_37079.py +40 -0
- cloudxpl/modules/virt/vcenter_cve_2024_37080.py +41 -0
- cloudxpl/modules/virt/vcenter_cve_2024_37081.py +30 -0
- cloudxpl/modules/virt/vcenter_cve_2024_38812.py +41 -0
- cloudxpl/modules/virt/vcenter_cve_2024_38813.py +41 -0
- cloudxpl/modules/virt/vcenter_cve_2025_41225.py +41 -0
- cloudxpl/modules/virt/vcenter_cve_2026_59309.py +40 -0
- cloudxpl/modules/virt/vcenter_cve_2026_59310.py +40 -0
- cloudxpl/modules/virt/vcenter_exploit.py +40 -0
- cloudxpl/modules/virt/vcenter_saml_bypass.py +41 -0
- cloudxpl/modules/virt/vcenter_secrets_dump.py +33 -0
- cloudxpl/modules/virt/vcenter_vmdir_bridge.py +34 -0
- cloudxpl/modules/virt/vcenterkit_bridge.py +40 -0
- cloudxpl/modules/virt/vdi_breakout.py +40 -0
- cloudxpl/modules/virt/virt_cross_domain.py +41 -0
- cloudxpl/modules/virt/virt_maestro_detect.py +41 -0
- cloudxpl/modules/virt/virt_side_channel.py +41 -0
- cloudxpl/modules/virt/virt_snapshot_theft.py +41 -0
- cloudxpl/modules/virt/virt_vtpm_extract.py +41 -0
- cloudxpl/modules/virt/vmware_api_enum.py +29 -0
- cloudxpl/modules/virt/vmware_enum_vms_bridge.py +33 -0
- cloudxpl/modules/virt/vmware_exploitation_bridge.py +33 -0
- cloudxpl/modules/virt/vmware_http_login_bridge.py +33 -0
- cloudxpl/modules/virt/vmware_tools_lpe.py +40 -0
- cloudxpl/modules/virt/xen_cve_2023_46842.py +41 -0
- cloudxpl/modules/virt/xen_grant_escape.py +40 -0
- cloudxpl/modules/virt/xen_iommu_exploit.py +40 -0
- cloudxpl/modules/virt/xen_venom.py +41 -0
- cloudxpl/modules/virt/xen_xsa486.py +41 -0
- cloudxpl/modules/virt/xen_xsa500.py +41 -0
- cloudxpl/modules/virt/xen_xsa505.py +41 -0
- cloudxpl/modules/virt/xen_xsa507.py +30 -0
- cloudxpl/modules/virt/xen_xsa517.py +41 -0
- cloudxpl/modules/virt/xen_xsa521.py +41 -0
- cloudxpl/modules/virt/xen_xsa_500.py +30 -0
- cloudxpl/modules/virt/xen_xsa_505.py +30 -0
- cloudxpl/modules/virt/xen_xsa_507.py +30 -0
- cloudxpl/modules/virt/xen_xsa_517.py +30 -0
- cloudxpl/modules/virt/xen_xsa_521.py +30 -0
- cloudxpl/py.typed +0 -0
- cloudxpl-4.2.0.dist-info/METADATA +98 -0
- cloudxpl-4.2.0.dist-info/RECORD +522 -0
- cloudxpl-4.2.0.dist-info/WHEEL +5 -0
- cloudxpl-4.2.0.dist-info/entry_points.txt +3 -0
- cloudxpl-4.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: CVE-2024-22255 — ESXi UHCI USB info disclosure (CVSS 7.1)"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.esxi_cve_2024_22255.v1",
|
|
10
|
+
"safety_class": "EXPLOIT",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls", "state_change"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ['T1082'],
|
|
15
|
+
"references": ["CVE-2024-22255"],
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def run(args: Any) -> int:
|
|
20
|
+
"""Execute CVE-2024-22255 — ESXi UHCI USB info disclosure (CVSS 7.1)."""
|
|
21
|
+
import json
|
|
22
|
+
import sys
|
|
23
|
+
from datetime import datetime, timezone
|
|
24
|
+
from pathlib import Path
|
|
25
|
+
|
|
26
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
27
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
28
|
+
|
|
29
|
+
findings: list[dict] = []
|
|
30
|
+
|
|
31
|
+
# --- Module logic placeholder ---
|
|
32
|
+
# TODO: implement provider-specific API calls
|
|
33
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
34
|
+
|
|
35
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
36
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
37
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
38
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
39
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
40
|
+
print(f"[+] Results saved to {out_file}")
|
|
41
|
+
return 0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""CloudXPL-Forge — ESXi AD Auth Bypass (CVE-2024-37085)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "ESXi AD Auth Bypass (CVE-2024-37085)",
|
|
7
|
+
"cve": "CVE-2024-37085",
|
|
8
|
+
"mitre": ["T1556"],
|
|
9
|
+
"description": "Exploits authentication bypass in ESXi AD-joined hosts. Leveraged by ransomware operators for full admin access.",
|
|
10
|
+
"references": ["https://nvd.nist.gov/vuln/detail/CVE-2024-37085"],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(args):
|
|
18
|
+
target = getattr(args, "target", None)
|
|
19
|
+
verbose = getattr(args, "verbose", False)
|
|
20
|
+
output = getattr(args, "output", ".")
|
|
21
|
+
|
|
22
|
+
print(f"[*] {MANIFEST['name']}")
|
|
23
|
+
if not target:
|
|
24
|
+
print("[!] --target required", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
|
|
27
|
+
print(f"[*] Target: {target}")
|
|
28
|
+
# TODO: implement exploit/scanner logic
|
|
29
|
+
print("[!] Module stub — implement exploit logic")
|
|
30
|
+
return 0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: CVE-2025-22224/22225/22226 — ESXi heap overflow + sandbox escape (KEV)"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.esxi_cve_2025_22224.v1",
|
|
10
|
+
"safety_class": "EXPLOIT",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls", "state_change"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ["T1611"],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def run(args: Any) -> int:
|
|
19
|
+
"""Execute CVE-2025-22224/22225/22226 — ESXi heap overflow + sandbox escape (KEV)."""
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
from datetime import datetime, timezone
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
26
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
27
|
+
|
|
28
|
+
findings: list[dict] = []
|
|
29
|
+
|
|
30
|
+
# --- Module logic placeholder ---
|
|
31
|
+
# TODO: implement provider-specific API calls
|
|
32
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
33
|
+
|
|
34
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
35
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
36
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
37
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
38
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
39
|
+
print(f"[+] Results saved to {out_file}")
|
|
40
|
+
return 0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""CloudXPL-Forge — ESXi VMXNET3 OOB Write VM Escape (CVE-2026-47876)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "ESXi VMXNET3 OOB Write VM Escape (CVE-2026-47876)",
|
|
7
|
+
"cve": "CVE-2026-47876",
|
|
8
|
+
"mitre": ["T1611"],
|
|
9
|
+
"description": "Exploits out-of-bounds write in VMXNET3 virtual network adapter for VM-to-host escape. CVSS 9.3. Requires local admin on guest.",
|
|
10
|
+
"references": ["https://www.securityweek.com/critical-vm-escape-vulnerability-patched-in-vmware-esxi/"],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(args):
|
|
18
|
+
target = getattr(args, "target", None)
|
|
19
|
+
verbose = getattr(args, "verbose", False)
|
|
20
|
+
output = getattr(args, "output", ".")
|
|
21
|
+
|
|
22
|
+
print(f"[*] {MANIFEST['name']}")
|
|
23
|
+
if not target:
|
|
24
|
+
print("[!] --target required", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
|
|
27
|
+
print(f"[*] Target: {target}")
|
|
28
|
+
# TODO: implement exploit/scanner logic
|
|
29
|
+
print("[!] Module stub — implement exploit logic")
|
|
30
|
+
return 0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: Enumerate ESXi hosts, VMs, datastores via SOAP/REST API"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.esxi_enum.v1",
|
|
10
|
+
"safety_class": "READ_ONLY",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ["T1526", "T1580"],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def run(args: Any) -> int:
|
|
19
|
+
"""Execute Enumerate ESXi hosts, VMs, datastores via SOAP/REST API."""
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
from datetime import datetime, timezone
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
26
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
27
|
+
|
|
28
|
+
findings: list[dict] = []
|
|
29
|
+
|
|
30
|
+
# --- Module logic placeholder ---
|
|
31
|
+
# TODO: implement provider-specific API calls
|
|
32
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
33
|
+
|
|
34
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
35
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
36
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
37
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
38
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
39
|
+
print(f"[+] Results saved to {out_file}")
|
|
40
|
+
return 0
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""CloudXPL-Forge — ESXi Fingerprint (Metasploit Bridge)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "ESXi Fingerprint (Metasploit Bridge)",
|
|
7
|
+
"mitre": ["T1592"],
|
|
8
|
+
"description": "Bridge to Metasploit auxiliary/scanner/vmware/esx_fingerprint for ESXi version identification and enumeration.",
|
|
9
|
+
"references": ["https://www.rapid7.com/db/modules/auxiliary/scanner/vmware/esx_fingerprint/"],
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
import shutil
|
|
14
|
+
import subprocess
|
|
15
|
+
import sys
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def run(args):
|
|
19
|
+
msfconsole = shutil.which("msfconsole")
|
|
20
|
+
if not msfconsole:
|
|
21
|
+
print("[!] msfconsole not found — install Metasploit Framework", file=sys.stderr)
|
|
22
|
+
return 1
|
|
23
|
+
|
|
24
|
+
target = getattr(args, "target", None) or getattr(args, "vcenter_host", "") or ""
|
|
25
|
+
cmd = [
|
|
26
|
+
msfconsole, "-q", "-x",
|
|
27
|
+
f"use auxiliary/scanner/vmware/esx_fingerprint; "
|
|
28
|
+
+ (f"set RHOSTS {target}; " if target else "")
|
|
29
|
+
+ "run; exit",
|
|
30
|
+
]
|
|
31
|
+
if getattr(args, "verbose", False):
|
|
32
|
+
print(f"[*] Running: {' '.join(cmd)}")
|
|
33
|
+
return subprocess.call(cmd)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: CVE-2021-44228 — Log4Shell in VMware vCenter VMSA-2021-0028 (CVSS 10.0)"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.esxi_log4shell.v1",
|
|
10
|
+
"safety_class": "EXPLOIT",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls", "state_change"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ['T1190', 'T1059'],
|
|
15
|
+
"references": ["CVE-2021-44228"],
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def run(args: Any) -> int:
|
|
20
|
+
"""Execute CVE-2021-44228 — Log4Shell in VMware vCenter VMSA-2021-0028 (CVSS 10.0)."""
|
|
21
|
+
import json
|
|
22
|
+
import sys
|
|
23
|
+
from datetime import datetime, timezone
|
|
24
|
+
from pathlib import Path
|
|
25
|
+
|
|
26
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
27
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
28
|
+
|
|
29
|
+
findings: list[dict] = []
|
|
30
|
+
|
|
31
|
+
# --- Module logic placeholder ---
|
|
32
|
+
# TODO: implement provider-specific API calls
|
|
33
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
34
|
+
|
|
35
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
36
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
37
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
38
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
39
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
40
|
+
print(f"[+] Results saved to {out_file}")
|
|
41
|
+
return 0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: Detect ESXi ransomware indicators (Babuk, Akira encryption patterns)"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.esxi_ransomware.v1",
|
|
10
|
+
"safety_class": "READ_ONLY",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ["T1486"],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def run(args: Any) -> int:
|
|
19
|
+
"""Execute Detect ESXi ransomware indicators (Babuk, Akira encryption patterns)."""
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
from datetime import datetime, timezone
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
26
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
27
|
+
|
|
28
|
+
findings: list[dict] = []
|
|
29
|
+
|
|
30
|
+
# --- Module logic placeholder ---
|
|
31
|
+
# TODO: implement provider-specific API calls
|
|
32
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
33
|
+
|
|
34
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
35
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
36
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
37
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
38
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
39
|
+
print(f"[+] Results saved to {out_file}")
|
|
40
|
+
return 0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: ESXi SSH/shell enable + credential spray"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.esxi_ssh_exploit.v1",
|
|
10
|
+
"safety_class": "EXPLOIT",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls", "state_change"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ["T1078"],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def run(args: Any) -> int:
|
|
19
|
+
"""Execute ESXi SSH/shell enable + credential spray."""
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
from datetime import datetime, timezone
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
26
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
27
|
+
|
|
28
|
+
findings: list[dict] = []
|
|
29
|
+
|
|
30
|
+
# --- Module logic placeholder ---
|
|
31
|
+
# TODO: implement provider-specific API calls
|
|
32
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
33
|
+
|
|
34
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
35
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
36
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
37
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
38
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
39
|
+
print(f"[+] Results saved to {out_file}")
|
|
40
|
+
return 0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: CVE-2026-47876 — ESXi VMXNET3 VM escape guest-to-host (CVSS 9.3)"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.esxi_vm_escape.v1",
|
|
10
|
+
"safety_class": "EXPLOIT",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls", "state_change"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ["T1611"],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def run(args: Any) -> int:
|
|
19
|
+
"""Execute CVE-2026-47876 — ESXi VMXNET3 VM escape guest-to-host (CVSS 9.3)."""
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
from datetime import datetime, timezone
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
26
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
27
|
+
|
|
28
|
+
findings: list[dict] = []
|
|
29
|
+
|
|
30
|
+
# --- Module logic placeholder ---
|
|
31
|
+
# TODO: implement provider-specific API calls
|
|
32
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
33
|
+
|
|
34
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
35
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
36
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
37
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
38
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
39
|
+
print(f"[+] Results saved to {out_file}")
|
|
40
|
+
return 0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""CloudXPL-Forge — Firecracker Jailer Symlink Host-Write (CVE-2026-1386)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "Firecracker Jailer Symlink Host-Write (CVE-2026-1386)",
|
|
7
|
+
"cve": "CVE-2026-1386",
|
|
8
|
+
"mitre": ["T1611"],
|
|
9
|
+
"description": "Exploits symlink race in Firecracker jailer component for arbitrary host file write.",
|
|
10
|
+
"references": [],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(args):
|
|
18
|
+
target = getattr(args, "target", None)
|
|
19
|
+
verbose = getattr(args, "verbose", False)
|
|
20
|
+
output = getattr(args, "output", ".")
|
|
21
|
+
|
|
22
|
+
print(f"[*] {MANIFEST['name']}")
|
|
23
|
+
if not target:
|
|
24
|
+
print("[!] --target required", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
|
|
27
|
+
print(f"[*] Target: {target}")
|
|
28
|
+
# TODO: implement exploit/scanner logic
|
|
29
|
+
print("[!] Module stub — implement exploit logic")
|
|
30
|
+
return 0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""CloudXPL-Forge — Firecracker virtio-pci OOB Write (CVE-2026-5747)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "Firecracker virtio-pci OOB Write (CVE-2026-5747)",
|
|
7
|
+
"cve": "CVE-2026-5747",
|
|
8
|
+
"mitre": ["T1611"],
|
|
9
|
+
"description": "Exploits out-of-bounds write in Firecracker VMM virtio-pci device emulation. CVSS 8.7.",
|
|
10
|
+
"references": ["https://edera.dev/stories/minimal-is-no-longer-enough-why-ai-scale-vulnerability-discovery-changes-container-security"],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(args):
|
|
18
|
+
target = getattr(args, "target", None)
|
|
19
|
+
verbose = getattr(args, "verbose", False)
|
|
20
|
+
output = getattr(args, "output", ".")
|
|
21
|
+
|
|
22
|
+
print(f"[*] {MANIFEST['name']}")
|
|
23
|
+
if not target:
|
|
24
|
+
print("[!] --target required", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
|
|
27
|
+
print(f"[*] Target: {target}")
|
|
28
|
+
# TODO: implement exploit/scanner logic
|
|
29
|
+
print("[!] Module stub — implement exploit logic")
|
|
30
|
+
return 0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: Firecracker microVM escape vectors (CVE-2026-5747 virtio-pci OOB, CVE-2026-1386 jailer symlink)"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.firecracker_escape.v1",
|
|
10
|
+
"safety_class": "EXPLOIT",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls", "state_change"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ["T1611"],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def run(args: Any) -> int:
|
|
19
|
+
"""Detect Firecracker microVM escape paths. CVE-2026-5747 (virtio-pci OOB write), CVE-2026-1386 (jailer symlink host writes)."""
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
from datetime import datetime, timezone
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
26
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
27
|
+
|
|
28
|
+
findings: list[dict] = []
|
|
29
|
+
|
|
30
|
+
# --- Module logic placeholder ---
|
|
31
|
+
# TODO: implement provider-specific logic
|
|
32
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
33
|
+
|
|
34
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
35
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
36
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
37
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
38
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
39
|
+
print(f"[+] Results saved to {out_file}")
|
|
40
|
+
return 0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""CloudXPL-Forge — VMware Horizon Log4Shell (CVE-2021-44228)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "VMware Horizon Log4Shell (CVE-2021-44228)",
|
|
7
|
+
"cve": "CVE-2021-44228",
|
|
8
|
+
"mitre": ["T1190"],
|
|
9
|
+
"description": "Exploits Log4Shell vulnerability in VMware Horizon Connection Server for unauthenticated RCE.",
|
|
10
|
+
"references": ["https://www.rapid7.com/blog/post/2022/01/18/active-exploitation-of-vmware-horizon-servers/"],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(args):
|
|
18
|
+
target = getattr(args, "target", None)
|
|
19
|
+
verbose = getattr(args, "verbose", False)
|
|
20
|
+
output = getattr(args, "output", ".")
|
|
21
|
+
|
|
22
|
+
print(f"[*] {MANIFEST['name']}")
|
|
23
|
+
if not target:
|
|
24
|
+
print("[!] --target required", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
|
|
27
|
+
print(f"[*] Target: {target}")
|
|
28
|
+
# TODO: implement exploit/scanner logic
|
|
29
|
+
print("[!] Module stub — implement exploit logic")
|
|
30
|
+
return 0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""CloudXPL-Forge — Hyper-V RDP Path Traversal Guest-to-Host (CVE-2019-0887)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "Hyper-V RDP Path Traversal Guest-to-Host (CVE-2019-0887)",
|
|
7
|
+
"cve": "CVE-2019-0887",
|
|
8
|
+
"mitre": ["T1611"],
|
|
9
|
+
"description": "Exploits RDP clipboard path-traversal vulnerability for guest-to-host file write. Discovered by Check Point.",
|
|
10
|
+
"references": ["https://nvd.nist.gov/vuln/detail/CVE-2019-0887"],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(args):
|
|
18
|
+
target = getattr(args, "target", None)
|
|
19
|
+
verbose = getattr(args, "verbose", False)
|
|
20
|
+
output = getattr(args, "output", ".")
|
|
21
|
+
|
|
22
|
+
print(f"[*] {MANIFEST['name']}")
|
|
23
|
+
if not target:
|
|
24
|
+
print("[!] --target required", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
|
|
27
|
+
print(f"[*] Target: {target}")
|
|
28
|
+
# TODO: implement exploit/scanner logic
|
|
29
|
+
print("[!] Module stub — implement exploit logic")
|
|
30
|
+
return 0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""CloudXPL-Forge module: CVE-2021-28476 — Hyper-V vmswitch guest-to-host RCE (CVSS 9.9, PoC: 0vercl0k)"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
MANIFEST = {
|
|
9
|
+
"capability_id": "cloudxpl.virt.hyperv_cve_2021_28476.v1",
|
|
10
|
+
"safety_class": "EXPLOIT",
|
|
11
|
+
"requires_authorization": True,
|
|
12
|
+
"side_effects": ["api_calls", "state_change"],
|
|
13
|
+
"output_schema": "xpl.finding.v1",
|
|
14
|
+
"mitre": ["T1611"],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def run(args: Any) -> int:
|
|
19
|
+
"""Detect/exploit CVE-2021-28476 — Hyper-V vmswitch guest-to-host. CVSS 9.9. PoC: 0vercl0k (archived)."""
|
|
20
|
+
import json
|
|
21
|
+
import sys
|
|
22
|
+
from datetime import datetime, timezone
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
print(f"[*] {MANIFEST['capability_id']} starting...")
|
|
26
|
+
print(f"[*] Target: {getattr(args, 'target', 'N/A')}")
|
|
27
|
+
|
|
28
|
+
findings: list[dict] = []
|
|
29
|
+
|
|
30
|
+
# --- Module logic placeholder ---
|
|
31
|
+
# TODO: implement provider-specific logic
|
|
32
|
+
print("[!] Module stub — implement provider-specific logic")
|
|
33
|
+
|
|
34
|
+
ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
|
|
35
|
+
out_dir = Path(getattr(args, "output", "."))
|
|
36
|
+
out_dir.mkdir(parents=True, exist_ok=True)
|
|
37
|
+
out_file = out_dir / f"{MANIFEST['capability_id'].rsplit('.', 1)[-1]}_{ts}.json"
|
|
38
|
+
out_file.write_text(json.dumps({"module": MANIFEST["capability_id"], "timestamp": ts, "findings": findings}, indent=2))
|
|
39
|
+
print(f"[+] Results saved to {out_file}")
|
|
40
|
+
return 0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""CloudXPL-Forge — Hyper-V Low-Priv Guest-to-Host RCE (CVE-2021-34450)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "Hyper-V Low-Priv Guest-to-Host RCE (CVE-2021-34450)",
|
|
7
|
+
"cve": "CVE-2021-34450",
|
|
8
|
+
"mitre": ["T1611"],
|
|
9
|
+
"description": "Exploits Hyper-V vulnerability allowing low-privilege guest user to execute code on the host.",
|
|
10
|
+
"references": ["https://nvd.nist.gov/vuln/detail/CVE-2021-34450"],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(args):
|
|
18
|
+
target = getattr(args, "target", None)
|
|
19
|
+
verbose = getattr(args, "verbose", False)
|
|
20
|
+
output = getattr(args, "output", ".")
|
|
21
|
+
|
|
22
|
+
print(f"[*] {MANIFEST['name']}")
|
|
23
|
+
if not target:
|
|
24
|
+
print("[!] --target required", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
|
|
27
|
+
print(f"[*] Target: {target}")
|
|
28
|
+
# TODO: implement exploit/scanner logic
|
|
29
|
+
print("[!] Module stub — implement exploit logic")
|
|
30
|
+
return 0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""CloudXPL-Forge — Hyper-V Adjacent Network RCE (CVE-2022-21995)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
MANIFEST: dict = {
|
|
6
|
+
"name": "Hyper-V Adjacent Network RCE (CVE-2022-21995)",
|
|
7
|
+
"cve": "CVE-2022-21995",
|
|
8
|
+
"mitre": ["T1611"],
|
|
9
|
+
"description": "Exploits Hyper-V RCE vulnerability from adjacent network. Requires attacker on same network segment.",
|
|
10
|
+
"references": ["https://nvd.nist.gov/vuln/detail/CVE-2022-21995"],
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import sys
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def run(args):
|
|
18
|
+
target = getattr(args, "target", None)
|
|
19
|
+
verbose = getattr(args, "verbose", False)
|
|
20
|
+
output = getattr(args, "output", ".")
|
|
21
|
+
|
|
22
|
+
print(f"[*] {MANIFEST['name']}")
|
|
23
|
+
if not target:
|
|
24
|
+
print("[!] --target required", file=sys.stderr)
|
|
25
|
+
return 1
|
|
26
|
+
|
|
27
|
+
print(f"[*] Target: {target}")
|
|
28
|
+
# TODO: implement exploit/scanner logic
|
|
29
|
+
print("[!] Module stub — implement exploit logic")
|
|
30
|
+
return 0
|