DNS 세부 정보 쿼리를 위한 9가지 유용한 호스트 명령 예

‘host’ 명령어: DNS 조회 및 분석을 위한 강력한 도구

‘host’ 명령어는 DNS(Domain Name System) 정보를 조회하는 데 사용되는 간단하면서도 강력한 명령줄 유틸리티입니다.

보안 연구 및 윤리적 해킹 분야에서 DNS 열거(DNS Enumeration)는 대상 시스템에 대한 정보를 수집하는 첫 번째 단계입니다. 이는 대상 도메인의 이름 서버 세부 정보, IP 주소, 메일 교환기 정보, TTL(Time To Live) 값 등 다양한 DNS 레코드를 확인하는 과정을 의미합니다.

공격자들은 DNS 열거를 통해 얻은 정보를 활용하여 내부 네트워크 구조를 파악하거나 잠재적인 공격 경로를 찾을 수 있습니다.

인터넷에는 수많은 DNS 정찰 및 온라인 열거 도구가 존재하지만, ‘host’ 명령어만으로도 기본적인 DNS 열거 작업을 효과적으로 수행할 수 있습니다.

본문에서는 ‘host’ 명령어를 사용하여 DNS 세부 정보를 조회하는 다양한 방법과 실용적인 예시를 살펴보겠습니다.

시작해 볼까요!

설치 방법

‘host’ 명령어는 일부 시스템에서 기본적으로 제공되지 않을 수 있습니다. 따라서 사용하기 전에 수동으로 설치해야 할 수도 있습니다. 설치 과정은 간단합니다.

‘nslookup’, ‘dig’, ‘host’와 같은 DNS 관련 명령어는 일반적으로 ‘dnsutils’ 라이브러리에 포함되어 있습니다. 터미널에서 다음 명령어를 입력하여 설치할 수 있습니다.

sudo apt-get install dnsutils -y

‘host’ 명령어는 macOS와 Linux 환경 모두에서 사용할 수 있습니다.

사용법

일반적인 ‘host’ 명령어는 다음과 같은 형식을 가집니다. 명령어를 실행하면 사용 가능한 인수 및 각 인수에 대한 간략한 설명을 확인할 수 있습니다.

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host          
Usage: host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
            [-R number] [-m flag] [-p port] hostname [server]
       -a is equivalent to -v -t ANY
       -A is like -a but omits RRSIG, NSEC, NSEC3
       -c specifies query class for non-IN data
       -C compares SOA records on authoritative nameservers
       -d is equivalent to -v
       -l lists all hosts in a domain, using AXFR
       -m set memory debugging flag (trace|record|usage)
       -N changes the number of dots allowed before root lookup is done
       -p specifies the port on the server to query
       -r disables recursive processing
       -R specifies number of retries for UDP packets
       -s a SERVFAIL response should stop query
       -t specifies the query type
       -T enables TCP/IP mode
       -U enables UDP mode
       -v enables verbose output
       -V print version number and exit
       -w specifies to wait forever for a reply
       -W specifies how long to wait for a reply
       -4 use IPv4 query transport only
       -6 use IPv6 query transport only

도메인 IP 주소 확인

특정 도메인의 IP 주소를 확인하려면 ‘host’ 명령어 뒤에 대상 도메인 이름을 인수로 전달하면 됩니다.

host Target-domain

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host koreantech.org.com
koreantech.org.com has address 104.27.118.115
koreantech.org.com has address 104.27.119.115
koreantech.org.com has IPv6 address 2606:4700:20::681b:7673
koreantech.org.com has IPv6 address 2606:4700:20::681b:7773
koreantech.org.com mail is handled by 1 aspmx.l.google.com.
koreantech.org.com mail is handled by 5 alt1.aspmx.l.google.com.
koreantech.org.com mail is handled by 5 alt2.aspmx.l.google.com.
koreantech.org.com mail is handled by 10 alt3.aspmx.l.google.com.
koreantech.org.com mail is handled by 10 alt4.aspmx.l.google.com.

