From 7032d95968ffa6639f6907094074a5b20c596d8e Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Thu, 12 Jan 2023 11:31:46 +0100 Subject: [PATCH 01/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index 66d9698..f5caddb 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -258,7 +258,7 @@ function Countdown-Timer ) if ($quiet) { - Write-Host "$Message: Waiting for $($Seconds/60) minutes. $($Seconds - $Count)" + Write-Host "${Message: Waiting for $($Seconds/60) minutes. $($Seconds - $Count)}" Start-Sleep -Seconds $Seconds } else { foreach ($Count in (1..$Seconds)) From 34c14e8da40f18540a326eb983298f16ea558318 Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Mon, 16 Jan 2023 16:24:44 +0100 Subject: [PATCH 02/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index f5caddb..182c783 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -562,11 +562,11 @@ function Invoke-SpraySinglePassword } -function Get-ObservationWindow($DomainEntry) +function Get-ObservationWindow($Domain) { # Get account lockout observation window to avoid running more than 1 # password spray per observation window. - $lockObservationWindow_attr = $DomainEntry.Properties['lockoutObservationWindow'] - $observation_window = $DomainEntry.ConvertLargeIntegerToInt64($lockObservationWindow_attr.Value) / -600000000 + $lockObservationWindow_attr = $Domain.Properties['lockoutObservationWindow'] + $observation_window = $Domain.ConvertLargeIntegerToInt64($lockObservationWindow_attr.Value) / -600000000 return $observation_window } From badee64354bb66c2c351956834d90a9827fbdcc3 Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Wed, 8 Feb 2023 12:34:36 +0100 Subject: [PATCH 03/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index 182c783..bec19a1 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -562,11 +562,13 @@ function Invoke-SpraySinglePassword } -function Get-ObservationWindow($Domain) +Function Get-ObservationWindowForLockouts($Domain) { - # Get account lockout observation window to avoid running more than 1 - # password spray per observation window. - $lockObservationWindow_attr = $Domain.Properties['lockoutObservationWindow'] - $observation_window = $Domain.ConvertLargeIntegerToInt64($lockObservationWindow_attr.Value) / -600000000 - return $observation_window + # Get the account lockout observation window to prevent more than one password spray during the observation period. + $lockoutObservationWindowAttribute = $Domain.Properties['lockoutObservationWindow'] + $observationWindowInSeconds = $Domain.ConvertLargeIntegerToInt64($lockoutObservationWindowAttribute.Value) / -60000000 + + return $observationWindowInSeconds +} + } From aa12b8cd81aee9390798ed0c64dbf445016c315a Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Wed, 8 Feb 2023 12:36:21 +0100 Subject: [PATCH 04/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 2 -- 1 file changed, 2 deletions(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index bec19a1..720e99d 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -570,5 +570,3 @@ Function Get-ObservationWindowForLockouts($Domain) return $observationWindowInSeconds } - -} From 7e7258746b3ba18a26a801584515a26c8719e9b3 Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Wed, 8 Feb 2023 12:45:10 +0100 Subject: [PATCH 05/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index 720e99d..524a3e7 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -196,7 +196,7 @@ function Invoke-DomainPasswordSpray{ Write-Host -ForegroundColor Yellow "[*] WARNING - Be very careful not to lock out accounts with the password list option!" } - $observation_window = Get-ObservationWindow $CurrentDomain + $observation_window = Get-ObservationWindowForLockouts $CurrentDomain Write-Host -ForegroundColor Yellow "[*] The domain password policy observation window is set to $observation_window minutes." Write-Host "[*] Setting a $observation_window minute wait in between sprays." @@ -396,7 +396,7 @@ function Get-DomainUserList } } - $observation_window = Get-ObservationWindow $CurrentDomain + $observation_window = Get-ObservationWindowForLockouts $CurrentDomain # Generate a userlist from the domain # Selecting the lowest account lockout threshold in the domain to avoid From f99fde9a41a1d95787ade0ee74743f2ef62f9690 Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Wed, 8 Feb 2023 13:01:57 +0100 Subject: [PATCH 06/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index 524a3e7..a0c1f63 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -565,6 +565,10 @@ function Invoke-SpraySinglePassword Function Get-ObservationWindowForLockouts($Domain) { # Get the account lockout observation window to prevent more than one password spray during the observation period. + if ($Domain.Properties -eq $null -or $Domain.Properties['lockoutObservationWindow'] -eq $null) { + return $null + } + $lockoutObservationWindowAttribute = $Domain.Properties['lockoutObservationWindow'] $observationWindowInSeconds = $Domain.ConvertLargeIntegerToInt64($lockoutObservationWindowAttribute.Value) / -60000000 From 79ae1105d75fcc200ac2f4cd46e70fe05422a752 Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Thu, 30 Mar 2023 13:06:18 +0200 Subject: [PATCH 07/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index a0c1f63..6126fbb 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -562,15 +562,16 @@ function Invoke-SpraySinglePassword } -Function Get-ObservationWindowForLockouts($Domain) +Function Get-ObservationWindowForLockouts $Domain { # Get the account lockout observation window to prevent more than one password spray during the observation period. - if ($Domain.Properties -eq $null -or $Domain.Properties['lockoutObservationWindow'] -eq $null) { + $domainPolicy = Get-ADDefaultDomainPasswordPolicy -Identity $Domain + if ($domainPolicy.LockoutObservationWindow -eq $null) { return $null } - $lockoutObservationWindowAttribute = $Domain.Properties['lockoutObservationWindow'] - $observationWindowInSeconds = $Domain.ConvertLargeIntegerToInt64($lockoutObservationWindowAttribute.Value) / -60000000 + $observationWindowInSeconds = $domainPolicy.LockoutObservationWindow.TotalSeconds return $observationWindowInSeconds } + From 74e23f3eb3838b2387834958a4a7f0628c3c36f7 Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Thu, 30 Mar 2023 13:22:21 +0200 Subject: [PATCH 08/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index 6126fbb..302fc3d 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -562,7 +562,7 @@ function Invoke-SpraySinglePassword } -Function Get-ObservationWindowForLockouts $Domain +Function Get-ObservationWindowForLockouts($Domain) { # Get the account lockout observation window to prevent more than one password spray during the observation period. $domainPolicy = Get-ADDefaultDomainPasswordPolicy -Identity $Domain From f7384ce5611f1efffb4202cd788088e20c2e7a5b Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Thu, 30 Mar 2023 13:34:41 +0200 Subject: [PATCH 09/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index 302fc3d..8c246af 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -560,7 +560,7 @@ function Invoke-SpraySinglePassword } } -} + Function Get-ObservationWindowForLockouts($Domain) { @@ -574,4 +574,4 @@ Function Get-ObservationWindowForLockouts($Domain) return $observationWindowInSeconds } - +} From 48b1b629ed43df3393448d6a11040f18ac1769e8 Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Thu, 30 Mar 2023 13:40:14 +0200 Subject: [PATCH 10/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index 8c246af..412eda6 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -559,10 +559,10 @@ function Invoke-SpraySinglePassword Start-Sleep -Seconds $RandNo.Next((1-$Jitter)*$Delay, (1+$Jitter)*$Delay) } } +} - -Function Get-ObservationWindowForLockouts($Domain) +Function Get-ObservationWindowForLockouts { # Get the account lockout observation window to prevent more than one password spray during the observation period. $domainPolicy = Get-ADDefaultDomainPasswordPolicy -Identity $Domain @@ -574,4 +574,3 @@ Function Get-ObservationWindowForLockouts($Domain) return $observationWindowInSeconds } -} From 30a70eb32b531aa98c6308c47cc9bc67290932f3 Mon Sep 17 00:00:00 2001 From: HeeresS <48584256+HeeresS@users.noreply.github.com> Date: Thu, 30 Mar 2023 14:05:41 +0200 Subject: [PATCH 11/11] Update DomainPasswordSpray.ps1 --- DomainPasswordSpray.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DomainPasswordSpray.ps1 b/DomainPasswordSpray.ps1 index 412eda6..dc99594 100644 --- a/DomainPasswordSpray.ps1 +++ b/DomainPasswordSpray.ps1 @@ -570,7 +570,7 @@ Function Get-ObservationWindowForLockouts return $null } - $observationWindowInSeconds = $domainPolicy.LockoutObservationWindow.TotalSeconds + $observationWindowInMinutes = $domainPolicy.LockoutObservationWindow.Minutes - return $observationWindowInSeconds + return $observationWindowInMinutes }