Nmap 을 이용한 기본 취약점 스캔

CompTIABeginner
지금 연습하기

소개

Nmap 을 이용한 기본적인 취약점 스캔 실습에 오신 것을 환영합니다. Nmap (Network Mapper) 은 네트워크 관리자와 보안 전문가가 네트워크 탐색 및 보안 감사에 사용하는 강력한 오픈 소스 도구입니다. 네트워크에서 사용 가능한 호스트, 해당 호스트가 제공하는 서비스, 실행 중인 운영 체제 등을 식별할 수 있습니다.

이 실습에서는 Nmap 을 직접 사용해 볼 것입니다. 먼저 Ubuntu 시스템에 Nmap 을 설치하고, 자신의 컴퓨터 (localhost) 를 스캔하여 열린 포트를 찾은 다음, 스캔 결과를 해석하여 실행 중인 서비스와 해당 버전을 식별하는 방법을 배웁니다. 이는 잠재적 취약점을 평가하는 첫 번째 단계입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 93%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

Ubuntu 22.04 에 Nmap 설치하기

이 단계에서는 Ubuntu 22.04 시스템에 Nmap 도구를 설치합니다. 소프트웨어를 사용하기 전에 먼저 설치되었는지 확인해야 합니다. Ubuntu 와 같은 Debian 기반 Linux 배포판의 표준인 apt 패키지 관리자를 사용할 것입니다.

먼저 시스템의 패키지 목록을 업데이트하는 것이 좋습니다. 이렇게 하면 최신 버전의 소프트웨어를 얻을 수 있습니다. 터미널을 열고 다음 명령을 실행합니다.

sudo apt update

apt가 저장소에서 최신 패키지 정보를 가져오면서 출력이 표시됩니다.

다음으로 apt install 명령을 사용하여 Nmap 을 설치합니다. -y 플래그는 프롬프트에 자동으로 "yes"로 응답하여 설치를 비대화형으로 만듭니다.

sudo apt install -y nmap

설치가 완료되면 버전을 확인하여 Nmap 이 올바르게 설치되었는지 확인할 수 있습니다.

nmap --version

설치를 확인하고 설치된 버전을 보여주는 다음과 유사한 출력이 표시되어야 합니다.

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libz-1.2.11 libpcre-8.39 nmap-libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

이제 Nmap 이 설치되었으므로 첫 번째 스캔을 수행할 준비가 되었습니다.

로컬호스트 포트 스캔으로 열린 서비스 식별하기

이 단계에서는 로컬 머신에서 기본적인 포트 스캔을 수행하여 열린 포트와 해당 포트와 관련된 서비스를 식별합니다. localhost (IP 주소 127.0.0.1) 를 스캔하는 것은 Nmap 사용을 연습하는 안전한 방법입니다. 자신의 시스템만 스캔하기 때문입니다.

포트 스캔은 서비스가 네트워크를 통해 통신하는 데 사용하는 컴퓨터의 열린 "문"을 확인합니다. 기본적으로 Nmap 은 가장 일반적인 1000 개의 TCP 포트를 스캔합니다.

로컬 머신에서 기본 스캔을 실행하려면 터미널에서 다음 명령을 실행합니다.

nmap localhost

이제 Nmap 이 머신을 스캔하고 결과를 보고합니다. 출력은 다음과 유사하게 표시됩니다. 실습 환경은 포트 8000 에서 실행되는 서비스가 미리 구성되어 있음을 참고하십시오.

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000087s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus
8000/tcp open  http-alt       SimpleHTTPServer 0.6 (Python 3.10.12)

Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

이 출력 내용을 살펴보겠습니다.

  • PORT: 포트 번호와 프로토콜 (예: 8000/tcp).
  • STATE: 포트의 상태. open은 서비스가 해당 포트에서 연결을 적극적으로 수락하고 있음을 의미합니다.
  • SERVICE: 해당 포트에서 일반적으로 발견되는 서비스의 일반적인 이름 (예: 포트 22 의 경우 ssh).

이 스캔을 통해 머신에서 포트 22 와 8000 이 열려 있음을 확인했습니다.

잠재적 취약점 파악을 위한 Nmap 스캔 결과 해석

이 단계에서는 Nmap 스캔 결과를 해석하여 잠재적 취약점을 식별하는 데 중요한 더 자세한 정보를 수집하는 방법을 배웁니다. 포트가 열려 있다는 것을 아는 것도 유용하지만, 해당 포트에서 실행되는 정확한 소프트웨어와 버전을 아는 것이 훨씬 더 강력합니다.

열린 포트 자체는 취약점이 아닙니다. 위험은 해당 포트에서 실행되는 서비스에서 발생합니다. 서비스가 오래되었거나 잘못 구성된 경우 악용될 수 있습니다.

서비스에 대한 자세한 정보를 얻으려면 -sV 플래그를 사용하여 Nmap 의 버전 감지 기능을 사용할 수 있습니다. 이 기능은 열린 포트를 프로빙하여 서비스 및 버전 정보를 결정합니다.

localhost에서 버전 스캔을 수행하려면 다음 명령을 실행합니다.

nmap -sV localhost

이제 출력이 더 자세해집니다. VERSION 열에 주의하십시오.

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh         OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
3001/tcp open  ssl/nessus?
8000/tcp open  http        SimpleHTTPServer 0.6 (Python 3.10.12)

Nmap done: 1 IP address (1 host up) scanned in 6.54 seconds

보시다시피 Nmap 은 이제 실행 중인 서비스의 특정 버전을 식별했습니다. 예를 들어 포트 8000 에서는 일반적인 웹 서비스 (http-alt) 가 아니라 SimpleHTTPServer 0.6 (Python 3.10.12)입니다.

이 버전 정보를 통해 보안 분석가 (또는 공격자) 는 온라인 취약점 데이터베이스 (예: CVE) 에서 "SimpleHTTPServer 0.6 (Python 3.10.12)"에 영향을 미치는 알려진 익스플로잇을 검색할 수 있습니다. 이것이 기본적인 취약점 스캔의 기본 프로세스입니다.

요약

이 실습을 완료하신 것을 축하드립니다! Nmap 을 사용한 네트워크 스캔의 세계로 첫걸음을 성공적으로 내디뎠습니다.

이 실습에서는 다음을 배웠습니다.

  • apt를 사용하여 Ubuntu 시스템에 Nmap 도구를 설치하는 방법.
  • localhost에서 기본적인 포트 스캔을 수행하여 열린 포트를 찾는 방법.
  • 버전 감지 스캔 (-sV) 을 사용하여 해당 포트에서 실행되는 특정 소프트웨어 및 버전을 식별하는 방법.
  • 잠재적 약점 영역을 식별하기 위해 스캔 결과를 해석하는 기본 원리를 이해하는 방법.

이러한 기술은 사이버 보안, 시스템 관리 또는 네트워크 엔지니어링 분야의 모든 사람에게 필수적인 기초 기술입니다. 더 고급 스캔을 위한 강력한 스크립팅 엔진 (NSE) 과 같이 Nmap 의 다른 많은 기능을 계속 탐색해 보시기 바랍니다.