Dyrandy

Subdomain Takeover 개념과 찾기(Concepts and Finding) 본문

Concept Study/Web

Subdomain Takeover 개념과 찾기(Concepts and Finding)

Dyrandy 2019. 12. 8. 17:35

Subdomain?

서브도메인이란 원래 도메인에서 파생된 일종의 자식 도메인들을 지칭한다.

https://example.com 이란 주소가 있다고 가정해보자. 그럼 이 example.com의 자식 도메인들 즉, 서브도메인으로는 test.example.com, asd.example.com, m.example.com, www.example.com, 등 다양하게 있을 수 있다.

 

Subdomain Takeover?

서브도메인 테이크오버(subdomain takeover)은 바로 이런 서브도메인들을 노려 공격을 하는 것이다. 기업마다 서브도메인을 만들어 관리하는 경우가 비일비제하다. 특히 요즘 클라우드 환경이 늘어남으로써 이런 서브도메인들이 많이 늘어났다. 그리고 요즘 이런 subdomain takeover을 이용해 버그바운티를 얻는 사례가 많이 늘었다. (금액도 꽤 많이 받았다)

 

https://hackerone.com/reports/661751

https://hackerone.com/reports/325336

https://hackerone.com/reports/484420

 

Subdomain Takeover Basics

먼저 간략히 알아두면 좋은 2가지가 존재한다. A RecordCName이라는 것이다. 다소 생소할 것이다.

 

-       A Record

하나의 도메인이 하나의 IP(Version 4)1:1 대응하는 것을 뜻한다. , A Record를 이용해서 사람이 검색한 이름을 IP로 매핑해주는 것이다.

-       CName (Canonical Name)

다른 이름의 주소를 한개의 주소로 매핑 시켜주는 것을 뜻한다. , CNAME 레코드(Canonical Name Record)는 도메인 이름 시스템(DNS)에 있는 리소스 레코드의 일종으로, 하나의 도메인 이름(별칭)을 다른 도메인 이름(The Canonical Name)에 매핑한다.

Ex) w01fgang.tistory.com -> www.example.com (w01fgang에 접근했을 때 example.com으로 인식)

 

Subdomain Takeover Fundamentals

그럼 subdomain takeover은 정확히 무엇을 하는 공격인가? 이 공격은 사용 중은 아니지만 참고가 되고 있는 서브도메인을 탈취하는 공격이다. 다음 예시는 HackerOne을 번역한 것이다

Ex)

example.com이라는 사이트가 현재 동작 중이라고 가정하자. subdomain들을 찾던 도중 subdomain.example.com이라는 사이트를 찾았다고 가정하자. subdomain.example.com은 깃허브 주소를 가리키며 이 예제에서는 다수의 깃허브의 커스텀 페이지들을 가리키는 A Record를 갖고 있다고 가정하자.

그리고 이 subdomain.example.com으로 접근을 하면 404에러가 뜨는 것을 확인한다고 가정하자.

이때 공격자가 이 subdomain.example.com을 자기 깃허브 페이지로 설정을 할 수 있다면 (등록을 통해) 해당 subdomain에 표시되는 내용을 제어할 수 있다. (모든 사이트들이 되는 것은 아님을 명심하자)

 

How To Find Subdomain Takeover?

아마 이 글의 핵심이 될 내용이다. Subdomain Takeover은 어떻게 찾을 수 있나? 간단하게 봐서는 그냥 subdomain enumeration을 열심히 돌려서 찾는 방법이 있다.

DNS Dumpster, Virus Total, Index Subdomains라는 서비스들을 이용하면 빠르게 정보 수집이 가능하다.

 

다음으로는 Sublist3r이라는 매우 간단한 툴이다. Ahmed- Aboul-Ela가 만들었고 다양한 서치엔진들을 통해 서브도메인들을 찾는다.

설치 방법

$ git clone https://github.com/aboul3la/Sublist3r.git

$ cd Sublist3r

$ sudo pip install -r requirements.txt

 

위 명령어들을 순차적으로 입력하면 다운로드 받을 수 있다.

 

그리고 이것을 사용해보면

sublist3r 예시

 

What Can Subdomain Takeover Do?

Subdomain Takeover은 매우 위험한 공격에 속한다. 만약 이 공격이 성공한다면, CORS, SOP같은 보안 정책이 뚫리기 때문이다. (CORSSOP같은 보안 정책은 다른 포스트에서 다루도록 하겠다.)

또한 이 뿐만 아니라 cookie값 탈취의 가능성이 올라간다. 그 외에도 클릭재킹 같이 마이너한 공격들의 가능성 또한 올라간다.

 

***

혹시나 잘못된 정보나 오류가 있다면 뎃글로 남겨주시면 감사하겠습니다!

***

참고 사이트

https://www.hackerone.com/blog/Guide-Subdomain-Takeovers

https://www.hahwul.com/2018/06/about-subdomain-takeover-and-how-to-test.html

https://kr.godaddy.com/help/what-is-a-subdomain-296

https://swiftcoding.org/subdomains

https://en.wikipedia.org/wiki/CNAME_record

https://support.dnsimple.com/articles/a-record/

 https://securitytrails.com/blog/subdomain-takeover-tips

Comments