{"id":14638143,"url":"https://github.com/RedSiege/AutoFunkt","last_synced_at":"2025-09-07T06:32:36.814Z","repository":{"id":153037765,"uuid":"622997187","full_name":"RedSiege/AutoFunkt","owner":"RedSiege","description":"Python script for automating the creation of serverless cloud redirectors from Cobalt Strike malleable C2 profiles","archived":false,"fork":false,"pushed_at":"2024-06-25T10:47:32.000Z","size":67,"stargazers_count":193,"open_issues_count":0,"forks_count":25,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-12-30T07:44:48.244Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedSiege.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-04-03T13:41:50.000Z","updated_at":"2024-12-21T05:47:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa2f253a-6611-455a-868b-589ae21f5af0","html_url":"https://github.com/RedSiege/AutoFunkt","commit_stats":null,"previous_names":["redsiege/autofunkt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedSiege%2FAutoFunkt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedSiege%2FAutoFunkt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedSiege%2FAutoFunkt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedSiege%2FAutoFunkt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedSiege","download_url":"https://codeload.github.com/RedSiege/AutoFunkt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232183070,"owners_count":18484730,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-10T02:01:44.199Z","updated_at":"2025-01-02T10:31:35.807Z","avatar_url":"https://github.com/RedSiege.png","language":"Python","readme":"# AutoFunkt\n\n```\n       d8888          888            8888888888                888      888          \n      d88888          888            888                       888      888          \n     d88P888          888            888                       888      888          \n    d88P 888 888  888 888888 .d  b.  8888888 888  888 88888b.  888  888 888888       \n   d88P  888 888  888 888   d88  88b 888     888  888 888 \"88b 888 .88P 888          \n  d88P   888 888  888 888            888     888  888 888  888 888888K  888          \n d8888888888 Y88b 888 Y88b. Y88  88P 888     Y88b 888 888  888 888 \"88b Y88b.        \nd88P     888  \"Y88888  \"Y888 \"Y  P\"  888      \"Y88888 888  888 888  888  \"Y888   \n\n    \t\t\tmalleable c2 =\u003e serverless cloud functions\n```\n\nWritten by Adam Rose\n[GitHub](https://github.com/a-3-r) | [twitter](https://twitter.com/aaaa3333rrrr)\n\n\n## Acknowledgements\n\n- Thank you to [Brett Fitzpatrick](https://twitter.com/_brettfitz) for the excellent [pyMalleableProfileParser](https://github.com/brett-fitz/pyMalleableProfileParser) library. \n- Many thanks to my colleagues @[FortyNorthSecurity](https://github.com/FortyNorthSecurity), especially [Chris Truncer](https://github.com/ChrisTruncer), [Joe Leon](https://github.com/joeleonjr), and [Grimm1e](https://github.com/Gr1mmie)\n\n## Prerequisites\n\n- Python 3.9 or higher\n- Google Cloud Functions CLI\n- Azure Functions Core Tools\n\n## Usage\n\n1. Clone the repo: `git clone https://github.com/FortyNorthSecurity/AutoFunkt.git`\n2. Install requirements: `pip3 install -r requirements.txt`\n3. Generate Google Cloud Functions: `python3 autofunkt.py -p /path/to/profile -t https://teamserver.url -o /path/to/output/directory -g`\n4. Generate Azure Functions: `python3 autofunkt.py -p /path/to/profile -t https://teamserver.url -o /path/to/output/directory -a -s \u003cazure-subdomain\u003e -r \u003croute-prefix\u003e`\n\n## Command Line Arguments\n\n- `-p, --profile_path`: Path to Malleable C2 profile (required)\n- `-t, --teamserver_url`: Teamserver URL (required)\n- `-o, --output-dir`: Output directory (required)\n- `-g, --google`: Generate Google Cloud Functions (optional, default: False)\n- `-a, --azure`: Generate Azure Functions (optional, default: False)\n- `-s, --azure-subdomain`: Azure subdomain (required for Azure)\n- `-r, --route-prefix`: Azure custom route prefix (optional, default: None)\n\n### Notes\n\n- The `teamserver_url` must end with a `/` (slash).\n- The `uri` value in the `http-get` and `http-post` blocks of the Malleable C2 profile must contain only one URI string.\n- For Google Cloud Functions, the program creates a directory for each URI value and generates a `main.py` and `requirements.txt` file in each directory.\n- For Azure Functions, the program creates an `azure` directory and generates a `main.py`, `host.json`, `proxies.json`, and `requirements.txt` file in it.\n\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRedSiege%2FAutoFunkt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRedSiege%2FAutoFunkt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRedSiege%2FAutoFunkt/lists"}