Problémy DNS

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: tomas789@gmail.com
Datum: 9.7.2008
Hodnocení/Hlasovalo: 0/0

Už jste někdy potřebovali zjistit seznam subdomén a nevěděli jste jak na to? Tak čtěte dále. Právě na tuto otázku a jistě mnoho dalších se vám pokusím odpovědět.

Problémy DNS

Kdykoliv napíšete do prohlížeče soom.cz, tak využíváte tohoto užitečného pomocníka jménem DNS. Funkci této služby jistě nemusím vysvětlovat, tak jdeme na věc.

Základní věc, kterou nám DNS může poskytnout je překlad doménového jména na IP adresu, což je jediný údaj, kterému stroje rozumí (ve skutečnosti je to složitější, ale to bych přesáhl tento článek). Což můžeme provést pomocí příkazu host takto:

linux$ host soom.cz soom.cz has address 89.187.131.211 soom.cz mail is handled by 10 ns1.netzona.cz.

Případně pomocí příkazu ping:

linux$ ping soom.cz -c 1
PING soom.cz (89.187.131.211) 56(84) bytes of data.
64 bytes from alfa.netzona.cz (89.187.131.211): icmp_seq=1 ttl=58 time=19.6 ms

--- soom.cz ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 19.652/19.652/19.652/0.000 ms

Teď trochu teorie. Specifikace DNS definuje hned několik typů DNS záznamů viz. tabulka níže.

SOA Start of authority Časové údaje DNS pro aktualizaci a stárnutí záznamů, mailová adresa správce serveru
A Address IP adresa příslušného záznamu
CNAME Canonical name Kanonický (odvozený) název
PTR Pointer Název PC s IP adresou
HINFO Host information Operační systém počítače
TXT Text (nečekaně :) Individuální informace o PC (umístění, účel atd.)
RP Responsible person Kontakt (e-mail) na zodpovědnou osobu

a spoustu dalších, které včetně jejich popisu a příslušné specifikace naleznete zde: vzi. http://en.wikipedia.org/wiki/DNS_record

S tí souvisí situace, kdy jsme v prvním příkladu obdrželi odpověď na dva řádky. Ve skutečnosti jsme obdrželi odpověď dvou záznamů. Kontrétně a a mx. To ale nemusí být bezpodmínečně vše. K této doméně se vztahuje například záznam soa:

linux$ host -t soa soom.cz
soom.cz has SOA record ns1.netzona.cz. admin.netzona.cz. 20080511 10 10 1000 10

Dosud získané informace by mohly být dobrým základem pro útok. Problém je v tom, že většinou nejsou údaje dostupné a my obdržíme pouze výsledek podobný tomuto:

linux$ host -t ptr soom.cz soom.cz has no PTR record

To jsme zjistili informace o konkrétní doméně. Často se však hodí znát seznam subdobén (domény 3. a nižšíto řádu). K tomu se dá využít opět programu host nebo dig. Napřed ale potřebujeme znát jmén jmenného sereru (DNS - Domain Name Server ). Zřejmě nejsnazší způsob, jak tuto informaci získat je služba whois, kterou provozují všichni TLD (správci domén 1. řádu, pro .cz http://www.nic.cz/whois/), konkrétně http://www.nic.cz/whois/?d=soom.cz. Nebo stejnojmený program:

linux$ whois soom.cz
...
nsset:        NETZONA.CZ
nserver:      ns1.netzona.cz
nserver:      ns2.netzona.cz
tech-c:       FORPSI-BGO-C230788
registrar:    REG-INTERNET-CZ
created:      18.05.2008 13:19:14
changed:      26.06.2008 11:34:02
...

Výstup byl pro stručnost zkrácen (mj. z výstupu se můžete dozvědět Emkeiovo skutečné jméno a nejen to ;-). Na řádcích nameserver: se dozvíme, že jmenné servery, kde jsou zapsány informace od doméně soom.cz jsou ns1.netzona.cz a ns2.netzona.cz. A teď není nic jednodužšího, než se jmennéno serveru zeptat na subdomény.

linux$ host -l www.soom.cz ns2.netzona.cz
;; Connection to 90.177.11.107#53(90.177.11.107) for www.soom.cz failed: connection refused.

V tomto případě však vidíme, že požadované informace nejsou dostupné. Je to očekávatelné. Přecijen možnost zónových přenosů se dá považovat be bezpečnostní chybu a je dobré, že server netzona.cz ná toto ošetřeno. Aby jste však nepřišli zkrátka, ukáži vám jiný příklad, kde zónové přenosy jsou možné.

Například u serveru neco.cz (skutečný server, není exemplární) nastane jedna zajímavý situace. Z primárního doménového serveru informace získat jejdou:

linux$ host -l neco.cz cerveny.neco.cz
; Transfer failed.
Using domain server:
Name: cerveny.neco.cz
Address: 88.86.111.14#53
Aliases:

Host neco.cz not found: 5(REFUSED)
; Transfer failed.

Avšak sekundární server se s ními o své informace rád podělí :-) :

linux$ host -l neco.cz modry.neco.cz
Using domain server:
Name: modry.neco.cz
Address: 85.207.113.248#53
Aliases:

neco.cz name server modry.neco.cz.
neco.cz name server cerveny.neco.cz.
neco.cz has address 88.86.111.14
cerveny.neco.cz has address 88.86.111.14
fialovy.neco.cz has address 62.240.166.66
medialine.neco.cz has address 212.20.120.138
modry.neco.cz has address 85.207.113.248
unipm.neco.cz has address 85.207.228.226
zluty.neco.cz has address 88.86.111.15

