Skip to content

javalogicuser/remy-AD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” Remy-AD Unified Active Directory Security Audit Tool

PowerShell License Platform AD

A comprehensive PowerShell-based Active Directory security assessment platform that combines multiple audit modules into a single, powerful tool for security professionals, system administrators, and penetration testers.

🌟 Key Features

πŸ”§ Comprehensive Assessment Modules

  • Core AD Enumeration: Users, groups, computers, organizational units
  • LDAP Domain Intelligence: Complete directory dump with JSON/HTML output
  • Security Analysis: Kerberoasting, ASREPRoast, delegation vulnerabilities
  • Kerberos Assessment: Ticket policies, encryption weaknesses
  • Certificate Services Audit: PKI vulnerabilities, ESC attack vectors
  • Trust Relationship Analysis: Domain/forest trusts, SID history abuse
  • Delegation Security Review: Unconstrained, constrained, and resource-based delegation
  • Compliance Reporting: Security baseline assessment and scoring

πŸ“Š Professional Reporting

  • Interactive HTML Dashboards: Executive and technical views
  • JSON Export: Machine-readable data (ldapdomaindump-style)
  • CSV Reports: Spreadsheet-compatible data exports
  • XML Reports: Structured technical documentation
  • Executive Summaries: Business-focused findings and recommendations

πŸ› οΈ Advanced Capabilities

  • Multi-threaded execution for improved performance
  • Automated remediation guides with PowerShell scripts
  • Risk scoring and prioritization framework
  • Interactive and non-interactive modes
  • Comprehensive logging and error handling
  • Evidence collection and documentation

πŸ“‹ Table of Contents

πŸš€ Installation

Option 1: Direct Download

# Download the script
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/javalogicuser/remy-AD/refs/heads/main/remy-ad-audit.ps1" -OutFile "remy-ad-audit.ps1"

# Set execution policy (if needed)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Option 2: Git Clone

git clone https://github.com/javalogicuser/remy-AD.git
cd remy-AD

Option 3: PowerShell Gallery (Coming Soon)

Install-Module -Name RemyADAudit

⚑ Quick Start

1. Basic Interactive Assessment

# Navigate to script directory
cd C:\path\to\remy-ad-audit

# Run with interactive prompts
.\remy-ad-audit.ps1

2. Quick Automated Assessment

# Run with minimal parameters
.\remy-ad-audit.ps1 -DomainController "dc01.corp.local" -DomainName "corp.local" -SkipPrompts

3. Security-Focused Assessment

# Focus on security vulnerabilities
.\remy-ad-audit.ps1 -DomainController "192.168.1.10" -DomainName "corp.local" -Modules @('security','kerberos','certificates') -SkipPrompts

πŸ“š Usage Examples

Example 1: Complete Domain Assessment

.\remy-ad-audit.ps1 `
    -DomainController "dc01.corp.local" `
    -DomainName "corp.local" `
    -Modules @('all') `
    -Format "All" `
    -IncludeRemediation `
    -SkipPrompts

Output: Complete security assessment with all modules, full reporting suite, and remediation guides.

Example 2: Kerberos Security Focus

.\remy-ad-audit.ps1 `
    -DomainController "10.0.0.100" `
    -DomainName "internal.company.com" `
    -Modules @('kerberos','security') `
    -Format "HTML" `
    -Threads 20 `
    -SkipPrompts

Output: Focused analysis on Kerberos vulnerabilities with HTML dashboard.

Example 3: Compliance Assessment

