Skip to content
Merged
3 changes: 0 additions & 3 deletions src/CommonLib/OutputTypes/Computer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,6 @@ public override string ToString() {

public class SmbInfo {
public bool? SigningEnabled;
public string OsVersion;
public string OsBuild;
public string DnsComputerName { get; internal set; }
}

public class DCRegistryData {
Expand Down
5 changes: 4 additions & 1 deletion src/CommonLib/OutputTypes/RegistryData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ public class RegistryData {
public uint? NtlmMinServerSec { get; set; } = null;
public uint? NtlmMinClientSec { get; set; } = null;
public uint? LmCompatibilityLevel { get; set; } = null;
public uint? UseMachine { get; set; } = null;
public uint? UseMachineId { get; set; } = null;
public uint? RequireSecuritySignature { get; set; } = null;
public uint? EnableSecuritySignature { get; set; } = null;
public string[]? ClientAllowedNTLMServers { get; set; } = null;
}
#nullable disable
2 changes: 1 addition & 1 deletion src/CommonLib/Processors/CAEnrollmentProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ private async Task<APIResult<CAEnrollmentEndpoint>> GetNtlmEndpoint(Uri url, boo
return APIResult<CAEnrollmentEndpoint>.Success(output);
}

Console.WriteLine($"WebException occurred: {ex}");
_logger.LogError($"WebException occurred: {ex}");

return APIResult<CAEnrollmentEndpoint>
.Failure(
Expand Down
34 changes: 25 additions & 9 deletions src/CommonLib/Processors/RegistryProcessor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,25 @@ public RegistryProcessor(ILogger log, string domain) {
];

_queries = [
RegistryQuery.ForKey(RegistryHive.LocalMachine, @"System\CurrentControlSet\Control\Lsa\MSV1_0")
RegistryQuery.ForKey(RegistryHive.LocalMachine, @"SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0")
.WithValues([
"NtlmMinClientSec",
"NtlmMinServerSec",
"RestrictReceivingNTLMTraffic",
"RestrictSendingNTLMTraffic",
"ClientAllowedNTLMServers", // Network security: Restrict NTLM: Add remote server exceptions for NTLM authentication
"NtlmMinClientSec", // Network security: Minimum session security for NTLM SSP based (including secure RPC) clients
"NtlmMinServerSec", // Network security: Minimum session security for NTLM SSP based (including secure RPC) servers
"RestrictReceivingNTLMTraffic", // Network security: Restrict NTLM: Incoming NTLM traffic
"RestrictSendingNTLMTraffic", // Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers
]),

RegistryQuery.ForKey(RegistryHive.LocalMachine, @"System\CurrentControlSet\Control\Lsa\")
RegistryQuery.ForKey(RegistryHive.LocalMachine, @"SYSTEM\CurrentControlSet\Control\Lsa\")
.WithValues([
"LMCompatibilityLevel",
"UseMachineId"
"LMCompatibilityLevel", // Network security: LAN Manager authentication level
"UseMachineId" // Network security: Allow Local System to use computer identity for NTLM
]),

RegistryQuery.ForKey(RegistryHive.LocalMachine, @"SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters")
.WithValues([
"EnableSecuritySignature", // Microsoft network client: Digitally sign communications (if server agrees)
"RequireSecuritySignature", // Microsoft network client: Digitally sign communications (always)
])
];
}
Expand All @@ -57,6 +64,9 @@ public async Task<APIResult<RegistryData>> ReadRegistrySettings(string targetMac

var name = key.ValueName;
switch (name) {
case "ClientAllowedNTLMServers":
output.ClientAllowedNTLMServers = (string[])key.Value;
break;
case "NtlmMinClientSec":
output.NtlmMinClientSec = Convert.ToUInt32(key.Value);
break;
Expand All @@ -73,7 +83,13 @@ public async Task<APIResult<RegistryData>> ReadRegistrySettings(string targetMac
output.LmCompatibilityLevel = Convert.ToUInt32(key.Value);
break;
case "UseMachineId":
output.UseMachine = Convert.ToUInt32(key.Value);
output.UseMachineId = Convert.ToUInt32(key.Value);
break;
case "RequireSecuritySignature":
output.RequireSecuritySignature = Convert.ToUInt32(key.Value);
break;
case "EnableSecuritySignature":
output.EnableSecuritySignature = Convert.ToUInt32(key.Value);
break;
}
}
Expand Down
Loading
Loading