DNS hijack

Published: 2013-10-10
Last Updated: 2013-10-10 19:44:20 UTC
by Johannes Ullrich (Version: 1)
5 comment(s)

DNS for the Malaysian copy of Google ( got appearanty hijacked. Right now, the hostnames and point to a host in Canada ( 

(thx Alex for capturing the screen shot. My system would not allow me to connect to the IP address anymore). The NS records point to servers that do not appear to be "genuine" as well. Before, the NS records pointed to and, which are also authoritative for Now they point to and .

The whois information does not reflect that this is a google domain, but it didn't change recently and the site used to host a copy of Google's homepage according to It is very much possible that Google uses a third party to operate part of its Malaysia site.

Update (via Twitter from @TheBackpackr): " We're the official co managing the domain for @GoogleMsia. We are liaising with MYNIC on the DNS change."

The same group behind this attack also claims to have been successful against other Google country level sites (Burundi and Kenia) recently.


If you haven't yet: start monitoring your DNS data! A quick minimum script to do so in 5 minutes (just cron it... )



ADMIN='your email';

ns=`dig +short NS $TLD  | tail -1`
dig  NS $DOMAIN @$ns  | grep 'IN\tNS' | grep -v '^;' | sort > .$
if [ -f .$DOMAIN.old ]; then
   if ! cmp -s .$DOMAIN.old .$; then
       cat .$ | mail -s "Possible $DOMAIN hijack" $ADMIN
       echo possible $DOMAIN hijack

mv .$ .$DOMAIN.old


(and please change the variable at the top ;-) )

------ Johannes B. Ullrich, Ph.D. SANS Technology Institute Twitter

Keywords: dns google hijack
5 comment(s)


I had to change the line
dig NS $DOMAIN @$ns | grep 'IN\tNS' | grep -v '^;' | sort > .$
dig NS $DOMAIN @$ns | grep -P 'IN\tNS' | grep -v '^;' | sort > .$
before I got any output.
hm. worked for me as above. What OS? (I ran my code on OS X), maybe a different version of grep?
On Redhat the '-P' is needed because you used a Perl regular expression.
I had to change

dig NS $DOMAIN @$ns | grep 'IN\tNS' | grep -v '^;' | sort > .$
dig NS $DOMAIN | grep -P 'IN\tNS' | grep -v '^;' | sort > .$

to get it to work on a Debian based distro; DiG 9.8.4-rpz2+rl005.12-P1
Also, some results are going to differ due to the DNS provider (cloudflare for example) or dig itself so it could be worthwhile to cut the expected field so that a comparison of the nameserver hostname itself is only what is being compared.

Diary Archives