Agent, UI: Remove internal-logging from config

The config is called after the log path is set,
so the logging config had no affect on the
log path.
This commit is contained in:
Ilija Lazoroski 2022-03-09 16:02:36 +01:00
parent 71328ea2b1
commit 3c745f697f
9 changed files with 15 additions and 87 deletions

View File

@ -67,15 +67,6 @@ class Configuration(object):
return result return result
###########################
# logging config
###########################
dropper_log_directory_linux = "/tmp/"
dropper_log_directory_windows = "%temp%\\"
monkey_log_directory_linux = "/tmp/"
monkey_log_directory_windows = "%temp%\\"
########################### ###########################
# dropper config # dropper config
########################### ###########################

View File

@ -16,8 +16,6 @@
"dropper_date_reference_path_windows": "%windir%\\system32\\kernel32.dll", "dropper_date_reference_path_windows": "%windir%\\system32\\kernel32.dll",
"dropper_date_reference_path_linux": "/bin/sh", "dropper_date_reference_path_linux": "/bin/sh",
"dropper_log_directory_linux": "/tmp/",
"dropper_log_directory_windows": "%temp%\\",
"dropper_set_date": true, "dropper_set_date": true,
"dropper_target_path_win_64": "C:\\Windows\\temp\\monkey64.exe", "dropper_target_path_win_64": "C:\\Windows\\temp\\monkey64.exe",
"dropper_target_path_linux": "/tmp/monkey", "dropper_target_path_linux": "/tmp/monkey",
@ -38,8 +36,6 @@
"MSSQLFingerprint", "MSSQLFingerprint",
"ElasticFinger" "ElasticFinger"
], ],
"monkey_log_directory_windows": "%temp%\\",
"monkey_log_directory_linux": "/tmp/",
"ping_scan_timeout": 10000, "ping_scan_timeout": 10000,
"smb_download_timeout": 300, "smb_download_timeout": 300,
"smb_service_name": "InfectionMonkey", "smb_service_name": "InfectionMonkey",

View File

@ -16,7 +16,7 @@ from infection_monkey.config import EXTERNAL_CONFIG_FILE, WormConfiguration
from infection_monkey.dropper import MonkeyDrops from infection_monkey.dropper import MonkeyDrops
from infection_monkey.model import DROPPER_ARG, MONKEY_ARG from infection_monkey.model import DROPPER_ARG, MONKEY_ARG
from infection_monkey.monkey import InfectionMonkey from infection_monkey.monkey import InfectionMonkey
from infection_monkey.utils.monkey_log_path import get_dropper_log_path, get_monkey_log_path from infection_monkey.utils.monkey_log_path import get_log_path
logger = None logger = None
@ -80,10 +80,10 @@ def main():
try: try:
if MONKEY_ARG == monkey_mode: if MONKEY_ARG == monkey_mode:
log_path = get_monkey_log_path() log_path = get_log_path("agent")
monkey_cls = InfectionMonkey monkey_cls = InfectionMonkey
elif DROPPER_ARG == monkey_mode: elif DROPPER_ARG == monkey_mode:
log_path = get_dropper_log_path() log_path = get_log_path("dropper")
monkey_cls = MonkeyDrops monkey_cls = MonkeyDrops
else: else:
return True return True

View File

@ -52,7 +52,7 @@ from infection_monkey.utils.monkey_dir import (
get_monkey_dir_path, get_monkey_dir_path,
remove_monkey_dir, remove_monkey_dir,
) )
from infection_monkey.utils.monkey_log_path import get_monkey_log_path from infection_monkey.utils.monkey_log_path import get_log_path
from infection_monkey.utils.signal_handler import register_signal_handlers, reset_signal_handlers from infection_monkey.utils.signal_handler import register_signal_handlers, reset_signal_handlers
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -288,7 +288,7 @@ class InfectionMonkey:
@staticmethod @staticmethod
def _send_log(): def _send_log():
monkey_log_path = get_monkey_log_path() monkey_log_path = get_log_path("agent")
if os.path.exists(monkey_log_path): if os.path.exists(monkey_log_path):
with open(monkey_log_path, "r") as f: with open(monkey_log_path, "r") as f:
log = f.read() log = f.read()

View File

