From 7c9c4cf9fb0dd49c735def42ee712de0164a7f96 Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Wed, 23 Feb 2022 08:44:02 -0500 Subject: [PATCH] Island: Compare Enums instead of strings in parse_credentials() --- .../processing/credentials/credentials_parser.py | 14 ++++++++------ .../credentials/test_credential_processing.py | 10 +++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/monkey/monkey_island/cc/services/telemetry/processing/credentials/credentials_parser.py b/monkey/monkey_island/cc/services/telemetry/processing/credentials/credentials_parser.py index 9c4661e1d..60264993d 100644 --- a/monkey/monkey_island/cc/services/telemetry/processing/credentials/credentials_parser.py +++ b/monkey/monkey_island/cc/services/telemetry/processing/credentials/credentials_parser.py @@ -11,19 +11,21 @@ from .secrets.password_processor import process_password logger = logging.getLogger(__name__) SECRET_PROCESSORS = { - CredentialComponentType.PASSWORD.value: process_password, - CredentialComponentType.NT_HASH.value: process_nt_hash, - CredentialComponentType.LM_HASH.value: process_lm_hash, + CredentialComponentType.PASSWORD: process_password, + CredentialComponentType.NT_HASH: process_nt_hash, + CredentialComponentType.LM_HASH: process_lm_hash, } IDENTITY_PROCESSORS = { - CredentialComponentType.USERNAME.value: process_username, + CredentialComponentType.USERNAME: process_username, } def parse_credentials(credentials: Mapping): for credential in credentials["data"]: for identity in credential["identities"]: - IDENTITY_PROCESSORS[identity["credential_type"]](identity) + credential_type = CredentialComponentType[identity["credential_type"]] + IDENTITY_PROCESSORS[credential_type](identity) for secret in credential["secrets"]: - SECRET_PROCESSORS[secret["credential_type"]](secret) + credential_type = CredentialComponentType[secret["credential_type"]] + SECRET_PROCESSORS[credential_type](secret) diff --git a/monkey/tests/unit_tests/monkey_island/cc/services/telemetry/processing/credentials/test_credential_processing.py b/monkey/tests/unit_tests/monkey_island/cc/services/telemetry/processing/credentials/test_credential_processing.py index 173b9662f..c39082e83 100644 --- a/monkey/tests/unit_tests/monkey_island/cc/services/telemetry/processing/credentials/test_credential_processing.py +++ b/monkey/tests/unit_tests/monkey_island/cc/services/telemetry/processing/credentials/test_credential_processing.py @@ -27,7 +27,7 @@ CREDENTIAL_TELEM_TEMPLATE = { fake_username = "m0nk3y_user" cred_telem_usernames = deepcopy(CREDENTIAL_TELEM_TEMPLATE) cred_telem_usernames["data"] = [ - {"identities": [{"username": fake_username, "credential_type": "username"}], "secrets": []} + {"identities": [{"username": fake_username, "credential_type": "USERNAME"}], "secrets": []} ] fake_nt_hash = "c1c58f96cdf212b50837bc11a00be47c" @@ -36,11 +36,11 @@ fake_password = "trytostealthis" cred_telem = deepcopy(CREDENTIAL_TELEM_TEMPLATE) cred_telem["data"] = [ { - "identities": [{"username": fake_username, "credential_type": "username"}], + "identities": [{"username": fake_username, "credential_type": "USERNAME"}], "secrets": [ - {"nt_hash": fake_nt_hash, "credential_type": "nt_hash"}, - {"lm_hash": fake_lm_hash, "credential_type": "lm_hash"}, - {"password": fake_password, "credential_type": "password"}, + {"nt_hash": fake_nt_hash, "credential_type": "NT_HASH"}, + {"lm_hash": fake_lm_hash, "credential_type": "LM_HASH"}, + {"password": fake_password, "credential_type": "PASSWORD"}, ], } ]