수동적 정보수집(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 |
댓글