서브도메인 탐색

  • 해당하는 주소로 서브 도메인이 있다고 한다.
  • 웹 서버가 아파치로 작동하는 것을 확인 한 바 있으므로 아파치 서브 도메인 시스템을 정리한다
  • 아파치는 가상 호스트라는 서브 도메인 시스템을 지원한다.
  • 아파치 설정 파일에 미리 정의한 호스트 값으로 들어오는 리퀘스트를 지정된 경로로 이어준다
파일 경로 : conf/extra/httpd-vhosts.conf 

NameVirtualHost *:80  //* 은 전체 아이피를 뜻함

<VirtualHost *:80>  
ServerAdmin [메일 주소]  
DocumentRoot "[Web 홈 디렉토리]"
ServerName [접속 도메인명]  
ServerAlias [별명]  
ErrorLog "logs/[에러 로그 파일명]"  
CustomLog "logs/[접속 로그 파일명]" common  
</VirtualHost>

---- // 이하 예시 - a.com 이 루트 도메인인 경우

<VirtualHost *:80>
ServerName asdf.a.com
DocumentRoot /var/www/asdf
</VirtualHost>					// asdf.a.com 으로 접속시
								// /var/www/asdf을 홈 디렉토리로 연결

<VirtualHost *:80>
ServerName qwer.a.com
DocumentRoot /var/www/qwer
</VirtualHost>					// qwer.a.com 으로 접속시
								// /var/www/qwer을 홈 디렉토리로 연결
  • 위는 아파치 서버의 가상 호스트 설정파일 예시이다
  • 이와 같이 설정 된 파일을 기반으로 아파치는 가상 호스트 서브 도메인 서비스를 제공한다.
  • 물론 DNS 상에서는 네임서버 데이터가 우선 적용되므로 DNS 서버에 등록을 하거나, 서브도메인을 서비스하는 웹 서버에 직접적으로 접근하여야 작동한다.
  • 해당 내용은 웹 서버에 SOA 레코드로 등록된다.

dig 를 사용하여 해당하는 도메인을 검색하고자 한다.

Dig 란?

  • 사전조사에서 확인했듯이 해당 웹 서버는 53번 포트로 DNS 서비스를 제공하고 있다.
  • 해당 환경에서는 NAT를 사용하고 있으므로 DNS 서버를 지정해주지 않으면 NAT DNS 서버에 쿼리 한다. (192.168.166.2)
  • 그러므로 질문하는 서버를 웹 서버로 지정하고, 서브 도메인 경로를 추가하여 권한 있는 도메인 존을 쿼리한다. (SOA 필드를 검색 - SOA 레코드 및 DNS 레코드)
dig @192.168.166.131 a.a.a.hackers.blackhat.local

    • 해당 명령어는 blackhat.local이 루트 도메인이라는 전제 하에
    • 4번째 서브 도메인까지 검색이 가능하다.
  • dig 실행 결과 192.168.166.131 의 도메인은 blackhat.localhackerkid.blackhat.local 두 개가 존재하는 것을 확인

아파치 서브 도메인 인식 방법

  • 해당 웹 서버는 아파치 2 를 사용하여 작동하는 것을 확인 한 바 있다.

  • 아파치 서버는 웹 리퀘스트의 HOST 값을 보고 해당하는 가상 호스트를 검색한다

  • 버프 스위트 같은 프록시 툴로 패킷을 변조하여 리퀘스트를 보내면 해당 서브 도메인에 접속할 수 있을 것으로 예상된다.

  • 또 다른 방법으로는 hosts파일 해당 IP 주소에 서브도메인을 그대로 등록하여, 리퀘스트를 보낼때 전송되는 HOST 값에 서브 도메인 주소가 들어가도록 할 수 있다.

버프 스위트를 사용하여 HOST 필드 변조

  • 해당 웹페이지 주소로 인터럽트

  • 주소와 HOST 필드 확인

  • 랜더링 버전

  • HOST 필드 값을 서브 도메인 포함한 주소로 변조하여 리퀘스트
  • 이전과 내용이 바뀐 것을 확인할 수 있다

  • 랜더링 버전
  • 버프 스위트 랜더링은 이미지 파일을 불러오는 등에 문제가 있기 때문에 웹 브라우저로 접속하면서, HOST 필드 값이 서브 도메인으로 들어갈 수 있도록 hosts 파일에 서브 도메인과 IP 주소를 등록한다.

hosts 파일 등록 및 해당 서브 도메인 페이지 접속

  • hosts 파일에 검색한 서브 도메인을 전부 등록한다

  • hackerkid.blackhat.local 접속 화면

  • blackhat.local 접속 화면

  • 이로써 둘 모두 웹 서버상 유효한 주소라는 것을 확인 할 수 있다

  • hackerkid 페이지는 4개의 입력 값을 받으므로 인젝션을 시도할 수 있을 것으로 보인다

  • blackhat 페이지는 403 포비든이 뜨는 것을 확인할 수 있다. 일반적으로 해당하는 파일에 접근할 권한이 없을 때 뜨는 오류이다.

다음에는 hackerkid.blackhat.local 에 입력값을 받는 칸이 있으므로, 해당 부분에서 취약점을 검색해본다.

profile
우리는 울지 않는 부엉이요, 발자국 없는 범이다.

0개의 댓글