Sub Domain
자회사를 뿌리에 두고, 다른 분야의 사업을 하는 계열사들이 있듯이
대표적으로 사용하거나 노출하는 도메인 하위에는 다양한 서브 도메인들이 있습니다.
예를 들어 http://example.com 을 관리하는 회사에서, 메일과 관련된 서비스를 처리하기 위해서는
http://mail.example.com 등으로 메인 도메인 하위에 존재하는 확장 주소입니다.
서브 도메인을 수집하는 방법에는 여러가지가 있지만 이것에 대해서 논하기 이전에 현실적인 부분을 다루겠습니다.
대부분의 기업들은 서로 말하지 않아도 규칙이 비슷한 양상이 있습니다.
예를 들어 http://example.com 의 개발 서버는 http://dev.example.com 등으로 사용하는 것처럼 말이죠.
실제로 레드팀 모의침투를 진행하면 메인 도메인 서비스에서는 발견되지 않는 초기 침투 발판이
서브 도메인에서 직접적으로 RCE가 가능하다거나, 수집한 크리덴셜 등의 정보로 초기 침투의 발판이 되기도 합니다.
그럼에도 불구하고 기업은 브랜드 통일성과 인지도 등의 이유로 메인 도메인 하위에 확장 주소를 사용합니다.
또한 도메인은 한정적인 자원이기 때문에 도메인을 등록할 때마다 비용이 발생하는 반면,
서브 도메인은 추가 비용 없이 원하는 만큼 만들 수 있으며 DNS 관리도 일괄적으로 용이하다는 이유도 있습니다.
외부망
서브 도메인 탐색에 대한 방법론은 여러가지가 있지만, 본 위키에서는 자동/수동적인 방법으로 나눈 후,
자동화된 방법의 방식 중 브루트포스와 정보 수집 방식으로 나누어 기술하겠습니다.
자동화된 정보 수집
자동화된 정보 수집은 오픈 소스로 공개되어 있는 도구를 사용하며, 주로 3가지 방식으로 정보를 수집합니다.
자주 사용되는 서브 도메인 주소를 목록화하여 메인 도메인 하위에 붙인 뒤 요청하는 브루트 포스 방식
메인 도메인에 접속하여 자바스크립트나 API 호출 등을 통해서 확인하는 패킷 분석 방식
구글, Bing 등의 검색 엔진을 통해 외부에 노출된 서브 도메인을 탐색
장점
존재하지 않는 서브 도메인에 대한 요청을 보낼 경우 트래픽이 발생하지 않아 부하가 적음
공개된 정보가 없더라도 사전 파일을 통핸 서브 도메인 발견이 가능
유추가 힘든 도메인도 발견이 용이
대용량 사전파일을 사용하는 브루트포스 방식에 비해 시간이 짧은 편
단점
사전 파일의 크기에 의존하기 때문에 정보 수집 확률을 높일 수록 시간이 오래 걸림
사전 파일에 존재하지 않는 서브 도메인은 찾을 수가 없음
공개하고 있는 정보가 없다면 서브 도메인을 수집하기 어려움
수동적 정보 수집
수동적으로 수집하는 정보는 OSINT를 목적으로 두는 사이트를 이용하여 탐색하는 방법입니다.
필자가 주로사용하는 사이트는 다음과 같습니다.
다음으로 DNS 서버에 질의를 통해 정보를 수집하는 도구입니다.
dig
dig는 DNS 서버의 잘못된 설정을 이용하여 정보 수집할 수 있는 도구입니다.
DNS 구조는 아래와 같이 트리 구조로 되어있어 상위 도메인은 하위 도메인들에 대한 정보를 알 수 있습니다.
dig axfr 요청은 메인 도메인에 대해서 질의하여 어떤 하위 도메인이 있는지 확인하는 정상적인 정보 요청입니다.
하위 도메인에 대한 정보를 누구에게나 주면 안 되기 때문에 DNS 서버는 이러한 요청을 한 클라이언트의
신원을 파악하여 응답해주지만, 잘못된 설정이 되어있어 인증 과정이 취약하다면 공격자는 DNS 서버에 대한
요청을 통해 해당 메인 도메인 하위에 있는 모든 서브 도메인을 획득할 수 있습니다.
DNS 서버 간의 정보 동기화 및 공유를 위해 사용하기 때문에 MS-DRSR과 비슷하며,
이를 악용하는 방식 또한 DCSync와 매우 유사합니다.
dig 명령을 사용할 때 도메인과 네임 서버를 입력해야 하는데, 내부망이라면 NS는 곧 DC가 될 것입니다.
하지만 외부망일 경우 NS를 질의한 뒤, NS의 IPv4 주소를 획득하고, 해당 값들을 플래그로 입력하여
최종적으로 dig를 통해 any, soa, axfr 등의 요청을 전송할 수 있습니다.
crt.sh
인증서 투명성은 암호화된 인터넷 연결을 위한 디지털 인증서의 발급을 검증할 수 있도록 하기 위한 절차입니다.
RFC 6962는 인증서 발급 기관이 발급한 모든 디지털 인증서에 대해서 감사를 위조할 수 없는 로그에 기록하도록
규정하고 있습니다.
이는 도메인에 대해 허위로 발급된 인증서를 탐지할 수 있도록 하는 장치이며 SSL 인증서 제공 업체는
이 정보를 crt.sh 사이트에 공유하고 새로 추가된 항목을 업데이트하여 접근할 수 있도록 관리합니다.
해당 사이트에서 인증서 투명성을 통해 확인하려는 서브 도메인을 GUI로 확인해도 되지만, 필요한 항목만
빠르게 스캔하여 목록화 하기 위해서 CLI 환경에서 다음과 같이 입력합니다.
내부망
내부망 도메인은 외부망과 달리 검색 등에 의한 결과를 기대하기가 어렵습니다.
내부 자산에 대한 정보가 공공연하게 노출되었거나, 다크웹 등에 떠도는 정보가 있다면 수확이 있겠지만
일반적으로 AD, 내부망 웹 서버 등에서 사용하는 도메인의 경우는 내부에만 노출되기 때문에
외부자 관점에서 정보를 수집할 수 없습니다.
따라서 DNS 프로토콜의 잘못된 설정 등을 이용하여 수집하거나 AD 환경이라면 블러드하운드를 사용하며
내부 웹서버 도메인이 존재한다면 브루트포스 공격을 통해 서브 도메인을 획득할 수 있습니다.
ffuf
References
Last updated
Was this helpful?