$creds = Get-Credential
.\remy-ad-audit.ps1 `
    -DomainController "dc.enterprise.local" `
    -DomainName "enterprise.local" `
    -Credential $creds `
    -Modules @('compliance','core') `
    -ComplianceReport `
    -OutputPath "C:\Audit_Reports" `
    -SkipPrompts

Output: Compliance-focused assessment with custom credentials and specified output location.

Example 4: Certificate Services Audit

.\remy-ad-audit.ps1 `
    -DomainController "pki-dc.corp.local" `
    -DomainName "corp.local" `
    -Modules @('certificates','security') `
    -Format "JSON" `
    -Verbose `
    -SkipPrompts

Output: PKI security assessment with detailed JSON output and verbose logging.

🎯 Detailed Walkthroughs

Walkthrough 1: First-Time Security Assessment

Step 1: Preparation

# Ensure you have appropriate permissions
whoami /groups | findstr "Domain Admins\|Enterprise Admins"

# Check PowerShell version
$PSVersionTable.PSVersion

Step 2: Basic Assessment

# Start with interactive mode for first run
.\remy-ad-audit.ps1

# Follow prompts:
# 🌐 Enter Domain Controller: dc01.corp.local
# 🏒 Enter Domain Name: corp.local
# πŸ” Use alternate credentials? N
# 🧩 Enter modules: all
# πŸ“ Output Directory: [Enter for default]

Step 3: Review Results

# HTML dashboard opens automatically
# Navigate to: $env:TEMP\AD_Audit_Reports_[timestamp]\Reports\HTML\AD_Audit_Dashboard.html

# Review executive summary
Get-Content "$env:TEMP\AD_Audit_Reports_*\Executive_Summary.txt"

Walkthrough 2: Advanced Security Assessment

Step 1: Environment Setup

# Create dedicated audit user (recommended)
New-ADUser -Name "AuditUser" -SamAccountName "audituser" -UserPrincipalName "audituser@corp.local"
Add-ADGroupMember -Identity "Domain Admins" -Members "audituser"

# Store credentials securely
$securePassword = Read-Host "Enter audit user password" -AsSecureString
$auditCreds = New-Object System.Management.Automation.PSCredential("corp\audituser", $securePassword)

Step 2: Comprehensive Audit

.\remy-ad-audit.ps1 `
    -DomainController "dc01.corp.local" `
    -DomainName "corp.local" `
    -Credential $auditCreds `
    -Modules @('core','security','kerberos','certificates','trusts','delegation','compliance') `
    -Format "All" `
    -OutputPath "C:\SecurityAudits\$(Get-Date -Format 'yyyyMMdd')" `
    -IncludeRemediation `
    -ComplianceReport `
    -Threads 15 `
    -Verbose `
    -SkipPrompts

Step 3: Analysis and Reporting

# Review high-risk findings
$jsonReport = Get-Content "C:\SecurityAudits\*\Reports\JSON\AD_Audit_Complete.json" | ConvertFrom-Json
$jsonReport.Statistics

# Generate custom report
$highRiskFindings = $jsonReport.Findings | Where-Object {$_.Risk -eq "High"}
$highRiskFindings | Export-Csv "C:\SecurityAudits\HighRisk_Summary.csv" -NoTypeInformation

Walkthrough 3: Penetration Testing Integration

Step 1: Reconnaissance Phase

# Start with LDAP domain dump
.\remy-ad-audit.ps1 `
    -DomainController "192.168.1.10" `
    -DomainName "target.local" `
    -Modules @('ldap','core') `
    -Format "JSON" `
    -OutputPath "C:\PenTest\Recon" `
    -SkipPrompts

Step 2: Vulnerability Analysis

# Focus on attack vectors
.\remy-ad-audit.ps1 `
    -DomainController "192.168.1.10" `
    -DomainName "target.local" `
    -Modules @('security','kerberos','delegation') `
    -Format "JSON" `
    -OutputPath "C:\PenTest\Vulns" `
    -SkipPrompts

Step 3: Evidence Collection

# Combine results for reporting
$reconData = Get-Content "C:\PenTest\Recon\Reports\JSON\*.json" | ConvertFrom-Json
$vulnData = Get-Content "C:\PenTest\Vulns\Reports\JSON\*.json" | ConvertFrom-Json

# Create evidence package
Compress-Archive -Path "C:\PenTest\*" -DestinationPath "C:\Evidence\AD_Assessment_$(Get-Date -Format 'yyyyMMdd').zip"

πŸ“– Module Documentation

Core Module (-Modules core)

Purpose: Fundamental AD enumeration and baseline data collection

Capabilities:

  • Domain information gathering
  • User account enumeration
  • Computer account discovery
  • Group membership analysis
  • Organizational unit structure
  • Domain controller identification

Output: User lists, computer inventories, group hierarchies

LDAP Module (-Modules ldap)

Purpose: Comprehensive directory intelligence gathering

Capabilities:

  • Complete LDAP tree enumeration
  • Schema analysis
  • Attribute extraction
  • Permission mapping
  • ldapdomaindump-style output

Output: JSON domain dump, LDAP tree structure, schema documentation

Security Module (-Modules security)

Purpose: Core security vulnerability identification

Capabilities:

  • Privileged account analysis
  • Password policy assessment
  • Account lockout configuration
  • Stale account identification
  • Permission auditing
  • Security group analysis

Output: Security findings, privileged user lists, policy compliance reports

Kerberos Module (-Modules kerberos)

Purpose: Kerberos protocol security assessment

Capabilities:

  • Kerberoastable account identification
  • ASREPRoast vulnerability detection
  • Encryption algorithm analysis
  • Ticket lifetime evaluation
  • SPN enumeration

