해킹공주의 일상
Subdomain Takeover 취약점 본문
1. Subdomain Takeover 란?
하위 도메인 탈취 라는 의미로, 사이트내 존재하는 하위도메인 중에서 관리되지 않은 서브 도메인을 재등록하여 선점한 후 선점한 사이트를 이용하여 악성 행위를 수행하는 취약점을 의미한다.
파급효과는 다음과 같다
- 알려진 도메인이라는 점을 악용하여 피싱사이트로 유인하여 개인정보 탈취
- 도메인에 설정 되어있는 고정 쿠기값을 획득
- CORS, CSP 와 같은 콘텐츠 보안 정책 우회
- Click Jacking 삽입 가능
Click Jacking
웹 사용자가 자신이 클릭하고 있다고 인지하는 것과 다른 어떤 것을 클릭하게 속이는 악의적인 기법으로써 잠재적으로 공격자는 비밀 정보를 유출시키거나 그들의 컴퓨터에 대한 제어를 획득할 수 있게 된다
Subdomain
기존 도메인의 하위 도메인을 의미한다.하위 도메인은 보통 URL의 시작 부분에 포함된다,예를 들어 'support.google.com'이 'google.com'의 하위 도메인이다.
2. 상세 분석
2.1 도메인 작동방식(CNAME과 A Record)
상세분석을 시작하기 전, 도메인 작동방식과 단어들에 대해 이해할 필요가 있다.
CNAME
도메인주소를 또다른 도메인주소로 매핑시키는 DNS 레코드 타입이다. 어떤 도메인에 별명을 붙여주는 것과 같은의미이다. 예를 들면 다음과 같다.
www.naver.com -> naver.com
A Record
도메인에 IP주소를 매핑하여 사용하는 방식이다. 사람들이 IP 주소로 기억하기 어렵기때문에 기억하기 쉬운 도메인 주소로 보내게 된다
naver.com -> 111.222.xxx.xxx
만약 사용자가 네이버에 접속한다고 하면, 보통 다음과 같은 방식으로 작동한다.
www.naver.com --(CNAME)>> naver.com --(A Record)>> 111.222.xxx.xxx
CNAME을 사용하게 되면, IP 주소가 변경되어도 A Record만 변경해도 되기때문에 편리하다는 장점이 있고, A Record만 사용하게 되면 빠르다는 장점이 있다.
2.2 공격 시나리오
- 공격 대상 URL :
example.com
- 발견한 subdomain URL :
subdomain.example.com
- 연결된 서비스 : Github 사이트
$ host subdomain.example.com
subdomain.example.com의 주소는 192.30.252.153입니다.
subdomain.example.com의 주소는 192.30.252.154입니다.
$ whois 192.30.252.153 | grep "OrgName"
조직 이름: GitHub, Inc.
서비스 확인 결과, Github와 연결되어있음을 확인하였고 접속했을때 다음과 같이 없는 페이지라고 뜬다고 하자.
subdomain.example.com 접속 시 현재 연결된 사이트가 삭제되어 가리키는 사이트가 없기 때문에 404페이지가 노출된다.
이렇게 404 에러페이지가 뜬다고 모두 해당 공격이 가능한 것은 아니므로 다음 사이트를 참고하길 바란다.
https://github.com/EdOverflow/can-i-take-over-xyz
GitHub - EdOverflow/can-i-take-over-xyz: "Can I take over XYZ?" — a list of services and how to claim (sub)domains with dangli
"Can I take over XYZ?" — a list of services and how to claim (sub)domains with dangling DNS records. - GitHub - EdOverflow/can-i-take-over-xyz: "Can I take over XYZ?" — a list o...
github.com
공격자는 다음과 같이 Github 개인 페이지에서 도메인을 등록할 수 있다.
위와 같이 간단한 사진을 블로그에 올렸을 때 그대로 해당 도메인에 노출되는 것을 확인할 수 있다.
3. 테스트 툴
subfinder 라는 툴을 사용하면 하위 도메인을 파악할 수 있고, 이를 활용하여 테스트해볼 수 있다.
자세한 사용방법 및 다운로드는 다음 링크를 참고하길 바란다.
https://www.youtube.com/watch?v=NgY6HICHtFY
https://github.com/projectdiscovery/subfinder
GitHub - projectdiscovery/subfinder: Subfinder is a subdomain discovery tool that discovers valid subdomains for websites. Desig
Subfinder is a subdomain discovery tool that discovers valid subdomains for websites. Designed as a passive framework to be useful for bug bounties and safe for penetration testing. - GitHub - proj...
github.com
4. 대응방안
안쓰는 도메인이나 서비스 제거 시 CNAME 도 함께 제거 처리해주면 된다.
참고 :
https://www.hackerone.com/application-security/guide-subdomain-takeovers
https://guleum-zone.tistory.com/171
https://www.hahwul.com/2018/06/26/about-subdomain-takeover-and-how-to-test/
'모의해킹 > WEB' 카테고리의 다른 글
Time Based SQL Injection 공격 기법 정리 (0) | 2023.01.04 |
---|---|
Response-based SQL Injection 공격 기법 정리 (0) | 2023.01.04 |
SQL INJECTION 취약점 이해 및 시나리오 정리 (0) | 2022.10.28 |
SSRF 취약점의 이해 및 공격 예시 (1) | 2022.10.28 |
Hash Length Extension 공격 (0) | 2022.10.28 |