-
Notifications
You must be signed in to change notification settings - Fork 293
/
changelog.txt
508 lines (474 loc) · 36.4 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
3.3.0.1
* fix an issue where rule is not displayed when impacted users/computers count is less than 100.
3.3.0.0
* adjusted the rules S-DesEnabled, S-PwdNotRequired, S-PwdNeverExpires, P-Delegated, A-PreWin2000Other, S-PrimaryGroup, P-ServiceDomainAdmin,
A-AdminSDHolder to display directly the list of impacted users in the rule if the number is limited (hardcoded to 100) so Pro / Enterprise users can set accounts in exceptions
* handle the case where the property ms-DS-MachineAccountQuota has been removed (you can add as many computers as you want)
* ignore RPC coerce test if the computer used to run PingCastle is the DC (false positive)
* added the rule S-FirewallScript which recommends firewall rules against script engines (suggestion of Steen Poulsen)
* added the rule S-TerminalServicesGPO which recommends session timeout for RDP (suggestion of Steen Poulsen)
* Upgraded .NET Framework version to 4.7.2
* Release will contain version for 4.5.2 and 4.7.2
* Upgraded nuget packages
* Security improvements
3.2.1.0
* adjust P-DisplaySpecifier to be more relaxed when foreign path are used
* P-DNSAdmin is not triggered anymore (following our previous notification)
* added troubleshooting tests in case PingCastle is asked to connect to LDAPS and if the remote certificate is untrusted
* adjust powershell requests in S-OS-* rules descriptions
* fix a problem when with S-PwdLastSet-45 / S-PwdLastSet-90 when the DC has an incorrect date and set lastlogondate in the future
* add support for ms-LAPS-EncryptedPassword
* fix a problem in AzureAD when PRT was used even if manual credential was provided
* disabled the rule UserConsentCompanyData because the AAD changed drastically
* remove computer inherited class (managed service account) from AES missing control
* added the rule A-SmartCardPwdRotation checking for msDS-ExpirePasswordsOnSmartCardOnlyAccounts
* added the rule P-RODCKrbtgtOrphan checking for krbtgt_* account associated to RODC that are orphans
* added the rule S-AesNotEnabled checking for AES not enabled on service accounts
* added the rule S-PwdLastSet-Cluster checking for password change on clusters (at least every 3 years)
* added the rule A-RootDseAnonBinding to check for anonymous binding on rootDse for DC with Windows 2019+
* added the rule S-FolderOptions to recommend to open .js .jse files using notepad instead of the default script engine
* added the rule S-DefenderASR to implement Defender ASR rules. Even if another AV is installed, it will cover computers in a default state
* Pro: added a workaround to fix issues when ClientSecret is not defined for AAD authentication
3.2.0.1
* fix a regression in S-ADRegistration if multiple SeMachineAccountPrivilege have been defined, including Everyone like group and if MachineAccountQuota is not zero
3.2.0.0
* added a RPC scanner for DC (python coercer like script but without exploiting) and --skip-dc-rpc to disable this scan
* added the rule A-DC-Coerce matching the RPC scanner output
* changed S-OldNtlm and S-ADRegistration to take in account GPO overwriting settings
3.1.5.0
* exclude cluster objects (which looks like computers) from healthcheck analysis. In export computers, new column is added to reflect the cluster status
* fix an issue with restricted group membership
* excluded gmsa from P-ProtectedUsers and P-Delegated
* added a message in the console if the custom rule failed to load (instead of just being logged)
* adjusted the implementation logic of P-AdminLogin for better adjustment of customization
* rewrote the collection logic for admin last login to avoid S4USelf side effect (aka collect it on all DC instead of relying on lastlogontimestamp)
* added whenChanged to the user export function
* fix a bug when the replication metadata of some objects is denied
* fix an issue relative to parallele work for msi analysis
* clarify the rationale of S-OS-W10 by adding the number of active computers
* display the list of accounts in S-PwdNeverExpires if the count is less than 100 (hardcoded) so I can be added in exception for licensed version
* change the logic to handle AzureADKerberos accounts for S-DC-NotUpdated and S-DC-Inactive
* added a remark in the report about the impossibility to reach 100% LAPS deployment given the collected stats
* add Windows OS details (such as SP or release) on the consolidation report
3.1.0.1
* fix local membership if many settings are defined
* fix LAPS collection (signed / unsigned bug)
3.1.0.0
* fix a bug for machineaccountquote when GPO has been rewritten to remove all users
* fix a regression introduced in previous version in P-TrustedCredManAccessPrivilege
* added a password distribution chart in consolidation report (reserved for licensee)
* added LAPS last change date for "export computers"
* using new LAPS attribute ms-LAPS-Password
* wording change for A-SmartCardRequired
* added the rule A-DCLdapsProtocolAdvanced for Tls 1.0 and Tls 1.1 detection (informational)
* added the rule S-DefaultOUChanged for informational use of redircmp - thanks to Andy Wendel
* changed the rule A-MembershipEveryone to check for "Local Users and group" assignation
* added the rule P-AdminEmailOn to check if privileged accounts have an email (informative & maturity level 3)
* added the rule P-UnprotectedOU to check for unprotected OU (informative & maturity level 4)
* added the rule S-OS-2012 and S-DC-2012 that will trigger after Oct 10 2023 (unless --I-swear-... is set)
3.0.0.4
* fix channel binding issue (if server was configured with only TLS1.2 and client was not configured for TLS1.2 in the default algorithm it was not tested)
* fix integrity bug for paid subscriptions
3.0.0.3
* fix T-AlgsAES to not be enforced for unidirectional trust (trusdirection=2)
* removed rule P-DNSDelegation as it has no meaning anymore
* added LAPS usage analysis & statictics (for paid customers)
* change the timeout of TlsCheck from 10ms to 1s
* fix setintegrity missing
* fix kerberos armoring detection bug - thanks to Andy Wendel
* change timeout for Tls check (was only 10ms) to 1s
3.0.0.0
* migrate from .net 3 to .net 4.5
* integrated PingCastleCloud project
* fix rule A-CertEnrollChannelBinding which was triggering even if CB is enabled
* fix test ldap signature on ldap and not ldaps
* fix a logic issue when testing for integrity in LDAP
* fix sorting and filtering issue
* collect exchange info and display it and sccm in the report
* migration from .net 3 to .net 4.5
* added the rule S-KerberosArmoring and S-KerberosArmoringDC
* fix visibility on DNS zone replicated on DC only (not the DomainDns zone)
* fix HTTP ConnectionTester for NTLM only websites (refusing Negotiate)
* changed A-WeakRSARootCert2 to be triggered in 2031 instead of 2030
* added the rule P-DisplaySpecifier to check for DisplaySpecifier abuse
* align S-ADRegistrationSchema with ANSSI rule
* added the rule S-FunctionalLevel1/3/4 to check the functional level of the domain / forest
* parallelize PKI checks for environments with several ADCS entries
* fix a bug in T-SIDHistoryDangerous which made it ineffective
* added the hidden option --doNotTestSMBv1 to not trigger SOC when testing for SMB v1
* adapt the rule S-ADRegistration in case there is no GPO settings SeMachineAccountPrivilege
* adjust the label of the rule A-WeakRSARootCert2 to clarify that certificate with 2048 bits module should expires before 2030
* fix a regression with server containing * pattern
* disabled --I-swear-I-paid-win7-support because extended support is not available anymore
* fixed P-AdminPwdTooOld and P-ProtectedUsers which were checking also disabled accounts
* fixed A-WSUS-SslProtocol incorrect LDAP reference in rule description
* license can be pushed using API but only the banner for the embedded license was shown leading to customer confusing. Added a message to avoid that
* added the rule S-OldNtlm to hunt DC accepting NTLMv1 and used in coerced authenthication attacks
2.11.0.0
* fix: the rule S-OS-W10 was triggering even if there is no enabled Windows 10
* added the rules A-DCLdapSign and A-DCLdapsChannelBinding
* added the rules A-CertEnrollHttp and A-CertEnrollChannelBinding
* if an api key is provided, test it at the beginning of the processing (instead of doing at the end)
* enable custom rules processing for Pro / Enterprise versions
* added the rule T-AlgsAES to check for trust algorithms
* fix a problem when Users container has been removed
* fix P-AdminLogin when administrator login date is in the future (can happen when reloading backups)
* fix perform PKI tests only if the PKI is installed
* reworked the rule set to be more performant
* fix a problem when a OU used for PKI has been manually removed
* fix S-PwdNeverExpires - HealthMailbox* accounts with a password change within 40 days are excluded
* fix S-Inactive - change 6*31 days to 6 months. If a password change occured within 6 months (no login) the password is now considered as active
* added for auditor licenses, a feature to have a dashboard for RC4 to AES migration in Kerberos
* change the powershell command to check for S-DesEnabled
* added SCCM listing
* added the possibility to specify honeypot accounts by a DN (the setting is "distinguishedName")
* migrate to bootstrap 5, popperjs 2 and bootstrap-table (instead of datatables)
* added table export for licensed users
* fix rules checking for external path location (server.domain.fqdn) when uri is based on IP instead of FQDN
* fix the computation of constrained delegation with protocol transition (this impacts rule P-DelegationDCt2a4d)
* added a note for P-AdminLogin about S4u2Self
* added the rule A-CertTempNoSecurity
* changed A-CertTempAnyone and other rules so the program considers that the group Domain Computers is like Everyone if ms-DS-MachineAccountQuota is non zero
* added the rule A-DC-WebClient to hunt for WebClient service enabled on domain controllers
* modifed P-Delegated to add HoneyPot account checks
* fix change the evaluation order for Embedded systems (vs Winows 7) when reducing OS name into a short description
* modify delegations gathering: filter entreprise domain controllers and check base of configuration partition
2.10.1.1
* for guest enablement, check if useraccountcontrol is not zero (can be the case when checked on a DC)
* change maturity level for rule P-DNSAdmin, the score and the description
2.10.1.0
* fix more readable error message if the xml file is corrupted
* fix a bug in P-DNSDelegation to avoid false positive when the computer is in another language than english
* fix LTSC vs LTSB for older version of Windows 10
* reimplemented RPC calls to avoid AV false positive
* fix a bug in the ui if the export menu is cancelled
* added the rule A-HardenedPaths related to STIG V-63577 (MS15-011 and MS15-014)
* modify the report to hightlight in particular for delegations DCSync / AADConnect rights
* added "Add access check for current user in the share scanner"
* fix problem if there is a conflict replication when defining FSMO roles
* fix: Do not fail if the .config file has being modified with bugged honeypot data
* adding option --quota to limit the LDAP query speed
* add a warning if there is a misconfiguration in the schema
* added benchmark button
* fix a modelisation issue when a child domain cannot reach its forest root
* added the rule S-JavaSchema to check the presence of the RFC 2713 schema extension (java objects representation in LDAP)
* modified the rule S-PwdLastSet-45 and S-PwdLastSet-90 to be applicable only on server data (lot of false positive for user computers connected once in a while)
* added a section in the report to display certificate template delegations (excluded admins for clarity as other delegations)
* added the rules S-WSUS-NoPinning, S-WSUS-UserProxy, S-WSUS-HTTP, A-WSUS-SslProtocol for WSUS configuration
* modified the wording of the explanation of the rule P-ServiceDomainAdmin
* added a function in export to save in a file (and on screen) all changes that occurs in real time (modulo the replication time)
* fixed a typo in UnixPassword check which was clearing the data
* added azure ad configuration & AzureADConnect info in the report if found
* fixed S-DC-Inactive to not display an error about the AzureAD Kerberos account
* fixed a bug when reloading very old PingCastle reports
* added the rule A-DsHeuristicsDoNotVerifyUniqueness if the mitigation for CVE-2021-42282 has been disabled
* added the rule A-DsHeuristicsLDAPSecurity if the mitigation for CVE-2021-42291 has been disabled
* updated S-OS-W10 with new end of support dates
* added the rule S-OS-Win8 for Windows 8 / 8.1 which is out of regular support
* added the rule A-Guest to be sure the guest account is disabled
* added the rule A-DnsZoneAUCreateChild for level 4 hardening about dnszone
2.10.0.0
* change pre-win 2000 compabitility group to handle group rename
* added a setting to change the LDAP page size (to test when the AD corruption message is showing)
* update to bootstrap 4.6.0
* add the ability to see the rules for each level in the maturity report
* be more scoped when looking for sites GPO
* fix: replace "admins" string in code, because they were some strings unmatched (especially in P-Kerberoasting & P-ServiceDomainAdmin)
* fix S-PwdLastSet-45 S-PwdLastSet-90: the check was made against inactive computers instead of active ones
* added the rule A-DnsZoneTransfert which checks for DNS Zone Transfers
* added the rule A-LAPS-Joined-Computers which checks for manually joined computers - the owner of the computer objects see the LAPS password - thanks to Andy Wendel
* fix P-AdminNum for a better wording if it matches
* fix unixpassword LDAP search query for optimization (looks only on active user account)
* added the MS FAQ for Krbtgt reset in the A-Krbtgt rule links
* fix a non timeout issue when SSL connection are "suspensed" by a network device
* fix when using a custom identity, forward the impersonation token to all threads launched by the application
* added the rule A-CertTempAgent, A-CertTempAnyPurpose, A-CertTempAnyone, A-CertTempCustomSubject for certificate template abuse
* added Mitre Att&ck mapping & reports
* added the rule A-PreWin2000AuthenticatedUsers for information for the printnightmare problem
* added a detail by OS (Windows 10 edition / Windows 2008 R2)
* added the rule S-OS-W10 for Windows 10 non supported versions
* added details for DC certificate
* added DC certificates to A-CertROCA and A-WeakRSARootCert
* change the algorithm which finds the DnsAdmin group to be more flexible for translation and moves
* fix password authentication that was not working in some cases
* for honeypot accounts, change P-Kerberoasting to take it into account
* fix NetCease check to be case insensitive (thanks to @ralish)
* added an option for scanners to use a file as input instead of querying the AD
* added an export section to export users or computers (a scanner was already present and moved to this section)
* added the rule S-ADRegistrationSchema for schema class check à la CVE-2021-34470
* fixed P-AdminLogin that wasn't effective (this check was active only during the first 35 days of the domain)
* defer DataTable initialization (css for table) to avoid any problem in table stop javascript
* fix a bug when msDS-GroupManagedServiceAccount and msDS-ManagedServiceAccount were not counted as group member
* fix a problem in P-ServiceDomainAdmin to look individually at each password change and to set them as exception if needed
* change the rule detail rendering to avoid issues with strange items
* added the option --datefile
2.9.2.0
* modify P-UnkownDelegation to not be triggered with SID having their RID < 1000 (RID is the last number)
* modify A-AuditDC to not request simple audit policies anymore and removing the need for Other Account Logon Events reserved for future use
* modify S-PwdNeverExpires description to take in account linux servers which do not change their machine password
* modify P-ProtectedUsers to change the limit from 1 to 2
* added exception for AzureADKerberos in S-DCRegistration and AzureADKerberos
* Fix user scanner which where filtering only admincount users
* Fix authentication by user/password when the user was submitted as UPN
* Fix the program was resilient for control characters when serializing to xml, but not to non existing character
* Fix a problem when duplicated SID (\0CNF:) were used in permissions
* Add gpo applied order property (aka gpo precedence)
* rewrote the way subnets are collect to avoid the 1500 items limit (MS-ADTS 3.1.1.3.4.6 aka MaxValRange)
* Add in the report lDAPIPDenyList (IP denied for LDAP communication) if any found
* Fix: the GPO full info was not displayed in the report in the section Obfuscated Passwords
* Add linked GPO to site when browsing GPO info
* Added the new service for the remote scanner based on github PR
* Be more resilient if the security of DC objects cannot be examined
* Fix documentation links
* Add scanner computer version
* Added a comment in PingCastle.exe.config about uploading reports using the API with TLS 1.2 and next vs testing old protocols
* Fix some gallery.technet.microsoft.com link (other need to be fixed)
2.9.1.0
* added options for the scanner to select only dc, servers, workstations
* added the privilege SeManageVolumePrivilege to the list of dangerous privileges
* when a rule crashes, continue the execution but with a message asking the user to call the support
* fix a problem when RODC Denied Users are from a domain PingCastle can't access
* group SID History data was not analyzed regarding its creation date
* added a zerologon scanner (not in healthcheck because it will trigger IDS & AV in the future
* fix a bug when a SID being duplicated is used as member of a group
* Do not raise an alert when the account sensitive checkbox is not checked but the user is in protected users. Thanks Fanaw.
* Do not raise an alert if there is only one user not in protected users as this is a regular admin practice. Thanks Oliver-André
* Add the possibility to have DC in the honeyPot account. Typically used for riverbed devices for example
* specify in the rule A-NTFRSOnSysvol that NTFRS is supported up to Windows 2022 at this time - also match only if there is a DC < win 2019
* add new definition of the ESET AV for AV scanner module
2.9.0.0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Information: the 3.0 version of PingCastle will run by default on .net 4 instead of .net 2 (this may break the compatibiliy with Windows 2000)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* when building the map, the program was taking the first part of the FQDN as a shortname. Now it uses the Netbios name if it is available
* change tooltip description for the trust section of the healthcheck report
* added the rule S-DC-2008 and S-OS-2008 to check for obsolete 2008 servers which are no longer supported
* Fix: A-AuditDC - GPO at the root level was ignored and OU specific too. Now the GPO is checked per DC.
* Fix: A-AuditDC - Reword the rule A-AuditDC for better understanding
* change A-Krbtgt to be triggered only after 1 year (previously 40 days)
* Fix: In some scanners, the comma was used instead of a tab
* Fix: Avoid a crash if the security descriptor of the msi files cannot be retrieved
* Fix: better switch in case of failure of ADWS to LDAP
* Added the rule A-CertROCA to check for recoverable public key (ROCA vulnerability) [ANSSI: vuln1_certificates_vuln]
* Added the rule A-CertWeakDSA to check for DSA key use in certificate used for digital signature [ANSSI: vuln1_certificates_vuln]
* Added the rule A-CertWeakRsaComponent to check for low RSA exponent
* Added the rule A-WeakRSARootCert2 to check for rsa module length between 1024 & 2048 (friend of A-WeakRSARootCert)
* Added the rule A-DsHeuristicsAllowAnonNSPI to check if the heuristics fAllowAnonNSPI is enabled
* Added the rule P-RODCAllowedGroup to check for the Allowed RODC Password Replication Group group
* Added the rule P-RODCDeniedGroup to check for the Denied RODC Password Replication Group group
* Added the rule A-NTFRSOnSysvol to check the usage of the old protocol NTFRS on SYSVOL replication
* Added the rules A-DnsZoneUpdate1 and A-DnsZoneUpdate2 about DNS unsecure updates
* Added the rule S-DC-Inactive to check for inactive DC
* Added the rule S-PwdLastSet-DC to check for regular password change on DC
* Added the rule T-SIDHistoryDangerous to check for SID lower than 1000 or well known in SIDHistory
* Added the rule S-PwdNeverExpires to check for accounts with never expiring passwords
* Added the rule S-DCRegistration to check if DC are well registered (aka detect fake DC)
* Added the rule P-DelegationDCt2a4d P-DelegationDCa2d2 and P-DelegationDCsourcedeleg for DC delegation analysis
* Added the rule A-PreWin2000Other to be the companion of A-PreWin2000Anonymous
* Added the rule P-ProtectedUsers to check if all privileged accounts are member of the protected users group
* Added the rule S-PwdLastSet-45 and S-PwdLastSet-90 for workstations without the automatic password change disabled
* Added the rule P-AdminPwdTooOld to check for admin passwords older than 3 years
* Added the rule S-NoPreAuthAdmin, which is a split of the rule S-NoPreAuth, to match admins
* Added the rule P-DNSAdmin to check for members of the DNS Admins group
* Added the rule P-RODCRevealOnDemand P-RODCNeverReveal and P-RODCAdminRevealed for RODC checks
* Added the rule P-RODCSYSVOLWrite to check for RODC write access to the SYSVOL volume
* Added the rule A-NoNetSessionHardening to check if the NetCease mitigation has been applied
* Added the rule A-UnixPwd to check for attributes known to contains password
* Added the rule T-AzureADSSO to check for password rotation with AzureAD SSO (AZUREADSSOACC)
* Added the rule S-OS-Win7 to check for Windows 7. PingCastle is looking for support purchased from MS.
* Change the rule reports to include ANSSI rules
* Change the threshold of S-Inactive from 15 to 25% to match user_accounts_dormant rule
* Change the category of P-ControlPathIndirectMany and P-ControlPathIndirectEveryone to the new Control Path category
* Change the rule P-AdminNum to add a new limit of 50 admins
* Change the cagory of the rule P-DelegationEveryone, P-PrivilegeEveryone, P-TrustedCredManAccessPrivilege, P-UnconstrainedDelegation, P-UnkownDelegation
* Change the rule A-MinPwdLen to check only GPO applied to something
* Change the way GPO are evaluated in rules: if the GPO is disabled or not applied, no anomaly is found
* Change the rule A-MembershipEveryone to not trigger an alert when Authenticated users is a member of BUILTIN\Users
* Adding features exclusive for our customers, such as maturity evaluation, and charts
* Added the scanner export_user for a quick user analysis
* Added pagination and search in healthcheck report
* For AdminSDHolder users check, added the date in the report (written as 'Event') when the attribute admincount has been set (via replication metadata)
* Auditor & Enterprise licensee can now brand the report by using Appsettings/BrandLogo for base64 logo and Appsettings/BrandCss & BrandJs for raw Css & Js to inject
* make visible the rule ID in the healthcheck report in the rule description
* Removed BSI reference as the document is not online anymore
* Added ms-mcs-admpwd read check in delegations
* Fix members of admin groups outside the AD were not visible in the report
* Add some VPAT / RGAA V4 compability
* update the rule P-DNSDelegation to informative as it was assigned the identifier CVE-2021-40469 and fixed by a patch in October 2021
2.8.0.0
* reworked the way third party components are included in reports for better html auditing (aka Content Security Policy)
* added the rule P-DNSDelegation to check delegation on the MS DNS server which can be used to take control of the domain
* show healthcheck rule detail in a table if possible
* remove the "network configuration operators" group from privileged groups as it has no impact on the domain by itself
* split the allow login / deny login settings from privileges and from DC to another dedicated section
* added the rule P-TrustedCredManAccessPrivilege to match STIG rule V-63843
* added Auto logon info if found in the GPO passwords section
* added the rule P-LogonDenied to check for tiers isolation. Only in application if more than 200 users & 200 computers
* be resilient if a new rule category is added in the future so future reports can be read by this PingCastle version
* fix a problem when control character is found in data (loginscript for example) and cannot be serialized in xml
* added an experimental bluekeep scanner. To avoid AV detection, the code is commented. Decomment and recompile to use it.
* added SeSecurityPrivilege (access to the security event log) in the list of privileges to monitor.
* merged the permission report and the healthcheck report
* added the rule P-ControlPathIndirectEveryone and P-ControlPathIndirectMany for control path analysis
* added the rule A-AuditDC for audit policy
* update to bootstrap 4.4.1
* change the algorithm to locate the server. Faster and compatible with kerberos only domains.
* added the rule A-DCLdapsProtocol looking for SSLv2 and SSLv3 active on DC
* added the rule A-AuditPowershell to check for powershell auditing (informative)
* added the rule S-OS-Vista to check for Vista presence (which is not supported anymore). Windows 7 & 2008 added after extended support stops.
* added honey pot setting to avoid honey pot accounts to be in error
* added a new view for the DC certificates
2.7.1.0
* update the TGT delegation algorithm after the July update (new flag CROSS_ORGANIZATION_ENABLE_TGT_DELEGATION)
2.7.0.0
* added a network map inspired from hilbert curves
* fix a bug when doing a map with very complicated data
* adjust the krbtgt last password change when a replication set it to "not set"
* added the rule P-ExchangePrivEsc to check for Exchange misconfiguration at install
* added the rule P-LoginDCEveryone to check if everybody can logon to a DC
* added the rule P-RecycleBin to check for the Recycle Bin feature (at forest level)
* added the rule P-DsHeuristicsAdminSDExMask to check if AdminSDHolder has been disabled for some critical groups
* added the rule P-DsHeuristicsDoListObject to check if the feature DoListObject has been enabled (informative only)
* added the rule P-RecoveryModeUnprotected to check if any user can go into recovery mode without being admin
* added the rule A-LDAPSigningDisabled to check if the LDAP signing mode has been set to None
* added the rule A-DCRefuseComputerPwdChange to check that Domain Controllers don't deny the change of computers account password
* added the rule P-DelegationFileDeployed to check for deployed file via GPO (msi, file copied, ...)
* added the rule T-FileDeployedOutOfDomain to check for deployed file via GPO (msi, file copied, ...) from outside this domain
* added the rule A-NoGPOLLMNR which checks if LLMNR can be used to steal credentials
* added the rule T-TGTDelegation to check for TGT delegation on forest trusts
* added the rule P-Kerberoasting to check for keberoasting (SPN for admin account). A mitigation via a regular password change is allowed.
* update the score produced by the rule S-SMB-v1 from 1 to 10
* fix the scanner command line when targeting multiple computer (single and multiple were inverted)
* added the scanner antivirus
* added the scanner laps_bitlocker
* fix a bug in the graph report when multiple files were examinated in parallele
* add a transition msDS-AllowedToActOnBehalfOfOtherIdentity to the graph report
* fix a bug when computing msDS-Lockout* in PSO (time were divided by 5)
* fix rule A-LMHashAuthorized which were not triggering due to a bug and improved its documentation
* improve the healtcheck report and added a comment to locate the NTLMstore (certificate section)
* fix GPP Password for scheduled task - only 1 out of 4 kind of scheduled tasks were checked
* fix support for missing well known sid S-1-5-32-545 for rules
* fix a tedious bug when using LDAP and when requesting the property Objectclass - it is not available in the result using the native API
* fix a tedious bug when reading SMB2 data (input was inverted with output) which gave inaccurate results regarding signature
* PingCastle does now have a default license and can be run without the .config file
In this case, the compatibility shims are removed and forced under .Net 2 engine. To run under .Net 4, a recompile is needed.
2.6.0.0
* fix a problem for early version of LDAP undetected : in ms-*-AdmPwd, MCS was replaced by company name
* integrate many hidden functions into the "scanner mode" to be more easy to use
* removing the ms17-010 scanner from the source because antivirus are so stupid that they cannot make the difference between a vulnerability scanner & an exploitation kit
* added many scanners (aclscanner, ...)
* breaking change: admin accounts where checks for lock, smart card, ... even if the account is disabled. This is not the case anymore.
* tuned S-DC-SubnetMissing to avoid dealing with local ipv6 loopback address (::1)
* added the rule A-DC-Spooler and the spooler scanner to check for print spooler accessible remotely (used to collect computer credentials via unconstrained delegation)
* added the rule A-NotEnoughDC to check domains have at least 2 DC
* added the rule P-UnconstrainedDelegation to check for unconstrained delegation in kerberos (the data was already reported)
* in relation with P-UnconstrainedDelegation, change the way accounts "trusted for delegation" are selected. Change useraccountcontrol flag from 0x01000000 to 0x80000
* fix in healthcheck report: the reversible password detail section was only displayed if there was unconstrained delegation in the domain
* added the rule P-ExchangeAdminSDHolder to check for the Exchange modification of the AdminSDHolder object
* added the rule P-DelegationKeyAdmin to check for boggus Windows 2016 installation
* added the (informative) rule P-OperatorsEmpty to check the recommendation to have the account and server operators empty
* added the rule P-DelegationGPOData to check for too large permissions granted to GPO items
* added the rule P-PrivilegeEveryone to check for too large GPO assigned privileges
* adjust the Domain Controller selection for tests (aka: number of DC in a domain & checks performed on them)
* remove the --split-OU technique which was not used and add an automatic protocol fallback in case of failure (ADWS then LDAP for example)
* allow the use of LDAPS via the --port 636 command switch
* fix a couple of problem in PingCastleReporting (incorrect numbers, wrong label, inability to load some configuration)
* Migrate from Bootstrap 3 to Bootstrap 4
* fix some mono incompatibility
* fix crash when analysing gpo where scheduled task password is being stored
* fix A-NoServicePolicy which was triggered when i shouldn't and vice versa
* add support for Windows 2019
* fix DnsAdminGroup not found when moved in another OU
* fix rootDse listing when using credential & required bind
* extended the rule S-DesEnabled to check also computers account
* add to the report a link in rules to sections of the report to get more insight
2.5.2.0
* fix a problem when a dc has been removed but not its computer account but its dns record
* fix a problem when for the rule A-SmartCardRequired which was triggered each time a "smart card required" account was found
* fix: the decryption process was broken as successful descryption always triggered a failure
* fix S-DC-SubnetMissing when subnet are duplicated (contains CNF and generated from replication problem)
* fix NT4 mismatch if the year was not present and include the word "dataceNTer"
* add a check for "smart card required" for administrator accounts
* reworked the menu to be more interactive
2.5.0.0
* rewrote all rules description / rationale / etc
* added start and end date for exception
* breaking: change the date at which the exception / migration is evaluated from current date to report generation date
* new rules: A-SMB2SignatureNotEnabled A-SMB2SignatureNotRequired S-DC-SubnetMissing P-DelegationLoginScript
* added an experimental scanner for replication usn check
* allows DNS Admin group to be moved to another OU than CN=Users (as a reminder, the group is selected based on its description)
* fix logon logoff script label inverted
* allow users to be in the guest group for their primary group (was Domain Users only before)
* record more details about the operating systems (and adapt the reload of previous reports)
* the rule A-LAPS-Not-Installed, previously informative, now scores 15 points. If the local admin password is set at install, the rule should be put in exception.
* many adaptation to be used with Ping Castle Enterprise
2.4.3.1
* add schemainfo checks
* rework the way replication metadata is collected
2.4.3.0
* fix compatibility problem with windows 2000
* fix bugs relative to --no-enum-limit, adminsdholder check, sidhistory without whencreated, reloading without threat model
* add check related to replication metadata (dsasignature, KrbtgtLastVersion)
* minor changes in the powerpoint reporting (more detail on the reporting frequency)
* new rule for mandatory AD backup (microsoft procedure)
* minor change in reporting (alphabetically order for risk model, ...)
2.4.2.0
* risk model in the healthcheck report
* checking for LAPS install
* scanner for ms17-010 (not in healthcheck)
* small report improvements
* small bug fixing (ex: if AdminSDHolder denied to authentiated users)
2.4.1.1
* better Samba compatibility (linux DC)
* added smb check functionalities & scanner for workstation
* added support for PSO
* rewrote "scanner" functionalities to be more user friendly
* adding dnsadmins as privileged group following https://medium.com/@esnesenon/feature-not-bug-dnsadmin-to-dc-compromise-in-one-line-a0f779b8dc83
2.4.1.0
* modified the healthcheck report and consolidation to be responsive
* added in PingCastleReporting the risk map (link between BU & entities)
* added in PingCastleReporting the Rules report (matched and explanation) and removed --export-hc-rule in PingCastle
* reworked the report to add a DC view (last startup - for patches, creation date, if presence of null session)
* add an alert for MS14-068 via startuptime
* changed P-AdminNum to be less strict (especially for forest root) and A-Krbtgt to be less agressive
* improve the explanation of some rules
* various bug fixes in PingCastleReporting
2.4.0.1
* modified some KPI in PingCastleReporting overview
* added the flag --smtptls
* modified the score computation algorithm to take part of migration information in the past (showing evolution of score)
* modify the bad primary group count by excluding members of guests group
2.4.0.0
* program rebranded to PingCastle
* added PingCastleReporting for management reports (powerpoint, history, ...)
* reworked the advanced module
- added the live mode for advanced report
* handle many domains with the same FQDN (but different sid)
* rewrote the "Unknown domain" algorithm in xls which is reusing the graph made at consolidation
* add option to set an exception for all domains (set domain as "*" in the xls file)
* add all --explore options
* rules A-LoginScript, P-Disabled and S-PwdNeverExpires disabled
* added the rule P-DCOwner to check for DC ownership
* lowering the points to 0 for P-ServiceDomainAdmin if the passwords are changed regulary
* add netbios / sid information for forest of domains found indirectly (for matching existing domains)
* modify the simple node graph to add intermediate score and BU/Entity information when available
* added mail notification option if mail is read & smtp credential on command line
* added "details" for rules which are difficult to understand without specifics
* added the domain root for the delegation check
* disabled the check on dangerous permissions for migration sid history and unexpire password (too much false positives)
* added sidhistory information for groups to the sidhistory user information (to not forget to remove sidhistory for groups)
2.3.0.1 (cert-ist forum version)
* add the reachable mode (disabled by default, enabled by default if domain=* and used in interactive mode)
This mode scans for domains outside trusts. Discover new domains when run on trusted domains.
* Reworked the domain maps for visualization and inclusing of the reachable mode data.
* Add Netbios information in the trust information to be able to match some reachable mode data.
* Remove the requirement for ADWS. LDAP is used if ADWS is not available (LDAP is far more slower than ADWS)
2.2.1.5
fix a problem when a distinguished name of an admin contain LDAP request char
2.2.1.4
fix a problem in the consolidation
fix a problem if a login script is invalid and cannot be parsed as a url
2.2.1.3
bug fixing (null session enabled on forest side, PreWin2000 group empty)
Simplify full graph with bidirectional nodes & red color for unprotected trusts
add a simplified graph