Compare commits

...

3 Commits

Author SHA1 Message Date
SirBroccoli
64a6bb0ff6 test: capture help output 2025-06-06 00:01:37 +02:00
SirBroccoli
c3a93a57fe Merge pull request #473 from Signum21/master
Fix IdentityNotMappedException in Vulnerable Leaked Handlers
2025-05-31 22:36:49 +02:00
Signum21
f62d9fc550 Fix System.Security.Principal.IdentityNotMappedException in Vulnerable Leaked Handlers 2025-05-31 04:56:14 +02:00
3 changed files with 21 additions and 4 deletions

View File

@@ -1,5 +1,6 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.IO;
namespace winPEAS.Tests
{
@@ -25,17 +26,28 @@ namespace winPEAS.Tests
[TestMethod]
public void ShouldDisplayHelp()
{
var originalOut = Console.Out;
var sw = new StringWriter();
try
{
Console.SetOut(sw);
string[] args = new string[] {
"help",
};
Program.Main(args);
string output = sw.ToString();
Assert.IsTrue(output.Contains("WinPEAS is a binary"),
"Help output did not contain expected text.");
}
catch (Exception e)
{
Assert.Fail($"Exception thrown: {e.Message}");
}
finally
{
Console.SetOut(originalOut);
}
}
}
}

View File

@@ -81,7 +81,7 @@ namespace winPEAS.Helpers
/---------------------------------------------------------------------------------\
| {1}Do you like PEASS?{0} |
|---------------------------------------------------------------------------------|
| {3}Learn Cloud Hacking{0} : {2}training.hacktricks.xyz {0} |
| {3}Learn Cloud Hacking{0} : {2}training.hacktricks.xyz {0} |
| {3}Follow on Twitter{0} : {2}@hacktricks_live{0} |
| {3}Respect on HTB{0} : {2}SirBroccoli {0} |
|---------------------------------------------------------------------------------|

View File

@@ -195,11 +195,11 @@ namespace winPEAS.Info.ProcessInfo
continue;
List<string> permsFile = PermissionsHelper.GetPermissionsFile(sFilePath, Checks.Checks.CurrentUserSiDs, PermissionType.WRITEABLE_OR_EQUIVALENT);
IdentityReference sid = null;
try
{
System.Security.AccessControl.FileSecurity fs = System.IO.File.GetAccessControl(sFilePath);
IdentityReference sid = fs.GetOwner(typeof(SecurityIdentifier));
string ownerName = sid.Translate(typeof(NTAccount)).ToString();
sid = fs.GetOwner(typeof(SecurityIdentifier));
// If current user already have permissions over that file or the proc belongs to the owner of the file,
// handler not interesting to elevate privs
@@ -207,6 +207,8 @@ namespace winPEAS.Info.ProcessInfo
continue;
to_add["File Path"] = sFilePath;
string ownerName = sid.Translate(typeof(NTAccount)).ToString();
to_add["File Owner"] = ownerName;
}
catch (System.IO.FileNotFoundException)
@@ -218,7 +220,10 @@ namespace winPEAS.Info.ProcessInfo
{
continue;
}
catch (System.Security.Principal.IdentityNotMappedException)
{
to_add["File Owner"] = sid.ToString();
}
}
else if (typeName == "key")