Skip to content

Commit 991673f

Browse files
Brian GiraldoBrian Giraldo
authored andcommitted
New module that searches for files that contain aws credentials on windows and linux systems.
1 parent 6d4fdfd commit 991673f

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

nxc/modules/aws-credentials.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
class NXCModule:
2+
"""
3+
Search for aws credentials files on linux and windows machines
4+
5+
Module by Fortress
6+
"""
7+
8+
name = "aws-credentials"
9+
description = "Search for aws credentials files."
10+
supported_protocols = ["ssh", "smb", "winrm"]
11+
opsec_safe = True
12+
multiple_hosts = True
13+
14+
def __init__(self):
15+
self.search_path_linux = "'/home/' '/tmp/'"
16+
self.search_path_win = "'C:\\Users\\', 'C:\\ProgramData\\AWSCLI\\', 'C:\\Temp\\'"
17+
18+
19+
def options(self, context, module_options):
20+
r"""
21+
SEARCH_PATH_LINUX Linux location where to search for aws credentials related files
22+
Default: '/home/ - /tmp/'
23+
24+
SEARCH_PATH_WIN Windows locations where to search for aws credentials related files
25+
Default: 'C:\\Users\\ - C:\\ProgramData\\AWSCLI\\ - C:\\Temp\\
26+
"""
27+
if "SEARCH_PATH_LINUX" in module_options:
28+
self.search_path_linux = module_options["SEARCH_PATH_LINUX"]
29+
30+
if "SEARCH_PATH_WIN" in module_options:
31+
self.search_path_win = module_options["SEARCH_PATH_WIN"]
32+
33+
def on_login(self, context, connection):
34+
# search for aws_credentials-related files on linux systems
35+
if "ssh" in context.protocol:
36+
search_aws_creds_files_payload = f'find {self.search_path_linux} -type f -name credentials -o -name credentials.bk -o -name config.bk -o -name config'
37+
search_aws_creds_files_cmd = f'/bin/bash -c "{search_aws_creds_files_payload}"'
38+
search_aws_creds_files_output = connection.execute(search_aws_creds_files_cmd, True)
39+
else:
40+
# search for aws_credentials-related files on windows systems
41+
search_aws_creds_files_payload_win = f"Get-ChildItem -Path {self.search_path_win} -Recurse -Force -Include ('credentials','credentials.bk','config','config.bk') -ErrorAction SilentlyContinue | Select FullName -ExpandProperty FullName"
42+
search_aws_creds_files_cmd_win = f'powershell.exe "{search_aws_creds_files_payload_win}"'
43+
search_aws_creds_files_output_win = connection.execute(search_aws_creds_files_cmd_win, True)
44+

0 commit comments

Comments
 (0)