Output: Kerberoastable users, weak encryption findings, ticket policy analysis

Certificates Module (-Modules certificates)

Purpose: PKI infrastructure security review

Capabilities:

  • Certificate Authority enumeration
  • Certificate template analysis
  • ESC vulnerability detection (ESC1-ESC8)
  • Certificate permission auditing
  • Expired certificate identification

Output: PKI security findings, vulnerable templates, certificate inventories

Trusts Module (-Modules trusts)

Purpose: Trust relationship security analysis

Capabilities:

  • Domain trust enumeration
  • Forest trust analysis
  • External trust review
  • SID history detection
  • Trust security assessment

Output: Trust relationship maps, SID history findings, trust security recommendations

Delegation Module (-Modules delegation)

Purpose: Delegation configuration security review

Capabilities:

  • Unconstrained delegation detection
  • Constrained delegation analysis
  • Resource-based constrained delegation review
  • Delegation vulnerability assessment

Output: Delegation findings, security recommendations, configuration analysis

Compliance Module (-Modules compliance)

Purpose: Security baseline and compliance assessment

Capabilities:

  • Password policy compliance
  • Account lockout policy review
  • Audit policy assessment
  • Security setting evaluation
  • Compliance scoring

Output: Compliance scorecards, policy gap analysis, remediation recommendations

πŸ“ Output Structure

AD_Audit_Reports_YYYYMMDD_HHMMSS/
β”œβ”€β”€ πŸ“Š Reports/
β”‚   β”œβ”€β”€ 🌐 HTML/
β”‚   β”‚   β”œβ”€β”€ AD_Audit_Dashboard.html          # Interactive security dashboard
β”‚   β”‚   β”œβ”€β”€ Executive_Summary.html           # High-level findings
β”‚   β”‚   β”œβ”€β”€ Technical_Details.html           # Detailed technical analysis
β”‚   β”‚   └── Compliance_Report.html           # Compliance assessment
β”‚   β”œβ”€β”€ πŸ“„ JSON/
β”‚   β”‚   β”œβ”€β”€ AD_Audit_Complete.json           # Complete audit data
β”‚   β”‚   β”œβ”€β”€ ldapdomaindump_style.json        # LDAP domain dump
β”‚   β”‚   β”œβ”€β”€ Security_Findings.json           # Security vulnerabilities
β”‚   β”‚   └── Compliance_Results.json          # Compliance assessment
β”‚   β”œβ”€β”€ πŸ“ˆ CSV/
β”‚   β”‚   β”œβ”€β”€ Users.csv                        # User account data
β”‚   β”‚   β”œβ”€β”€ Computers.csv                    # Computer account data
β”‚   β”‚   β”œβ”€β”€ Groups.csv                       # Group information
β”‚   β”‚   β”œβ”€β”€ Security_Issues.csv              # Security findings
β”‚   β”‚   └── Kerberoastable_Users.csv         # Kerberoastable accounts
β”‚   └── πŸ“‹ XML/
β”‚       └── AD_Audit_Report.xml              # Structured XML report
β”œβ”€β”€ πŸ’Ύ Data/
β”‚   β”œβ”€β”€ πŸ”§ Core/
β”‚   β”‚   β”œβ”€β”€ domain_info.json                 # Domain metadata
β”‚   β”‚   β”œβ”€β”€ users_raw.json                   # Raw user data
β”‚   β”‚   └── computers_raw.json               # Raw computer data
β”‚   β”œβ”€β”€ πŸ›‘οΈ Security/
β”‚   β”‚   β”œβ”€β”€ vulnerabilities.json             # Security vulnerabilities
β”‚   β”‚   β”œβ”€β”€ privileged_users.json            # Privileged accounts
β”‚   β”‚   └── security_policies.json           # Security configuration
β”‚   β”œβ”€β”€ 🎫 Kerberos/
β”‚   β”‚   β”œβ”€β”€ kerberoastable.json              # Kerberoastable accounts
β”‚   β”‚   β”œβ”€β”€ asreproastable.json              # ASREPRoastable accounts
β”‚   β”‚   └── kerberos_policy.json             # Kerberos settings
β”‚   β”œβ”€β”€ πŸ“œ Certificates/
β”‚   β”‚   β”œβ”€β”€ certificate_authorities.json     # CA information
β”‚   β”‚   β”œβ”€β”€ certificate_templates.json       # Template analysis
β”‚   β”‚   └── esc_vulnerabilities.json         # ESC findings
β”‚   └── 🀝 Trusts/
β”‚       β”œβ”€β”€ domain_trusts.json               # Trust relationships
β”‚       └── sid_history.json                 # SID history findings
β”œβ”€β”€ πŸ› οΈ Remediation/
β”‚   β”œβ”€β”€ πŸ“œ Scripts/
β”‚   β”‚   β”œβ”€β”€ AD_Security_Remediation.ps1      # Automated fixes
β”‚   β”‚   β”œβ”€β”€ Disable_Inactive_Users.ps1       # User cleanup
β”‚   β”‚   β”œβ”€β”€ Fix_Kerberos_Issues.ps1          # Kerberos hardening
β”‚   β”‚   └── Certificate_Cleanup.ps1          # PKI security fixes
β”‚   └── πŸ“– Guides/
β”‚       β”œβ”€β”€ Security_Remediation_Guide.md    # Step-by-step fixes
β”‚       β”œβ”€β”€ Kerberos_Hardening_Guide.md      # Kerberos security
β”‚       β”œβ”€β”€ PKI_Security_Guide.md            # Certificate services
β”‚       └── Compliance_Implementation.md     # Compliance guidance
β”œβ”€β”€ πŸ” Evidence/
β”‚   β”œβ”€β”€ πŸ“Έ Screenshots/                      # Visual evidence
β”‚   β”œβ”€β”€ πŸ“ Logs/
β”‚   β”‚   β”œβ”€β”€ audit.log                        # Detailed audit log
β”‚   β”‚   β”œβ”€β”€ errors.log                       # Error tracking
β”‚   β”‚   └── performance.log                  # Performance metrics
β”‚   └── πŸ—‚οΈ Archives/
β”‚       └── raw_data_backup.zip              # Complete data backup
β”œβ”€β”€ πŸ“‹ Executive_Summary.txt                 # Business summary
β”œβ”€β”€ πŸ”§ Configuration.json                    # Audit configuration
└── πŸ“Š Statistics.json                       # Audit statistics

