웹 해킹의 첫 시작은 “정보 수집(Information Gathering)”입니다. 공격 대상이 될 웹사이트의 구조와 리소스를 파악하여 발생 가능한 버그나 취약점을 유추하는 것이죠.
웹 서버에 침투하기도 전에 모든 내부 정보를 확보할 순 없겠지만, 웹사이트를 등록하고 운영하면서 공개적으로 드러나는 정보들을 추적할 순 있습니다. 대표적으로 아래와 같은 것들이 있죠.
- IP 주소
- 도메인/서브도메인 이름
- 열려있는 네트워크 포트(port) 정보와 포트마다 동작하는 서비스의 유형
- DNS 레코드
- 웹 서버의 OS 및 지원하는 애플리케이션 언어
- 검색창, 댓글, Q&A 등 사용자 입력을 받는 form의 종류
- 서드파티 앱의 활용 유무
- Admin 전용 페이지 유무
간혹, 같은 웹서버 위에 동시에 다른 웹사이트가 운영될 때도 있고, Facebook과 같은 대형 웹사이트들은 지역 거점마다 서버를 운영하여 다수의 IP 주소를 가지기도 합니다. 웹 스캐너는 한 사이트를 호스팅하면서 그와 연관되어 있는 IP 주소들과 사이트 리스트, 또 추가적으로 사용자 및 사이트 정보를 담고 있는 데이터베이스도 추적 가능합니다.
본 포스트에서는 잘 알려진 웹사이트 정보 수집 도구들을 5가지 소개하려 합니다.
1. Whois
https://whois.domaintools.com/
Whois(후이즈)는 웹 사이트의 소유주와 호스팅 업체에 대한 정보를 조회해줍니다. 우리나라에는 KISA에서 운영하는 사이트가 또 별도로 존재합니다.
원래 Whois는 통신 프로토콜의 하나로써 도메인 정보를 수집하는 데 쓰이는데요. 프롬프트나 웹 기반의 도구로 발전하여 사용자 입장에서 정보 수집을 용이하게 합니다.
Whois를 통해 알아낼 수 있는 정보는 아래와 같습니다.
- 도메인 등록 업체
- 도메인 등록일
- 네임서버
- IP 주소 대역
- 서버의 지리적 위치
- 웹서버 프레임워크 (ex, Apache)
- 대표 연락처
2. Robtex.com
Robtex.com는 Whois와 마찬가지로 웹사이트의 도메인 정보를 분석하는 웹 기반의 정보 수집 도구입니다. Robtex가 제공하는 유용한 기능으로 Reverse DNS lookup이 있는데요. 쉽게 풀어 설명하면, 특정 IP 주소를 사용한 이력이 있는 도메인을 모두 조회하는 기능입니다.
한 웹서버가 같은 IP에 동시에 여러 웹사이트를 운영하는 것이 가능합니다. 그 중 일부는 일반인들에게 공개되어 있지만, 또 일부는 메일 서버처럼 검색엔진으로는 노출되지 않는 것들도 존재합니다. Reverse DNS lookup을 활용하면 이렇게 숨겨진 사이트나 도메인도 모조리 확인할 수 있습니다.
3. nmap
nmap은 타겟 서버에서 활성화되어 있는 네트워크 포트를 검색하는 터미널 기반 도구입니다. 네트워크 스캐닝 도구로도 불리죠.
열려있는 각 포트에서 어떤 종류의 서비스(ex, ssh, http, shell, mysql 등등)이 동작하고 있는지도 알아낼 수 있습니다.
nmap -sV [IP 또는 URL]
명령어를 실행할 때, --script vuln
옵션을 붙이면 포트마다 발생할 수 있는 취약점을 상세하게 기술해줍니다. 이런 정보를 잘 응용하면 타겟 웹사이트를 공략하기 수월해지겠죠.
nmap --script vuln [IP 또는 URL]
4. whatweb
whatweb은 웹사이트가 구동 되는 환경 또는 연관된 플러그인 정보를 조사하는 도구입니다. whatweb을 통해 다음 정보들을 건질 수 있는데요.
- OS 정보
- 서버 프레임워크 (Apache 등)
- OpenSSL
- PHP
- Jquery
발견된 플러그인 중에 최신이 아니거나 취약점이 존재하는 버전이 있을 수 있고, 이러한 약점을 파고 들어 웹 해킹이 이뤄질 수 있습니다. 터미널에서 사용하는 방법은 아래를 참고해주세요.
whatweb [URL 주소]
whatweb --aggression 3 -v [URL 주소]
5. dirb
마지막으로 다뤄 볼 도구는 웹사이트 내 민감 데이터를 추적할 수 있는 dirb입니다. dirb는 웹서버의 디렉토리 구조를 파악하여 다양한 경로에 존재하는 웹 오브젝트(이미지, 스크립트 등)를 탐색합니다.
nmap, whatweb과 마찬가지로 터미널에서 명령어로 간단히 실행 가능합니다.
dirb [URL 주소]
탐색된 디렉토리 중에는 보안에 크게 신경 써야 하는 리소스들도 분명 있을 겁니다. 아래의 passwords/
디렉토리처럼, 누가 봐도 민감한 자료들이 저장되어 있는 경로가 스캐너에 걸려들 수 있는 것이죠.
지금은 Metaexploitable 이라는 모의 해킹 서버로 테스트해 본 것이지만, 실제 운영되는 웹사이트가 위와 같이 웹 디렉토리 경로를 눈에 띄게 노출시키면 상당히 위험한 것입니다.
브라우저를 열어 해당 경로로 들어가면 실제로 사용자 계정과 패스워드 쌍을 훔쳐볼 수 있습니다.