모의 해킹 해봐~

정보 수집(수동적 정보 수집)

Alias._.B 2023. 11. 23.

수동적 정보수집(Footprinting) 개념

   • 발자국(Footprint)을 살펴보는 행위 > 해킹을 위한 사전 준비 작업

   • 간접적으로 외부에 노출되어 있는 정보를 획득하는 기법

      ⸰ 대상 시스템의 적접적인 반응 없이 정보를 획득하는 기법(직접 데이터를 주고받지 않음)

      ⸰ 대상에 대한 정보 수집의 흔적(log)을 남기지 않음

   • 대상의 전반적인 윤곽을 형성하기 위한 기초 작업(전체 과정의 70~80%)

   • 대상이 소유하지 않은 시스템을 공격 대상으로 선정할 수 있으므로 공격 범위 고려 필요

   • 획득 정보범위

      ⸰ 정보의 질을 따지지 않고 최대한 많은 양의 정보 수집

            ‣ 대상의 직접적인 반응으로 확인된 정보가 아니므로 차후 필터링 필요

 

수동적 정보수집 종류

   • 구글 해킹(Google Dork)

   • Domain 정보수집

      ⸰ whois, netcat

      ⸰ Zone Transfer, nslookup/dig

      ⸰ DNS Bruteforce

   • 네트워크 경로 정보수집

      ⸰ tracert

      ⸰ traceroute

 

구글 해킹(Google Dork)

   • Google의 검색엔진을 이용한 정보 수집

   • 상세 검색 옵션을 이용하여 방대한 정보를 신속, 정확하게 획득 가능

   • 기본 검색

   • 고급 검색

 

      ⸰ 단어나 문장을 활용한 검색 기능 외에 검색 연산자(상세 옵션)를 이용하는 검색

      ⸰ 다중 옵션 가능

      ⸰ 검색연산자 무조건 소문자

      ⸰ 검색연산자와 검색어 사이 공백 X

 

   • 저장된 페이지 검색

      ⸰ Google cache에 저장된 정보를 검색 > 대상 서버에 직접적인 접근 없이 정보 획득 가능

      ⸰ 서버에 직접 접근하지 않으므로 공격자의 흔적 노출 X

            ‣ cache로 검색한 페이지에 링크가 있는 경우 서버에 접근 가능성 존재

      ⸰ 현재 대상이 제공하지 않는 페이지의 내용도 확인 가능

 

   • 디렉터리 목록화(Directory Listing)

      ⸰ 웹 서버의 페이지를 디렉터리로 제공하는 기능

      ⸰ 서버에 Directory Listing 기능이 활성화되어 있는 경우 검색어를 통해 웹 디렉터리 페이지 이용 가능

            ‣ 검색어: index of/

      ⸰ 웹 서버 소스코드 및 민감한 데이터 다운로드 가능, 웹 서버 버전확인 가능

 

   • Server Versioning

      ⸰ 특정 버전의 서버를 찾은 경우, 해당 서버 버전의 공개된 취약점을 이용한 공격 가능

      ⸰ 서버 기본 페이지를 이용한 버전 정보 획득 가능

 

   • 보안설정

      ⸰ 웹 서버에 중요 데이터 및 임시파일 저장 X

      ⸰ 웹 서버, DB서버 분리 운영

      ⸰ 알려진 Google Dork검색어를 이용해 정기적인 취약점 진단 필요

            ‣ Directory Listing 취약점에 의한 디렉터리 구조 및 파일정보 노출

            ‣ 페이지 내 중요 정보 노출

            ‣ 인증 및 권한 처리의 미흡으로 내부 페이지 내용 노출

            ‣ 서버 설정 및 소스코드 수정(Secure Coding)을 통해 방어

      ⸰ 크롤링(Crawling) 방어

            ‣ 크롤링(Crawling): 인터넷 상의 웹 페이지를 탐색 및 수집하는 기능(WEB Spidering)

            ‣ root 디렉터리 내 robots.txt 파일 생성

            ‣ 주의점: 마케팅 관점에서의 크롤링은 사이트를 외부에 광고하는 수단

 

