<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><br><br></div> Hello,<br><br></div> I hope this isn't too off-topic, but I've been studying the Kaminsky DNS exploit and I have a question. <br>
<br></div> According to what I've read on the topic, the Kaminsky exploit hijacks a whole domain, and that you can launch the attack on a nameserver over and over. It seems to imply you can do this immediately before waiting for any TTL's to expire by using a series of random name queries, however, I don't see how that is possible, and I wonder if anyone can explain this.<br>
<br></div> I fired up a recursive nameserver running bind 9.4. In another window I started running a tcpdump session listening for traffic on port 53.<br><br></div> If I perform a query on one of my domains the first time, for <a href="http://nonexistant-host.mydomain.com">nonexistant-host.mydomain.com</a>, I can see my nameserver querying the roots, getting a referral to the auth. nameserver for <a href="http://mydomain.com">mydomain.com</a>, and then seeing the query go out to that authoritative nameserver. <br>
<br></div> That makes sense.<br><br></div> However, if I then fire off another query, for <a href="http://nonexistant-host2.mydomain.com">nonexistant-host2.mydomain.com</a>, I do not see another querying going out to find the auth nameserver for <a href="http://mydomain.com">mydomain.com</a> - because it is cached in my recursive resolver. <br>
<br></div> This also makes sense.<br><br></div> But then how is it that an attacker, after he sends his first query for a non-existant host, if they aren't able to guess the transaction id to spoof a response before the real response comes in, then won't the resolver have the cached NS records for that <a href="http://mydomain.com">mydomain.com</a> stored with a TTL?<br>
<br></div> I don't see how you can then launch successive queries for other non-existant hosts until the cached TTL expires for the domain server. <br><br></div> If anyone can shed any light, I'd appreciate it. I've read several articles on this topic and it's a piece of the puzzle I've been stumped on.<br>
<br></div> Thanks!<br><br></div> - Jamie<br><div><div><div><div><div><div><div><div><div><div><div><div><div> <br></div></div></div></div></div></div></div></div></div></div></div></div></div></div>