{"id":19236440,"url":"https://github.com/infobyte/faraday_agent_dispatcher","last_synced_at":"2025-04-07T13:06:35.805Z","repository":{"id":48411191,"uuid":"218869205","full_name":"infobyte/faraday_agent_dispatcher","owner":"infobyte","description":"Faraday Agent Dispatcher launches any security tools and send results to Faradaysec Platform.","archived":false,"fork":false,"pushed_at":"2024-05-22T17:12:05.000Z","size":3729,"stargazers_count":37,"open_issues_count":6,"forks_count":13,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-05-22T18:31:25.049Z","etag":null,"topics":["automation","devops","devsecops","devsecops-release-process","faraday","pentest","security-automation","security-scanner","security-tools","vulnerability-scanners"],"latest_commit_sha":null,"homepage":"https://www.faradaysec.com/","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/infobyte.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG/0.1/01.first version.md","contributing":"CONTRIBUTING.rst","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-31T22:05:30.000Z","updated_at":"2024-06-21T02:13:12.054Z","dependencies_parsed_at":"2024-05-06T15:52:35.936Z","dependency_job_id":"956dba19-670c-41d2-9983-8379fd3a2653","html_url":"https://github.com/infobyte/faraday_agent_dispatcher","commit_stats":{"total_commits":878,"total_committers":21,"mean_commits":41.80952380952381,"dds":0.5318906605922551,"last_synced_commit":"60a37e08f7d1f85361569555d4d8694c463d5cc1"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infobyte%2Ffaraday_agent_dispatcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infobyte%2Ffaraday_agent_dispatcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infobyte%2Ffaraday_agent_dispatcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infobyte%2Ffaraday_agent_dispatcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infobyte","download_url":"https://codeload.github.com/infobyte/faraday_agent_dispatcher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657278,"owners_count":20974345,"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":["automation","devops","devsecops","devsecops-release-process","faraday","pentest","security-automation","security-scanner","security-tools","vulnerability-scanners"],"created_at":"2024-11-09T16:20:35.964Z","updated_at":"2025-04-07T13:06:35.790Z","avatar_url":"https://github.com/infobyte.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Faraday Agents Dispatcher helps user develop integrations with\n[Faraday][faraday] written in any language. \u003c!-- For more information, check [this\nblogpost][blogpost] or continue reading. --\u003e\n\n[faraday]: https://github.com/infobyte/faraday/\n[plugins]: https://github.com/infobyte/faraday_plugins\n[blogpost]: https://medium.com/faraday\n\n# Installation\n\nJust run `pip3 install faraday_agent_dispatcher` and you should see the\n`faraday-dispatcher` command in your system.\n\nTo setup a development environment (this is, to change code of the dispatcher\nitself, not to write your own integrations), you should clone this repo and run\n`pip install -e .`.\n\n# Running Faraday Agent Dispatcher for first time\n\n1. Generate a configuration file running `faraday-dispatcher\nconfig-wizard`.\n\n2. Run the agent with `faraday-dispatcher run` command. The config file\nthat it creates will be located in `~/.faraday/config/dispatcher.ini`\nif you do not pass a custom path.\n\nYou should complete the agent configuration with your registration\ntoken, located at http://localhost:5985/#/admin/agents. Check that the\nserver section has the correct information about your Faraday\nServer instance. Then, complete the agent section with the desired name\nof your agent. Finally, [add the executors](#configuring-a-executor)\n\n# Executors\n\n## Creating your own executors\n\nAn executor is a script that prints out **single-line** JSON data to\nstdout. Remember that if you print any other data to stdout, the\ndispatcher will trigger an error. If you want to print debugging or\nlogging information you should use stderr for that.\n\nEvery line written to stdout by the executor will be decoded by the\ndispatcher and sent to Faraday using the Bulk Create endpoint.\nTherefore, the JSON you print must have the schema that the endpoint\nrequires (this schema is detailed [below](#bulk-create-json-format)).\nOtherwise, the dispatcher will complain because you supplied invalid\ndata to it.\n\nIf you want to debug your executor, the simplest way to do it is by\nrunning it directly instead of running with the Dispatcher. Since the executor\njust prints JSON data to stdout, you will be able to see all\ninformation it wants to send to Faraday, but without actually sending\nit.\n\n## Configuring a executor\n\nAfter writing your executor, you have to add it with the\n`faraday-dispatcher config-wizard` within the executor section, adding\nits name, command to execute and the max size of the JSON to send to\nFaraday Server. Additionally, you can configure the Environment\nvariables and Arguments in their proper section.\n\n## Running a executor\n\nTo run an executor use the `faraday-dispatcher config-wizard` command,\nand play it from the Faraday Server. The executor will use the\nenvironment variables set and ask for the arguments.\n\n# Bulk Create JSON format\n\nThe data published to [faraday][faraday] must correspond to the\n`bulk_create` endpoint of the [Faraday's REST API][API]\n\n# Running multiple dispatchers\n\nIf you want to have more than one dispatcher, each one runninng its own\nexecutors, the preferred of doing this is to create different\nconfiguration files for each one (for example,\n`~/.faraday/config/dispatcher-1.ini` and\n`~/.faraday/config/dispatcher-2.ini`). Then, you can run two different\nDispatcher instances with `faraday-dispatcher --config-file\nPATH_TO_A_CONFIG_FILE`.\n\n# Executors\n\nInside the [executors][executors] directory you can find the already\ncreated executors.\n\n## Official\n\nThe [official executors][official_executors] are the collection of ready-to-go\nexecutors (with minimum configuration with the wizard). They have a manifest\nJSON file, which gives details about the uses of the executor and helps with\nthe configuration of them.\n\nThe current official executors are:\n\n* [Arachni][arachni]\n* [Burp][burp]\n* [CrackMapExec][crackmap]\n* [Nessus][nessus]\n* [Nikto][nikto]\n* [Nmap][nmap]\n* [Nuclei][nuclei]\n* [Openvas][openvas]\n* Report processor: Consumes a local report where the dispatcher is with the [faraday plugins][plugins]\n* [QualysGuard] [qualys]\n* [Sonar Qube API][sonarqubeapi]\n* [Sublist3r][sublist3r]\n* [W3af][w3af]\n* [Wpscan][wpscan]\n* [Zap][zap]\n\n## Development\n\nThe [development executors][dev_executors] are the collection of executors we\ndo **not** fully maintain, we have examples of use, conceptual, and in\ndevelopment executors. The most important of them are:\n\n* `basic_example.py`: The Hello World of Faraday executors. It will\n  create a host with an associeted vulnerability to it\n* `heroku_discovery_agent.py`: Load host and service information from\n  your Heroku account\n* `prowlerSample.py`: Run the [**prowler**][prowler] command and send\n  its output to Faraday\n* `brainfuck.sh`: A proof-of-concept to demonstrate you can create\n  an executor in any programming language, including [Brainfuck][brainfuck]!\n\n[executors]: https://github.com/infobyte/faraday_agent_dispatcher/tree/master/faraday_agent_dispatcher/static/executors\n[official_executors]: https://github.com/infobyte/faraday_agent_dispatcher/tree/master/faraday_agent_dispatcher/static/executors/official\n[dev_executors]: https://github.com/infobyte/faraday_agent_dispatcher/tree/master/faraday_agent_dispatcher/static/executors/dev\n[brainfuck]: https://en.wikipedia.org/wiki/Brainfuck\n[prowler]: https://github.com/toniblyx/prowler\n[nessus]: https://www.nessus.org\n[nikto]: https://cirt.net/Nikto2\n[nmap]: https://nmap.org\n[nuclei]: https://github.com/projectdiscovery/nuclei\n[qualys]: https://www.qualys.com/\n[sonarqubeapi]: https://www.sonarqube.org/\n[sublist3r]: https://github.com/aboul3la/Sublist3r\n[w3af]: http://w3af.org/\n[wpscan]: https://wpscan.org/\n[arachni]: https://www.arachni-scanner.com/\n[openvas]: https://www.openvas.org/\n[zap]: https://www.zaproxy.org/\n[burp]: https://www.portswigger.net/burp\n[crackmap]: https://github.com/byt3bl33d3r/CrackMapExec\n\n# Roadmap\n\nWe are currently working on new executors, apart from improving the\nexperience using the agents.\n\nWe would like to give some agents read access to their workspace,\nso they can benefit of the existing data in order to find more valuable\ninformation.\n\n# Documentation\n\nFor more info you can check our [documentation][doc]\n\n[doc]: https://docs.agents.faradaysec.com\n[API]: https://api.faradaysec.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfobyte%2Ffaraday_agent_dispatcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfobyte%2Ffaraday_agent_dispatcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfobyte%2Ffaraday_agent_dispatcher/lists"}