From 2e781f8e365c2116f4f3a5bc98102033fac86c40 Mon Sep 17 00:00:00 2001 From: vakarisz Date: Tue, 11 Jun 2024 17:46:07 +0300 Subject: [PATCH] Add build_permission_change_command to ILinuxAgentCommandBuilder --- agentpluginapi/i_linux_agent_command_builder.py | 17 ++++++++++++++++- vulture_allowlist.py | 5 +++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/agentpluginapi/i_linux_agent_command_builder.py b/agentpluginapi/i_linux_agent_command_builder.py index ece057a..6e11894 100644 --- a/agentpluginapi/i_linux_agent_command_builder.py +++ b/agentpluginapi/i_linux_agent_command_builder.py @@ -4,7 +4,7 @@ from typing import Optional from monkeytypes import InfectionMonkeyBaseModel -from pydantic import model_validator +from pydantic import Field, model_validator from .dropper_execution_mode import DropperExecutionMode @@ -20,6 +20,11 @@ class LinuxDownloadOptions(InfectionMonkeyBaseModel): download_url: str +class LinuxPermissionChangeOptions(InfectionMonkeyBaseModel): + file_path: PurePosixPath + permissions: int = Field(ge=0, le=0o777, default=700) + + class LinuxRunOptions(InfectionMonkeyBaseModel): agent_destination_path: PurePosixPath dropper_execution_mode: DropperExecutionMode @@ -47,6 +52,16 @@ def build_download_command(self, download_options: LinuxDownloadOptions): :param download_options: Options needed for the command to be built """ + @abc.abstractmethod + def build_permission_change_command( + self, permission_change_options: LinuxPermissionChangeOptions + ): + """ + Build Agent's binary permission change command + + :param permission_change_options: Options needed for the command to be built + """ + @abc.abstractmethod def build_run_command(self, run_options: LinuxRunOptions): """ diff --git a/vulture_allowlist.py b/vulture_allowlist.py index 4f111c9..6457c0a 100644 --- a/vulture_allowlist.py +++ b/vulture_allowlist.py @@ -29,6 +29,7 @@ WindowsRunOptions, WindowsShell, ) +from agentpluginapi.i_linux_agent_command_builder import LinuxPermissionChangeOptions IAgentEventPublisher.publish IAgentEventPublisher.event @@ -126,6 +127,8 @@ LinuxDownloadOptions.download_url LinuxDownloadOptions.download_method +LinuxPermissionChangeOptions.file_path +LinuxPermissionChangeOptions.permissions LinuxRunOptions.agent_destination_path LinuxRunOptions.dropper_destination_path @@ -134,6 +137,8 @@ ILinuxAgentCommandBuilder.build_download_command ILinuxAgentCommandBuilder.build_run_command +ILinuxAgentCommandBuilder.build_permission_change_command +ILinuxAgentCommandBuilder.permission_change_options ILinuxAgentCommandBuilder.get_command ILinuxAgentCommandBuilder.reset_command ILinuxAgentCommandBuilder.download_options