βš™οΈ Prerequisites

System Requirements

  • Operating System: Windows 10/11, Windows Server 2016+
  • PowerShell: Version 5.1 or higher
  • Memory: Minimum 4GB RAM (8GB+ recommended for large environments)
  • Disk Space: 1GB+ free space for reports and logs
  • Network: Access to domain controllers on ports 389 (LDAP) and 636 (LDAPS)

Permissions Required

  • Domain User: Minimum for basic enumeration
  • Domain Admin: Recommended for comprehensive assessment
  • Enterprise Admin: Required for forest-level analysis
  • Local Admin: For advanced certificate and delegation analysis

Optional Components

  • Active Directory PowerShell Module: Enhanced functionality
  • RSAT Tools: Additional administrative capabilities
  • Certificate Services Tools: PKI analysis features

PowerShell Modules (Auto-detected)

# Check for required modules
Get-Module -ListAvailable ActiveDirectory
Get-WindowsFeature -Name RSAT-AD-PowerShell

πŸ”’ Security Considerations

Authentication Security

  • Use dedicated audit accounts with minimal required privileges
  • Implement service accounts for automated assessments
  • Rotate credentials regularly after assessments
  • Log all audit activities for compliance tracking

Data Protection

  • Encrypt output files containing sensitive information
  • Secure transfer methods for audit reports
  • Implement data retention policies for audit artifacts
  • Access controls on audit results and logs

Network Security

  • Use encrypted connections (LDAPS) when available
  • Monitor network traffic during assessments
  • Implement network segmentation for audit activities
  • Rate limiting to avoid overwhelming domain controllers

Operational Security

# Example: Secure credential handling
$securePassword = Read-Host "Enter password" -AsSecureString
$credential = New-Object System.Management.Automation.PSCredential("domain\user", $securePassword)

# Example: Encrypted output
$auditData | ConvertTo-Json | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Set-Content "encrypted_audit.txt"

Compliance Requirements

  • Document authorization before conducting assessments
  • Maintain audit trails of all activities
  • Follow data handling procedures per organizational policies
  • Report findings through established security channels

πŸŽ›οΈ Advanced Configuration

Custom Module Development

# Example: Custom security check module
function Invoke-CustomSecurityCheck {
    Write-Log "πŸ” Running custom security checks..." -Level Info
    
    $customResults = @{
        CustomFindings = @()
        RiskScore = 0
    }
    
    # Your custom logic here
    
    $Global:Config.Results.Custom = $customResults
    Write-Log "βœ… Custom security check completed" -Level Success
}

# Add to main execution flow
$Global:Config.Modules += 'custom'

Integration with SIEM/SOAR

# Example: Send results to SIEM
$auditResults = Get-Content "Reports\JSON\AD_Audit_Complete.json" | ConvertFrom-Json

