Dies ist eine alte Version des Dokuments!
[22:55:17.197] # 33 -> HTTP -1 (0 ms) [22:55:17.407] # 34 -> HTTP -1 (0 ms) [22:55:17.611] # 35 -> HTTP -1 (0 ms) [22:55:17.825] # 36 -> HTTP -1 (0 ms) [22:55:18.042] # 37 -> HTTP -1 (0 ms) [22:55:18.245] # 38 -> HTTP -1 (0 ms) [22:55:18.456] # 39 -> HTTP -1 (0 ms) [22:55:18.669] # 40 -> HTTP -1 (0 ms) [22:55:18.876] # 41 -> HTTP -1 (0 ms) [22:55:19.086] # 42 -> HTTP -1 (0 ms) [22:55:19.286] # 43 -> HTTP -1 (0 ms) [22:55:19.496] # 44 -> HTTP -1 (0 ms) [22:55:19.701] # 45 -> HTTP -1 (0 ms) [22:55:19.910] # 46 -> HTTP -1 (0 ms) [22:55:20.120] # 47 -> HTTP -1 (0 ms) [22:55:20.321] # 48 -> HTTP -1 (0 ms) [22:55:20.531] # 49 -> HTTP -1 (0 ms) [22:55:20.749] # 50 -> HTTP -1 (0 ms) PS C:\Users\Manuel Zarat>
Hallo Besucher! Willkommen in diesem kleinen Wiki rund um IT. Vieles ist noch unvollständig, unstrukturiert oder vielleicht sogar falsch bzw. irreführend.
Du kannst Artikel gerne ergänzen oder verbessern. Gerne mit so vielen Links wie nötig. Bitte keine Werbelinks und nur selbst verfasste oder lizenzfreie Texte! Copyright beachten!
Eine Liste von Seiten die noch erstellt werden müssen.
<# PowerShell 5.1 – EAS Basic-Auth Bruteforce-Test (falsche Credentials) Hinweise: - Bitte nur gegen eigene Systeme testen. - Verwende idealerweise einen NICHT existierenden User, damit kein echter AD-Account gelockt wird. - Wenn Script-Ausführung blockiert ist: powershell.exe -ExecutionPolicy Bypass -File .\test-eas.ps1 -Count 200 -DelayMs 100 #> param( [string]$Url = "https://eas.akm.at/Microsoft-Server-ActiveSync", [string]$Username = "doesnotexist-testuser", [string]$Password = "WrongPassword123!", [int]$Count = 200, [int]$DelayMs = 100, [int]$TimeoutSec = 10, [switch]$IgnoreCertErrors ) # TLS 1.2 erzwingen (wichtig auf älteren Systemen) [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # Optional: Zertifikatsfehler ignorieren (nur Test!) if ($IgnoreCertErrors) { [System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true } } function New-BasicAuthValue { param([string]$User, [string]$Pass) $pair = "{0}:{1}" -f $User, $Pass $b64 = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($pair)) return "Basic $b64" } $auth = New-BasicAuthValue -User $Username -Pass $Password Write-Host ("Target: {0}" -f $Url) Write-Host ("User: {0}" -f $Username) Write-Host ("Count: {0} Delay: {1}ms Timeout: {2}s" -f $Count, $DelayMs, $TimeoutSec) Write-Host "" for ($i=1; $i -le $Count; $i++) { $sw = [Diagnostics.Stopwatch]::StartNew() $code = -1 $err = $null try { $req = [System.Net.HttpWebRequest]::Create($Url) $req.Method = "GET" $req.AllowAutoRedirect = $false $req.Timeout = $TimeoutSec * 1000 $req.ReadWriteTimeout = $TimeoutSec * 1000 $req.UserAgent = "EAS-Bruteforce-Test/PS5.1" $req.Headers.Add("Authorization", $auth) # optional: macht manche EAS-Setups "glücklicher" $req.Headers.Add("MS-ASProtocolVersion", "14.1") $resp = $req.GetResponse() $code = [int]$resp.StatusCode $resp.Close() } catch [System.Net.WebException] { if ($_.Exception.Response) { $code = [int]$_.Exception.Response.StatusCode $_.Exception.Response.Close() } else { $err = $_.Exception.Message } } catch { $err = $_.Exception.Message } $sw.Stop() $ts = (Get-Date).ToString("HH:mm:ss.fff") if ($code -eq -1) { Write-Host ("[{0}] #{1,3} -> HTTP -1 ({2} ms) ERROR={3}" -f $ts, $i, $sw.ElapsedMilliseconds, $err) } else { Write-Host ("[{0}] #{1,3} -> HTTP {2} ({3} ms)" -f $ts, $i, $code, $sw.ElapsedMilliseconds) } if ($code -eq 429) { Write-Host "Got 429 -> rate limit active. Stopping." break } Start-Sleep -Milliseconds $DelayMs }