Nmap을 이용한 정보 수집 수행

NmapBeginner
지금 연습하기

소개

모의 해킹 과정에서 정보 수집 단계는 가장 중요한 단계 중 하나입니다. 이 실습은 정보 획득 도구의 사용법을 익히는 데 중점을 둡니다. 대상 호스트에 대해 더 많은 정보를 수집할수록 모의 해킹의 성공률은 높아집니다. Kali 시스템에는 일부 모의 해킹 도구가 미리 설치되어 있습니다. 이러한 도구를 사용하면서 정보 수집의 기본 단계를 점진적으로 익히게 될 것입니다.

이 과정은 실습 위주의 튜토리얼입니다. 실습 중 일부 작업을 이해하는 데 도움이 되도록 정보 보안 이론 내용을 추가하였으며, 실습과 병행하여 읽을 만한 가치가 있는 자료들을 추천해 드립니다.

대상 호스트의 열린 포트 스캔

이 단계에서는 도구를 사용하여 대상 호스트의 열린 포트를 스캔하는 방법을 알아봅니다.

모의 해킹 과정에서는 대상 호스트의 열린 포트를 파악하는 것이 필수적입니다. Kali Linux에는 Nmap과 Zenmap이라는 두 가지 기본 포트 스캔 도구가 제공됩니다. 여기서는 주로 이 두 도구의 사용법을 소개합니다.

먼저 실습 환경을 시작합니다. 호스트 머신은 Ubuntu(현재 연결된 데스크톱)이며, Docker와 QEMU 가상 환경이 설치되어 있습니다. 이들은 각각 Kali Linux 컨테이너와 Metasploitable2 대상 머신을 위한 플랫폼 지원을 제공합니다.

LabEx 호스트 머신에서 데스크톱의 xfce 터미널을 더블 클릭하고 터미널에 다음 명령어를 입력하여 Metasploitable2를 시작합니다:

sudo virsh start Metasploitable2

대상 머신이 시작될 때까지 기다립니다(1~3분 정도 소요될 수 있습니다).

대상 머신에 ping을 보내 실행 중인지 확인합니다(Ctrl-C를 눌러 ping 종료):

ping 192.168.122.102

이제 Kali 컨테이너를 시작하고 bash 인터페이스로 진입한 뒤, ping 작업을 실행하여 네트워크 연결을 확인합니다:

docker run -ti --network host b5b709a49cd5 bash

이제 ping 작업을 실행하여 네트워크 연결을 확인합니다(Ctrl-C를 눌러 ping 종료):

ping 192.168.122.102

이제 두 실습 환경이 모두 시작되었으며, 모의 해킹을 시작할 수 있습니다.

참고: 실수로 현재 bash를 종료하면 Kali 컨테이너가 자동으로 중지됩니다. 호스트 머신에서 docker run -ti --network host b5b709a49cd5 bash 명령어를 다시 실행하여 새 Kali 컨테이너를 시작하고 bash로 진입하여 실습을 계속할 수 있습니다.

TCP 포트 스캔 도구: Nmap

Nmap은 네트워크 탐색 및 보안 스캔 프로그램입니다. 시스템 관리자와 개인은 이 소프트웨어를 사용하여 대규모 네트워크를 스캔하고 어떤 호스트가 실행 중이며 어떤 서비스를 제공하는지에 대한 정보를 얻을 수 있습니다.

Nmap은 UDP, TCP Connect(), TCP SYN(하프 오픈 스캔), FTP 프록시(바운스 공격), Idle 스캔, ICMP, FIN, ACK 스캔, Xmas Tree, SYN 스캔, Null 스캔 등 다양한 스캔 기술을 지원합니다.

Nmap의 4가지 기본 기능은 다음과 같습니다:

  • 호스트 발견
  • 포트 스캔
  • 버전 탐지
  • 운영 체제 탐지

nmap 도구를 사용하여 다음 명령어를 입력하면 포트 스캔을 수행하고 대상 머신의 열린 포트에 대한 정보를 얻을 수 있습니다:

nmap 192.168.122.102

Zenmap: Nmap을 위한 그래픽 사용자 인터페이스

Zenmap은 Nmap 프로젝트에서 개발한 Nmap 기반의 공식 그래픽 사용자 인터페이스입니다. Zenmap은 Python으로 작성된 오픈 소스 무료 그래픽 인터페이스로, 다양한 운영 체제 플랫폼(Windows/Linux/Unix/Mac OS 등)에서 실행할 수 있습니다. Zenmap은 Nmap을 더 쉽게 조작할 수 있도록 설계되었습니다. 일반적인 작업은 프로필로 저장할 수 있으며, 사용자는 스캔 중에 프로필을 선택하여 서로 다른 스캔 결과를 편리하게 비교할 수 있습니다. 또한 네트워크 토폴로지를 그래픽으로 표시하는 기능도 제공합니다.

참고: LabEx 환경은 Kali 컨테이너를 사용하므로 현재 그래픽 인터페이스는 사용할 수 없습니다.