좀 더 자세한 정보를 확인하려면 ‘-a’ 또는 ‘-v’ 플래그 옵션을 사용하여 모든 DNS 레코드를 조회할 수 있습니다.

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host -a koreantech.org.com 
Trying "koreantech.org.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24690
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;koreantech.org.com.                 IN      ANY

;; ANSWER SECTION:
koreantech.org.com.          3789    IN      HINFO   "RFC8482" ""
koreantech.org.com.          3789    IN      RRSIG   HINFO 13 2 3789 20220307065004 20220305045004 34505 koreantech.org.com. HW0Lfr5HazPMaACSBHmFqs94usKUljX+kONW/8Q2jwQ1QoAO9DEMjwDX rIQKODGtGnEizj2SzBF98mC2uQr7hQ==

Received 161 bytes from 192.168.1.1#53 in 64 ms

‘-a’ 옵션은 도메인의 모든 레코드와 영역 정보를 조회하는 데 유용하며, 질의에 사용된 로컬 DNS 서버의 주소도 확인할 수 있습니다.

역방향 조회 수행

IP 주소를 사용하여 해당 IP 주소에 연결된 호스트 이름 또는 도메인 이름을 확인하는 역방향 조회도 ‘host’ 명령어를 통해 수행할 수 있습니다.

사용법 예시:

host target-ip-address

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host dnsleaktest.com                                                                                  
dnsleaktest.com has address 23.239.16.110
                                                                                                              
┌──(koreantech.org㉿kali)-[~]
└─$ host 23.239.16.110  
110.16.239.23.in-addr.arpa domain name pointer li685-110.members.linode.com.

위 예시에서 반환된 포인터 주소(li685-110.members.linode.com)를 웹 브라우저에 입력하면 해당 웹 사이트로 이동하게 됩니다.

도메인 이름 서버 찾기

‘-t’ 옵션을 사용하여 특정 도메인의 이름 서버 정보를 확인할 수 있습니다. 이 옵션은 쿼리할 레코드 유형을 지정하는 데 사용됩니다.

다음 예시는 특정 도메인의 이름 서버를 찾는 방법을 보여줍니다.

‘NS’ 레코드는 해당 도메인을 담당하는 권한 있는 네임 서버를 나타냅니다.

host -t ns target-domain

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host -t ns koreantech.org.com
koreantech.org.com name server olga.ns.cloudflare.com.
koreantech.org.com name server todd.ns.cloudflare.com.

특정 도메인 네임 서버 조회

특정 도메인의 권한 있는 네임 서버에 직접 질의하려면 다음 명령어를 사용하면 됩니다.

host target-domain [name-server]

예시 출력:

┌──(root💀kali)-[/home/geekflare]
└─# host koreantech.org.com  olga.ns.cloudflare.com.                                                           1 ⨯
Using domain server:
Name: olga.ns.cloudflare.com.
Address: 173.245.58.137#53
Aliases: 

koreantech.org.com has address 104.27.118.115
koreantech.org.com has address 104.27.119.115
koreantech.org.com has IPv6 address 2606:4700:20::681b:7773
koreantech.org.com has IPv6 address 2606:4700:20::681b:7673
koreantech.org.com mail is handled by 1 aspmx.l.google.com.
koreantech.org.com mail is handled by 5 alt1.aspmx.l.google.com.
koreantech.org.com mail is handled by 5 alt2.aspmx.l.google.com.
koreantech.org.com mail is handled by 10 alt3.aspmx.l.google.com.
koreantech.org.com mail is handled by 10 alt4.aspmx.l.google.com.

도메인 MX 레코드 확인

도메인의 MX(Mail Exchanger) 레코드는 해당 도메인의 이메일 서버를 지정합니다. 다음 명령어를 사용하여 MX 레코드를 확인할 수 있습니다.

host -t MX target-domain

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host -t mx  koreantech.org.com
koreantech.org.com mail is handled by 1 aspmx.l.google.com.
koreantech.org.com mail is handled by 5 alt1.aspmx.l.google.com.
koreantech.org.com mail is handled by 5 alt2.aspmx.l.google.com.
koreantech.org.com mail is handled by 10 alt3.aspmx.l.google.com.
koreantech.org.com mail is handled by 10 alt4.aspmx.l.google.com.

