class ShellArguments(TaskArguments):
def __init__(self, command_line):
super().__init__(command_line)
"command": CommandParameter(
name="command", type=ParameterType.String, description="Command to run"
"files": CommandParameter(name="files", type=ParameterType.ChooseOne, default_value=[],
dynamic_query_function=self.get_my_files)
async def get_my_files(self, callback: dict) -> [str]:
resp = await MythicRPC().execute("get_file", callback_id=callback["id"], max_results=-1, filename=".*")
return [r["filename"] for r in resp.response]
async def parse_arguments(self):
if len(self.command_line) > 0:
if self.command_line[0] == "{":
self.load_args_from_json_string(self.command_line)
self.add_arg("command", self.command_line)
raise ValueError("Missing arguments")