소개
이 랩에서는 강력한 네트워크 스캔 도구인 Nmap 을 사용하여 사용자 지정 포트를 스캔하는 방법을 배우게 됩니다. 이 랩은 스캔할 대상 포트 지정, 사용자 지정 포트 스캔과 SYN 스캔을 결합하여 효율성 향상, 그리고 나중 분석을 위해 스캔 결과를 저장하는 데 중점을 둡니다.
먼저 -p 옵션을 사용하여 localhost (127.0.0.1) 의 특정 포트 (예: 1000 및 2000) 를 스캔하는 것으로 시작합니다. 그런 다음, 이를 SYN 스캔 (-sS) 과 결합하여 1000-2000 과 같은 포트 범위를 스캔합니다. 또한 이 랩에서는 -v 옵션을 사용하여 상세 정보를 추가하고, -oN 옵션을 사용하여 스캔 결과를 파일에 저장하는 방법도 다룹니다. 마지막으로, 저장된 결과를 검토하고 상위 포트 스캔 결과와 비교합니다.
nmap -p 1000,2000 192.168.1.1 로 사용자 지정 포트 스캔
이 단계에서는 Nmap 을 사용하여 대상 시스템의 특정 포트를 스캔하는 방법을 배우겠습니다. Nmap 은 패킷을 전송하고 응답을 분석하여 컴퓨터 네트워크에서 호스트와 서비스를 검색하는 데 사용되는 강력한 네트워크 스캔 도구입니다. 기본적으로 Nmap 은 잘 알려진 포트 집합을 스캔합니다. 그러나 관심 있는 특정 포트를 대상으로 스캔을 사용자 지정할 수 있습니다.
사용자 지정 포트를 스캔하려면 -p 옵션 뒤에 쉼표로 구분된 포트 번호 목록 또는 포트 범위를 사용하면 됩니다.
먼저 대상 IP 주소 192.168.1.1 의 포트 1000 과 2000 을 스캔해 보겠습니다. 이 랩 환경에서는 데모 목적으로 127.0.0.1 (localhost) 을 대상으로 사용합니다. 즉, 현재 작업 중인 시스템을 스캔합니다.
Xfce 터미널을 열고 다음 명령을 실행합니다.
nmap -p 1000,2000 127.0.0.1
이 명령은 Nmap 에게 localhost (127.0.0.1) 의 포트 1000 과 2000 을 스캔하도록 지시합니다.
다음과 유사한 출력을 볼 수 있습니다.
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.000082s latency).
PORT STATE SERVICE
1000/tcp closed unknown
2000/tcp closed cisco-sccp
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
출력은 각 스캔된 포트의 상태를 보여줍니다. 이 예제에서는 두 포트 모두 닫혀 있습니다. 이러한 포트 중 하나에서 서비스가 실행 중이었다면 상태는 open으로 표시될 것입니다.
이제 포트 범위를 스캔해 보겠습니다.
nmap -sS -p 1000-2000 127.0.0.1 을 사용하여 SYN 스캔과 결합
이 단계에서는 사용자 지정 포트 스캔과 SYN 스캔을 결합합니다. SYN 스캔은 반개방형 스캔이라고도 하며, 대상 시스템에 SYN 패킷을 보내지만 TCP 연결을 완료하지 않는 Nmap 스캔 유형입니다. 이 기술은 전체 TCP 연결 스캔보다 빠르고 탐지하기 어렵습니다.
Nmap 의 -sS 옵션은 SYN 스캔을 지정합니다. 이 옵션을 -p 옵션과 함께 사용하여 특정 포트 범위를 스캔합니다.
Xfce 터미널을 열고 다음 명령을 실행합니다.
sudo nmap -sS -p 1000-2000 127.0.0.1
이 명령은 Nmap 에게 localhost (127.0.0.1) 의 1000 에서 2000 까지의 포트에 대해 SYN 스캔을 수행하도록 지시합니다. SYN 스캔은 raw 패킷을 전송해야 하므로, SYN 스캔을 수행하려면 sudo 권한이 필요합니다.
다음과 유사한 출력을 볼 수 있습니다.
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.000079s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
1000/tcp open iss-realsecure
Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds
출력은 지정된 범위 내의 각 스캔된 포트의 상태를 보여줍니다. 이 예제에서는 포트 1000 이 열려 있고 iss-realsecure 서비스를 실행하고 있으며, 다른 999 개의 포트는 닫혀 있습니다. "Not shown: 999 closed ports" 메시지는 Nmap 이 혼잡을 줄이기 위해 닫힌 포트의 표시를 억제하고 있음을 나타냅니다.
nmap -v -p 1000,2000 192.168.1.1 로 상세 정보 추가
이 단계에서는 Nmap 스캔에 상세 정보를 추가합니다. 상세 정보는 Nmap 이 스캔 중에 제공하는 정보의 양을 늘립니다. 이는 Nmap 이 무엇을 하고 있는지 이해하고 문제를 해결하는 데 도움이 될 수 있습니다.
Nmap 의 -v 옵션은 상세 모드를 활성화합니다. -v를 한 번 사용하면 상세 수준이 증가합니다. 더 자세한 출력을 위해 -vv 또는 -vvv를 사용할 수 있습니다.
Xfce 터미널을 열고 다음 명령을 실행합니다.
nmap -v -p 1000,2000 127.0.0.1
이 명령은 Nmap 에게 localhost (127.0.0.1) 의 포트 1000 과 2000 을 스캔하고 상세 출력을 제공하도록 지시합니다.
다음과 유사한 출력을 볼 수 있습니다 (정확한 출력은 다를 수 있습니다).
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Initiating Ping Scan at 10:10
Scanning localhost (127.0.0.1) [4 ports]
Completed Ping Scan at 10:10, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:10
Completed Parallel DNS resolution of 1 host. at 10:10, 0.00s elapsed
Initiating SYN Stealth Scan at 10:10
Scanning localhost (127.0.0.1) [2 ports]
Discovered open port 1000/tcp on 127.0.0.1
Completed SYN Stealth Scan at 10:10, 0.06s elapsed (2 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).
PORT STATE SERVICE
1000/tcp open iss-realsecure
2000/tcp closed cisco-sccp
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
스캔 시작 시간, 수행 중인 스캔 유형, 경과 시간과 같이 Nmap 에서 제공하는 추가 정보를 확인하십시오. 이 상세 출력은 스캔 프로세스를 이해하고 잠재적인 문제를 식별하는 데 매우 유용할 수 있습니다.
nmap -p 1000-2000 -oN custom_ports.txt 127.0.0.1 로 사용자 지정 포트 스캔 저장
이 단계에서는 사용자 지정 포트 스캔의 결과를 파일에 저장합니다. 이는 나중에 분석하거나 다른 사람과 결과를 공유하는 데 유용합니다.
Nmap 의 -oN 옵션은 출력을 일반 형식으로 지정된 파일에 저장하도록 지정합니다.
Xfce 터미널을 열고 다음 명령을 실행합니다.
nmap -p 1000-2000 -oN custom_ports.txt 127.0.0.1
이 명령은 Nmap 에게 localhost (127.0.0.1) 의 1000 에서 2000 까지의 포트를 스캔하고 결과를 현재 디렉토리 (~/project) 의 custom_ports.txt라는 파일에 일반 형식으로 저장하도록 지시합니다.
스캔이 완료된 후, cat 명령을 사용하여 파일의 내용을 볼 수 있습니다.
cat custom_ports.txt
-oN 옵션 없이 스캔을 실행했을 때와 유사한 Nmap 스캔 결과를 터미널에서 볼 수 있습니다. 차이점은 이제 결과가 custom_ports.txt 파일에도 저장된다는 것입니다.
출력은 다음과 유사하게 표시됩니다.
## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
1000/tcp open iss-realsecure
## Nmap done at Fri Oct 27 10:15:00 2023 -- 1 IP address (1 host up) scanned in 0.25 seconds
Xfce 터미널에서 사용자 지정 포트 결과 검토
이 단계에서는 이전 단계에서 custom_ports.txt 파일에 저장한 사용자 지정 포트 스캔의 결과를 검토합니다. cat 명령을 사용하여 Xfce 터미널에 파일의 내용을 표시합니다.
Xfce 터미널을 열고 다음 명령을 실행합니다.
cat custom_ports.txt
이 명령은 터미널에 custom_ports.txt 파일의 내용을 표시합니다. 스캔 중에 발견된 열린 포트와 닫힌 포트를 포함하여 Nmap 스캔 결과를 볼 수 있습니다.
출력은 다음과 유사하게 표시됩니다.
## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
1000/tcp open iss-realsecure
## Nmap done at Fri Oct 27 10:15:00 2023 -- 1 IP address (1 host up) scanned in 0.25 seconds
출력을 검토하여 열린 포트를 식별합니다. 이 예에서는 포트 1000 이 열려 있습니다. "SERVICE" 열은 해당 포트에서 실행 중일 수 있는 서비스에 대한 힌트를 제공합니다. 이 경우 "iss-realsecure"를 제안합니다.
grep과 같은 다른 명령줄 도구를 사용하여 결과를 필터링하고 특정 정보를 찾을 수도 있습니다. 예를 들어, "open"이라는 단어가 포함된 모든 줄을 찾으려면 다음 명령을 사용할 수 있습니다.
grep open custom_ports.txt
이렇게 하면 "open"이라는 단어가 포함된 custom_ports.txt의 줄만 출력됩니다.
1000/tcp open iss-realsecure
이를 통해 스캔 결과에서 열린 포트를 빠르게 식별할 수 있습니다.
Xfce 터미널에서 주요 포트 스캔 결과 비교
이 단계에서는 가장 일반적인 상위 1000 개 포트를 스캔하고 결과를 이전 사용자 지정 포트 스캔과 비교합니다. 이를 통해 사용자 지정 포트에서 실행 중인 서비스가 일반적으로 사용되는 포트에서도 실행 중인지 이해하는 데 도움이 됩니다.
먼저, 다음 명령을 사용하여 localhost (127.0.0.1) 에서 상위 1000 개 포트를 스캔합니다.
nmap -F 127.0.0.1
-F 옵션은 Nmap 에게 가장 일반적인 포트 목록이 포함된 nmap-services 파일에 나열된 포트만 스캔하도록 지시합니다. 이는 상위 100 개 포트를 스캔하는 것과 같습니다. 상위 1000 개 포트를 스캔하려면 --top-ports 1000 옵션을 사용할 수 있습니다. 그러나 이 랩에서는 더 빠른 스캔을 위해 -F 옵션을 고수합니다.
출력은 다음과 유사하게 표시됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at Fri Oct 27 10:20:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000079s latency).
Not shown: 97 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds
이제 이러한 결과를 custom_ports.txt의 사용자 지정 포트 스캔 결과와 비교해 보겠습니다. 이전 단계에서 포트 1000 이 열려 있다는 것을 알고 있습니다. 상위 포트 스캔에서도 포트 1000 이 열려 있는지 확인해 보겠습니다.
grep 명령을 사용하여 상위 포트 스캔의 출력에서 포트 1000 을 검색할 수 있습니다. 출력은 터미널에 직접 인쇄되므로 출력을 grep으로 파이프할 수 있습니다.
nmap -F 127.0.0.1 | grep 1000
명령이 출력을 반환하면 상위 포트 스캔에서 포트 1000 이 발견된 것입니다. 출력을 반환하지 않으면 포트 1000 이 상위 포트에 포함되지 않은 것입니다.
이 경우 포트 1000 이 일반적인 포트가 아니기 때문에 출력이 표시되지 않을 것입니다. 이는 일반 포트 스캔과 사용자 지정 포트 스캔의 차이점을 보여줍니다. 일반 포트 스캔은 잘 알려진 서비스를 빠르게 식별하는 데 유용하며, 사용자 지정 포트 스캔은 덜 일반적이거나 의도적으로 숨겨진 서비스를 찾는 데 유용합니다.
요약
이 랩에서는 Nmap 의 -p 옵션을 사용하여 대상 시스템의 특정 포트를 스캔하는 방법을 배웠습니다. 개별 포트 또는 범위를 지정했습니다. localhost (127.0.0.1) 를 대상으로 사용하여 포트 1000 과 2000 을 스캔한 다음 1000 에서 2000 까지의 범위를 스캔하는 연습을 했습니다.
또한, -sS 옵션을 사용하여 사용자 지정 포트 스캔과 SYN 스캔을 결합하여 지정된 포트 범위에 대한 더 빠르고 덜 탐지 가능한 스캔을 수행했습니다. 이 랩에서는 관심 있는 특정 포트를 대상으로 지정하고 스캔 결과를 분석하여 각 포트의 상태를 결정하는 방법을 보여주었습니다.



