You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+295Lines changed: 295 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,6 +65,13 @@ PowerShell-Scripts/
65
65
│ └── CheckWritableAttributesADUsers.py (Python, PowerShell version is below)
66
66
│ └── CheckWritableAttributesADUsers.ps1 (is the PowerShell equivalent of Python file above)
67
67
│ └── Test-ADDnsLowPrivWrite.ps1
68
+
69
+
## ── 📂 ├── MSADPT/
70
+
│ └── MSADPT_start2.ps1
71
+
│ └── MSADPT_enumerate_dc2.ps1
72
+
│ └── MSADPT_enumerate_shares2.ps1
73
+
│ └── MSADPT_scan_network2.ps1
74
+
│ └── MMSADPT_audit_adcs_esc1_esc16.ps1
68
75
└── README.md
69
76
```
70
77
@@ -640,3 +647,291 @@ NRPTUsage: run PowerShell as Administrator, then execute .\rmm_nrpt_block.ps1 to
640
647
Removal: run .\rmm_nrpt_block.ps1 -Remove to delete only the NRPT rules created by this script.
641
648
Chosen over hosts file because hosts only supports exact hostnames, while NRPT supports broader namespace/suffix blocking for local testing.
642
649
650
+
## ── 📂 Section: MSADPT ──
651
+
---
652
+
653
+
### `MSADPT_start2.ps1`
654
+
This script requires all input to be provided through command-line parameters.
655
+
656
+
It uses the supplied domain credential, target domain FQDN, and bootstrap Active Directory server to collect environment, Domain Controller, and ADCS discovery information.
657
+
658
+
The results are written to CSV output files.
659
+
660
+
---
661
+
662
+
## Mandatory Parameter Summary
663
+
664
+
| Parameter | Mandatory | Type | Description |
665
+
|---|---:|---|---|
666
+
|`-Credential`| Yes |`PSCredential`| Domain credential used for Active Directory enumeration operations. Typically supplied using `(Get-Credential)`. |
667
+
|`-DomainFQDN`| Yes |`string`| Fully qualified domain name to enumerate. Example: `foo.bar`. |
668
+
|`-AdServer`| Yes |`string`| Bootstrap Domain Controller or ADWS-capable server used to perform the initial Active Directory queries. Example: `DC1.foo.bar`. |
669
+
|`-EnvironmentOutputCsvPath`| Yes |`string`| CSV output path for environment details collected by the script. |
This script enumerates details from Domain Controllers that were previously discovered by the MSADPT discovery/start script.
712
+
713
+
It reads a Domain Controller CSV file as input, connects to Active Directory using explicit credentials, targets an explicitly supplied ADWS-capable Domain Controller, and writes per-DC enumeration output to a specified output directory.
714
+
715
+
The script does not assume that the host running it is domain joined.
716
+
717
+
---
718
+
719
+
## Mandatory Parameter Summary
720
+
721
+
| Parameter | Mandatory | Type | Description |
722
+
|---|---:|---|---|
723
+
|`-InputDcCsvPath`| Yes |`string`| Path to the input CSV file containing discovered Domain Controllers. The file must exist before the script runs. |
724
+
|`-OutputBaseDir`| Yes |`string`| Base directory where per-DC output folders and CSV files will be written. |
725
+
|`-Credential`| Yes |`PSCredential`| Domain credential used for all Active Directory enumeration operations. Typically supplied using `(Get-Credential)`. |
726
+
|`-DomainFQDN`| Yes |`string`| Fully qualified domain name to enumerate. Example: `foo.bar`. |
727
+
|`-AdServer`| Yes |`string`| Domain Controller or ADWS-capable server used for all Active Directory queries. Example: `DC1.foo.bar`. |
728
+
729
+
---
730
+
731
+
## Input Files and Input Values
732
+
733
+
> These are files or runtime values required by the script.
This script enumerates network shares on previously discovered Domain Controllers and prepares per-DC output locations for share enumeration results.
767
+
768
+
It consumes a Domain Controller CSV file generated by a previous MSADPT discovery script, uses explicit domain credentials for operations, and writes output under a specified base directory.
769
+
770
+
The script does not assume that the host running it is domain joined.
771
+
772
+
---
773
+
774
+
## Mandatory Parameter Summary
775
+
776
+
| Parameter | Mandatory | Type | Description |
777
+
|---|---:|---|---|
778
+
|`-InputDcCsvPath`| Yes |`string`| Path to the input CSV file containing discovered Domain Controllers. The file must exist before the script runs. |
779
+
|`-OutputBaseDir`| Yes |`string`| Base output directory where per-DC share enumeration output folders and files will be written. |
780
+
|`-Credential`| Yes |`PSCredential`| Domain credential used for Active Directory and share enumeration operations. Typically supplied using `(Get-Credential)`. |
781
+
782
+
---
783
+
784
+
## Input Files and Input Values
785
+
786
+
> These are files or runtime values required by the script.
This script performs explicit network discovery and service checks against one or more operator-supplied IPv4 target ranges.
816
+
817
+
It does not automatically derive local network ranges, does not assume the host is domain joined, and does not rely on a configuration file or session-scoped credentials.
818
+
819
+
The script can optionally attempt to use `nmap` if it is available in `PATH`, and can optionally perform SMB signing checks depending on the supplied parameter values.
820
+
821
+
---
822
+
823
+
## Mandatory Parameter Summary
824
+
825
+
| Parameter | Mandatory | Type | Description |
826
+
|---|---:|---|---|
827
+
|`-Credential`| Yes |`PSCredential`| Credential used for remote operations that require authentication. Typically supplied using `(Get-Credential)`. |
828
+
|`-NetworkRanges`| Yes |`string[]`| One or more explicit IPv4 target ranges to process. Supports CIDR ranges and start/end IP ranges. |
829
+
|`-CommonPorts`| Yes |`int[]`| One or more TCP ports to check. Ports must be between `1` and `65535`. |
830
+
|`-UseNmapIfAvailable`| Yes |`bool`| Indicates whether the script should attempt to use `nmap` if it is present in `PATH`. |
831
+
|`-CheckSMBSigning`| Yes |`bool`| Indicates whether SMB signing checks should be performed in the main scan logic. |
832
+
|`-OutputBaseDir`| Yes |`string`| Base directory for any per-run or raw output artifacts. |
This script performs a defensive, configuration-focused audit of an Active Directory Certificate Services (AD CS) deployment for likely exposure indicators associated with ESC1 through ESC16.
883
+
884
+
The script enumerates enterprise Certification Authorities, published certificate templates, PKI-related objects in the Configuration partition, template ACLs, selected PKI object ACLs, selected CA registry flags, selected Domain Controller certificate-mapping posture indicators, and web enrollment exposure indicators where possible.
885
+
886
+
The script does not exploit anything, request or forge certificates, or modify templates, ACLs, registry keys, or CA settings.
887
+
888
+
---
889
+
890
+
## Mandatory Parameter Summary
891
+
892
+
| Parameter | Mandatory | Type | Description |
893
+
|---|---:|---|---|
894
+
|`-OutputBaseDir`| Yes |`string`| Directory where CSV and log outputs are written. |
895
+
|`-IncludeUnpublishedTemplates`| Yes |`switch`| Controls whether all certificate templates in Active Directory are evaluated. When omitted behavior is not allowed because the parameter is mandatory. Use `-IncludeUnpublishedTemplates` to enable, or `-IncludeUnpublishedTemplates:$false` to disable. |
896
+
|`-SkipRemoteChecks`| Yes |`switch`| Controls whether best-effort remote registry and web endpoint checks against CA servers and Domain Controllers are skipped. Use `-SkipRemoteChecks` to skip remote checks, or `-SkipRemoteChecks:$false` to perform them. |
897
+
|`-DirectoryServer`| Yes |`string`| Domain Controller or directory server to use for Active Directory queries. Example: `DC1.foo.bar`. |
898
+
|`-Credential`| Yes |`PSCredential`| Credential used for Active Directory queries and remote checks. Typically supplied using `(Get-Credential)` or a credential variable. |
899
+
900
+
---
901
+
902
+
## Input Files and Input Values
903
+
904
+
> These are files, dependencies, switches, or runtime values required by the script.
905
+
906
+
| Parameter / Item | Classification | Example |
907
+
|---|---|---|
908
+
|`MSADPT.Helpers.psm1`| 🟧 **REQUIRED LOCAL DEPENDENCY FILE**|`.\MSADPT.Helpers.psm1`|
0 commit comments