Domain 정보 수집

   • DNS에서 서비스 및 관리 용도로 정상 제공되는 정보 수집

   • 대상의 IP주소부터 물리적 주소, 관리자 메일주소, 서버현황 등 다양한 정보 수집 가능

   • 침투 대상의 대략적인 서비스 구조 파악 가능

   • 시스템 관리자의 메일주소 등을 확보하여 차후 공격에 활용 가능

   • 획득 가능 정보

      ⸰ 도메인 이름

      ⸰ 도메인 등록기관 및 관리기관

      ⸰ 침투 대상의 네트워크 주소

      ⸰ 관리자 및 기술 관련 정보

      ⸰ Record 생성 시기 및 업데이트 시기

      ⸰ 주 DNS, 보조DNS 이름

      ⸰ 물리적인 위치(회사 주소) 및 전화번호 등

 

   • whois 서비스

      ⸰ Well Known 서비스 중 한 가지, DNS 관리자들 간의 상호 협력 및 Domain 등록/관리를 위해 사용

            ‣ 인터넷에서의 유일성 보장을 위한 인터넷 주소의 등록 및 할당 정보 제공

            ‣ 인터넷 관련 문제 해결을 위해 해당 인터넷 주소의 네트워크 및 관리자 정보를 국제적으로 공유

      ⸰ port: TCP 43

      ⸰ whois 서비스 관리기관: RIR(Regional Internet Registry)

      ⸰ RIR(지역별 인터넷 등록기관)

            ‣ 지정된 대륙 및 국가의 인터넷 자원 배분과 등록을 관리하는 조직

            ‣ 국가 인터넷 등록기관(NIR, National Internet Registry) or ISP(Internet Service Provider)에 주소 분배

            ‣ 대륙별 5개 운영, 대륙에 속해있는 국가에서 위탁받아 운영

            ‣ 대한민국의 경우 KISA에서 운영

      ⸰ netcat을 이용한 정보 조회

            ‣ nc -v whois.nic.or.kr 43

 

   • DNS Zone Transfer

      ⸰ 영역 전송(Zone Transfer)을 이용한 정보 획득

            ‣ 주 DNS 서버와 보조 DNS 간 zone 동기화 기능을 악용하여 DNS가 가지고 있는 zone에 대한 전체 정보 획득

      ⸰ 획득 가능 정보

            ‣ 시스템의 용도 및 특성, IP목록

            ‣ 장비 및 OS정보(HINFO, TXT 레코드 통해 획득)

            ‣ 확인된 시스템의 취약점 분석을 통해 침투 시나리오 구성

      ⸰ 공격 방식

            ‣ 동기화 요청 Query(AXFR) 전달 후 해당 응답을 통해 특정 zone에 대한 모든 도메인 정보 획득

            ‣ nslookup, dig, DNS 정보수집 Tools 이용

      ⸰ 주의점

            ‣ 모의해킹 사전 계약 단계에서 명시된 범위에 해당하는지 확인 필요

            ‣ 호스팅 업체를 이용하는 경우 공격 허가를 받지 않은 상태에서의 공격은 불법

      ⸰ nslookup

            1. 공격할 도메인의 DNS 서버주소 확인

               set type=ns

               <공격할 도메인 주소>

            2. 질의할 서버 변경

               server <공격할 도메인의 DNS 서버주소>

            3. 레코드 타입을 모든 종류로 변경

               set type=any

            4. 영역전송 요청

               ls -d <공격할 도메인 주소>

      ⸰ dig

            1. 공격할 도메인의 DNS 서버주소 확인

               dig <공격할 도메인주소> ns

            2. 질의할 서버 변경 및 영역 전송 요청

               dig @<공격할 도메인의 DNS 서버주소> <공격할 도메인 주소> axfr

      ⸰ 보안설정

            ‣ 주 DNS서버에서 Zone Transfer 요청 허용 대상 지정

               allow-transfer { any; }; : 전체 허용

               allow-transfer { none; }; : 전체 거부

               allow-transfer { IP address; }; : 지정된 출발지 IP의 요청만 허용

 

   • DNS Brute Forcing

      ⸰ 무차별 대입공격(Brute-Force)

            ‣ 구할 수 있는 모든 경우의 수를 대입하여 정확한 결과를 통해 정보를 획득하는 공격

            ‣ 공격 시간 단축을 위해 응용된 공격 사용

               - 사전 공격(Dictionary Attack): 확률이 높은 값을 미리 파일에 저장 후 파일에 저장된 값으로 대입 공격

               - Rainbow Table Attack 

            ‣ 장점: 무조건 정보 획득 가능

            ‣ 단점: 경우의 수↑ = 소요 시간↑ (노력비용 > 공격 성공 시 이익)

      ⸰ Zone Transfer 제한 설정으로 정보획득에 실패한 경우 시도하는 공격 방식

      ⸰ 유추 가능한 도메인 주소를 이용하여 일반 Query를 반복적 수행

      ⸰ 정상 응답을 하는 도메인 주소의 정보 수집

      ⸰ DNSEnum

            ‣ Dictionary Attack Tools

               - 사전파일 준비 필요(text 파일)

               - 예제 사전파일: /usr/share/dnsenum/dns.txt

            ‣ dnsenum --dnsserver <서버주소 -f <사전파일> <origin domain>

      ⸰ DNSmap

            ‣ Dictionary Attack Tools

               - 사전파일 준비 필요(text 파일)

               - 예제 사전파일: /usr/share/dnsmap/wordlist_TLAs.txt

            ‣ 주의점: /etc/resolv.conf에 지정된 DNS 서버로 공격 수행

            ‣ Dnsmap <origin domain> -w <사전파일>

      ⸰ Fierce

            ‣ Brute-force Attack Tools

            ‣ 주의점: /etc/resolv.conf에 지정된 DNS 서버로 공격 수행

            ‣ Fierce -dns <origin domain>

      ⸰ Atk6-dnsdict6

            ‣ DNSmap 기반

            ‣ 옵션을 지정하지 않으면 기본 IPv6 검색

               - IPv4 검색 옵션: -4

            ‣ 주의점: /etc/resolv.conf에 지정된 DNS 서버로 공격 수행

            ‣ atk6-dnsdict6 -4 <origin domian> <사전파일>

      ⸰ LBD(Load Balancing Detector)

            ‣ DNS, WEB 서버의 부하분산 여부 확인

            ‣ lbd <domain 주소>

 

