Replies: 2 comments 2 replies
-
So Caldera planners interface with the Caldera planning service and a Caldera operation instance to carry out any planning logic and add the tasking to an agent's queue. The most direct solution would be to port your logic to a (python) Caldera planner instance. Beyond that, I believe you would need to interface with Caldera's REST API if you wanted to keep the planner a separate JVM component. Basically, make calls to the operation and planning service as if your planner was a fully integrated planner but through the REST API. However, I dont think we have the full functionality in the REST API endpoints to do everything required for that. The operation API (https://github.com/mitre/caldera/blob/master/app/api/v2/handlers/operation_api.py) will let you do what you need to do (create and add links to an agent's queue) or nearly so. Any required additions wouldnt be too heavy of a lift. But the bigger gap is there is no REST API endpoint to hook up with the planning service and use its utilities (primarily link generation and pruning). This would be the biggest lift/addition required. You can see the planner endpoints here (https://github.com/mitre/caldera/blob/master/app/api/v2/handlers/planner_api.py) are purely from a data/object perspective not an execution one. |
Beta Was this translation helpful? Give feedback.
-
Adding a little to @elegantmoose's answer: one other option would be to basically build a "planner" in CALDERA that exposes some of endpoints to directly take commands from an external, remote planner. It's not as pretty as a full integration, but we've seen others take this route as a basic way to interface with the planning service without having to build a full planner. |
Beta Was this translation helpful? Give feedback.
-
Hello,
I have a planner that runs on JVM and am interested in integrating it with Caldera. My planner can send commands and receive results as and when they are available. I would like my planner to send simple commands to run
abilities
such as "Scan Wifi Networks" and to runoperations
such as "Check".I am looking for some pointers to get started in this direction.
In the mean time, I will attempt to write a simple planner and tinker with the API.
Best,
Beta Was this translation helpful? Give feedback.
All reactions