{"id":24957234,"url":"https://github.com/picotools/pico","last_synced_at":"2025-04-15T13:52:17.719Z","repository":{"id":271604476,"uuid":"907863732","full_name":"PicoTools/pico","owner":"PicoTools","description":"C2 framework that allows you to connect your agents and listeners written in any programming language.","archived":false,"fork":false,"pushed_at":"2025-04-05T14:15:53.000Z","size":61939,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-04-05T15:19:47.506Z","etag":null,"topics":["c2","golang","pentest","redteam"],"latest_commit_sha":null,"homepage":"","language":"Go","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/PicoTools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-12-24T15:26:16.000Z","updated_at":"2025-04-05T14:15:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"e9b97d56-1c45-47f2-9ee5-099b2aca31c3","html_url":"https://github.com/PicoTools/pico","commit_stats":null,"previous_names":["picotools/pico"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicoTools%2Fpico","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicoTools%2Fpico/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicoTools%2Fpico/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PicoTools%2Fpico/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PicoTools","download_url":"https://codeload.github.com/PicoTools/pico/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249085474,"owners_count":21210267,"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":["c2","golang","pentest","redteam"],"created_at":"2025-02-03T06:55:04.079Z","updated_at":"2025-04-15T13:52:17.689Z","avatar_url":"https://github.com/PicoTools.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pico C2\n\n![Pico CLI](.github/assets/pico.png)\n\nPico is a C2 framework that allows you to connect your agents and listeners written in any programming language.\n\n\u003e :warning: Pico C2 is in the early stages of development. The API and functionality may change over time!\n\n## Why Another C2 Framework?\n\nUnlike other C2 frameworks, such as Cobalt Strike, Pico does not offer pre-built listeners or agents. Instead, you have full control over the development process. You can create your own custom listener and payloads, implement a communication protocol that suits your needs, and then integrate these components with Pico using gRPC.\n\nAlso, Pico includes its own programming language, [PLAN](https://github.com/PicoTools/plan), which is designed for automating tasks (similar to agressor scripts for Cobalt Strike).\n\n## Quick Start\n\n1. Download **Pico** from [latest release](https://github.com/PicoTools/pico/releases) or build it yourself (`make build`).\n2. Create a server configuration file [(Example)](https://github.com/PicoTools/pico/blob/master/config/config.yml).\n3. Start the server:\n\n```sh\n$ ./pico --config config.yml run\n000.01 I listener start serving {\"ip\": \"0.0.0.0\", \"port\": 51235, \"fingerprint\": \"ecc67e3a0b6db4ecee4ff6aa195fec0719a62bdc\"}\n000.01 I operator start serving {\"ip\": \"0.0.0.0\", \"port\": 51234, \"fingerprint\": \"db4505125dbdb8c84667a17ecd7c50dda7dfb6f6\"}\n000.01 I management start serving {\"ip\": \"0.0.0.0\", \"port\": 51233, \"fingerprint\": \"b21620d6457d107b06e03ab9128cead5ae61aacd\", \"token\": \"bo4wro8CEvWzlsJtQgrHdkgIgw9lIPd0\"}\n...\n```\n\n4. Download **Pico-ctl** from [latest release](https://github.com/PicoTools/pico/releases) or build it yourself (`make build-ctl`).\n5. Use **Pico-ctl** to generate tokens for the operator and listener. You can find the management token in the server logs.\n\n```sh\n$ ./pico-ctl -H 127.0.0.1:51233 -t bo4wro8CEvWzlsJtQgrHdkgIgw9lIPd0\n[pico-ctl] \u003e operator add pico-operator\nUsername:  pico-operator\nToken:     Y24IQl9Wp2COnV8lIDHyucIuX2Z5VJlP\nLast:      [never]\n\n[pico-ctl] \u003e listener add\nID:        2\nToken:     DrbqGN7Ulfu0qpYMpLDR74BemE2WtXFP\nName:      [none]\nIP:        [none]\nPort:      [none]\nLast:      [none]\n```\n\n6. You can use [Pico-cli](https://github.com/PicoTools/pico-cli) to connect the operator to the server.\n\n```sh\n$ ./pico-cli -H 127.0.0.1:51234 -t Y24IQl9Wp2COnV8lIDHyucIuX2Z5VJlP\npico \u003e whoami\npico-operator\n```\n\n## Agent \u0026 Listener Development\n\nCheck source code of [example agent](https://github.com/PicoTools/example-agent) and [example listener](https://github.com/PicoTools/example-listener)\n\n*TODO...*\n\n## Contributing\n\n*TODO...*\n\n## Note\n\n**This software is developed for educational and research purposes only.**\n\n*The author does not endorse, promote, or condone any illegal activities. By using this tool, you agree that you are solely responsible for any actions performed with it. The author assumes no liability for any misuse, damages, or legal consequences resulting from the use of this software. Use this tool only in environments where you have explicit permission, such as security research, penetration testing, or red team operations authorized by the target organization. Ensure compliance with all applicable laws and regulations.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicotools%2Fpico","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpicotools%2Fpico","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicotools%2Fpico/lists"}