forked from p15670423/monkey
Agent: add mimikatz collector unit tests
This commit is contained in:
parent
a6c2762823
commit
f5740b2a6e
|
@ -0,0 +1,56 @@
|
||||||
|
from infection_monkey.credential_collectors import Credentials, NTHashes, Password, Username
|
||||||
|
from infection_monkey.credential_collectors.mimikatz_collector.mimikatz_cred_collector import (
|
||||||
|
MimikatzCredentialCollector,
|
||||||
|
)
|
||||||
|
from infection_monkey.credential_collectors.mimikatz_collector.windows_credentials import (
|
||||||
|
WindowsCredentials,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def patch_pypykatz(win_creds: [WindowsCredentials], monkeypatch):
|
||||||
|
monkeypatch.setattr(
|
||||||
|
"infection_monkey.credential_collectors"
|
||||||
|
".mimikatz_collector.pypykatz_handler.get_windows_creds",
|
||||||
|
lambda: win_creds,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_empty_results(monkeypatch):
|
||||||
|
win_creds = [WindowsCredentials(username="", password="", ntlm_hash="", lm_hash="")]
|
||||||
|
patch_pypykatz(win_creds, monkeypatch)
|
||||||
|
expected = []
|
||||||
|
collected = MimikatzCredentialCollector().collect_credentials()
|
||||||
|
assert expected == collected
|
||||||
|
|
||||||
|
patch_pypykatz([], monkeypatch)
|
||||||
|
collected = MimikatzCredentialCollector().collect_credentials()
|
||||||
|
assert [] == collected
|
||||||
|
|
||||||
|
|
||||||
|
def test_pypykatz_result_parsing(monkeypatch):
|
||||||
|
win_creds = [
|
||||||
|
WindowsCredentials(username="user", password="secret", ntlm_hash="", lm_hash=""),
|
||||||
|
WindowsCredentials(username="", password="", ntlm_hash="ntlm_hash", lm_hash="lm_hash"),
|
||||||
|
WindowsCredentials(username="user", password="secret", ntlm_hash="", lm_hash=""),
|
||||||
|
WindowsCredentials(
|
||||||
|
username="user2", password="secret2", ntlm_hash="ntlm_hash2", lm_hash="lm_hash2"
|
||||||
|
),
|
||||||
|
]
|
||||||
|
patch_pypykatz(win_creds, monkeypatch)
|
||||||
|
|
||||||
|
# Expected credentials
|
||||||
|
username = Username("user")
|
||||||
|
username2 = Username("user2")
|
||||||
|
password = Password("secret")
|
||||||
|
password2 = Password("secret2")
|
||||||
|
hash = NTHashes(ntlm_hash="ntlm_hash", lm_hash="lm_hash")
|
||||||
|
hash2 = NTHashes(ntlm_hash="ntlm_hash2", lm_hash="lm_hash2")
|
||||||
|
|
||||||
|
expected = [
|
||||||
|
Credentials(identities=[username], secrets=[password]),
|
||||||
|
Credentials(identities=[], secrets=[hash]),
|
||||||
|
Credentials(identities=[username], secrets=[password]),
|
||||||
|
Credentials(identities=[username2], secrets=[password2, hash2]),
|
||||||
|
]
|
||||||
|
collected = MimikatzCredentialCollector().collect_credentials()
|
||||||
|
assert expected == collected
|
Loading…
Reference in New Issue