PSGuerrilla.psd1

@{
    RootModule        = 'PSGuerrilla.psm1'
    ModuleVersion     = '2.17.0'
    GUID              = 'f7a3b2c1-4d5e-6f78-9a0b-1c2d3e4f5a6b'
    Author            = 'Jim Tyler, Microsoft MVP'
    CompanyName       = 'Jim Tyler'
    Copyright         = '(c) 2026 Jim Tyler. All rights reserved.'
    Description       = 'Security assessment, threat detection, and continuous monitoring module for Google Workspace, Active Directory, and Microsoft cloud environments. Includes Google Workspace compromise assessment with 23 detection signals, Active Directory reconnaissance (205 security checks across 15 categories including transitive Tier-0 attack-path analysis, NTLM-relay preconditions, Tier-0 hygiene, telemetry posture, and adversary tradecraft indicators), Entra ID / Azure / Intune / M365 infiltration audit (158 checks), and continuous monitoring across all four theaters (Entra ID sign-in risk, AD baseline monitoring, M365 audit log monitoring). Supports alerting via SendGrid, Mailgun, Twilio SMS, Teams, Slack, generic webhooks, PagerDuty, Pushover, Syslog (CEF/LEEF), and Windows Event Log.'
    PowerShellVersion = '7.0'
    FunctionsToExport = @(
        'Invoke-Recon'
        'Invoke-Surveillance'
        'Invoke-Watchtower'
        'Invoke-Wiretap'
        'Invoke-Lookout'
        'Get-DeadDrop'
        'Send-Signal'
        'Send-SignalSendGrid'
        'Send-SignalMailgun'
        'Send-SignalTwilio'
        'Send-SignalTeams'
        'Send-SignalSlack'
        'Send-SignalWebhook'
        'Send-SignalPagerDuty'
        'Send-SignalPushover'
        'Send-SignalSyslog'
        'Send-SignalEventLog'
        'Send-SignalDigest'
        'Set-Safehouse'
        'Test-Safehouse'
        'Get-Safehouse'
        'Register-Patrol'
        'Unregister-Patrol'
        'Get-Patrol'
        'Update-ThreatIntel'
        'Invoke-ReconDemo'
        'Invoke-Fortification'
        'Invoke-Reconnaissance'
        'Invoke-Infiltration'
        'Invoke-Campaign'
        'Get-GuerrillaScore'
        'Get-GuerrillaMaturity'
        'Get-QuickWins'
        'Get-ComplianceCrosswalk'
        'Export-BudgetJustification'
        'Export-ExecutiveSummary'
        'Export-TechnicalReport'
        'Export-RemediationPlaybook'
        'Export-RemediationScripts'
        'Set-RiskAcceptance'
        'Get-RiskAcceptance'
        'Get-TrendReport'
        'Export-ReportPdf'
        'Export-Dashboard'
        'Show-Guerrilla'
    )
    CmdletsToExport   = @()
    VariablesToExport  = @()
    AliasesToExport    = @(
        # PSRecon -> PSGuerrilla rename aliases
        'Invoke-GoogleRecon'
        'Get-ReconAlerts'
        'Send-ReconAlert'
        'Send-ReconAlertSendGrid'
        'Send-ReconAlertMailgun'
        'Send-ReconAlertTwilio'
        'Set-ReconConfig'
        'Get-ReconConfig'
        'Register-ReconScheduledTask'
        'Unregister-ReconScheduledTask'
        'Get-ReconScheduledTask'
        # Theater-disambiguating aliases
        'Invoke-WorkspaceRecon'
        'Invoke-ADRecon'
        'Invoke-CloudRecon'
    )
    FormatsToProcess   = @('PSGuerrilla.format.ps1xml')
    PrivateData = @{
        PSData = @{
            Tags       = @('GoogleWorkspace', 'ActiveDirectory', 'EntraID', 'AzureAD', 'Intune', 'M365', 'Security', 'CompromiseAssessment', 'IncidentResponse', 'ThreatDetection', 'ADSecurity', 'CloudSecurity', 'NTLMRelay', 'TierZero', 'GUI', 'WPF', 'PSGuerrilla')
            LicenseUri = 'https://creativecommons.org/licenses/by/4.0/'
            ProjectUri = 'https://guerrilla.army'
            ReleaseNotes = 'v2.17.0: Transitive attack-path engine (Resolve-AttackPathGraph + Get-ADTransitiveAttackPath): a directed privilege graph with a BFS shortest-path resolver that chains control + group-membership edges of arbitrary length to Tier-0, e.g. HelpDesk -WriteDacl-> CORP-Admins -MemberOf-> Domain Admins. Cycle-safe, depth-bounded, reuses the default-principal exclusion. New check ADPATH-002 Transitive Escalation Chains to Tier-0 (AttackPath category) reports multi-hop chains (single-hop stays ADPATH-001), non-privileged sources first. AD is now 205 checks (473 total). Chain depth is bounded by ACL coverage: todays six-critical-object collection is mostly one-hop so ADPATH-002 is typically clean now; the full-domain ACL collector (live-gated, next) unlocks deep low-priv-to-DA chains. Engine validated for arbitrary depth (verify-transitive-attackpath.ps1 13/13). The leapfrog half of the PingCastle plan; still to come: full-domain ACL collector, BloodHound/AzureHound export, cartography. v2.16.0: Export-ExecutiveSummary now surfaces the Security Maturity rating (via Get-GuerrillaMaturity): a color-coded Level X/5 badge in the stat row, plus a Security Maturity card with the overall level+label, the next-level blockers, and a per-category maturity table. This is the board-facing executive artifact that matches PingCastle maturity presentation and is stricter (worst-unmet-control anchors the rating). Report-only change, no new checks. Severity-color-coded L1 red to L5 green; empty-findings path safe. Remaining PingCastle items: report cartography (domain/trust/attack-path map) + full-domain transitive attack-path graph with BloodHound/AzureHound export. See CHANGELOG.md for v2.16.0 and earlier.'
        }
    }
}