Skip to content

Commit ab2e21a

Browse files
authored
fix: filter empty spns during host resolution to prevent bad edges (#99)
1 parent 0a08d00 commit ab2e21a

2 files changed

Lines changed: 13 additions & 0 deletions

File tree

src/CommonLib/LDAPUtils.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,10 @@ public IEnumerable<string> DoRangedRetrieval(string distinguishedName, string at
571571
public async Task<string> ResolveHostToSid(string hostname, string domain)
572572
{
573573
var strippedHost = Helpers.StripServicePrincipalName(hostname).ToUpper().TrimEnd('$');
574+
if (string.IsNullOrEmpty(strippedHost))
575+
{
576+
return null;
577+
}
574578

575579
if (_hostResolutionMap.TryGetValue(strippedHost, out var sid)) return sid;
576580

test/unit/CommonLibHelperTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,15 @@ public void StripServicePrincipalName_InValidServicePrincipal_ExpectedHostName()
166166
var actual = SharpHoundCommonLib.Helpers.StripServicePrincipalName(testString);
167167
Assert.Equal(expected, actual);
168168
}
169+
170+
[Fact]
171+
public void StripServicePrincipalName_EmptyHost_Valid()
172+
{
173+
var testString = "MSSQLSvc/:1433";
174+
var expected = "";
175+
var actual = SharpHoundCommonLib.Helpers.StripServicePrincipalName(testString);
176+
Assert.Equal(expected, actual);
177+
}
169178

170179
[Fact]
171180
public void B64ToBytes_String_ValidBase64String()

0 commit comments

Comments
 (0)