# Send to Splunk
$splunkUri = "https://splunk.company.com:8088/services/collector"
$headers = @{"Authorization" = "Splunk $splunkToken"}
Invoke-RestMethod -Uri $splunkUri -Method Post -Headers $headers -Body ($auditResults | ConvertTo-Json)

# Send to Microsoft Sentinel
$workspaceId = "your-workspace-id"
$sharedKey = "your-shared-key"
Send-LogAnalyticsData -WorkspaceId $workspaceId -SharedKey $sharedKey -Body ($auditResults | ConvertTo-Json) -LogType "ADSecurityAudit"

Automated Scheduling

# Example: Scheduled task for weekly audits
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\remy-ad-audit.ps1 -SkipPrompts"
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 2AM
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName "Weekly AD Security Audit" -Action $action -Trigger $trigger -Settings $settings

🚨 Troubleshooting

Common Issues and Solutions

Issue: "Access Denied" errors during enumeration

# Solution: Check permissions and use appropriate credentials
$testAccess = Test-ADAuthentication -Credential $credential
if (-not $testAccess) {
    Write-Warning "Insufficient permissions. Ensure audit account has required privileges."
}

Issue: Script execution policy errors

# Solution: Set execution policy
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# Or bypass for single execution
PowerShell.exe -ExecutionPolicy Bypass -File .\remy-ad-audit.ps1

Issue: Module import failures

# Solution: Install required modules
Install-WindowsFeature -Name RSAT-AD-PowerShell
Import-Module ActiveDirectory -Force

Issue: Network connectivity problems

# Solution: Test connectivity and firewall rules
Test-NetConnection -ComputerName "dc01.corp.local" -Port 389
Test-NetConnection -ComputerName "dc01.corp.local" -Port 636

Debug Mode

# Enable verbose logging and debug output
.\remy-ad-audit.ps1 -Verbose -Debug -DomainController "dc01.corp.local" -DomainName "corp.local"

# Check log files for detailed error information
Get-Content "$env:TEMP\AD_Audit_Reports_*\audit.log" | Select-String "ERROR"

Performance Optimization

# Optimize for large environments
.\remy-ad-audit.ps1 `
    -DomainController "dc01.corp.local" `
    -DomainName "corp.local" `
    -Threads 25 `                     # Increase thread count
    -Modules @('core','security') `   # Run fewer modules
    -Format "JSON" `                  # Use faster output format
    -SkipPrompts

🀝 Contributing

We welcome contributions from the security community! Here's how you can help:

Ways to Contribute

  • πŸ› Bug Reports: Report issues and provide reproduction steps
  • πŸ’‘ Feature Requests: Suggest new modules or capabilities
  • πŸ”§ Code Contributions: Submit pull requests with improvements
  • πŸ“– Documentation: Improve guides and examples
  • πŸ§ͺ Testing: Test in different environments and provide feedback

Development Setup

# Fork the repository
git clone https://github.com/javalogicuser/remy-AD.git
cd remy-ad-audit

# Create feature branch
git checkout -b feature/new-security-module

# Make changes and test
.\remy-ad-audit.ps1 -DomainController "testdc.lab.local" -DomainName "lab.local" -SkipPrompts

# Commit and push
git add .
git commit -m "Add new security module for XYZ analysis"
git push origin feature/new-security-module

# Create pull request

Code Standards

  • Follow PowerShell best practices and style guidelines
  • Include comprehensive error handling
  • Add detailed comments and documentation
  • Include parameter validation and help text
  • Test thoroughly in lab environments

Security Disclosure

For security vulnerabilities in the tool itself:

  • Email: ethicalsoup@gmail.com
  • Include detailed reproduction steps
  • Allow 90 days for responsible disclosure

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2024 Unified AD Audit Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

πŸ™ Acknowledgments

  • Microsoft Active Directory Team - For comprehensive AD documentation
  • PowerShell Community - For excellent modules and best practices
  • Security Research Community - For attack techniques and defense strategies
  • Open Source Contributors - For inspiration and code examples

πŸ“ž Support and Contact

Professional Support

Stay Updated

  • ⭐ Star this repository to stay notified of updates
  • πŸ‘€ Watch releases for new versions and security updates
  • πŸ“’ Follow on Twitter: @ethicalsoup

⚠️ Important: This tool is for authorized security assessments only. Ensure you have proper authorization before running against any Active Directory environment. Unauthorized access to computer systems is illegal and may result in criminal prosecution.

πŸ“Š Project Statistics: GitHub stars GitHub forks GitHub issues

About

remote ad auditing tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published