@ -1,41 +1,23 @@
import os import os
import string
import sys import sys
import tempfile
import time import time
from random import SystemRandom from functools import lru_cache
from infection_monkey.config import WormConfiguration
def get_monkey_log_path(): @lru_cache(maxsize=None)
def get_log_path(monkey_arg: str):
return ( return (
os.path.expandvars( os.path.expandvars(_generate_random_log_filepath(monkey_arg))
_generate_random_log_filepath(WormConfiguration.monkey_log_directory_windows, "agent")
)
if sys.platform == "win32" if sys.platform == "win32"
else _generate_random_log_filepath(WormConfiguration.monkey_log_directory_linux, "agent") else _generate_random_log_filepath(monkey_arg)
) )
def get_dropper_log_path(): def _generate_random_log_filepath(monkey_arg: str) -> str:
return (
os.path.expandvars(
_generate_random_log_filepath(
WormConfiguration.dropper_log_directory_windows, "dropper"
)
)
if sys.platform == "win32"
else _generate_random_log_filepath(WormConfiguration.dropper_log_directory_linux, "dropper")
)
def _generate_random_log_filepath(log_directory: str, monkey_arg: str) -> str:
safe_random = SystemRandom()
random_string = "".join(
[safe_random.choice(string.ascii_lowercase + string.digits) for _ in range(8)]
)
prefix = f"infection-monkey-{monkey_arg}-" prefix = f"infection-monkey-{monkey_arg}-"
suffix = f"-{time.strftime('%Y-%m-%d-%H-%M-%S', time.gmtime())}.log" suffix = f"-{time.strftime('%Y-%m-%d-%H-%M-%S', time.gmtime())}.log"
log_file_path = os.path.join(log_directory, prefix + random_string + suffix)
return log_file_path _, monkey_log_path = tempfile.mkstemp(suffix=suffix, prefix=prefix)
return monkey_log_path

View File

@ -184,36 +184,6 @@ INTERNAL = {
}, },
}, },
}, },
"logging": {
"title": "Logging",
"type": "object",
"properties": {
"dropper_log_directory_linux": {
"title": "Dropper log directory path on Linux",
"type": "string",
"default": "/tmp/",
"description": "The directory path of the dropper log file on Linux",
},
"dropper_log_directory_windows": {
"title": "Dropper log directory path on Windows",
"type": "string",
"default": "%temp%\\",
"description": "The directory path of the dropper log file on Windows",
},
"monkey_log_directory_linux": {
"title": "Monkey log directory path on Linux",
"type": "string",
"default": "/tmp/",
"description": "The directory path of the monkey log file on Linux",
},
"monkey_log_directory_windows": {
"title": "Monkey log directory path on Windows",
"type": "string",
"default": "%temp%\\",
"description": "The directory path of the monkey log file on Windows",
},
},
},
"exploits": { "exploits": {
"title": "Exploits", "title": "Exploits",
"type": "object", "type": "object",

View File

@ -5,7 +5,6 @@ import {Nav} from 'react-bootstrap';
const sectionOrder = [ const sectionOrder = [
'network', 'network',
'island_server', 'island_server',
'logging',
'exploits', 'exploits',
'dropper', 'dropper',
'classes', 'classes',

View File

@ -23,8 +23,6 @@
"depth": 2, "depth": 2,
"dropper_date_reference_path_linux": "/bin/sh", "dropper_date_reference_path_linux": "/bin/sh",
"dropper_date_reference_path_windows": "%windir%\\system32\\kernel32.dll", "dropper_date_reference_path_windows": "%windir%\\system32\\kernel32.dll",
"dropper_log_directory_linux": "/tmp/",
"dropper_log_directory_windows": "%temp%\\",
"dropper_set_date": true, "dropper_set_date": true,
"dropper_target_path_linux": "/tmp/monkey", "dropper_target_path_linux": "/tmp/monkey",
"dropper_target_path_win_64": "C:\\Windows\\temp\\monkey64.exe", "dropper_target_path_win_64": "C:\\Windows\\temp\\monkey64.exe",
@ -71,8 +69,6 @@
"keep_tunnel_open_time": 60, "keep_tunnel_open_time": 60,
"local_network_scan": true, "local_network_scan": true,
"max_depth": null, "max_depth": null,
"monkey_log_directory_linux": "/tmp/",
"monkey_log_directory_windows": "%temp%\\",
"ping_scan_timeout": 1000, "ping_scan_timeout": 1000,
"post_breach_actions": [ "post_breach_actions": [
"CommunicateAsBackdoorUser", "CommunicateAsBackdoorUser",

View File

@ -106,12 +106,6 @@
"dropper_target_path_linux": "/tmp/monkey", "dropper_target_path_linux": "/tmp/monkey",
"dropper_target_path_win_64": "C:\\Windows\\temp\\monkey64.exe" "dropper_target_path_win_64": "C:\\Windows\\temp\\monkey64.exe"
}, },
"logging": {
"dropper_log_directory_linux": "/tmp/",
"dropper_log_directory_windows": "%temp%\\",
"monkey_log_directory_linux": "/tmp/",
"monkey_log_directory_windows": "%temp%\\"
},
"exploits": { "exploits": {
"exploit_lm_hash_list": [], "exploit_lm_hash_list": [],
"exploit_ntlm_hash_list": [], "exploit_ntlm_hash_list": [],