{"id":22535859,"url":"https://github.com/ik5/distributed_test","last_synced_at":"2026-05-03T19:32:18.326Z","repository":{"id":66772506,"uuid":"161507163","full_name":"ik5/distributed_test","owner":"ik5","description":"A test i was given to write a distrubuted command and control","archived":false,"fork":false,"pushed_at":"2018-12-12T15:27:26.000Z","size":17,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T06:23:06.144Z","etag":null,"topics":["command-and-control","distributed","golang","remote-control"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ik5.png","metadata":{"files":{"readme":"readme.markdown","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":"2018-12-12T15:24:59.000Z","updated_at":"2021-07-24T05:06:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"b00e1765-8db0-41aa-91af-26046d24cd18","html_url":"https://github.com/ik5/distributed_test","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ik5/distributed_test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ik5%2Fdistributed_test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ik5%2Fdistributed_test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ik5%2Fdistributed_test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ik5%2Fdistributed_test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ik5","download_url":"https://codeload.github.com/ik5/distributed_test/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ik5%2Fdistributed_test/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32582580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["command-and-control","distributed","golang","remote-control"],"created_at":"2024-12-07T10:08:47.148Z","updated_at":"2026-05-03T19:32:18.312Z","avatar_url":"https://github.com/ik5.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Scylla Test\n\nThe following repository aims to provide a Command and Control (C\u0026C) system\nfor managing \"unlimited\" number of servers to perform tasks and report back.\n\n## The idea behind the implementation:\n\nThere are three levels of services\n\n0. Dispatcher - CnC server\n1. Orchestration - Sends tasks to nodes or sub orchestration servers\n3. Nodes - Actual workers that does the code.\n\n### Flow idea\n\nThe dispatcher has X Orchestration servers that it knows about, having them\nregistered and reporting an heartbeat every second to know that they are up.\n\nThe Orchestration server has registered X amount of either nodes or additional\norchestration servers.\nThe server sends heartbeat to the Dispather if it is connected directly to it,\nand sends actions to nodes or other orchestration servers.\n\nIt gathers all information arrived from all nodes and other orchestration servers\nand pass it up to the dispatcher.\n\nThe node server is a worker that sends a heartbeat to a known orchestration server\nevery second, and listen to an action to do.\n\nWhen an action is given, it execute it, and reports back what was the result.\n\n# How to use\n\nThere is the `cmd` directory. It contains `nodes` and `orchestration` sub directories.\n\nThe `nodes` directory are the workers nodes described under this readme.\n\nThe `orchestration` directory contains the orchestration server described under this readme.\n\n# How I tested\n\nCreated the following file:\n\n    l: 216\n    t: 2\n\n    {\n      \"check_etc_hosts_has_8888\": {\n        \"path\": \"/etc/hosts\",\n        \"type\": \"file_contains\",\n        \"check\": \"8.8.8.8\"\n      },\n      \"check_log_file_exists\": {\n        \"path\": \"/var/log/messages.log\",\n        \"type\": \"file_exists\"\n      }\n    }\n\nThen used netcat like so:\n\n    nc 127.0.0.2:8082 \u003c test.request\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fik5%2Fdistributed_test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fik5%2Fdistributed_test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fik5%2Fdistributed_test/lists"}