대상 호스트의 기본 정보 획득

이 단계에서는 운영 체제와 같은 대상 호스트의 기본 정보를 얻기 위해 도구를 사용하는 방법을 연습합니다.

이 단계에서는 대상 호스트의 운영 체제에 대한 기본 정보를 최대한 많이 수집해야 합니다. 이는 모의 해킹의 성공률을 높여줍니다. 정보 수집은 핑거프린팅(fingerprinting)을 의미하며, nmap의 -O-sV 매개변수와 같은 능동적 핑거프린팅 도구가 사용됩니다. 핑거프린팅은 거창하게 들릴 수 있지만, 실제로는 대상 호스트의 운영 체제 버전과 애플리케이션 버전을 식별하여 운영 체제 및 애플리케이션 수준의 취약점을 추가로 탐지하는 과정입니다.

능동적 핑거프린팅 도구

대상 호스트의 운영 체제를 확인하려면 다음 명령어를 사용합니다:

nmap -O 192.168.122.102

Kali 터미널에서 명령어를 실행하여 대상 머신의 정보를 확인합니다. 대상 머신의 IP 주소는 192.168.122.102입니다:

대상 호스트의 포트 서비스 정보를 얻으려면 다음 명령어를 사용합니다:

nmap -sV 192.168.122.102

수동적 핑거프린팅 도구

p0f와 같은 수동적 핑거프린팅 도구는 대상에게 특정 프로빙 데이터를 보내지 않고, 데이터를 수동적으로 수신하여 분석합니다. 따라서 일반적으로 탐지되지 않습니다.

p0f는 네트워크 분석에 강력하며 NAT, 로드 밸런싱, 애플리케이션 프록시 등을 분석하는 데 사용할 수 있습니다.

p0f가 식별하는 주요 정보는 다음과 같습니다:

  • 운영 체제 유형, 포트
  • NAT 모드 실행 여부
  • 방화벽 뒤에서 실행 중인지 여부
  • 로드 밸런싱 모드 실행 여부

Kali 터미널에서 다음 명령어를 실행하여 p0f로 대상 호스트를 관찰합니다. p0f는 유효한 패킷 필터 표현식을 기대하므로 host 키워드가 필요합니다:

p0f host 192.168.122.102

스텔스 스캔 (TCP 하프 오픈 스캔)

Kali 터미널에서 다음 명령어를 실행하여 스텔스 스캔을 수행합니다:

nmap -sS 192.168.122.102

이 방법의 장점은 탐지가 어렵고 은밀성이 높다는 것입니다. 일반적으로 대상 컴퓨터에 기록을 남기지 않습니다.

TCP Connect 스캔

Kali 터미널에서 다음 명령어를 실행하여 TCP Connect 스캔을 수행합니다:

nmap -sT 192.168.122.102

이 유형의 스캔은 대부분의 시스템에 기록되지만, 스텔스 스캔보다 더 많은 정보를 제공할 수 있습니다.

대상 사이트의 네트워크 서비스 정보 획득

이 단계에서는 대상 사이트가 제공하는 네트워크 서비스 정보를 획득합니다.

네트워크 서비스 정보 획득

대상 호스트의 네트워크 서비스에 대한 정보를 더 많이 수집할수록 모의 해킹의 성공률을 높이는 데 도움이 됩니다.

Firefox 브라우저를 열고 주소 표시줄에 http://192.168.122.102를 입력합니다. 모든 것이 정상이라면 다음과 같은 화면이 나타납니다:

LabEx 대상 사이트 홈페이지

amap을 사용하여 대상 호스트의 특정 포트 스캔

amap은 호스트의 특정 포트를 스캔하는 데 사용됩니다. LabEx Kali 터미널에서 다음 명령어를 입력하여 대상 호스트의 21번 포트를 스캔합니다:

amap -bqv 192.168.122.102 21

smtp-user-enum을 이용한 사용자 열거

smtp-user-enum 도구는 주로 SMTP 사용자 열거에 사용됩니다. LabEx Kali 터미널에서 다음 명령어를 입력하여 SMTP 사용자를 열거합니다:

smtp-user-enum -M VRFY -u root -t 192.168.122.102

요약

이번 실습에서는 다양한 일반 보안 도구를 사용하여 대상 호스트에 대한 정보를 수집하는 방법을 연습했으며, 다음과 같은 지식을 다루었습니다:

  • 도구를 사용하여 대상 호스트의 열린 포트 스캔
  • 운영 체제 등 대상 호스트의 기본 정보 획득
  • 대상 사이트가 제공하는 네트워크 서비스 정보 획득
  • 수집된 정보를 분석하여 잠재적인 공격 벡터 식별

실습 전반에 걸쳐 모의 해킹 과정에서 중요한 단계인 정보 수집을 위해 다양한 도구를 사용하는 방법을 배웠습니다. 이러한 도구와 기술을 숙달함으로써 대상 호스트에 대한 가치 있는 정보를 더 많이 수집하여 모의 해킹의 성공률을 높일 수 있습니다.