MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / get_all_credentials

Method get_all_credentials

utils.py:837–908  ·  view source on GitHub ↗

Get all discovered credentials from various services

(self)

Source from the content-addressed store, hash-verified

835 handler.wfile.write(json.dumps({"status": "error", "message": str(e)}).encode('utf-8'))
836
837 def get_all_credentials(self):
838 """Get all discovered credentials from various services"""
839 credentials = {}
840
841 # Define credential files
842 cred_files = {
843 'ssh': self.shared_data.sshfile,
844 'smb': self.shared_data.smbfile,
845 'telnet': self.shared_data.telnetfile,
846 'ftp': self.shared_data.ftpfile,
847 'sql': self.shared_data.sqlfile,
848 'rdp': self.shared_data.rdpfile
849 }
850
851 def _normalize_keys(row):
852 normalized = {}
853 for key, value in row.items():
854 if key is None:
855 continue
856 normalized_key = key.strip().lower()
857 if normalized_key:
858 normalized[normalized_key] = value
859 return normalized
860
861 def _first_present(row, normalized_row, *keys):
862 for key in keys:
863 if key in row and row[key] not in (None, ''):
864 return row[key]
865
866 normalized_key = key.strip().lower()
867 if normalized_key in normalized_row and normalized_row[normalized_key] not in (None, ''):
868 return normalized_row[normalized_key]
869 return ''
870
871 for service, filepath in cred_files.items():
872 try:
873 if os.path.exists(filepath):
874 creds = []
875 with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
876 reader = csv.DictReader(f)
877 for row in reader:
878 normalized_row = _normalize_keys(row)
879
880 ip_value = _first_present(
881 row,
882 normalized_row,
883 'IP Address', 'IP', 'Target', 'target_ip', 'ip address'
884 )
885 user_value = _first_present(
886 row,
887 normalized_row,
888 'Username', 'User', 'Login', 'Account', 'user name'
889 )
890 password_value = _first_present(
891 row,
892 normalized_row,
893 'Password', 'Pass', 'Credential'
894 )

Callers 6

get_network_topologyFunction · 0.80
get_host_detailFunction · 0.80
get_credentialsFunction · 0.80
export_reportFunction · 0.80

Calls 3

appendMethod · 0.80
errorMethod · 0.80
itemsMethod · 0.45

Tested by

no test coverage detected