diff --git a/winPEAS/winPEASexe/winPEAS/Checks/FilesInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/FilesInfo.cs index 70cadfc..38c5300 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/FilesInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/FilesInfo.cs @@ -318,7 +318,7 @@ namespace winPEAS.Checks Beaprint.MainPrint("Looking for possible regs with creds"); Beaprint.LinkPrint("https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#inside-the-registry"); - string winVnc4 = RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\RealVNC\WinVNC4", "passwword"); + string winVnc4 = RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\RealVNC\WinVNC4", "password"); if (!string.IsNullOrEmpty(winVnc4.Trim())) { Beaprint.BadPrint(winVnc4); @@ -731,7 +731,7 @@ namespace winPEAS.Checks if (Directory.Exists(path)) { - var files = Directory.GetFiles(path, pattern, SearchOption.TopDirectoryOnly); + var files = Directory.EnumerateFiles(path, pattern, SearchOption.TopDirectoryOnly); foreach (var file in files) { diff --git a/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs index fe55372..ac5afd0 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs @@ -128,7 +128,7 @@ namespace winPEAS.Checks string transcriptsPath = drive + @"transcripts\"; string usersPath = $"{drive}users"; - string[] users = Directory.GetDirectories(usersPath, "*", SearchOption.TopDirectoryOnly); + var users = Directory.EnumerateDirectories(usersPath, "*", SearchOption.TopDirectoryOnly); string powershellTranscriptFilter = "powershell_transcript*"; var colors = new Dictionary() @@ -159,7 +159,7 @@ namespace winPEAS.Checks { try { - var files = Directory.GetFiles(path, filter, SearchOption.TopDirectoryOnly).ToList(); + var files = Directory.EnumerateFiles(path, filter, SearchOption.TopDirectoryOnly).ToList(); foreach (var file in files) { diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/AppLocker/AppLockerHelper.cs b/winPEAS/winPEASexe/winPEAS/Helpers/AppLocker/AppLockerHelper.cs index bfbbf9b..c60afc7 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/AppLocker/AppLockerHelper.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/AppLocker/AppLockerHelper.cs @@ -325,8 +325,8 @@ namespace winPEAS.Helpers.AppLocker try { - var subfolders = Directory.GetDirectories(path); - var files = Directory.GetFiles(path, "*", SearchOption.TopDirectoryOnly); + var subfolders = Directory.EnumerateDirectories(path); + var files = Directory.EnumerateFiles(path, "*", SearchOption.TopDirectoryOnly); ruleType = ruleType.ToLower(); diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/PermissionsHelper.cs b/winPEAS/winPEASexe/winPEAS/Helpers/PermissionsHelper.cs index 65cd9e5..54b82e1 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/PermissionsHelper.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/PermissionsHelper.cs @@ -264,9 +264,9 @@ namespace winPEAS.Helpers results[path] = String.Join(", ", GetPermissionsFolder(path, Checks.Checks.CurrentUserSiDs)); if (string.IsNullOrEmpty(results[path])) { - foreach (string d in Directory.GetDirectories(path)) + foreach (string d in Directory.EnumerateDirectories(path)) { - foreach (string f in Directory.GetFiles(d)) + foreach (string f in Directory.EnumerateFiles(d)) { results[f] = String.Join(", ", GetPermissionsFile(f, Checks.Checks.CurrentUserSiDs)); } diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/Search/SearchHelper.cs b/winPEAS/winPEASexe/winPEAS/Helpers/Search/SearchHelper.cs index 375647e..82e058f 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/Search/SearchHelper.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/Search/SearchHelper.cs @@ -115,55 +115,53 @@ namespace winPEAS.Helpers.Search return result; } - - - private static List GetStartDirectories(string folder, ConcurrentBag files, string pattern, bool isFoldersIncluded = false) + private static IEnumerable GetStartDirectories(string folder, ConcurrentBag files, string pattern, bool isFoldersIncluded = false) { - DirectoryInfo dirInfo = null; - DirectoryInfo[] directories = null; - try + while (true) { - dirInfo = new DirectoryInfo(folder); - directories = dirInfo.GetDirectories(); - - if (isFoldersIncluded) + DirectoryInfo[] directories = null; + try { - foreach (var directory in directories) + var dirInfo = new DirectoryInfo(folder); + directories = dirInfo.GetDirectories(); + + if (isFoldersIncluded) { - files.Add(new CustomFileInfo(null, null, directory.FullName)); + foreach (var directory in directories) + { + files.Add(new CustomFileInfo(null, null, directory.FullName)); + } } - } - foreach (var f in dirInfo.GetFiles(pattern)) + foreach (var f in dirInfo.GetFiles(pattern)) + { + files.Add(new CustomFileInfo(f.Name, f.Extension, f.FullName)); + } + + if (directories.Length > 1) return new List(directories); + + if (directories.Length == 0) return new List(); + } + catch (UnauthorizedAccessException) { - files.Add(new CustomFileInfo(f.Name, f.Extension, f.FullName)); + return new List(); + } + catch (PathTooLongException) + { + return new List(); + } + catch (DirectoryNotFoundException) + { + return new List(); + } + catch (Exception) + { + return new List(); } - if (directories.Length > 1) - return new List(directories); - - if (directories.Length == 0) - return new List(); - + folder = directories[0].FullName; + isFoldersIncluded = false; } - catch (UnauthorizedAccessException) - { - return new List(); - } - catch (PathTooLongException) - { - return new List(); - } - catch (DirectoryNotFoundException) - { - return new List(); - } - catch (Exception) - { - return new List(); - } - - return GetStartDirectories(directories[0].FullName, files, pattern); } internal static void CreateSearchDirectoriesList() @@ -205,15 +203,14 @@ namespace winPEAS.Helpers.Search internal static void CleanLists() { - // TODO - //SearchHelper.RootDirUsers = null; - //SearchHelper.RootDirCurrentUser = null; - //SearchHelper.ProgramFiles = null; - //SearchHelper.ProgramFilesX86 = null; - //SearchHelper.DocumentsAndSettings = null; - //SearchHelper.GroupPolicyHistory = null; + SearchHelper.RootDirUsers = null; + SearchHelper.RootDirCurrentUser = null; + SearchHelper.ProgramFiles = null; + SearchHelper.ProgramFilesX86 = null; + SearchHelper.DocumentsAndSettings = null; + SearchHelper.GroupPolicyHistory = null; - //GC.Collect(); + GC.Collect(); } internal static IEnumerable SearchUserCredsFiles() @@ -253,26 +250,30 @@ namespace winPEAS.Helpers.Search foreach (var file in SearchHelper.RootDirCurrentUser) { - string extLower = file.Extension.ToLower(); - string nameLower = file.Filename.ToLower(); + if (!file.IsDirectory) + { + string extLower = file.Extension.ToLower(); + string nameLower = file.Filename.ToLower(); - if (Patterns.WhitelistExtensions.Contains(extLower) || - Patterns.WhiteListExactfilenamesWithExtensions.Contains(nameLower)) - { - result.Add(file.FullPath); - } - else - { - foreach (var pattern in Patterns.WhiteListRegexp) + if (Patterns.WhitelistExtensions.Contains(extLower) || + Patterns.WhiteListExactfilenamesWithExtensions.Contains(nameLower)) { - if (Regex.IsMatch(nameLower, pattern, RegexOptions.IgnoreCase)) + result.Add(file.FullPath); + } + else + { + foreach (var pattern in Patterns.WhiteListRegexp) { - result.Add(file.FullPath); + if (Regex.IsMatch(nameLower, pattern, RegexOptions.IgnoreCase)) + { + result.Add(file.FullPath); - break; + break; + } } } - } + + } } return result; @@ -289,11 +290,14 @@ namespace winPEAS.Helpers.Search foreach (var file in SearchHelper.GroupPolicyHistory) { - string extLower = file.Extension.ToLower(); - - if (allowedExtensions.Contains(extLower)) + if (!file.IsDirectory) { - result.Add(file.FullPath); + string extLower = file.Extension.ToLower(); + + if (allowedExtensions.Contains(extLower)) + { + result.Add(file.FullPath); + } } } @@ -317,11 +321,14 @@ namespace winPEAS.Helpers.Search foreach (var file in searchFiles) { - string filenameToLower = file.Filename.ToLower(); - - if (allowedFilenames.Contains(filenameToLower)) + if (!file.IsDirectory) { - result.Add(file.FullPath); + string filenameToLower = file.Filename.ToLower(); + + if (allowedFilenames.Contains(filenameToLower)) + { + result.Add(file.FullPath); + } } } @@ -349,25 +356,28 @@ namespace winPEAS.Helpers.Search foreach (var file in SearchHelper.RootDirCurrentUser) { - string extLower = file.Extension.ToLower(); - string nameLower = file.Filename.ToLower(); + if (!file.IsDirectory) + { + string extLower = file.Extension.ToLower(); + string nameLower = file.Filename.ToLower(); - if (allowedExtensions.Contains(extLower)) - { - result.Add(file.FullPath); - } - else - { - foreach (var pattern in allowedRegexp) + if (allowedExtensions.Contains(extLower)) { - if (Regex.IsMatch(nameLower, pattern, RegexOptions.IgnoreCase)) + result.Add(file.FullPath); + } + else + { + foreach (var pattern in allowedRegexp) { - result.Add(file.FullPath); + if (Regex.IsMatch(nameLower, pattern, RegexOptions.IgnoreCase)) + { + result.Add(file.FullPath); - break; + break; + } } } - } + } } return result; @@ -394,25 +404,28 @@ namespace winPEAS.Helpers.Search foreach (var file in SearchHelper.RootDirUsers) { - string extLower = file.Extension.ToLower(); - string nameLower = file.Filename.ToLower(); + if (!file.IsDirectory) + { + string extLower = file.Extension.ToLower(); + string nameLower = file.Filename.ToLower(); - if (allowedExtensions.Contains(extLower)) - { - result.Add(file.FullPath); - } - else - { - foreach (var pattern in allowedRegexp) + if (allowedExtensions.Contains(extLower)) { - if (Regex.IsMatch(nameLower, pattern, RegexOptions.IgnoreCase)) + result.Add(file.FullPath); + } + else + { + foreach (var pattern in allowedRegexp) { - result.Add(file.FullPath); + if (Regex.IsMatch(nameLower, pattern, RegexOptions.IgnoreCase)) + { + result.Add(file.FullPath); - break; + break; + } } } - } + } } return result; diff --git a/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/AutoRuns.cs b/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/AutoRuns.cs index d3c3073..cc12662 100644 --- a/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/AutoRuns.cs +++ b/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/AutoRuns.cs @@ -343,7 +343,7 @@ namespace winPEAS.Info.ApplicationInfo try { - var userDirs = Directory.GetDirectories(usersPath); + var userDirs = Directory.EnumerateDirectories(usersPath); foreach (var userDir in userDirs) { @@ -363,7 +363,7 @@ namespace winPEAS.Info.ApplicationInfo { try { - var files = Directory.GetFiles(path, "*", SearchOption.TopDirectoryOnly); + var files = Directory.EnumerateFiles(path, "*", SearchOption.TopDirectoryOnly); foreach (string filepath in files) { diff --git a/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/InstalledApps.cs b/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/InstalledApps.cs index ff54d79..08e967f 100644 --- a/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/InstalledApps.cs +++ b/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/InstalledApps.cs @@ -70,14 +70,14 @@ namespace winPEAS.Info.ApplicationInfo var results = new SortedDictionary>(); try { - foreach (string f in Directory.GetFiles(fpath)) + foreach (string f in Directory.EnumerateFiles(fpath)) { results[f] = new Dictionary { { f, string.Join(", ", PermissionsHelper.GetPermissionsFile(f, Checks.Checks.CurrentUserSiDs)) } }; } - foreach (string d in Directory.GetDirectories(fpath)) + foreach (string d in Directory.EnumerateDirectories(fpath)) { results[d] = PermissionsHelper.GetRecursivePrivs(d); } diff --git a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Chrome/Chrome.cs b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Chrome/Chrome.cs index 2ae71fc..896d8e1 100644 --- a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Chrome/Chrome.cs +++ b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Chrome/Chrome.cs @@ -107,7 +107,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Chrome if (MyUtils.IsHighIntegrity()) { string userFolder = $"{Environment.GetEnvironmentVariable("SystemDrive")}\\Users\\"; - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { string[] parts = dir.Split('\\'); @@ -205,7 +205,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Chrome Console.WriteLine("\r\n\r\n=== Chrome (All Users) ==="); string userFolder = string.Format("{0}\\Users\\", Environment.GetEnvironmentVariable("SystemDrive")); - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { string[] parts = dir.Split('\\'); diff --git a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs index 45dd614..7f9ba7b 100644 --- a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs +++ b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Data; using System.IO; +using System.Linq; using System.Text.RegularExpressions; using winPEAS.Checks; using winPEAS.Helpers; @@ -91,7 +92,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox if (MyUtils.IsHighIntegrity()) { string userFolder = $"{Environment.GetEnvironmentVariable("SystemDrive")}\\Users\\"; - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { string[] parts = dir.Split('\\'); @@ -102,7 +103,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox string userFirefoxBasePath = $"{dir}\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\"; if (System.IO.Directory.Exists(userFirefoxBasePath)) { - string[] directories = Directory.GetDirectories(userFirefoxBasePath); + var directories = Directory.EnumerateDirectories(userFirefoxBasePath); foreach (string directory in directories) { string firefoxCredentialFile3 = $"{directory}\\{"key3.db"}"; @@ -129,7 +130,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox if (Directory.Exists(userFirefoxBasePath)) { - string[] directories = Directory.GetDirectories(userFirefoxBasePath); + var directories = Directory.EnumerateDirectories(userFirefoxBasePath); foreach (string directory in directories) { string firefoxCredentialFile3 = $"{directory}\\{"key3.db"}"; @@ -163,7 +164,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox if (MyUtils.IsHighIntegrity()) { string userFolder = $"{Environment.GetEnvironmentVariable("SystemDrive")}\\Users\\"; - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { string[] parts = dir.Split('\\'); @@ -194,7 +195,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox // parses a Firefox history file via regex if (Directory.Exists(path)) { - string[] directories = Directory.GetDirectories(path); + var directories = Directory.EnumerateDirectories(path); foreach (string directory in directories) { string firefoxHistoryFile = string.Format("{0}\\{1}", directory, "places.sqlite"); @@ -239,16 +240,16 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox try { - string[] dirs = Directory.GetDirectories(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Mozilla\\Firefox\\Profiles")); + var dirs = Directory.EnumerateDirectories(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Mozilla\\Firefox\\Profiles")).ToList(); - if (dirs.Length == 0) + if (!dirs.Any()) { return logins; } foreach (string dir in dirs) { - string[] files = Directory.GetFiles(dir, "signons.sqlite"); + string[] files = Directory.EnumerateFiles(dir, "signons.sqlite").ToArray(); if (files.Length > 0) { signonsFile = files[0]; @@ -256,7 +257,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox } // find "logins.json"file - files = Directory.GetFiles(dir, "logins.json"); + files = Directory.EnumerateFiles(dir, "logins.json").ToArray(); if (files.Length > 0) { loginsFile = files[0]; diff --git a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/InternetExplorer.cs b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/InternetExplorer.cs index 8cd3138..44c4525 100644 --- a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/InternetExplorer.cs +++ b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/InternetExplorer.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Text.RegularExpressions; @@ -121,8 +122,8 @@ namespace winPEAS.KnownFileCreds.Browsers } string userFolder = string.Format("{0}\\Users\\", Environment.GetEnvironmentVariable("SystemDrive")); - string[] dirs = Directory.GetDirectories(userFolder); - foreach (string dir in dirs) + var dirs = Directory.EnumerateDirectories(userFolder); + foreach (var dir in dirs) { string[] parts = dir.Split('\\'); string userName = parts[parts.Length - 1]; @@ -132,7 +133,7 @@ namespace winPEAS.KnownFileCreds.Browsers if (Directory.Exists(userIEBookmarkPath)) { - string[] bookmarkPaths = Directory.GetFiles(userIEBookmarkPath, "*.url", SearchOption.AllDirectories); + string[] bookmarkPaths = Directory.EnumerateFiles(userIEBookmarkPath, "*.url", SearchOption.AllDirectories).ToArray(); if (bookmarkPaths.Length != 0) { foreach (string bookmarkPath in bookmarkPaths) @@ -180,7 +181,7 @@ namespace winPEAS.KnownFileCreds.Browsers string userIEBookmarkPath = string.Format("{0}\\Favorites\\", System.Environment.GetEnvironmentVariable("USERPROFILE")); - string[] bookmarkPaths = Directory.GetFiles(userIEBookmarkPath, "*.url", SearchOption.AllDirectories); + string[] bookmarkPaths = Directory.EnumerateFiles(userIEBookmarkPath, "*.url", SearchOption.AllDirectories).ToArray(); foreach (string bookmarkPath in bookmarkPaths) { diff --git a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/KnownFileCredsInfo.cs b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/KnownFileCredsInfo.cs index fc36fa2..932b421 100644 --- a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/KnownFileCredsInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/KnownFileCredsInfo.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Text; @@ -44,7 +45,7 @@ namespace winPEAS.KnownFileCreds if (MyUtils.IsHighIntegrity()) { string userFolder = string.Format("{0}\\Users\\", Environment.GetEnvironmentVariable("SystemDrive")); - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { string[] parts = dir.Split('\\'); @@ -250,7 +251,7 @@ namespace winPEAS.KnownFileCreds if (MyUtils.IsHighIntegrity()) { string userFolder = string.Format("{0}\\Users\\", Environment.GetEnvironmentVariable("SystemDrive")); - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { string[] parts = dir.Split('\\'); @@ -261,7 +262,7 @@ namespace winPEAS.KnownFileCreds string recentPath = string.Format("{0}\\AppData\\Roaming\\Microsoft\\Windows\\Recent\\", dir); try { - string[] recentFiles = Directory.GetFiles(recentPath, "*.lnk", SearchOption.AllDirectories); + string[] recentFiles = Directory.EnumerateFiles(recentPath, "*.lnk", SearchOption.AllDirectories).ToArray(); if (recentFiles.Length != 0) { @@ -298,7 +299,7 @@ namespace winPEAS.KnownFileCreds { string recentPath = string.Format("{0}\\Microsoft\\Windows\\Recent\\", System.Environment.GetEnvironmentVariable("APPDATA")); - string[] recentFiles = Directory.GetFiles(recentPath, "*.lnk", SearchOption.AllDirectories); + var recentFiles = Directory.EnumerateFiles(recentPath, "*.lnk", SearchOption.AllDirectories); foreach (string recentFile in recentFiles) { @@ -346,7 +347,7 @@ namespace winPEAS.KnownFileCreds if (MyUtils.IsHighIntegrity()) { string userFolder = string.Format("{0}\\Users\\", Environment.GetEnvironmentVariable("SystemDrive")); - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { string[] parts = dir.Split('\\'); @@ -361,10 +362,10 @@ namespace winPEAS.KnownFileCreds { if (System.IO.Directory.Exists(userDPAPIBasePath)) { - string[] directories = Directory.GetDirectories(userDPAPIBasePath); + var directories = Directory.EnumerateDirectories(userDPAPIBasePath); foreach (string directory in directories) { - string[] files = Directory.GetFiles(directory); + var files = Directory.EnumerateFiles(directory); foreach (string file in files) { @@ -374,11 +375,11 @@ namespace winPEAS.KnownFileCreds DateTime lastModified = System.IO.File.GetLastWriteTime(file); string fileName = System.IO.Path.GetFileName(file); results.Add(new Dictionary() - { - { "MasterKey", file }, - { "Accessed", string.Format("{0}", lastAccessed) }, - { "Modified", string.Format("{0}", lastModified) }, - }); + { + { "MasterKey", file }, + { "Accessed", string.Format("{0}", lastAccessed) }, + { "Modified", string.Format("{0}", lastModified) }, + }); } } } @@ -398,10 +399,10 @@ namespace winPEAS.KnownFileCreds { if (System.IO.Directory.Exists(userDPAPIBasePath)) { - string[] directories = Directory.GetDirectories(userDPAPIBasePath); + var directories = Directory.EnumerateDirectories(userDPAPIBasePath); foreach (string directory in directories) { - string[] files = Directory.GetFiles(directory); + var files = Directory.EnumerateFiles(directory); foreach (string file in files) { @@ -439,7 +440,7 @@ namespace winPEAS.KnownFileCreds if (MyUtils.IsHighIntegrity()) { string userFolder = string.Format("{0}\\Users\\", Environment.GetEnvironmentVariable("SystemDrive")); - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { @@ -455,8 +456,8 @@ namespace winPEAS.KnownFileCreds { if (System.IO.Directory.Exists(userCredFilePath)) { - string[] systemFiles = Directory.GetFiles(userCredFilePath); - if ((systemFiles != null) && (systemFiles.Length != 0)) + var systemFiles = Directory.EnumerateFiles(userCredFilePath); + if ((systemFiles != null)) { foreach (string file in systemFiles) { @@ -481,14 +482,14 @@ namespace winPEAS.KnownFileCreds string desc = Encoding.Unicode.GetString(descBytes); results.Add(new Dictionary() - { - { "CredFile", file }, - { "Description", desc }, - { "MasterKey", string.Format("{0}", guidMasterKey) }, - { "Accessed", string.Format("{0}", lastAccessed) }, - { "Modified", string.Format("{0}", lastModified) }, - { "Size", string.Format("{0}", size) }, - }); + { + { "CredFile", file }, + { "Description", desc }, + { "MasterKey", string.Format("{0}", guidMasterKey) }, + { "Accessed", string.Format("{0}", lastAccessed) }, + { "Modified", string.Format("{0}", lastModified) }, + { "Size", string.Format("{0}", size) }, + }); } } } @@ -497,8 +498,8 @@ namespace winPEAS.KnownFileCreds } string systemFolder = string.Format("{0}\\System32\\config\\systemprofile\\AppData\\Local\\Microsoft\\Credentials", Environment.GetEnvironmentVariable("SystemRoot")); - string[] files = Directory.GetFiles(systemFolder); - if ((files != null) && (files.Length != 0)) + var files = Directory.EnumerateFiles(systemFolder); + if ((files != null)) { foreach (string file in files) { @@ -543,9 +544,9 @@ namespace winPEAS.KnownFileCreds foreach (string userCredFilePath in userCredFilePaths) { - if (System.IO.Directory.Exists(userCredFilePath)) + if (Directory.Exists(userCredFilePath)) { - string[] files = Directory.GetFiles(userCredFilePath); + var files = Directory.EnumerateFiles(userCredFilePath); foreach (string file in files) { diff --git a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/RemoteDesktop.cs b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/RemoteDesktop.cs index caa98ca..b721127 100644 --- a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/RemoteDesktop.cs +++ b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/RemoteDesktop.cs @@ -67,7 +67,7 @@ namespace winPEAS.KnownFileCreds if (MyUtils.IsHighIntegrity()) { string userFolder = string.Format("{0}\\Users\\", Environment.GetEnvironmentVariable("SystemDrive")); - string[] dirs = Directory.GetDirectories(userFolder); + var dirs = Directory.EnumerateDirectories(userFolder); foreach (string dir in dirs) { diff --git a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/SuperPutty/SuperPutty.cs b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/SuperPutty/SuperPutty.cs index 27d72c4..29f646f 100644 --- a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/SuperPutty/SuperPutty.cs +++ b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/SuperPutty/SuperPutty.cs @@ -24,7 +24,7 @@ namespace winPEAS.KnownFileCreds.SuperPutty try { var path = $"{dir}\\Documents\\SuperPuTTY\\"; - var files = Directory.GetFiles(path, filter, SearchOption.TopDirectoryOnly); + var files = Directory.EnumerateFiles(path, filter, SearchOption.TopDirectoryOnly); foreach (var file in files) {