Skip to content

Instantly share code, notes, and snippets.

@hacks2learn
Forked from curi0usJack/Get-Origins.ps1
Created March 28, 2025 12:28
Show Gist options
  • Save hacks2learn/6ac9742ec461f2195506e662911a3e0d to your computer and use it in GitHub Desktop.
Save hacks2learn/6ac9742ec461f2195506e662911a3e0d to your computer and use it in GitHub Desktop.

Revisions

  1. @curi0usJack curi0usJack created this gist Mar 27, 2025.
    80 changes: 80 additions & 0 deletions Get-Origins.ps1
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,80 @@
    Import-Module Az
    Connect-AzAccount

    $ipre = "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"

    function Get-ClassicOrigins() {
    $profs = Get-AzCDNProfile
    $coll = @()

    foreach ($prof in $profs) {
    $eps = Get-AzCdnEndpoint -ResourceGroupName $prof.ResourceGroupName -ProfileName $prof.Name
    foreach ($ep in $eps) {
    $origin = $ep.Origin.Hostname
    if ($origin -match $ipre) {
    $domain = "IPADDRESS"
    } else {
    $domainspl = $origin.Split(".")
    $domain = "$($domainspl[-2]).$($domainspl[-1])"
    }
    $coll += [PSCustomObject]@{
    AzureDomain = "$($ep.Name).azureedge.net"
    OriginHostname = $origin
    OriginDomain = $domain
    }
    }
    }
    return $coll
    }

    function Parse-FDData {
    param (
    [string]$FrontDoorOriginGroupName,
    [string]$ResourceGroupName,
    [string]$ProfileName
    )

    $info = @()
    $fdo = Get-AzFrontDoorCdnOrigin -OriginGroupName $FrontDoorOriginGroupName -ResourceGroupName $ResourceGroupName -ProfileName $ProfileName
    $hostname = $fdo.Hostname
    #Write-Output $hostname
    $domainspl = $hostname.Split(".")
    $domain = "$($domainspl[-2]).$($domainspl[-1])"
    if ($FrontDoorOriginGroupName -like "*-Migrated*") {
    $t = $FrontDoorOriginGroupName.Split("-")[0]
    $AzureDomain = "$($t).azureedge.net"
    }
    else { $AzureDomain = $FrontDoorOriginGroupName }

    return [PSCustomObject]@{
    AzureDomain = $AzureDomain
    OriginHostName = $fdo.Hostname
    OriginDomain = $domain
    }
    }

    function Get-FrontDoorOrigins() {
    $fds = Get-AzFrontDoorCdnProfile
    $coll = @()
    foreach ($fd in $fds) {
    $fdogroup = Get-AzFrontDoorCdnOriginGroup -ProfileName $fd.Name -ResourceGroupName $fd.ResourceGroupName
    if ($fdogroup.Name.Length -gt 1) {
    foreach ($fdog in $fdogroup.Name) {
    if (-not [String]::IsNullOrEmpty($fdogroup.Name)) {
    $coll += Parse-FDData -FrontDoorOriginGroupName $fdog -ResourceGroupName $fd.ResourceGroupName -ProfileName $fd.Name
    }
    }
    }
    }
    return $coll
    }

    Write-Output "[*] Getting Classic CDNs"
    $coll1 = Get-ClassicOrigins

    Write-Output "[*] Getting Front Door CDNs"
    $coll2 = Get-FrontDoorOrigins

    Write-Output "`n`n"
    $final = $coll1 + $coll2
    $final | Sort OriginDomain | Format-Table