MX 레코드는 이메일을 적절한 메일 서버로 전달하는 데 중요한 역할을 합니다.

도메인 TXT 레코드 확인

TXT 레코드는 도메인에 대한 사람에게 읽기 쉬운 정보를 제공합니다. 다음 명령어를 사용하여 도메인의 TXT 레코드를 확인할 수 있습니다.

host -t txt target-domain

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host -t txt koreantech.org.com
koreantech.org.com descriptive text "google-site-verification=MRSwa454qay1S6pwwixzoiZl08kfJfkhiQIslhok3-A"
koreantech.org.com descriptive text "google-site-verification=7QXbgb492Y5NVyWzSAgAScfUV3XIAGTKKZfdpCvcaGM"
koreantech.org.com descriptive text "yandex-verification: 42f25bad396e79f5"
koreantech.org.com descriptive text "v=spf1 include:_spf.google.com include:mailgun.org include:zcsend.net ~all"
koreantech.org.com descriptive text "ahrefs-site-verification_8eefbd2fe43a8728b6fd14a393e2aff77b671e41615d2c1c6fc365ec33a4d6d0"
koreantech.org.com descriptive text "ca3-7fbfaa573ba248ddb17a618e5b46ca01"

도메인 SOA 레코드 확인

도메인의 SOA(Start of Authority) 레코드는 해당 도메인의 영역 정보를 관리하는 권한 있는 네임 서버를 정의합니다. 다음 명령어를 사용하여 SOA 레코드를 확인할 수 있습니다.

host -t soa target-domain

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host -t soa koreantech.org.com
koreantech.org.com has SOA record olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600

다음 명령어를 사용하여 특정 영역의 모든 권한 있는 네임 서버에서 SOA 레코드를 비교할 수 있습니다.

host -C target-domain

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host -C koreantech.org.com                                                                                 2 ⨯
Nameserver 173.245.58.137:
        koreantech.org.com has SOA record olga.ns.cloudflare.com. dns.cloudflare.com. 2271966690 10000 2400 604800 3600

도메인 CNAME 레코드 확인

CNAME 레코드는 정식 이름 레코드를 의미하며, 한 도메인을 다른 도메인으로 리디렉션하는 데 사용됩니다. 즉, 원래 도메인 이름을 별칭으로 매핑합니다.

다음 명령어를 사용하여 도메인의 CNAME 레코드를 확인할 수 있습니다.

host -t cname target-domain

예시 출력:

┌──(koreantech.org㉿kali)-[~]
└─$ host -t cname  koreantech.org.com
koreantech.org.com has no CNAME record

대상 도메인에 CNAME 레코드가 존재한다면 명령어 실행 결과에 표시됩니다.

도메인 TTL 정보 확인

TTL (Time To Live)은 도메인 이름 서버의 레코드 캐시 시간을 의미하며, 각 DNS 레코드에 대해 권한 있는 네임 서버에 의해 자동으로 설정됩니다.

간단히 말해서, TTL은 DNS 서버가 데이터를 새로 고치기 전에 레코드를 캐시하는 시간을 나타냅니다. 다음 명령어를 사용하여 도메인 이름의 TTL 정보를 확인할 수 있습니다.

host -v -t a target-domain

예시 출력:

┌──(root💀kali)-[/home/geekflare]
└─# host -v -t a koreantech.org.com                                                                            1 ⨯
Trying "koreantech.org.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2479
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;koreantech.org.com.                 IN      A

;; ANSWER SECTION:
koreantech.org.com.          30      IN      A       104.27.119.115
koreantech.org.com.          30      IN      A       104.27.118.115

Received 63 bytes from 192.168.1.1#53 in 60 ms

결론

본문이 DNS 세부 정보를 쿼리하는 데 유용한 ‘host’ 명령어 사용법을 이해하는 데 도움이 되었기를 바랍니다.

또한, 도메인의 DNS 레코드를 확인하기 위한 무료 온라인 도구에 대한 정보를 알아보는 데도 관심이 있을 수 있습니다.