<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Dns on imds.foo</title><link>https://imds.foo/tags/dns/</link><description>Recent content in Dns on imds.foo</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 05 Oct 2026 19:36:38 +0200</lastBuildDate><atom:link href="https://imds.foo/tags/dns/index.xml" rel="self" type="application/rss+xml"/><item><title>Cross-tenant DNS forwarding in Azure: plumbing that should not work?</title><link>https://imds.foo/posts/cross-tenant-dns-forwarding/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><guid>https://imds.foo/posts/cross-tenant-dns-forwarding/</guid><description>&lt;p&gt;My last post on cross-tenant DNS zones naturally leads to the question if other Azure DNS resources have the same visibility issue. One resource of great interest: Private DNS resolvers. DNS resolvers are basically the DNS plumbing Azure provides. You deploy a private one if you have inbound or outbound DNS queries requiring a more complex setup. For example from your on-premise datacenter to an IP in a delegated inbound endpoint subnet, which allows your on-prem infrastructure to resolve names in your Azure private zones. Outbound endpoints in combination with a resource called forwarding ruleset allow you to send Azure DNS queries to on-prem or 3rd party DNS servers. Forwarding rulesets basically define which queries get sent where.&lt;/p&gt;</description></item><item><title>When a foreign Private DNS zone answers inside your VNet</title><link>https://imds.foo/posts/cross-tenant-private-dns-links/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><guid>https://imds.foo/posts/cross-tenant-private-dns-links/</guid><description>&lt;h2 id="three-months-later"&gt;three months later&lt;/h2&gt;&#10;&lt;p&gt;A developer working on Azure gets compromised via AitM phishing. You catch it: the sign-in is anomalous, the session gets revoked, all credentials are rotated, the device is reimaged. You enumerate what their identity can reach, you look for malicious activity and find that the attacker acted similar to you, they also enumerated permissions and looked up the infrastructure the developer was working on. But only that, no write operations. You close the ticket and move on to the next. Infostealer, boring.&lt;/p&gt;</description></item><item><title>Your DNS policy? My DNS Policy</title><link>https://imds.foo/posts/cross-tenant-dns-policy/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><guid>https://imds.foo/posts/cross-tenant-dns-policy/</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; before&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; dig +short probe.lab.internal&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;192.0.2.53&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; after&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; dig +short probe.lab.internal&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;blockpolicy.azuredns.invalid.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nothing changed inside the VNet. No NSG, no route table, no resolver, no VM configuration. The object that changed the answer lives in a different Entra tenant, and the subscription owning the VNet logged no link operation for it. Because it cannot by design.&lt;/p&gt;&#10;&lt;p&gt;This is the third part of the Azure DNS ecosystem I have put through the same test: a child resource created in tenant B that references a VNet in tenant A. A private DNS zone, you can compare it with an address book: The attack worked, no way to detec. A forwarding ruleset, you can compare it with a pipeline that determines how requests flow: Attack worked, only way to detect it is in the DNSQueryLogs if an attacker starts to manipulate the DNS flow. A DNS resolver policy, a DNS security policy, sits in front of our pipeline. It watches queries, logs and decide which queries to block. And you don&amp;rsquo;t want an attacker to decide which DNS queries get blocked. Logging is also not optimal.&lt;/p&gt;</description></item></channel></rss>