Windows file-server audit — pure PowerShell, zero dependencies
Windows file-server credential audit (PowerShell, pure — zero dependencies). Version v2.3.1.
Scans SMB shares / directories for:
- Open-share ACL risks (broad-group allow patterns, severity via
Get-ShareAclSeverity) - Cleartext credentials (multilingual regex: EN/FR/ES/PT/DE/IT/NL/TR)
- Vault / key files (
.kdbx,.pem,.pfx,.jks— cert vs vault split) - Formula-injection-safe CSV (
Escape-CsvFieldwith'prefix for=+-@)
Output per target: 1_open_shares.csv, 2_credentials.csv, 3_vaultfiles.csv, summary.txt.
# Automated
.\scan_credentials_v6.ps1 -Mode automated -ScanPath C:\Data -ConfigPath .\config.json -OutputPath .\results
# Interactive (discover → pick → scan)
.\scan_credentials_v6.ps1 -Mode interactive -OutputPath .\resultsConfig (config.json): MaxFileSizeMB, MaxDepth, ThrottleMs, ExcludeSystemShares, ExcludeSystemPaths, ExcludeEncryptedFiles, ExcludeTempPaths, ScanDiscoveredShares, AdditionalScanPaths.
- Discovery / ACL (
Invoke-ShareDiscovery,Get-ShareAclSeverity) — share-level permissions - Content scan (
Invoke-FullScan,Get-EligibleFiles) — traverses excluding OS/system/temp/encrypted paths - Vault detection (
VaultExtSetvsCertExtSet) — keys vs certificates - Reporting / attribution (
Distribute-Phase1Results,Test-PathUnderTarget,Get-CsvFieldValue) - Hygiene / summary (
Write-SummaryFile, UTF-8, versioned output)
Shared source of truth: Get-ShareAclSeverity (line 487). See WIKI.md for full docs (Mermaid diagrams, data model, API reference).
WIKI.md— full codebase documentation (architecture, data flow, ER diagrams, development guide)backup/scan_credentials.ps1— original v2.1.0 baseline
23 findings addressed across ordered phases (Critical → High → Medium → Low), verified via Parser::ParseFile. All commits pushed to https://github.com/cromstel/gap07.git.
- No external dependencies; pure PowerShell
- No hardcoded secrets; config + env only
- CSV formula injection neutralized
- No mutation of shared state; immutable patterns (
Clone, spread)