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.
Files changed (522) hide show
  1. cloudxpl/__init__.py +8 -0
  2. cloudxpl/__main__.py +188 -0
  3. cloudxpl/core/__init__.py +0 -0
  4. cloudxpl/core/credential.py +37 -0
  5. cloudxpl/core/dispatcher.py +575 -0
  6. cloudxpl/core/identity_resolver.py +192 -0
  7. cloudxpl/core/policy_engine.py +198 -0
  8. cloudxpl/core/shell_mixin.py +96 -0
  9. cloudxpl/core/shells/__init__.py +47 -0
  10. cloudxpl/modules/__init__.py +0 -0
  11. cloudxpl/modules/alibaba/__init__.py +0 -0
  12. cloudxpl/modules/alibaba/cloudtoolkit_bridge.py +40 -0
  13. cloudxpl/modules/alibaba/cve_2026_19339.py +40 -0
  14. cloudxpl/modules/alibaba/ecs_enum.py +40 -0
  15. cloudxpl/modules/alibaba/ecs_metadata.py +40 -0
  16. cloudxpl/modules/alibaba/oss_enum.py +40 -0
  17. cloudxpl/modules/alibaba/oss_exploit.py +40 -0
  18. cloudxpl/modules/alibaba/ram_enum.py +40 -0
  19. cloudxpl/modules/alibaba/rds_enum.py +40 -0
  20. cloudxpl/modules/aws/__init__.py +0 -0
  21. cloudxpl/modules/aws/cloudformation_exploit.py +61 -0
  22. cloudxpl/modules/aws/cloudtrail_disable.py +66 -0
  23. cloudxpl/modules/aws/cloudtrail_tamper.py +59 -0
  24. cloudxpl/modules/aws/codebuild_exploit.py +62 -0
  25. cloudxpl/modules/aws/codepipeline_exploit.py +62 -0
  26. cloudxpl/modules/aws/cognito_exploit.py +71 -0
  27. cloudxpl/modules/aws/cve_2024_28056.py +59 -0
  28. cloudxpl/modules/aws/cve_2026_5707.py +59 -0
  29. cloudxpl/modules/aws/cve_2026_5708.py +40 -0
  30. cloudxpl/modules/aws/cve_2026_5709.py +40 -0
  31. cloudxpl/modules/aws/dynamodb_enum.py +54 -0
  32. cloudxpl/modules/aws/ebs_snapshot.py +67 -0
  33. cloudxpl/modules/aws/ec2_enum.py +69 -0
  34. cloudxpl/modules/aws/ec2_imds_pivot.py +86 -0
  35. cloudxpl/modules/aws/ec2_ssm.py +64 -0
  36. cloudxpl/modules/aws/ec2_userdata.py +70 -0
  37. cloudxpl/modules/aws/ecr_enum.py +64 -0
  38. cloudxpl/modules/aws/ecs_exploit.py +77 -0
  39. cloudxpl/modules/aws/eks_enum.py +67 -0
  40. cloudxpl/modules/aws/eks_exploit.py +66 -0
  41. cloudxpl/modules/aws/eventbridge_exploit.py +65 -0
  42. cloudxpl/modules/aws/glue_exploit.py +63 -0
  43. cloudxpl/modules/aws/guardduty_bypass.py +71 -0
  44. cloudxpl/modules/aws/iam_enum.py +101 -0
  45. cloudxpl/modules/aws/iam_privesc.py +92 -0
  46. cloudxpl/modules/aws/lambda_enum.py +85 -0
  47. cloudxpl/modules/aws/lambda_inject.py +79 -0
  48. cloudxpl/modules/aws/lambda_persist.py +69 -0
  49. cloudxpl/modules/aws/org_enum.py +58 -0
  50. cloudxpl/modules/aws/pacu_bridge.py +45 -0
  51. cloudxpl/modules/aws/rds_enum.py +64 -0
  52. cloudxpl/modules/aws/rds_exploit.py +57 -0
  53. cloudxpl/modules/aws/route53_takeover.py +63 -0
  54. cloudxpl/modules/aws/s3_enum.py +96 -0
  55. cloudxpl/modules/aws/s3_exfil.py +60 -0
  56. cloudxpl/modules/aws/s3_exploit.py +85 -0
  57. cloudxpl/modules/aws/secrets_manager.py +62 -0
  58. cloudxpl/modules/aws/sns_exploit.py +66 -0
  59. cloudxpl/modules/aws/sqs_exploit.py +62 -0
  60. cloudxpl/modules/aws/ssm_param_store.py +69 -0
  61. cloudxpl/modules/aws/sso_enum.py +63 -0
  62. cloudxpl/modules/aws/ssrf_imds.py +97 -0
  63. cloudxpl/modules/aws/stepfunctions_exploit.py +57 -0
  64. cloudxpl/modules/aws/sts_enum.py +70 -0
  65. cloudxpl/modules/aws/vpc_enum.py +66 -0
  66. cloudxpl/modules/azure/__init__.py +0 -0
  67. cloudxpl/modules/azure/aks_enum.py +85 -0
  68. cloudxpl/modules/azure/aks_exploit.py +85 -0
  69. cloudxpl/modules/azure/app_service_exploit.py +85 -0
  70. cloudxpl/modules/azure/arm_injection.py +144 -0
  71. cloudxpl/modules/azure/automation_exploit.py +85 -0
  72. cloudxpl/modules/azure/azure_functions_escape.py +29 -0
  73. cloudxpl/modules/azure/azurehound_bridge.py +85 -0
  74. cloudxpl/modules/azure/azurescape.py +41 -0
  75. cloudxpl/modules/azure/azurescape_bridge.py +29 -0
  76. cloudxpl/modules/azure/blob_exfil.py +85 -0
  77. cloudxpl/modules/azure/blob_exploit.py +85 -0
  78. cloudxpl/modules/azure/conditional_access.py +85 -0
  79. cloudxpl/modules/azure/cosmosdb_exploit.py +85 -0
  80. cloudxpl/modules/azure/cve_2024_50603.py +85 -0
  81. cloudxpl/modules/azure/cve_2025_29813.py +85 -0
  82. cloudxpl/modules/azure/cve_2025_29827.py +85 -0
  83. cloudxpl/modules/azure/cve_2025_29972.py +85 -0
  84. cloudxpl/modules/azure/cve_2025_53767.py +85 -0
  85. cloudxpl/modules/azure/cve_2026_20965.py +41 -0
  86. cloudxpl/modules/azure/defender_bypass.py +85 -0
  87. cloudxpl/modules/azure/devops_exploit.py +85 -0
  88. cloudxpl/modules/azure/entra_consent.py +85 -0
  89. cloudxpl/modules/azure/entra_enum.py +85 -0
  90. cloudxpl/modules/azure/entra_privesc.py +85 -0
  91. cloudxpl/modules/azure/entra_tokens.py +85 -0
  92. cloudxpl/modules/azure/fabricscape.py +41 -0
  93. cloudxpl/modules/azure/fabricscape_cve_2022_30137.py +30 -0
  94. cloudxpl/modules/azure/function_exploit.py +85 -0
  95. cloudxpl/modules/azure/function_persist.py +85 -0
  96. cloudxpl/modules/azure/functions_escape.py +41 -0
  97. cloudxpl/modules/azure/graph_api_abuse.py +85 -0
  98. cloudxpl/modules/azure/keyvault_exploit.py +85 -0
  99. cloudxpl/modules/azure/logic_apps_exploit.py +85 -0
  100. cloudxpl/modules/azure/managed_identity.py +115 -0
  101. cloudxpl/modules/azure/nsg_enum.py +85 -0
  102. cloudxpl/modules/azure/pim_abuse.py +85 -0
  103. cloudxpl/modules/azure/rbac_enum.py +85 -0
  104. cloudxpl/modules/azure/rbac_exploit.py +85 -0
  105. cloudxpl/modules/azure/resource_group_enum.py +85 -0
  106. cloudxpl/modules/azure/sentinel_bypass.py +85 -0
  107. cloudxpl/modules/azure/service_principal.py +85 -0
  108. cloudxpl/modules/azure/sql_enum.py +85 -0
  109. cloudxpl/modules/azure/sql_exploit.py +85 -0
  110. cloudxpl/modules/azure/storage_enum.py +94 -0
  111. cloudxpl/modules/azure/stormspotter_bridge.py +85 -0
  112. cloudxpl/modules/azure/subscription_enum.py +72 -0
  113. cloudxpl/modules/azure/vm_enum.py +85 -0
  114. cloudxpl/modules/azure/vm_exploit.py +85 -0
  115. cloudxpl/modules/azure/vm_imds.py +85 -0
  116. cloudxpl/modules/cicd/__init__.py +0 -0
  117. cloudxpl/modules/cicd/cicd_secret_dump.py +22 -0
  118. cloudxpl/modules/cicd/circleci_runner_escape.py +22 -0
  119. cloudxpl/modules/cicd/gha_runner_escape.py +22 -0
  120. cloudxpl/modules/cicd/gha_supply_chain.py +22 -0
  121. cloudxpl/modules/cicd/gitlab_ci_rce.py +22 -0
  122. cloudxpl/modules/cicd/gitlab_runner_hijack.py +22 -0
  123. cloudxpl/modules/cicd/jenkins_agent_abuse.py +22 -0
  124. cloudxpl/modules/cicd/jenkins_plugin_privesc.py +22 -0
  125. cloudxpl/modules/cicd/terraform_agent_abuse.py +22 -0
  126. cloudxpl/modules/cicd/terraform_token_leak.py +22 -0
  127. cloudxpl/modules/cred/__init__.py +0 -0
  128. cloudxpl/modules/cred/config_file_scan.py +85 -0
  129. cloudxpl/modules/cred/credential_report.py +85 -0
  130. cloudxpl/modules/cred/env_var_scan.py +85 -0
  131. cloudxpl/modules/cred/federation_abuse.py +85 -0
  132. cloudxpl/modules/cred/key_rotation_check.py +85 -0
  133. cloudxpl/modules/cred/leaked_key_exploit.py +85 -0
  134. cloudxpl/modules/cred/metadata_harvest.py +85 -0
  135. cloudxpl/modules/cred/mfa_relay.py +40 -0
  136. cloudxpl/modules/cred/oauth_token_theft.py +85 -0
  137. cloudxpl/modules/cred/rsa_netwitness_exploit.py +40 -0
  138. cloudxpl/modules/cred/rsa_securid_enum.py +40 -0
  139. cloudxpl/modules/cred/seed_theft_check.py +40 -0
  140. cloudxpl/modules/cred/temp_cred_extend.py +85 -0
  141. cloudxpl/modules/cred/token_lifetime_abuse.py +85 -0
  142. cloudxpl/modules/digitalocean/__init__.py +0 -0
  143. cloudxpl/modules/digitalocean/api_token_abuse.py +40 -0
  144. cloudxpl/modules/digitalocean/doks_enum.py +40 -0
  145. cloudxpl/modules/digitalocean/droplet_agent_rce.py +40 -0
  146. cloudxpl/modules/digitalocean/droplet_enum.py +40 -0
  147. cloudxpl/modules/digitalocean/firewall_enum.py +40 -0
  148. cloudxpl/modules/digitalocean/metadata_ssrf.py +40 -0
  149. cloudxpl/modules/digitalocean/spaces_enum.py +40 -0
  150. cloudxpl/modules/digitalocean/spaces_exploit.py +40 -0
  151. cloudxpl/modules/gcp/__init__.py +0 -0
  152. cloudxpl/modules/gcp/artifact_registry.py +85 -0
  153. cloudxpl/modules/gcp/bigquery_exploit.py +85 -0
  154. cloudxpl/modules/gcp/bucket_enum.py +84 -0
  155. cloudxpl/modules/gcp/bucket_exfil.py +85 -0
  156. cloudxpl/modules/gcp/bucket_exploit.py +85 -0
  157. cloudxpl/modules/gcp/cloud_armor_bypass.py +40 -0
  158. cloudxpl/modules/gcp/cloudbuild_exploit.py +85 -0
  159. cloudxpl/modules/gcp/cloudbuild_supply_chain.py +40 -0
  160. cloudxpl/modules/gcp/cloudfunctions_exploit.py +85 -0
  161. cloudxpl/modules/gcp/cloudfunctions_persist.py +85 -0
  162. cloudxpl/modules/gcp/cloudrun_exploit.py +85 -0
  163. cloudxpl/modules/gcp/cloudsql_enum.py +85 -0
  164. cloudxpl/modules/gcp/cloudsql_exploit.py +85 -0
  165. cloudxpl/modules/gcp/composer_exploit.py +85 -0
  166. cloudxpl/modules/gcp/compute_enum.py +85 -0
  167. cloudxpl/modules/gcp/compute_exploit.py +85 -0
  168. cloudxpl/modules/gcp/compute_imds.py +85 -0
  169. cloudxpl/modules/gcp/cve_2025_51591.py +85 -0
  170. cloudxpl/modules/gcp/cve_2026_2031.py +85 -0
  171. cloudxpl/modules/gcp/cve_2026_2264.py +85 -0
  172. cloudxpl/modules/gcp/cve_2026_31431.py +40 -0
  173. cloudxpl/modules/gcp/cve_2026_46300.py +40 -0
  174. cloudxpl/modules/gcp/cve_2026_81867.py +85 -0
  175. cloudxpl/modules/gcp/dataflow_exploit.py +85 -0
  176. cloudxpl/modules/gcp/dns_takeover.py +85 -0
  177. cloudxpl/modules/gcp/gcpbucketbrute_bridge.py +85 -0
  178. cloudxpl/modules/gcp/gke_autopilot_escape.py +40 -0
  179. cloudxpl/modules/gcp/gke_enum.py +85 -0
  180. cloudxpl/modules/gcp/gke_exploit.py +85 -0
  181. cloudxpl/modules/gcp/iam_privesc.py +85 -0
  182. cloudxpl/modules/gcp/iap_bypass.py +40 -0
  183. cloudxpl/modules/gcp/imagerunner_exploit.py +40 -0
  184. cloudxpl/modules/gcp/kms_exploit.py +85 -0
  185. cloudxpl/modules/gcp/logging_bypass.py +85 -0
  186. cloudxpl/modules/gcp/metadata_ssrf.py +94 -0
  187. cloudxpl/modules/gcp/org_policy_enum.py +85 -0
  188. cloudxpl/modules/gcp/project_enum.py +123 -0
  189. cloudxpl/modules/gcp/pubsub_exploit.py +85 -0
  190. cloudxpl/modules/gcp/sa_impersonate.py +85 -0
  191. cloudxpl/modules/gcp/sa_key_theft.py +85 -0
  192. cloudxpl/modules/gcp/secretmanager_exploit.py +85 -0
  193. cloudxpl/modules/gcp/service_account_enum.py +107 -0
  194. cloudxpl/modules/gcp/terraform_state.py +85 -0
  195. cloudxpl/modules/gcp/vpc_firewall_enum.py +85 -0
  196. cloudxpl/modules/gcp/wif_abuse.py +40 -0
  197. cloudxpl/modules/gcp/workload_identity.py +85 -0
  198. cloudxpl/modules/hetzner/__init__.py +0 -0
  199. cloudxpl/modules/hetzner/api_token_abuse.py +40 -0
  200. cloudxpl/modules/hetzner/firewall_enum.py +40 -0
  201. cloudxpl/modules/hetzner/floating_ip_hijack.py +40 -0
  202. cloudxpl/modules/hetzner/metadata_ssrf.py +40 -0
  203. cloudxpl/modules/hetzner/server_enum.py +40 -0
  204. cloudxpl/modules/ibm/__init__.py +0 -0
  205. cloudxpl/modules/ibm/cloudpak_exploit.py +40 -0
  206. cloudxpl/modules/ibm/cos_enum.py +40 -0
  207. cloudxpl/modules/ibm/cos_exploit.py +40 -0
  208. cloudxpl/modules/ibm/iam_enum.py +40 -0
  209. cloudxpl/modules/ibm/qradar_exploit.py +40 -0
  210. cloudxpl/modules/ibm/vpc_enum.py +40 -0
  211. cloudxpl/modules/k8s/__init__.py +0 -0
  212. cloudxpl/modules/k8s/admission_bypass.py +85 -0
  213. cloudxpl/modules/k8s/api_server_anon.py +85 -0
  214. cloudxpl/modules/k8s/cluster_enum.py +85 -0
  215. cloudxpl/modules/k8s/configmap_dump.py +85 -0
  216. cloudxpl/modules/k8s/container_cve_2026_52910.py +42 -0
  217. cloudxpl/modules/k8s/container_escape.py +85 -0
  218. cloudxpl/modules/k8s/crd_abuse.py +85 -0
  219. cloudxpl/modules/k8s/cve_2019_5736.py +40 -0
  220. cloudxpl/modules/k8s/cve_2021_30465.py +40 -0
  221. cloudxpl/modules/k8s/cve_2022_0492.py +40 -0
  222. cloudxpl/modules/k8s/cve_2022_0847.py +40 -0
  223. cloudxpl/modules/k8s/cve_2022_23648.py +40 -0
  224. cloudxpl/modules/k8s/cve_2024_0132.py +41 -0
  225. cloudxpl/modules/k8s/cve_2024_1753.py +41 -0
  226. cloudxpl/modules/k8s/cve_2024_21626.py +85 -0
  227. cloudxpl/modules/k8s/cve_2024_23651.py +41 -0
  228. cloudxpl/modules/k8s/cve_2024_23652.py +41 -0
  229. cloudxpl/modules/k8s/cve_2024_23653.py +41 -0
  230. cloudxpl/modules/k8s/cve_2025_23266.py +41 -0
  231. cloudxpl/modules/k8s/cve_2025_31133.py +85 -0
  232. cloudxpl/modules/k8s/cve_2025_52565.py +85 -0
  233. cloudxpl/modules/k8s/cve_2025_52881.py +85 -0
  234. cloudxpl/modules/k8s/etcd_exploit.py +85 -0
  235. cloudxpl/modules/k8s/helm_exploit.py +85 -0
  236. cloudxpl/modules/k8s/hostpath_mount.py +85 -0
  237. cloudxpl/modules/k8s/kube_hunter_bridge.py +85 -0
  238. cloudxpl/modules/k8s/kubelet_exploit.py +85 -0
  239. cloudxpl/modules/k8s/network_policy_bypass.py +85 -0
  240. cloudxpl/modules/k8s/node_proxy.py +85 -0
  241. cloudxpl/modules/k8s/peirates_bridge.py +85 -0
  242. cloudxpl/modules/k8s/pod_enum.py +85 -0
  243. cloudxpl/modules/k8s/pod_escape_cve.py +85 -0
  244. cloudxpl/modules/k8s/privileged_pod.py +85 -0
  245. cloudxpl/modules/k8s/rbac_enum.py +85 -0
  246. cloudxpl/modules/k8s/rbac_escalation.py +85 -0
  247. cloudxpl/modules/k8s/registry_exploit.py +85 -0
  248. cloudxpl/modules/k8s/runc_cve_2019_5736.py +41 -0
  249. cloudxpl/modules/k8s/runc_cve_2024_23651.py +30 -0
  250. cloudxpl/modules/k8s/runc_cve_2024_23652.py +30 -0
  251. cloudxpl/modules/k8s/runc_cve_2024_23653.py +30 -0
  252. cloudxpl/modules/k8s/sa_token_theft.py +85 -0
  253. cloudxpl/modules/k8s/secret_dump.py +85 -0
  254. cloudxpl/modules/k8s/service_mesh_exploit.py +85 -0
  255. cloudxpl/modules/k8s/sidecar_inject.py +85 -0
  256. cloudxpl/modules/multi/__init__.py +0 -0
  257. cloudxpl/modules/multi/ci_cd_exploit.py +85 -0
  258. cloudxpl/modules/multi/cloud_side_channel.py +41 -0
  259. cloudxpl/modules/multi/cloudfox_bridge.py +85 -0
  260. cloudxpl/modules/multi/cloudtoolkit_multi.py +40 -0
  261. cloudxpl/modules/multi/container_escape_collection_bridge.py +41 -0
  262. cloudxpl/modules/multi/cross_cloud_pivot.py +85 -0
  263. cloudxpl/modules/multi/docker_escape.py +85 -0
  264. cloudxpl/modules/multi/docker_socket.py +85 -0
  265. cloudxpl/modules/multi/firecracker_escape.py +41 -0
  266. cloudxpl/modules/multi/git_secret_scan.py +85 -0
  267. cloudxpl/modules/multi/github_actions_runner_exploit.py +29 -0
  268. cloudxpl/modules/multi/huawei_recon.py +40 -0
  269. cloudxpl/modules/multi/iac_secret_scan.py +85 -0
  270. cloudxpl/modules/multi/openstack_generic.py +40 -0
  271. cloudxpl/modules/multi/prowler_bridge.py +85 -0
  272. cloudxpl/modules/multi/scoutsuite_bridge.py +85 -0
  273. cloudxpl/modules/multi/steampipe_bridge.py +85 -0
  274. cloudxpl/modules/multi/terraform_plan_inject.py +85 -0
  275. cloudxpl/modules/multi/terraform_state_exploit.py +85 -0
  276. cloudxpl/modules/net/__init__.py +0 -0
  277. cloudxpl/modules/net/dns_takeover.py +85 -0
  278. cloudxpl/modules/net/exposed_services.py +85 -0
  279. cloudxpl/modules/net/load_balancer_enum.py +85 -0
  280. cloudxpl/modules/net/peering_abuse.py +85 -0
  281. cloudxpl/modules/net/privatelink_abuse.py +85 -0
  282. cloudxpl/modules/net/sg_analysis.py +85 -0
  283. cloudxpl/modules/net/vpc_enum.py +85 -0
  284. cloudxpl/modules/net/vpn_exploit.py +85 -0
  285. cloudxpl/modules/oci/__init__.py +0 -0
  286. cloudxpl/modules/oci/audit_bypass.py +40 -0
  287. cloudxpl/modules/oci/bucket_enum.py +40 -0
  288. cloudxpl/modules/oci/bucket_exploit.py +40 -0
  289. cloudxpl/modules/oci/compute_enum.py +40 -0
  290. cloudxpl/modules/oci/cve_2025_61882.py +40 -0
  291. cloudxpl/modules/oci/cve_2026_21962.py +40 -0
  292. cloudxpl/modules/oci/iam_enum.py +40 -0
  293. cloudxpl/modules/oci/metadata_ssrf.py +40 -0
  294. cloudxpl/modules/oci/ocinfernobridge.py +40 -0
  295. cloudxpl/modules/oci/volume_attach.py +40 -0
  296. cloudxpl/modules/ovh/__init__.py +0 -0
  297. cloudxpl/modules/ovh/api_abuse.py +40 -0
  298. cloudxpl/modules/ovh/bare_metal_ipmi.py +40 -0
  299. cloudxpl/modules/ovh/email_spoof.py +40 -0
  300. cloudxpl/modules/ovh/openstack_enum.py +40 -0
  301. cloudxpl/modules/ovh/swift_exploit.py +40 -0
  302. cloudxpl/modules/ovh/vrack_lateral.py +40 -0
  303. cloudxpl/modules/paas/__init__.py +0 -0
  304. cloudxpl/modules/paas/aci_azurescape.py +22 -0
  305. cloudxpl/modules/paas/appservice_sandbox_escape.py +22 -0
  306. cloudxpl/modules/paas/beanstalk_escape.py +22 -0
  307. cloudxpl/modules/paas/cloudrun_runc_escape.py +22 -0
  308. cloudxpl/modules/paas/fargate_firecracker.py +22 -0
  309. cloudxpl/modules/paas/gcp_appint_sandbox.py +22 -0
  310. cloudxpl/modules/paas/heroku_dyno_recon.py +22 -0
  311. cloudxpl/modules/paas/lambda_tmp_persist.py +22 -0
  312. cloudxpl/modules/paas/paas_metadata_pivot.py +22 -0
  313. cloudxpl/modules/paas/railway_escape.py +22 -0
  314. cloudxpl/modules/serverless/__init__.py +0 -0
  315. cloudxpl/modules/serverless/api_gateway_bypass.py +85 -0
  316. cloudxpl/modules/serverless/cold_start_abuse.py +85 -0
  317. cloudxpl/modules/serverless/concurrency_abuse.py +85 -0
  318. cloudxpl/modules/serverless/env_extraction.py +85 -0
  319. cloudxpl/modules/serverless/event_injection.py +85 -0
  320. cloudxpl/modules/serverless/iam_role_chain.py +85 -0
  321. cloudxpl/modules/serverless/layer_poisoning.py +85 -0
  322. cloudxpl/modules/serverless/log_injection.py +85 -0
  323. cloudxpl/modules/serverless/reverse_shell.py +85 -0
  324. cloudxpl/modules/serverless/runtime_rce.py +85 -0
  325. cloudxpl/modules/serverless/step_function_abuse.py +85 -0
  326. cloudxpl/modules/serverless/tmp_persistence.py +85 -0
  327. cloudxpl/modules/serverless/trigger_hijack.py +85 -0
  328. cloudxpl/modules/serverless/vpc_pivot.py +85 -0
  329. cloudxpl/modules/storage/__init__.py +0 -0
  330. cloudxpl/modules/storage/acl_check.py +85 -0
  331. cloudxpl/modules/storage/bucket_bruteforce.py +85 -0
  332. cloudxpl/modules/storage/bucket_finder.py +85 -0
  333. cloudxpl/modules/storage/bucketloot_bridge.py +85 -0
  334. cloudxpl/modules/storage/cors_exploit.py +85 -0
  335. cloudxpl/modules/storage/download_mass.py +85 -0
  336. cloudxpl/modules/storage/grayhat_search.py +85 -0
  337. cloudxpl/modules/storage/policy_abuse.py +85 -0
  338. cloudxpl/modules/storage/presigned_abuse.py +85 -0
  339. cloudxpl/modules/storage/public_objects.py +85 -0
  340. cloudxpl/modules/storage/ransomware_sim.py +85 -0
  341. cloudxpl/modules/storage/s3scanner_bridge.py +85 -0
  342. cloudxpl/modules/storage/static_site_takeover.py +85 -0
  343. cloudxpl/modules/storage/upload_exploit.py +85 -0
  344. cloudxpl/modules/storage/versioning_exploit.py +85 -0
  345. cloudxpl/modules/tencent/__init__.py +0 -0
  346. cloudxpl/modules/tencent/cam_enum.py +40 -0
  347. cloudxpl/modules/tencent/cloudtoolkit_bridge.py +40 -0
  348. cloudxpl/modules/tencent/cos_enum.py +40 -0
  349. cloudxpl/modules/tencent/cos_exploit.py +40 -0
  350. cloudxpl/modules/tencent/cve_2026_30859.py +40 -0
  351. cloudxpl/modules/tencent/cvm_metadata.py +40 -0
  352. cloudxpl/modules/vdi/__init__.py +0 -0
  353. cloudxpl/modules/vdi/avd_privesc.py +22 -0
  354. cloudxpl/modules/vdi/citrix_session_recording_rce.py +22 -0
  355. cloudxpl/modules/vdi/citrix_vda_lpe.py +22 -0
  356. cloudxpl/modules/vdi/citrix_vdi_cve_2025_6759.py +30 -0
  357. cloudxpl/modules/vdi/horizon_escape.py +22 -0
  358. cloudxpl/modules/vdi/vdi_breakout_clipboard.py +22 -0
  359. cloudxpl/modules/vdi/vdi_breakout_dialog.py +22 -0
  360. cloudxpl/modules/vdi/vdi_breakout_drive.py +22 -0
  361. cloudxpl/modules/vdi/vdi_breakout_print.py +22 -0
  362. cloudxpl/modules/vdi/vdi_breakout_usb.py +22 -0
  363. cloudxpl/modules/vdi/vdi_kiosk_escape.py +22 -0
  364. cloudxpl/modules/vdi/workspaces_lpe.py +22 -0
  365. cloudxpl/modules/virt/__init__.py +0 -0
  366. cloudxpl/modules/virt/amd_microcode_cve_2024_56161.py +30 -0
  367. cloudxpl/modules/virt/awesome_hyperv_bridge.py +33 -0
  368. cloudxpl/modules/virt/awesome_vm_exploit_bridge.py +33 -0
  369. cloudxpl/modules/virt/citrix_cve_2026_53562.py +30 -0
  370. cloudxpl/modules/virt/citrix_escape.py +40 -0
  371. cloudxpl/modules/virt/citrix_vapd_exploit.py +34 -0
  372. cloudxpl/modules/virt/citrix_vdi_cve_2025_6759.py +30 -0
  373. cloudxpl/modules/virt/citrix_xsa_486.py +40 -0
  374. cloudxpl/modules/virt/container_cve_2026_80521.py +42 -0
  375. cloudxpl/modules/virt/container_escape_collection_bridge.py +33 -0
  376. cloudxpl/modules/virt/cve_2019_5544.py +40 -0
  377. cloudxpl/modules/virt/cve_2020_3952.py +40 -0
  378. cloudxpl/modules/virt/cve_2020_3992.py +40 -0
  379. cloudxpl/modules/virt/cve_2021_21972.py +40 -0
  380. cloudxpl/modules/virt/cve_2021_21974.py +40 -0
  381. cloudxpl/modules/virt/cve_2021_21985.py +40 -0
  382. cloudxpl/modules/virt/cve_2021_22005.py +40 -0
  383. cloudxpl/modules/virt/cve_2022_22954.py +40 -0
  384. cloudxpl/modules/virt/cve_2022_31705.py +40 -0
  385. cloudxpl/modules/virt/cve_2023_20867.py +40 -0
  386. cloudxpl/modules/virt/cve_2023_34048.py +40 -0
  387. cloudxpl/modules/virt/cve_2024_37085.py +40 -0
  388. cloudxpl/modules/virt/cve_2025_22225.py +40 -0
  389. cloudxpl/modules/virt/cve_2025_22226.py +40 -0
  390. cloudxpl/modules/virt/esxi_brute_bridge.py +33 -0
  391. cloudxpl/modules/virt/esxi_cve_2019_5544.py +30 -0
  392. cloudxpl/modules/virt/esxi_cve_2020_3992.py +30 -0
  393. cloudxpl/modules/virt/esxi_cve_2021_21974.py +30 -0
  394. cloudxpl/modules/virt/esxi_cve_2024_22252.py +41 -0
  395. cloudxpl/modules/virt/esxi_cve_2024_22253.py +41 -0
  396. cloudxpl/modules/virt/esxi_cve_2024_22254.py +41 -0
  397. cloudxpl/modules/virt/esxi_cve_2024_22255.py +41 -0
  398. cloudxpl/modules/virt/esxi_cve_2024_37085.py +30 -0
  399. cloudxpl/modules/virt/esxi_cve_2025_22224.py +40 -0
  400. cloudxpl/modules/virt/esxi_cve_2026_47876.py +30 -0
  401. cloudxpl/modules/virt/esxi_enum.py +40 -0
  402. cloudxpl/modules/virt/esxi_fingerprint_bridge.py +33 -0
  403. cloudxpl/modules/virt/esxi_log4shell.py +41 -0
  404. cloudxpl/modules/virt/esxi_ransomware.py +40 -0
  405. cloudxpl/modules/virt/esxi_ssh_exploit.py +40 -0
  406. cloudxpl/modules/virt/esxi_vm_escape.py +40 -0
  407. cloudxpl/modules/virt/firecracker_cve_2026_1386.py +30 -0
  408. cloudxpl/modules/virt/firecracker_cve_2026_5747.py +30 -0
  409. cloudxpl/modules/virt/firecracker_escape.py +40 -0
  410. cloudxpl/modules/virt/horizon_log4shell.py +30 -0
  411. cloudxpl/modules/virt/hyperv_cve_2019_0887.py +30 -0
  412. cloudxpl/modules/virt/hyperv_cve_2021_28476.py +40 -0
  413. cloudxpl/modules/virt/hyperv_cve_2021_34450.py +30 -0
  414. cloudxpl/modules/virt/hyperv_cve_2022_21995.py +30 -0
  415. cloudxpl/modules/virt/hyperv_cve_2022_30163.py +30 -0
  416. cloudxpl/modules/virt/hyperv_cve_2024_20700.py +41 -0
  417. cloudxpl/modules/virt/hyperv_cve_2024_21407.py +40 -0
  418. cloudxpl/modules/virt/hyperv_cve_2024_38080.py +41 -0
  419. cloudxpl/modules/virt/hyperv_cve_2024_49117.py +30 -0
  420. cloudxpl/modules/virt/hyperv_cve_2025_21333.py +41 -0
  421. cloudxpl/modules/virt/hyperv_cve_2025_21334.py +41 -0
  422. cloudxpl/modules/virt/hyperv_cve_2025_21335.py +41 -0
  423. cloudxpl/modules/virt/hyperv_cve_2026_40402.py +40 -0
  424. cloudxpl/modules/virt/hyperv_cve_2026_45607.py +30 -0
  425. cloudxpl/modules/virt/hyperv_cve_2026_45641.py +41 -0
  426. cloudxpl/modules/virt/hyperv_cve_2026_57092.py +41 -0
  427. cloudxpl/modules/virt/hyperv_cve_2026_69603.py +41 -0
  428. cloudxpl/modules/virt/hyperv_cve_2026_72961.py +41 -0
  429. cloudxpl/modules/virt/hyperv_cve_2026_80083.py +41 -0
  430. cloudxpl/modules/virt/hyperv_cve_2026_89927.py +41 -0
  431. cloudxpl/modules/virt/hyperv_enum.py +40 -0
  432. cloudxpl/modules/virt/hyperv_escape.py +40 -0
  433. cloudxpl/modules/virt/hyperv_remotefx.py +40 -0
  434. cloudxpl/modules/virt/hypervisor_resources_bridge.py +41 -0
  435. cloudxpl/modules/virt/intel_tdx_enum.py +29 -0
  436. cloudxpl/modules/virt/kata_cve_2026_24834.py +30 -0
  437. cloudxpl/modules/virt/kata_escape.py +40 -0
  438. cloudxpl/modules/virt/kvm_arm64_escape.py +40 -0
  439. cloudxpl/modules/virt/kvm_cve_2019_14835.py +40 -0
  440. cloudxpl/modules/virt/kvm_cve_2019_18389.py +40 -0
  441. cloudxpl/modules/virt/kvm_cve_2026_3842.py +41 -0
  442. cloudxpl/modules/virt/kvm_cve_2026_64561.py +41 -0
  443. cloudxpl/modules/virt/kvm_cve_2026_99999.py +41 -0
  444. cloudxpl/modules/virt/kvm_januscape.py +40 -0
  445. cloudxpl/modules/virt/libvirt_enum.py +40 -0
  446. cloudxpl/modules/virt/lolesxi_bridge.py +33 -0
  447. cloudxpl/modules/virt/msf_vmware_bridge.py +40 -0
  448. cloudxpl/modules/virt/nitro_sidechannel.py +29 -0
  449. cloudxpl/modules/virt/nutanix_cve_2018_7750.py +30 -0
  450. cloudxpl/modules/virt/nutanix_cve_2026_84731.py +30 -0
  451. cloudxpl/modules/virt/nutanix_enum.py +40 -0
  452. cloudxpl/modules/virt/qemu_cve_2019_14378.py +30 -0
  453. cloudxpl/modules/virt/qemu_cve_2019_18389.py +30 -0
  454. cloudxpl/modules/virt/qemu_cve_2020_14364.py +30 -0
  455. cloudxpl/modules/virt/qemu_cve_2023_6693.py +41 -0
  456. cloudxpl/modules/virt/qemu_cve_2024_3446.py +41 -0
  457. cloudxpl/modules/virt/qemu_cve_2024_4467.py +41 -0
  458. cloudxpl/modules/virt/qemu_cve_2024_49841.py +41 -0
  459. cloudxpl/modules/virt/qemu_cve_2024_6519.py +40 -0
  460. cloudxpl/modules/virt/qemu_dma_reentrancy.py +40 -0
  461. cloudxpl/modules/virt/qemu_rtl8139_chain.py +41 -0
  462. cloudxpl/modules/virt/qemu_slirp_escape.py +41 -0
  463. cloudxpl/modules/virt/qemu_slirp_escape_bridge.py +42 -0
  464. cloudxpl/modules/virt/qemu_virtio_exploit.py +40 -0
  465. cloudxpl/modules/virt/sev_snp_enum.py +29 -0
  466. cloudxpl/modules/virt/sidechannel_cachewarp.py +30 -0
  467. cloudxpl/modules/virt/sidechannel_ddrop.py +29 -0
  468. cloudxpl/modules/virt/sidechannel_downfall.py +30 -0
  469. cloudxpl/modules/virt/sidechannel_inception.py +30 -0
  470. cloudxpl/modules/virt/sidechannel_wesee.py +30 -0
  471. cloudxpl/modules/virt/sidechannel_zenbleed.py +30 -0
  472. cloudxpl/modules/virt/vcenter_cve_2020_3952.py +30 -0
  473. cloudxpl/modules/virt/vcenter_cve_2021_21972.py +30 -0
  474. cloudxpl/modules/virt/vcenter_cve_2021_22005.py +34 -0
  475. cloudxpl/modules/virt/vcenter_cve_2021_44228.py +34 -0
  476. cloudxpl/modules/virt/vcenter_cve_2024_22252.py +30 -0
  477. cloudxpl/modules/virt/vcenter_cve_2024_22274.py +30 -0
  478. cloudxpl/modules/virt/vcenter_cve_2024_37079.py +40 -0
  479. cloudxpl/modules/virt/vcenter_cve_2024_37080.py +41 -0
  480. cloudxpl/modules/virt/vcenter_cve_2024_37081.py +30 -0
  481. cloudxpl/modules/virt/vcenter_cve_2024_38812.py +41 -0
  482. cloudxpl/modules/virt/vcenter_cve_2024_38813.py +41 -0
  483. cloudxpl/modules/virt/vcenter_cve_2025_41225.py +41 -0
  484. cloudxpl/modules/virt/vcenter_cve_2026_59309.py +40 -0
  485. cloudxpl/modules/virt/vcenter_cve_2026_59310.py +40 -0
  486. cloudxpl/modules/virt/vcenter_exploit.py +40 -0
  487. cloudxpl/modules/virt/vcenter_saml_bypass.py +41 -0
  488. cloudxpl/modules/virt/vcenter_secrets_dump.py +33 -0
  489. cloudxpl/modules/virt/vcenter_vmdir_bridge.py +34 -0
  490. cloudxpl/modules/virt/vcenterkit_bridge.py +40 -0
  491. cloudxpl/modules/virt/vdi_breakout.py +40 -0
  492. cloudxpl/modules/virt/virt_cross_domain.py +41 -0
  493. cloudxpl/modules/virt/virt_maestro_detect.py +41 -0
  494. cloudxpl/modules/virt/virt_side_channel.py +41 -0
  495. cloudxpl/modules/virt/virt_snapshot_theft.py +41 -0
  496. cloudxpl/modules/virt/virt_vtpm_extract.py +41 -0
  497. cloudxpl/modules/virt/vmware_api_enum.py +29 -0
  498. cloudxpl/modules/virt/vmware_enum_vms_bridge.py +33 -0
  499. cloudxpl/modules/virt/vmware_exploitation_bridge.py +33 -0
  500. cloudxpl/modules/virt/vmware_http_login_bridge.py +33 -0
  501. cloudxpl/modules/virt/vmware_tools_lpe.py +40 -0
  502. cloudxpl/modules/virt/xen_cve_2023_46842.py +41 -0
  503. cloudxpl/modules/virt/xen_grant_escape.py +40 -0
  504. cloudxpl/modules/virt/xen_iommu_exploit.py +40 -0
  505. cloudxpl/modules/virt/xen_venom.py +41 -0
  506. cloudxpl/modules/virt/xen_xsa486.py +41 -0
  507. cloudxpl/modules/virt/xen_xsa500.py +41 -0
  508. cloudxpl/modules/virt/xen_xsa505.py +41 -0
  509. cloudxpl/modules/virt/xen_xsa507.py +30 -0
  510. cloudxpl/modules/virt/xen_xsa517.py +41 -0
  511. cloudxpl/modules/virt/xen_xsa521.py +41 -0
  512. cloudxpl/modules/virt/xen_xsa_500.py +30 -0
  513. cloudxpl/modules/virt/xen_xsa_505.py +30 -0
  514. cloudxpl/modules/virt/xen_xsa_507.py +30 -0
  515. cloudxpl/modules/virt/xen_xsa_517.py +30 -0
  516. cloudxpl/modules/virt/xen_xsa_521.py +30 -0
  517. cloudxpl/py.typed +0 -0
  518. cloudxpl-4.2.0.dist-info/METADATA +98 -0
  519. cloudxpl-4.2.0.dist-info/RECORD +522 -0
  520. cloudxpl-4.2.0.dist-info/WHEEL +5 -0
  521. cloudxpl-4.2.0.dist-info/entry_points.txt +3 -0
  522. cloudxpl-4.2.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,40 @@