Není to však kompletní výpis domén, ale jak se říká lepší něco než nic.

Teď trochu mimo téma: Také se říká, že co je doma, to se počítá. V tomto případě si můžeme pomoci návštěvou webové stránky http://ww.neco.cz kde nám výpis, i když také nekompletní, ale obsáhlejší, poskytnou administrátoři sami.

Překvapení nakonec. Ještě jsem se zmiňoval o programu dig, který nám také umožňuje zjistit seznam subdomén. Možná budete překvapeni výpisem z primárního serveru, který nám za použití programu host nechtěl nic prozradit:

linux$ dig @modry.neco.cz neco.cz axfr

; <<>> DiG 9.4.1-P1 <<>> @modry.neco.cz neco.cz axfr
; (1 server found)
;; global options:  printcmd
neco.cz.                3600    IN      SOA     cerveny.neco.cz. robert.neco.cz. 2007101501 28800 7200 604800 86400
neco.cz.                3600    IN      NS      modry.neco.cz.
neco.cz.                3600    IN      NS      cerveny.neco.cz.
neco.cz.                3600    IN      A       88.86.111.14
neco.cz.                3600    IN      MX      10 mail.neco.cz.
neco.cz.                3600    IN      MX      20 backupmail.neco.cz.
*.neco.cz.              3600    IN      CNAME   cerveny.neco.cz.
angel.neco.cz.          3600    IN      CNAME   modry.neco.cz.
backupmail.neco.cz.     3600    IN      CNAME   modry.neco.cz.
cerveny.neco.cz.        3600    IN      A       88.86.111.14
daruj.neco.cz.          3600    IN      CNAME   cerveny.neco.cz.
delej.neco.cz.          3600    IN      CNAME   cerveny.neco.cz.
fast.neco.cz.           3600    IN      CNAME   cerveny.neco.cz.
fazole.neco.cz.         3600    IN      CNAME   cerveny.neco.cz.
fialovy.neco.cz.        3600    IN      A       62.240.166.66
frantiskanska.neco.cz.  3600    IN      CNAME   cerveny.neco.cz.
hellsoft.neco.cz.       3600    IN      CNAME   cerveny.neco.cz.
herniprace.neco.cz.     3600    IN      CNAME   cerveny.neco.cz.
hory.neco.cz.           3600    IN      CNAME   cerveny.neco.cz.
hrusice.neco.cz.        3600    IN      CNAME   cerveny.neco.cz.
jizdanakoni.neco.cz.    3600    IN      CNAME   cerveny.neco.cz.
jogaba.neco.cz.         3600    IN      CNAME   cerveny.neco.cz.
keramika.neco.cz.       3600    IN      CNAME   cerveny.neco.cz.
kone.neco.cz.           3600    IN      CNAME   cerveny.neco.cz.
kuba.neco.cz.           3600    IN      CNAME   cerveny.neco.cz.
kupuj.neco.cz.          3600    IN      CNAME   cerveny.neco.cz.
mail.neco.cz.           3600    IN      CNAME   cerveny.neco.cz.
mailnew.neco.cz.        3600    IN      CNAME   cerveny.neco.cz.
medialine.neco.cz.      3600    IN      A       212.20.120.138
mirabai.neco.cz.        3600    IN      CNAME   cerveny.neco.cz.
modry.neco.cz.          3600    IN      A       85.207.113.248
moricvil.neco.cz.       3600    IN      CNAME   cerveny.neco.cz.
oranzovy.neco.cz.       3600    IN      CNAME   cerveny.neco.cz.
pifik.neco.cz.          3600    IN      CNAME   cerveny.neco.cz.
ras.neco.cz.            3600    IN      CNAME   cerveny.neco.cz.
rights.neco.cz.         3600    IN      CNAME   cerveny.neco.cz.
robert.neco.cz.         3600    IN      CNAME   cerveny.neco.cz.
snez.neco.cz.           3600    IN      CNAME   cerveny.neco.cz.
sop8.neco.cz.           3600    IN      CNAME   cerveny.neco.cz.
tichacek.neco.cz.       3600    IN      CNAME   cerveny.neco.cz.
tucnak.neco.cz.         3600    IN      CNAME   cerveny.neco.cz.
ub.neco.cz.             3600    IN      CNAME   cerveny.neco.cz.
unipm.neco.cz.          3600    IN      A       85.207.228.226
viladomy.neco.cz.       3600    IN      CNAME   cerveny.neco.cz.
www.neco.cz.            3600    IN      CNAME   cerveny.neco.cz.
zeleny.neco.cz.         3600    IN      CNAME   cerveny.neco.cz.
zluty.neco.cz.          3600    IN      A       88.86.111.15
neco.cz.                3600    IN      SOA     cerveny.neco.cz. robert.neco.cz. 2007101501 28800 7200 604800 86400
;; Query time: 67 msec
;; SERVER: 85.207.113.248#53(85.207.113.248)
;; WHEN: Thu Jun 26 22:02:51 2008
;; XFR size: 48 records (messages 1, bytes 1049)
A abych nezklamal uživatele systému Windows, tak přidám velmi stručný návod i pro ně. 1. Otevřete si program cmd.exe
2. napište: nslookup
3. server cerveny.neco.cz
3. set type-any
4. ls -d neco.cz

A "vyskočí" na vás seznam subdomén stejně, jako tomu bylo v předchozích případech.

Na závěr vám doporučím si vše vyzkoušet na vlastním příkladu a popřeji vám hodně zábavi při bojevování nových možností.