Nmap 을 이용한 스크립트 스캔
이 마지막 단계에서는 Nmap 의 스크립팅 엔진 (NSE) 을 살펴보겠습니다. NSE 는 Nmap 을 더욱 유용하게 만드는 정말 중요한 부분입니다. 이를 통해 사용자는 다양한 네트워킹 작업을 자동화하기 위해 스크립트를 작성하고 공유할 수 있습니다. 즉, 수동으로 수행하는 것보다 스크립트를 사용하여 작업을 더 빠르고 효율적으로 수행할 수 있습니다.
Nmap Scripting Engine (NSE) 이해
Nmap Scripting Engine (NSE) 은 Nmap 의 가장 강력하고 유연한 기능 중 하나입니다. 네트워크 작업을 위한 추가 도구를 제공하는 도구 상자라고 생각하십시오. Lua 프로그래밍 언어로 스크립트를 작성할 수 있습니다. Lua 는 배우기 쉽고 간단한 언어이므로 이러한 종류의 스크립트를 작성하는 데 적합합니다.
이러한 스크립트는 다양한 목적으로 사용할 수 있습니다.
- 네트워크 검색: 네트워크에 어떤 장치가 있는지 파악하는 데 도움이 됩니다.
- 버전 탐지: 장치에서 어떤 버전의 소프트웨어가 실행 중인지 파악할 수 있습니다.
- 취약점 탐지: 시스템의 보안 취약점을 찾을 수 있습니다.
- 백도어 탐지: 공격자가 시스템에 액세스하는 데 사용할 수 있는 숨겨진 방법을 찾는 데 도움이 됩니다.
- 취약점 악용: 이는 합법적이고 윤리적인 테스트 환경에서 수행해야 하지만, 공격자가 취약점을 어떻게 악용할 수 있는지 보여줄 수 있습니다.
Nmap 에는 미리 작성된 스크립트가 많이 포함되어 있습니다. 이러한 스크립트는 수행하는 작업에 따라 라이브러리로 구성됩니다. 따라서 특정 작업을 수행하려는 경우 관련 라이브러리에서 올바른 스크립트를 쉽게 찾을 수 있습니다.
기본 스크립트 스캔 수행
기본 스크립트 스캔을 시작하려면 -sC 옵션을 사용합니다. 이 옵션은 Nmap 에게 기본 스크립트 집합을 실행하도록 지시합니다. 이러한 기본 스크립트는 안전하고 비침습적으로 설계되었습니다. 즉, 작업을 수행하는 동안 대상 시스템에 해를 끼치지 않습니다.
다음 명령을 실행해 보겠습니다.
nmap -sC localhost
이 명령을 실행하면 Nmap 이 로컬 머신을 스캔하기 시작합니다. 기본 스크립트를 사용하여 열린 포트와 해당 포트에서 실행 중인 서비스에 대한 정보를 수집합니다. 출력은 다음과 유사하게 표시됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2024-03-15 12:30 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef (RSA)
| 256 fe:dc:ba:98:76:54:32:10:fe:dc:ba:98:76:54:32:10 (ECDSA)
|_ 256 01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef (ED25519)
3000/tcp open ppp
3001/tcp open nessus
3002/tcp open ssl/nessus
8080/tcp open http-proxy
|_http-title: Welcome to nginx!
Nmap done: 1 IP address (1 host up) scanned in 1.31 seconds
특정 스크립트 실행
특정 스크립트를 실행하려면 --script 옵션을 사용할 수 있습니다. 이 옵션 뒤에는 스크립트의 이름 또는 속한 범주를 지정해야 합니다.
예를 들어, 웹 페이지의 제목을 얻고 싶다고 가정해 보겠습니다. 이를 수행할 수 있는 http - title이라는 스크립트가 있습니다. 이 스크립트를 실행하려면 다음 명령을 사용합니다.
nmap --script=http-title -p 8080 localhost
이 명령은 Nmap 에게 로컬 머신의 포트 8080 에서 http - title 스크립트를 실행하도록 지시합니다. 출력은 다음과 같습니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2024-03-15 12:35 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
|_http-title: Welcome to nginx!
Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
스크립트 스캔 결과 이해
스크립트 스캔의 결과는 열린 포트에서 실행 중인 서비스에 대한 더 자세한 정보를 제공합니다.
- 포트 22 의 SSH 서비스의 경우
ssh - hostkey 스크립트가 호스트 키를 검색했습니다. 이러한 키는 SSH 를 통한 보안 통신에 중요합니다.
- 포트 8080 의 HTTP 서비스의 경우
http - title 스크립트가 웹 페이지의 제목을 가져왔으며, 이는 "Welcome to nginx!"입니다.
이러한 종류의 정보는 보안 평가에 매우 유용합니다. 대상 시스템의 서비스가 어떻게 구성되고 어떻게 동작하는지 이해하는 데 도움이 됩니다.
Nmap 의 스크립팅 엔진을 사용하면 가장 강력한 기능 중 하나를 탐색했습니다. 이 기능은 네트워크 검색 및 보안 평가 작업과 관련하여 많은 시간과 노력을 절약할 수 있습니다.
정리
이제 모든 스캔 단계를 완료했으므로 정리할 시간입니다. 랩 초반에 Docker 컨테이너를 만들었습니다. 시스템을 깨끗하게 유지하려면 이 컨테이너를 중지하고 제거해야 합니다.
다음 명령을 실행합니다.
docker stop cyber-seed-server && docker rm cyber-seed-server
이 명령은 먼저 cyber - seed - server라는 이름의 실행 중인 Docker 컨테이너를 중지합니다. 그런 다음 시스템에서 컨테이너를 제거합니다.
축하합니다! 이 랩의 모든 단계를 성공적으로 완료했습니다. 다양한 Nmap 스캔 기술에 대한 귀중한 실무 경험을 얻었습니다.