# test-pwnedAdddress # # Simple Powershell Script to check a mail address or list of addresses against haveibeenpwned.com # # Henning Krause, Frank Carius, www.msxfaq.de param( [parameter(Mandatory=$true,ValueFromPipeline=$True)] [String[]]$smtpaddress ) begin { write-host "Test-PwndAddress: Start" $totalbreaches = 0 $error.clear() } Process { Write-Host "Check: $smtpaddress" -nonewline try { $request = Invoke-WebRequest "https://haveibeenpwned.com/api/v2/breachedaccount/${smtpaddress}?truncateResponse=true" -UseBasicParsing $breaches = ((ConvertFrom-Json $request.Content) | % { $_.Name}) } catch { write-host " No breach found" $breaches = $null } if ($breaches -ne $null) { write-host " BREACH FOUND:" -nonewline $totalbreaches++ foreach ($breach in $breaches) { write-host ",$breach" -nonewline $result = new-object psObject $result | Add-Member -MemberType noteproperty -Name "mailaddress" -Value $smtpaddress $result | Add-Member -MemberType noteproperty -Name "PrimarySmtpAddress" -Value $breach } write-host "" $result start-sleep -seconds 2 #$request = Invoke-WebRequest "https://haveibeenpwned.com/api/v2/breach/${name}?truncateResponse=true" -UseBasicParsing #$details = ConvertFrom-Json $request.Content } } end { write-host "Total Breaches:" $totalbreaches write-host "Test-PwndAddress: End" }