네트워크 경로정보 수집

   • 침투자부터 침투 대상까지의 경유하는 시스템 정보확인

   • ICMP Time Exceeded를 발생시켜 경로별 정보 수집

      ⸰ 목적지까지의 각 Next Hop마다 IP헤더의 TTL값이 만료되도록 조정(+1)

   • 주의점: NAT 수행 시 TTL 값이 재설정되기 때문에 VMware의 NAT환경에서는 경로 추적 불가

   • Windows

      ⸰ tracert 사용, ICMP echo를 이용하여 동작

      ⸰ tracert <도메인 or IP주소>

   • Linux/Unix

      ⸰ traceroute 사용, UDP를 이용하여 동작

      ⸰ UDP Port를 이용하여 ICMP가 차단된 장비에서도 응답 수신 가능

            ‣ Port Unreachable 에러 발생을 위해 사용(Open) 하지 않을 만한 30000번 이상의 port 번호 사용

      ⸰ traceroute <도메인 or IP주소>

'모의 해킹 해봐~' 카테고리의 다른 글

정보 수집(능동적 정보 수집)  (1) 2023.11.26
정보 수집(사회공학)  (2) 2023.11.22
모의 해킹(Penetration Testing)  (0) 2023.11.22
정보보안  (1) 2023.11.21

댓글