소개
정보 수집은 모든 보안 평가의 가장 중요한 첫 단계입니다. 보안 전문가는 대상 서버와 직접 상호 작용하기 전에 "수동적 정찰 (passive reconnaissance)"을 수행하여 공개적으로 사용 가능한 정보를 수집합니다.
수동적 정찰이 중요한 이유는 대상 인프라에 눈에 띄는 신호를 보내기 전에 맥락을 파악할 수 있기 때문입니다. 숙련된 운영자는 도메인 소유자가 누구인지, 어떤 등록 기관이 관여하는지, 어떤 네임서버가 네임스페이스를 제어하는지 등 기본적인 질문에 대한 답을 공개 기록에서 찾을 수 있다면, 패킷을 보내는 것부터 시작하지 않습니다.
수동적 정찰을 위한 가장 기본적인 기술 중 하나는 Whois 열거입니다. Whois 는 도메인 소유자가 누구인지, 어떻게 연락할 수 있는지를 식별하는 널리 사용되는 인터넷 기록 목록입니다. ICANN(Internet Corporation for Assigned Names and Numbers) 은 도메인 이름 등록 및 소유권을 규제하며, 등록 기관이 이러한 공개 기록을 유지하도록 요구합니다.
이 실습에서는 Linux 명령줄을 사용하여 Whois 데이터베이스를 쿼리하는 방법을 배웁니다. 대상 도메인에 대한 기초 정보를 수집하고, 관리자 연락처 정보를 추출하며, 대상의 트래픽 라우팅을 담당하는 권한 있는 네임서버를 식별하게 됩니다.
Whois 조회 수행
이 단계에서는 대상 도메인에 대해 기본적인 Whois 조회를 수행하는 방법을 배웁니다. 이 교육적 실습을 위해 ubuntu.com을 대상으로 사용하겠습니다.
Linux 의 whois 명령은 Whois 디렉토리 서비스를 쿼리하는 클라이언트 유틸리티입니다. 이 명령은 등록 기관, 생성 및 만료 날짜, 소유 조직을 포함하여 도메인 등록에 관한 정보를 검색합니다.
Whois 데이터는 실행 중인 시스템을 직접 보여주는 지도는 아니지만, 소유권 및 관리 관계를 드러냅니다. 이는 범위 지정, 귀속 확인, 그리고 어떤 외부 공급자가 대상의 인프라 일부일 수 있는지 파악하는 데 유용합니다.
조사 결과를 기록하기 위해 출력 리디렉션 연산자 (>) 를 사용합니다. 이 연산자는 일반적으로 화면에 출력될 명령의 결과를 가져와 파일에 저장합니다.
기본 작업 디렉토리 (~/project) 에 있는지 확인하십시오. 다음 명령을 실행하여 ubuntu.com에 대한 Whois 조회를 수행하고 전체 출력을 whois_full.txt라는 파일에 저장합니다:
whois ubuntu.com > whois_full.txt
출력을 리디렉션했기 때문에 화면에 아무것도 출력되지 않습니다. 명령이 제대로 작동했는지 확인하고 파일의 처음 몇 줄을 보려면 head 명령을 사용하십시오:
head -n 15 whois_full.txt
다음과 같이 초기 등록 세부 정보가 포함된 출력을 볼 수 있습니다:
Domain Name: UBUNTU.COM
Registry Domain ID: 121365156_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.markmonitor.com
Registrar URL: http://www.markmonitor.com
Updated Date: 2024-04-27T10:28:21Z
Creation Date: 2004-05-29T18:38:39Z
Registry Expiry Date: 2026-05-29T18:38:39Z
Registrar: MarkMonitor Inc.
Registrar IANA ID: 292
Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
Registrar Abuse Contact Phone: +1.2086851750
Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited
Name Server: NS1.CANONICAL.COM
이 원시 데이터에는 방대한 정보가 포함되어 있지만, 수동으로 읽기에는 부담스러울 수 있습니다. 다음 단계에서는 특정 정보를 얻기 위해 이 파일을 필터링하는 방법을 배웁니다.
관리자 연락처 추출
이 단계에서는 수집한 원시 Whois 데이터에서 특정 연락처 정보를 추출하는 방법을 배웁니다.
정찰 과정에서 관리자 및 기술 담당자를 식별하는 것은 매우 가치 있습니다. 이러한 이메일 주소와 전화번호는 대상 조직의 구조에 대한 통찰력을 제공하며, 평가의 후반 단계 (예: 사회 공학적 기법이나 주요 인물 식별) 에서 자주 사용됩니다.
현대의 개인정보 보호 규정으로 인해 개인 정보가 숨겨져 있더라도, 남아 있는 등록 기관 및 악용 사례 (abuse) 연락처는 도메인이 어떻게 관리되고 어떤 당사자가 책임을 지는지에 대한 정보를 제공합니다.
이 정보를 추출하기 위해 grep 명령을 사용합니다. grep은 특정 패턴과 일치하는 줄을 출력하는 강력한 Linux 텍스트 검색 유틸리티입니다. grep과 함께 -i 플래그를 사용하여 대소문자를 구분하지 않고 검색하도록 설정합니다. 즉, "Email", "email", "EMAIL" 모두 일치하게 됩니다.
다음 명령을 실행하여 whois_full.txt 파일 내에서 "email"이라는 단어를 검색하고, 결과를 contacts.txt라는 새 파일에 저장합니다:
grep -i "email" whois_full.txt > contacts.txt
이제 cat 명령을 사용하여 contacts.txt 파일의 내용을 확인합니다. cat은 파일을 읽어 전체 내용을 화면에 출력합니다:
cat contacts.txt
출력 결과는 다음과 같이 도메인과 관련된 연락처 이메일을 보여줍니다:
Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
Registrar Abuse Contact Email: abusecomplaints@markmonitor.com
Registrant Email: Select Request Email Form at https://domains.markmonitor.com/whois/ubuntu.com
Tech Email: Select Request Email Form at https://domains.markmonitor.com/whois/ubuntu.com
...
참고: GDPR 과 같은 현대의 개인정보 보호 규정으로 인해 많은 등록 기관이 공개 Whois 기록에서 개인 이메일 주소를 가리고 있습니다. 하지만 여전히 악용 사례 연락처 이메일이나 일반적인 관리자 주소를 찾을 수 있으며, 이는 여전히 유용한 정보입니다.
대상 네임서버 식별
마지막 단계에서는 대상 도메인에 대한 권한 있는 네임서버를 추출합니다.
네임서버는 도메인 이름 시스템 (DNS) 의 핵심 부분입니다. 네임서버는 인터넷의 전화번호부와 같은 역할을 하며, 사람이 읽을 수 있는 도메인 이름 (예: ubuntu.com) 을 컴퓨터가 통신에 사용하는 IP 주소로 변환합니다. 대상의 네임서버를 식별하면 어떤 회사가 DNS 인프라를 호스팅하는지 알 수 있습니다. 이를 통해 대상이 자체 서버를 내부적으로 관리하는지, 아니면 타사 클라우드 공급자 (예: AWS, Cloudflare 또는 특정 등록 기관) 를 사용하는지 파악할 수 있습니다.
이는 DNS 공급자가 종종 공격 표면의 일부가 되기 때문에 전략적으로 유용합니다. DNS 공급자는 전송 설정, 잘못된 구성 또는 대상이 외부 서비스를 운영하는 방식에 대한 단서를 노출할 수 있습니다.
다시 한번 grep 명령을 사용하여 원본 Whois 데이터를 필터링합니다. 이번에는 "Name Server"라는 용어를 찾습니다.
다음 명령을 실행하여 whois_full.txt에서 네임서버 기록을 추출하고 nameservers.txt라는 파일에 저장합니다:
grep -i "Name Server" whois_full.txt > nameservers.txt
cat 명령을 사용하여 추출된 네임서버를 확인합니다:
cat nameservers.txt
다음과 유사한 출력을 볼 수 있습니다:
Name Server: NS1.CANONICAL.COM
Name Server: NS2.CANONICAL.COM
Name Server: NS3.CANONICAL.COM
Name Server: ns1.canonical.com
Name Server: ns3.canonical.com
Name Server: ns2.canonical.com
이 예에서 네임서버는 CANONICAL.COM을 가리킵니다. Canonical 은 Ubuntu 를 개발하고 유지 관리하는 회사입니다. 이는 Canonical 이 타사 서비스에 의존하지 않고 자체 DNS 인프라를 관리하고 있음을 의미하며, 이는 매우 가치 있는 기술적 정보입니다.
요약
축하합니다! 도메인 및 Whois 열거 실습을 성공적으로 완료했습니다.
이 실습에서는 기본 Linux 명령줄 도구를 사용하여 수동적 정찰을 수행하는 방법을 배웠습니다. whois 명령을 사용하여 공개 도메인 등록 데이터베이스를 쿼리하고, 출력 리디렉션 (>) 을 사용하여 조사 결과를 저장했습니다. 또한 grep 명령을 사용하여 방대한 텍스트를 파싱하고, 관리자 연락처 이메일 및 권한 있는 네임서버와 같은 구체적이고 실행 가능한 정보를 성공적으로 추출하는 연습을 했습니다.
이러한 기초 기술은 능동적인 스캔이나 참여가 시작되기 전에 대상의 외부 인프라를 매핑하는 데 필수적입니다.



