{"id":13843248,"url":"https://github.com/Sentinel-One/CobaltStrikeParser","last_synced_at":"2025-07-11T18:31:06.598Z","repository":{"id":40513376,"uuid":"261395799","full_name":"Sentinel-One/CobaltStrikeParser","owner":"Sentinel-One","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-19T13:26:51.000Z","size":984,"stargazers_count":1049,"open_issues_count":9,"forks_count":192,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-03-17T14:51:16.858Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sentinel-One.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-05T08:04:43.000Z","updated_at":"2025-03-16T10:20:58.000Z","dependencies_parsed_at":"2024-11-21T14:33:06.848Z","dependency_job_id":null,"html_url":"https://github.com/Sentinel-One/CobaltStrikeParser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sentinel-One/CobaltStrikeParser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sentinel-One%2FCobaltStrikeParser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sentinel-One%2FCobaltStrikeParser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sentinel-One%2FCobaltStrikeParser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sentinel-One%2FCobaltStrikeParser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sentinel-One","download_url":"https://codeload.github.com/Sentinel-One/CobaltStrikeParser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sentinel-One%2FCobaltStrikeParser/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264870112,"owners_count":23676162,"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-08-04T17:01:58.037Z","updated_at":"2025-07-11T18:31:06.207Z","avatar_url":"https://github.com/Sentinel-One.png","language":"Python","funding_links":[],"categories":["Python","Python (1887)"],"sub_categories":[],"readme":"# CobaltStrikeParser\nPython parser for CobaltStrike Beacon's configuration\n\n## Description\nUse `parse_beacon_config.py` for stageless beacons, memory dumps or C2 urls with metasploit compatibility mode (default true).  \nMany stageless beacons are PEs where the beacon code itself is stored in the `.data` section and xored with 4-byte key.  \nThe script tries to find the xor key and data heuristically, decrypt the data and parse the configuration from it.\n\nThis is designed so it can be used as a library too.\n\nThe repo now also includes a small commuincation module (comm.py) that can help with communcating to a C2 server as a beacon.  \n\n## Usage\n```\nusage: parse_beacon_config.py [-h] [--json] [--quiet] [--version VERSION] beacon\n\nParses CobaltStrike Beacon's configuration from PE, memory dump or URL.\n\npositional arguments:\n  beacon             This can be a file path or a url (if started with http/s)\n\noptional arguments:\n  -h, --help         show this help message and exit\n  --json             Print as json\n  --quiet            Do not print missing or empty settings\n  --version VERSION  Try as specific cobalt version (3 or 4). If not specified, tries both.\n```\n\n## Extra\nTo use the communication poc copy it to the main folder and run it from there.\nFor installing the M2Crypto library (a requirement for the poc) on Windows, it's easiest with installers found online, and not through pip.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSentinel-One%2FCobaltStrikeParser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSentinel-One%2FCobaltStrikeParser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSentinel-One%2FCobaltStrikeParser/lists"}