백박스 리눅스를 활용한 모의 침투 — 5장 (2)
5장 다양한 정보 수집 도구(2)
INDEX
- NMap
- WhatWeb
- Nikto
1. NMap
앞선 장에서 사용했던 하비스트(TheHarvester)가 수동적인 정보 수집에 사용되는 툴이었다면, nmap은 능동적인 정보 수집에 사용되는 툴이다.
하비스트보다 실시간으로 보다 구체적인 정보를 획득할 수 있다는 장점이 있다.
여기서 NMap이란?
고든 라이온(Gordon Lyon)이 작성한 보안 스캐너이다. 이것은 컴퓨터와 서비스를 찾을 때 쓰이며,네트워크 ‘지도’ 를 함께 만든다.
더 많은 정보는 nmap.org에서 확인할 수 있다.
nmap -v 명령어를 이용하여 백박스에 설치된 NMap의 버전 정보를 확인할 수 있다.
실제로 모의 침투를 할 때 엔맵을 사용하면 공격자가 공격대상자에게 직접 접근해야 하기에 두 가지 위험(방화벽에 의한 차단, 침입 탐지 장치에 의한 감지)이 발생할 수 있다.
공격대상자 포트 스캔의 발각은 곧 모의 침투 실패로 이어지기에 치명적이다.
공격대상자의 포트를 스캔할 때, 도메인 네임을 사용하면 IP주소로 변경해야 하기에 지연이 발생한다. 그렇기 때문에 도메인 네임보다는 ip주소를 사용하는 것이 더 좋다.
이제 NMap을 이용해서 공격대상자의 포트를 스캔할 것이다.
nmap -sT -sV -O 192.168.10.202은 공격대상자의 전체 포트를 스캔하는 명령어이다.
이는 전체 포트 번호를 대상으로 작업을 수행하기 때문에 시간이 오래 걸릴 수도 있다.
UDP 포트 스캔의 경우는 자칫 무한 대기 상태에 빠질 수도 있기에 실제로 포트 스캔을 수행할 때는 특정 포트 번호만 설정해서 수행하는 것이 좋다.
- -sT 플래그 : TCP 속성인 전송 전 3단계 연결 설정(3-Way Handshaking)과정에 따라 정보를 수집하겠다는 의미이다.
- -sV 플래그 : 해당 포트에서 사용하는 서비스에 대한 보다 상세한 정보를 수집한다는 의미이다.
- O 플래그 : 공격 대상자의 운영 체제 정보를 수집한다는 의미이다.
여기서, 3단계 연결 설정(3-Way Handshaking)이란?
정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.
[그림5(2)–3]은 [그림5(2)–2]에 따른 전체 포트 스캔 결과이다.
위 쪽이 스캔한 포트들의 정보이고, 아래쪽이 수집한 운영체제 정보이다
nmap 192.168.10.202 -sU -sV -O -p (원하는 포트 번호)은 특정 포트만 스캔하는 명령어이다.
- -sU 플래그 : UDP 속성에 따라 정보를 수집한다는 의미이다.
- -p 플래그 : 특정 포트를 지정한다는 의미이다.
여기서, UDP란?
User Datagram Protocol의 약자로,
인터넷에서 정보를 주고받을 때, 서로 주고받는 형식이 아닌 한쪽에서 일방적으로 보내는 방식의 통신 프로토콜이다.
2. WhatWeb
여기서 WhatWeb이란?
공격대상자를 대상으로 웹 서비스 정보를 수집할 수 있는 도구이다.
apt-get install whatweb 명령어를 이용해 whatweb 설치를 진행해준다.
whatweb 192.168.10.202 -v은 해당 ip의 상세정보를 출력하라는 명령어이다.
- -v 플래그 : 상세 정보를 출력하라는 의미이다.
3. Nikto
Whatweb을 이용하여 수집한 정보를 토대로 Nikto 도구를 통해 잠재적인 취약점 분석이 가능하다.
여기서 Nikto란?
6500 개 이상의 잠재적으로 위험한 파일을 포함한 여러 항목을 웹서버에 대한 포괄적 테스트를 수행한다. 다양한 서버에서 특정 문제, 취약점이 있는 확인하는 오픈소스의 웹 서버 스캐너이다.
nikto -host 192.168.10.202 -port 80 -Format txt -output /root/nikto.txt
- -host 플래그는 취약점 점검 대상자의 IP 주소를 나타낸다.
- -port 플래그는 점검할 포트 번호를 나타낸다.
- -Format은 저장할 파일의 확장자를 나타낸다.
- -output은 점검한 결과를 저장할 위치와 파일 이름을 나타낸다.
취약점 코드를 표기하는 방법은 OSVDB와 CVE 2가지가 있다.
우리 실습에서는 OSVDB가 사용됐다.
[그림5(2)–8]을 보면 “OSVDB-877”과 같이 OSVDB 표시를 발견할 수 있다.
여기서, OSVDB란?
Open Sourced Vulnerability Database의 약자로
오픈 소스 소프트웨어를 대상으로 발견한 취약점 코드를 의미한다.
예를 들어 osvdb-877은 877번째로 발견한 취약점 코드를 의미한다.
CVE란?
Common Vulnerabilities and Exposures의 약자로
모든 소프트웨어를 대상으로 발견한 취약점 코드를 의미한다.
예를 들어, cve-2002–1123은 모든 소프트웨어를 대상으로 2008년 1123번째 발견한 취약점이라는 의미이다.
마치며
이번 5장 (2)는 위에 단계만 잘 따라오신다면 큰 문제는 없을 것으로 보입니다.
다른 실습들에 비해 설치해야하는 것이 적었기 때문에 많은 혼란과 어려움이 적었던 것 같습니다.
다음시간에는 “인증 침투 도구”에 대해 포스팅 할 것 입니다.
[WARNING]
공부한 내용을 정리하는 글이라서 틀린 내용이 있을 수도 있습니다. 잘못된 내용이 있다면 망설이지 마시고 알려주세요!
읽어주셔서 감사합니다 :)