Domain/Subdomain takeover

Reading time: 6 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

Domain takeover

어떤 도메인(domain.tld)이 범위 내의 서비스에 의해 사용되고 있지만 회사가 소유권잃은 경우, 이를 등록하려고 시도할 수 있습니다(가격이 저렴할 경우) 그리고 회사에 알려줄 수 있습니다. 이 도메인이 GET 매개변수나 Referer 헤더를 통해 세션 쿠키와 같은 민감한 정보를 받고 있다면, 이는 확실히 취약점입니다.

Subdomain takeover

회사의 서브도메인이 등록되지 않은 이름의 제3자 서비스를 가리키고 있습니다. 이 제3자 서비스에서 계정을 생성하고 사용 중인 이름등록할 수 있다면, 서브도메인 탈취를 수행할 수 있습니다.

가능한 탈취를 확인하기 위한 여러 도구와 사전이 있습니다:

Subdomain Takeover Generation via DNS Wildcard

DNS 와일드카드가 도메인에 사용될 때, 해당 도메인의 요청된 서브도메인 중 다른 주소가 명시적으로 없으면 같은 정보로 해결됩니다. 이는 A IP 주소, CNAME 등이 될 수 있습니다.

예를 들어, *.testing.com1.1.1.1로 와일드카드 처리되면, not-existent.testing.com1.1.1.1을 가리키게 됩니다.

그러나 IP 주소를 가리키는 대신, 시스템 관리자가 이를 CNAME을 통해 제3자 서비스로 가리키게 하면, 예를 들어 Github 서브도메인(sohomdatta1.github.io)과 같은 경우, 공격자는 자신의 제3자 페이지(이 경우 Gihub에서)를 생성하고 something.testing.com이 그곳을 가리킨다고 주장할 수 있습니다. 왜냐하면, CNAME 와일드카드가 공격자가 희생자의 도메인에 대해 임의의 서브도메인을 생성하여 자신의 페이지를 가리키게 할 수 있도록 허용하기 때문입니다.

이 취약점의 예시는 CTF 작성물에서 확인할 수 있습니다: https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api

Exploiting a subdomain takeover

서브도메인 탈취는 본질적으로 특정 도메인에 대한 DNS 스푸핑으로, 공격자가 도메인에 대한 A 레코드를 설정하여 브라우저가 공격자의 서버에서 콘텐츠를 표시하도록 합니다. 이러한 투명성은 브라우저에서 도메인을 피싱에 취약하게 만듭니다. 공격자는 이를 위해 typosquatting 또는 Doppelganger domains를 사용할 수 있습니다. 특히 피싱 이메일의 URL이 합법적으로 보이는 도메인은 사용자들을 속이고 도메인의 본질적인 신뢰로 인해 스팸 필터를 회피하는 데 취약합니다.

자세한 내용은 이 게시물을 확인하세요.

SSL Certificates

SSL 인증서는 공격자가 Let's Encrypt와 같은 서비스를 통해 생성한 경우, 이러한 가짜 도메인의 신뢰성을 높여 피싱 공격을 더욱 설득력 있게 만듭니다.

브라우저의 투명성은 쿠키 보안에도 확장되며, 이는 Same-origin policy와 같은 정책에 의해 관리됩니다. 쿠키는 종종 세션을 관리하고 로그인 토큰을 저장하는 데 사용되며, 서브도메인 탈취를 통해 악용될 수 있습니다. 공격자는 손상된 서브도메인으로 사용자를 유도하여 세션 쿠키를 수집할 수 있어 사용자 데이터와 개인 정보가 위험에 처할 수 있습니다.

CORS Bypass

모든 서브도메인이 메인 도메인 또는 다른 서브도메인에서 CORS 리소스에 접근할 수 있도록 허용될 수 있습니다. 이는 공격자가 CORS 요청을 악용하여 민감한 정보에 접근할 수 있게 할 수 있습니다.

CSRF - Same-Site Cookies bypass

서브도메인이 Same-Site 속성으로 인해 도메인 또는 다른 서브도메인에 쿠키를 전송하는 것이 허용될 수 있습니다. 그러나, 올바르게 구현된 경우 anti-CSRF 토큰이 여전히 이 공격을 방지할 것입니다.

OAuth tokens redirect

손상된 서브도메인이 OAuth 흐름의 redirect_uri URL에서 사용될 수 있는 경우가 있을 수 있습니다. 이는 공격자가 OAuth 토큰을 훔치는 데 악용될 수 있습니다.

CSP Bypass

손상된 서브도메인(또는 모든 서브도메인)이 CSP의 script-src와 같은 곳에서 사용될 수 있는 경우가 있을 수 있습니다. 이는 공격자가 악성 스크립트를 주입하고 잠재적인 XSS 취약점을 악용할 수 있게 할 수 있습니다.

Emails and Subdomain Takeover

서브도메인 탈취의 또 다른 측면은 이메일 서비스입니다. 공격자는 MX 레코드를 조작하여 합법적인 서브도메인에서 이메일을 수신하거나 발송할 수 있어 피싱 공격의 효율성을 높일 수 있습니다.

Higher Order Risks

추가적인 위험으로는 NS 레코드 탈취가 있습니다. 공격자가 도메인의 하나의 NS 레코드를 제어하게 되면, 그들은 자신의 제어 하에 있는 서버로 트래픽의 일부를 유도할 수 있습니다. 공격자가 DNS 레코드에 대해 높은 **TTL (Time to Live)**을 설정하면 공격의 지속 시간이 늘어나 이 위험이 증가합니다.

CNAME Record Vulnerability

공격자는 더 이상 사용되지 않거나 폐기된 외부 서비스로 가리키는 미청구 CNAME 레코드를 악용할 수 있습니다. 이를 통해 신뢰할 수 있는 도메인 아래에 페이지를 생성하여 피싱 또는 악성 소프트웨어 배포를 더욱 용이하게 할 수 있습니다.

Mitigation Strategies

완화 전략에는 다음이 포함됩니다:

  1. 취약한 DNS 레코드 제거 - 서브도메인이 더 이상 필요하지 않은 경우 효과적입니다.
  2. 도메인 이름 주장 - 해당 클라우드 제공업체에 리소스를 등록하거나 만료된 도메인을 재구매합니다.
  3. 취약점에 대한 정기적인 모니터링 - aquatone와 같은 도구가 취약한 도메인을 식별하는 데 도움이 될 수 있습니다. 조직은 또한 DNS 레코드 생성이 리소스 생성의 마지막 단계이자 리소스 파괴의 첫 번째 단계가 되도록 인프라 관리 프로세스를 재검토해야 합니다.

클라우드 제공업체의 경우, 도메인 소유권 확인은 서브도메인 탈취를 방지하는 데 중요합니다. GitLab과 같은 일부는 이 문제를 인식하고 도메인 확인 메커니즘을 구현했습니다.

References

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기