1
+ """CloudXPL-Forge module: SSRF to Alibaba ECS metadata endpoint for RAM role credentials"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+
8
+ MANIFEST = {
9
+ "capability_id": "cloudxpl.alibaba.ecs_metadata.v1",
10
+ "safety_class": "EXPLOIT",
11
+ "requires_authorization": True,
12
+ "side_effects": ["api_calls", "state_change"],
13
+ "output_schema": "xpl.finding.v1",
14
+ "mitre": ["T1552.005"],
15
+ }
16
+
17
+
18
+ def run(args: Any) -> int:
19
+ """Execute SSRF to Alibaba ECS metadata endpoint for RAM role credentials."""
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: Enumerate Alibaba OSS buckets, ACLs, policies"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+
8
+ MANIFEST = {
9
+ "capability_id": "cloudxpl.alibaba.oss_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"],
15
+ }
16
+
17
+
18
+ def run(args: Any) -> int:
19
+ """Execute Enumerate Alibaba OSS buckets, ACLs, policies."""
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: Exploit misconfigured OSS buckets (public read/write, CORS)"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+
8
+ MANIFEST = {
9
+ "capability_id": "cloudxpl.alibaba.oss_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": ["T1530"],
15
+ }
16
+
17
+
18
+ def run(args: Any) -> int:
19
+ """Execute Exploit misconfigured OSS buckets (public read/write, CORS)."""
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: Enumerate Alibaba RAM users, roles, policies, access keys"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+
8
+ MANIFEST = {
9
+ "capability_id": "cloudxpl.alibaba.ram_enum.v1",
10
+ "safety_class": "READ_ONLY",
11
+ "requires_authorization": True,
12
+ "side_effects": ["api_calls"],
13
+ "output_schema": "xpl.finding.v1",
14
+ "mitre": ["T1087.004"],
15
+ }
16
+
17
+
18
+ def run(args: Any) -> int:
19
+ """Execute Enumerate Alibaba RAM users, roles, policies, access keys."""
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: Enumerate Alibaba RDS instances, accounts, databases"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+
8
+ MANIFEST = {
9
+ "capability_id": "cloudxpl.alibaba.rds_enum.v1",
10
+ "safety_class": "READ_ONLY",
11
+ "requires_authorization": True,
12
+ "side_effects": ["api_calls"],
13
+ "output_schema": "xpl.finding.v1",
14
+ "mitre": ["T1580"],
15
+ }
16
+
17
+
18
+ def run(args: Any) -> int:
19
+ """Execute Enumerate Alibaba RDS instances, accounts, databases."""
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
File without changes
@@ -0,0 +1,61 @@
1
+ """AWS CloudFormation exploitation — stack secrets, exported values, template analysis."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ import sys
8
+ from datetime import datetime, timezone
9
+ from typing import Any
10
+
11
+
12
+ MANIFEST = {
13
+ "capability_id": "cloudxpl.aws.cloudformation_exploit.v1",
14
+ "safety_class": "READ_ONLY",
15
+ "requires_authorization": True,
16
+ "side_effects": [],
17
+ "output_schema": "xpl.finding.v1",
18
+ "mitre": ["T1552"],
19
+ }
20
+
21
+
22
+ def _save(args: Any, prefix: str, data: Any) -> str:
23
+ out = getattr(args, "output", ".")
24
+ os.makedirs(out, exist_ok=True)
25
+ ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
26
+ path = os.path.join(out, f"{prefix}_{ts}.json")
27
+ with open(path, "w") as fh:
28
+ json.dump(data, fh, indent=2, default=str)
29
+ print(f"[+] Results saved to {path}")
30
+ return path
31
+
32
+
33
+ def run(args: Any) -> int:
34
+
35
+ print(f"[*] AWS CloudFormation Exploitation Analysis (region: {args.region})")
36
+ try:
37
+ import boto3
38
+ except ImportError:
39
+ print("[!] boto3 not installed", file=sys.stderr); return 1
40
+ session = boto3.Session(profile_name=args.profile, region_name=args.region)
41
+ cfn = session.client("cloudformation")
42
+ results = {"stacks": [], "exports": [], "secrets_in_params": []}
43
+ try:
44
+ paginator = cfn.get_paginator("describe_stacks")
45
+ for page in paginator.paginate():
46
+ for stack in page["Stacks"]:
47
+ info = {"name": stack["StackName"], "status": stack["StackStatus"]}
48
+ for param in stack.get("Parameters", []):
49
+ if not param.get("ParameterValue") == "****":
50
+ if any(k in param["ParameterKey"].upper() for k in ["SECRET", "PASSWORD", "KEY", "TOKEN"]):
51
+ results["secrets_in_params"].append({"stack": stack["StackName"], "param": param["ParameterKey"]})
52
+ print(f" [!] {stack['StackName']}: visible parameter {param['ParameterKey']}")
53
+ for output in stack.get("Outputs", []):
54
+ if output.get("ExportName"):
55
+ results["exports"].append({"stack": stack["StackName"], "export": output["ExportName"], "value": output.get("OutputValue", "")[:40]})
56
+ results["stacks"].append(info)
57
+ except Exception as exc:
58
+ print(f"[-] CFN enum failed: {exc}"); return 1
59
+ _save(args, "aws_cloudformation_exploit", results)
60
+ print(f"[+] {len(results['stacks'])} stacks, {len(results['exports'])} exports, {len(results['secrets_in_params'])} visible secrets")
61
+ return 0
@@ -0,0 +1,66 @@
1
+ """AWS CloudTrail evasion analysis — identifies trails, logging gaps, tampering vectors."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ import sys
8
+ from datetime import datetime, timezone
9
+ from typing import Any
10
+
11
+
12
+ MANIFEST = {
13
+ "capability_id": "cloudxpl.aws.cloudtrail_disable.v1",
14
+ "safety_class": "READ_ONLY",
15
+ "requires_authorization": True,
16
+ "side_effects": [],
17
+ "output_schema": "xpl.finding.v1",
18
+ "mitre": ["T1562.008"],
19
+ }
20
+
21
+
22
+ def _save(args: Any, prefix: str, data: Any) -> str:
23
+ out = getattr(args, "output", ".")
24
+ os.makedirs(out, exist_ok=True)
25
+ ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
26
+ path = os.path.join(out, f"{prefix}_{ts}.json")
27
+ with open(path, "w") as fh:
28
+ json.dump(data, fh, indent=2, default=str)
29
+ print(f"[+] Results saved to {path}")
30
+ return path
31
+
32
+
33
+ def run(args: Any) -> int:
34
+
35
+ print(f"[*] AWS CloudTrail Evasion Analysis (region: {args.region})")
36
+ try:
37
+ import boto3
38
+ except ImportError:
39
+ print("[!] boto3 not installed", file=sys.stderr); return 1
40
+ session = boto3.Session(profile_name=args.profile, region_name=args.region)
41
+ ct = session.client("cloudtrail")
42
+ results = {"trails": [], "evasion_vectors": []}
43
+ try:
44
+ trails = ct.describe_trails()["trailList"]
45
+ for trail in trails:
46
+ info = {"name": trail["Name"], "s3_bucket": trail.get("S3BucketName"), "is_multi_region": trail.get("IsMultiRegionTrail", False), "log_validation": trail.get("LogFileValidationEnabled", False), "is_organization": trail.get("IsOrganizationTrail", False)}
47
+ try:
48
+ status = ct.get_trail_status(Name=trail["TrailARN"])
49
+ info["is_logging"] = status.get("IsLogging", False)
50
+ if not info["is_logging"]:
51
+ results["evasion_vectors"].append({"trail": trail["Name"], "type": "logging_disabled"})
52
+ print(f" [!] {trail['Name']}: LOGGING DISABLED")
53
+ except Exception: pass
54
+ if not info["log_validation"]:
55
+ results["evasion_vectors"].append({"trail": trail["Name"], "type": "no_log_validation"})
56
+ print(f" [!] {trail['Name']}: log file validation disabled")
57
+ try:
58
+ selectors = ct.get_event_selectors(TrailName=trail["TrailARN"])
59
+ info["event_selectors"] = len(selectors.get("EventSelectors", []))
60
+ except Exception: pass
61
+ results["trails"].append(info)
62
+ except Exception as exc:
63
+ print(f"[-] CloudTrail enum failed: {exc}"); return 1
64
+ _save(args, "aws_cloudtrail_disable", results)
65
+ print(f"[+] {len(results['trails'])} trails, {len(results['evasion_vectors'])} evasion vectors")
66
+ return 0
@@ -0,0 +1,59 @@
1
+ """AWS CloudTrail tampering assessment — trail deletion, S3 bucket manipulation."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ import sys
8
+ from datetime import datetime, timezone
9
+ from typing import Any
10
+
11
+
12
+ MANIFEST = {
13
+ "capability_id": "cloudxpl.aws.cloudtrail_tamper.v1",
14
+ "safety_class": "READ_ONLY",
15
+ "requires_authorization": True,
16
+ "side_effects": [],
17
+ "output_schema": "xpl.finding.v1",
18
+ "mitre": ["T1562.008"],
19
+ }
20
+
21
+
22
+ def _save(args: Any, prefix: str, data: Any) -> str:
23
+ out = getattr(args, "output", ".")
24
+ os.makedirs(out, exist_ok=True)
25
+ ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
26
+ path = os.path.join(out, f"{prefix}_{ts}.json")
27
+ with open(path, "w") as fh:
28
+ json.dump(data, fh, indent=2, default=str)
29
+ print(f"[+] Results saved to {path}")
30
+ return path
31
+
32
+
33
+ def run(args: Any) -> int:
34
+
35
+ print(f"[*] AWS CloudTrail Tamper Assessment (region: {args.region})")
36
+ try:
37
+ import boto3
38
+ except ImportError:
39
+ print("[!] boto3 not installed", file=sys.stderr); return 1
40
+ session = boto3.Session(profile_name=args.profile, region_name=args.region)
41
+ ct = session.client("cloudtrail")
42
+ iam = session.client("iam")
43
+ sts = session.client("sts")
44
+ caller = sts.get_caller_identity()
45
+ results = {"caller": caller["Arn"], "tamper_capabilities": []}
46
+ try:
47
+ trails = ct.describe_trails()["trailList"]
48
+ for trail in trails:
49
+ caps = {"trail": trail["Name"], "actions": []}
50
+ try:
51
+ ct.get_trail_status(Name=trail["TrailARN"])
52
+ caps["actions"].append("describe")
53
+ except Exception: pass
54
+ results["tamper_capabilities"].append(caps)
55
+ print(f" [*] Trail: {trail['Name']} — {trail.get('S3BucketName', 'N/A')}")
56
+ except Exception as exc:
57
+ print(f"[-] Trail enumeration failed: {exc}"); return 1
58
+ _save(args, "aws_cloudtrail_tamper", results)
59
+ return 0
@@ -0,0 +1,62 @@
1
+ """AWS CodeBuild exploitation — env var extraction, buildspec secrets."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ import sys
8
+ from datetime import datetime, timezone
9
+ from typing import Any
10
+
11
+
12
+ MANIFEST = {
13
+ "capability_id": "cloudxpl.aws.codebuild_exploit.v1",
14
+ "safety_class": "READ_ONLY",
15
+ "requires_authorization": True,
16
+ "side_effects": [],
17
+ "output_schema": "xpl.finding.v1",
18
+ "mitre": ["T1552"],
19
+ }
20
+
21
+
22
+ def _save(args: Any, prefix: str, data: Any) -> str:
23
+ out = getattr(args, "output", ".")
24
+ os.makedirs(out, exist_ok=True)
25
+ ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
26
+ path = os.path.join(out, f"{prefix}_{ts}.json")
27
+ with open(path, "w") as fh:
28
+ json.dump(data, fh, indent=2, default=str)
29
+ print(f"[+] Results saved to {path}")
30
+ return path
31
+
32
+
33
+ def run(args: Any) -> int:
34
+
35
+ print(f"[*] AWS CodeBuild Exploitation Analysis (region: {args.region})")
36
+ try:
37
+ import boto3
38
+ except ImportError:
39
+ print("[!] boto3 not installed", file=sys.stderr); return 1
40
+ session = boto3.Session(profile_name=args.profile, region_name=args.region)
41
+ cb = session.client("codebuild")
42
+ results = {"projects": [], "secrets_found": []}
43
+ try:
44
+ projects = cb.list_projects()["projects"]
45
+ for pname in projects:
46
+ proj = cb.batch_get_projects(names=[pname])["projects"][0]
47
+ info = {"name": pname, "source_type": proj.get("source", {}).get("type"), "service_role": proj.get("serviceRole")}
48
+ env_vars = proj.get("environment", {}).get("environmentVariables", [])
49
+ for ev in env_vars:
50
+ if ev.get("type") == "PLAINTEXT" and any(k in ev["name"].upper() for k in ["KEY", "SECRET", "TOKEN", "PASSWORD"]):
51
+ results["secrets_found"].append({"project": pname, "var_name": ev["name"], "type": "plaintext"})
52
+ print(f" [!] {pname}: plaintext secret in env var {ev['name']}")
53
+ elif ev.get("type") == "PARAMETER_STORE":
54
+ info.setdefault("param_store_refs", []).append(ev["name"])
55
+ elif ev.get("type") == "SECRETS_MANAGER":
56
+ info.setdefault("secrets_manager_refs", []).append(ev["name"])
57
+ results["projects"].append(info)
58
+ except Exception as exc:
59
+ print(f"[-] CodeBuild enum failed: {exc}"); return 1
60
+ _save(args, "aws_codebuild_exploit", results)
61
+ print(f"[+] {len(results['projects'])} projects, {len(results['secrets_found'])} plaintext secrets")
62
+ return 0
@@ -0,0 +1,62 @@
1
+ """AWS CodePipeline exploitation — pipeline enumeration, artifact manipulation vectors."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ import sys
8
+ from datetime import datetime, timezone
9
+ from typing import Any
10
+
11
+
12
+ MANIFEST = {
13
+ "capability_id": "cloudxpl.aws.codepipeline_exploit.v1",
14
+ "safety_class": "READ_ONLY",
15
+ "requires_authorization": True,
16
+ "side_effects": [],
17
+ "output_schema": "xpl.finding.v1",
18
+ "mitre": ["T1195.002"],
19
+ }
20
+
21
+
22
+ def _save(args: Any, prefix: str, data: Any) -> str:
23
+ out = getattr(args, "output", ".")
24
+ os.makedirs(out, exist_ok=True)
25
+ ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
26
+ path = os.path.join(out, f"{prefix}_{ts}.json")
27
+ with open(path, "w") as fh:
28
+ json.dump(data, fh, indent=2, default=str)
29
+ print(f"[+] Results saved to {path}")
30
+ return path
31
+
32
+
33
+ def run(args: Any) -> int:
34
+
35
+ print(f"[*] AWS CodePipeline Analysis (region: {args.region})")
36
+ try:
37
+ import boto3
38
+ except ImportError:
39
+ print("[!] boto3 not installed", file=sys.stderr); return 1
40
+ session = boto3.Session(profile_name=args.profile, region_name=args.region)
41
+ cp = session.client("codepipeline")
42
+ results = {"pipelines": []}
43
+ try:
44
+ pipelines = cp.list_pipelines()["pipelines"]
45
+ for pl in pipelines:
46
+ info = {"name": pl["name"], "created": str(pl.get("created", ""))}
47
+ try:
48
+ detail = cp.get_pipeline(name=pl["name"])["pipeline"]
49
+ info["stages"] = len(detail.get("stages", []))
50
+ info["role"] = detail.get("roleArn", "")
51
+ for stage in detail.get("stages", []):
52
+ for action in stage.get("actions", []):
53
+ if action.get("actionTypeId", {}).get("provider") in ("GitHub", "CodeCommit", "S3"):
54
+ info.setdefault("sources", []).append(action["actionTypeId"]["provider"])
55
+ except Exception: pass
56
+ results["pipelines"].append(info)
57
+ print(f" [+] {pl['name']} ({info.get('stages', '?')} stages)")
58
+ except Exception as exc:
59
+ print(f"[-] CodePipeline enum failed: {exc}"); return 1
60
+ _save(args, "aws_codepipeline_exploit", results)
61
+ print(f"[+] {len(results['pipelines'])} pipelines found")
62
+ return 0
@@ -0,0 +1,71 @@
1
+ """AWS Cognito exploitation — user pool misconfiguration, identity pool abuse."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ import sys
8
+ from datetime import datetime, timezone
9
+ from typing import Any
10
+
11
+
12
+ MANIFEST = {
13
+ "capability_id": "cloudxpl.aws.cognito_exploit.v1",
14
+ "safety_class": "READ_ONLY",
15
+ "requires_authorization": True,
16
+ "side_effects": [],
17
+ "output_schema": "xpl.finding.v1",
18
+ "mitre": ["T1078"],
19
+ }
20
+
21
+
22
+ def _save(args: Any, prefix: str, data: Any) -> str:
23
+ out = getattr(args, "output", ".")
24
+ os.makedirs(out, exist_ok=True)
25
+ ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
26
+ path = os.path.join(out, f"{prefix}_{ts}.json")
27
+ with open(path, "w") as fh:
28
+ json.dump(data, fh, indent=2, default=str)
29
+ print(f"[+] Results saved to {path}")
30
+ return path
31
+
32
+
33
+ def run(args: Any) -> int:
34
+
35
+ print(f"[*] AWS Cognito Exploitation Analysis (region: {args.region})")
36
+ try:
37
+ import boto3
38
+ except ImportError:
39
+ print("[!] boto3 not installed", file=sys.stderr); return 1
40
+ session = boto3.Session(profile_name=args.profile, region_name=args.region)
41
+ cognito = session.client("cognito-idp")
42
+ cognito_id = session.client("cognito-identity")
43
+ results = {"user_pools": [], "identity_pools": [], "misconfigurations": []}
44
+ try:
45
+ pools = cognito.list_user_pools(MaxResults=60)["UserPools"]
46
+ for pool in pools:
47
+ pid = pool["Id"]
48
+ desc = cognito.describe_user_pool(UserPoolId=pid)["UserPool"]
49
+ info = {"id": pid, "name": desc["Name"], "mfa": desc.get("MfaConfiguration", "OFF"), "self_signup": desc.get("Policies", {}).get("SignUpPolicy", {}).get("AllowAdminCreateUserOnly") is False}
50
+ if info["self_signup"]:
51
+ results["misconfigurations"].append({"pool": pid, "type": "self_signup_enabled"})
52
+ print(f" [!] {desc['Name']}: self-signup enabled")
53
+ if info["mfa"] == "OFF":
54
+ results["misconfigurations"].append({"pool": pid, "type": "mfa_disabled"})
55
+ print(f" [!] {desc['Name']}: MFA disabled")
56
+ results["user_pools"].append(info)
57
+ except Exception as exc:
58
+ print(f"[-] User pool enum failed: {exc}")
59
+ try:
60
+ id_pools = cognito_id.list_identity_pools(MaxResults=60)["IdentityPools"]
61
+ for ip in id_pools:
62
+ desc = cognito_id.describe_identity_pool(IdentityPoolId=ip["IdentityPoolId"])
63
+ info = {"id": ip["IdentityPoolId"], "name": ip["IdentityPoolName"], "allow_unauth": desc.get("AllowUnauthenticatedIdentities", False)}
64
+ if info["allow_unauth"]:
65
+ results["misconfigurations"].append({"pool": ip["IdentityPoolId"], "type": "unauth_access_enabled"})
66
+ print(f" [!] {ip['IdentityPoolName']}: unauthenticated access enabled")
67
+ results["identity_pools"].append(info)
68
+ except Exception: pass
69
+ _save(args, "aws_cognito_exploit", results)
70
+ print(f"[+] {len(results['user_pools'])} user pools, {len(results['identity_pools'])} identity pools, {len(results['misconfigurations'])} misconfigs")
71
+ return 0
@@ -0,0 +1,59 @@
1
+ """CVE-2024-28056 Amplify IAM role assumption PoC."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ import sys
8
+ from datetime import datetime, timezone
9
+ from typing import Any
10
+
11
+
12
+ MANIFEST = {
13
+ "capability_id": "cloudxpl.aws.cve_2024_28056.v1",
14
+ "safety_class": "READ_ONLY",
15
+ "requires_authorization": True,
16
+ "side_effects": [],
17
+ "output_schema": "xpl.finding.v1",
18
+ "mitre": ["T1190"],
19
+ }
20
+
21
+
22
+ def _save(args: Any, prefix: str, data: Any) -> str:
23
+ out = getattr(args, "output", ".")
24
+ os.makedirs(out, exist_ok=True)
25
+ ts = datetime.now(timezone.utc).strftime("%Y%m%d_%H%M%S")
26
+ path = os.path.join(out, f"{prefix}_{ts}.json")
27
+ with open(path, "w") as fh:
28
+ json.dump(data, fh, indent=2, default=str)
29
+ print(f"[+] Results saved to {path}")
30
+ return path
31
+
32
+
33
+ def run(args: Any) -> int:
34
+
35
+ print("[*] CVE-2024-28056: AWS Amplify IAM Role Assumption")
36
+ print("[*] Vulnerability: Amplify creates IAM roles with overly permissive trust policies")
37
+ print("[*] Impact: Attacker can assume Amplify-provisioned roles from any AWS account")
38
+ results = {"cve": "CVE-2024-28056", "cvss": 9.8, "status": "checking"}
39
+ try:
40
+ import boto3
41
+ except ImportError:
42
+ print("[!] boto3 not installed", file=sys.stderr); return 1
43
+ session = boto3.Session(profile_name=args.profile, region_name=args.region)
44
+ iam = session.client("iam")
45
+ try:
46
+ paginator = iam.get_paginator("list_roles")
47
+ amplify_roles = []
48
+ for page in paginator.paginate():
49
+ for role in page["Roles"]:
50
+ if "amplify" in role["RoleName"].lower() or "amplify" in str(role.get("AssumeRolePolicyDocument", {})).lower():
51
+ trust = role.get("AssumeRolePolicyDocument", {})
52
+ amplify_roles.append({"name": role["RoleName"], "arn": role["Arn"], "trust": trust})
53
+ print(f" [+] Amplify role: {role['RoleName']}")
54
+ results["amplify_roles"] = amplify_roles
55
+ results["status"] = "vulnerable" if amplify_roles else "not_affected"
56
+ except Exception as exc:
57
+ results["status"] = f"error: {exc}"
58
+ _save(args, "aws_cve_2024_28056", results)
59
+ return 0