Nmap 에서 TCP Xmas 스캔 수행

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 을 사용하여 TCP Xmas 스캔을 수행하는 방법을 배우게 됩니다. 이 랩은 대상 IP 에 대한 기본 스캔 실행, 특정 포트 스캔, 스캔에 상세 정보 추가, 스캔 결과 저장, Xmas 스캔과 FIN 스캔 비교, Xfce 터미널에서 결과 분석 등 Xmas 스캔의 다양한 측면을 다룹니다. TCP 헤더에 FIN, PSH, URG 플래그를 설정하여 대상 시스템에서 열린 포트 또는 필터링된 포트를 식별하는 방식으로 Xmas 스캔이 어떻게 작동하는지 이해하게 됩니다.

nmap -sX 192.168.1.1 로 Xmas 스캔 실행

이 단계에서는 Nmap 을 사용하여 Xmas 스캔을 수행합니다. Xmas 스캔은 TCP 헤더에 FIN, PSH, URG 플래그를 설정하는 포트 스캔 유형입니다. 이 유형의 스캔은 설정된 플래그가 크리스마스 트리와 유사하기 때문에 "Xmas"라고 명명되었습니다. 대상 시스템에서 열린 포트 또는 필터링된 포트를 식별하는 데 유용합니다.

시작하기 전에 이러한 플래그가 무엇을 의미하는지 이해해 보겠습니다.

  • FIN (Finish): 연결의 종료를 나타냅니다.
  • PSH (Push): 수신 시스템에 버퍼링된 데이터를 애플리케이션으로 푸시하도록 지시합니다.
  • URG (Urgent): 긴급 포인터 필드가 중요하며 긴급하게 처리해야 하는 데이터를 가리킵니다.

호스트가 Xmas 스캔 패킷을 수신하면 포트가 닫혀 있는 경우 RST (reset) 패킷으로 응답해야 합니다. 포트가 열려 있으면 호스트는 패킷을 삭제하고 응답하지 않아야 합니다. 그러나 일부 시스템은 올바르게 응답하지 않을 수 있으며, 이는 운영 체제 또는 방화벽 규칙을 식별하는 데 도움이 될 수 있습니다.

이제 대상 IP 주소 192.168.1.1에 대해 Xmas 스캔을 실행해 보겠습니다. Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -sX 192.168.1.1

이 명령은 Nmap 에게 대상 IP 주소 192.168.1.1에 대해 Xmas 스캔 (-sX) 을 수행하도록 지시합니다. 이 명령을 실행하려면 sudo 권한이 필요합니다.

스캔이 완료되면 Nmap 은 결과를 표시합니다. 출력은 대상 시스템의 응답 (또는 부재) 을 기반으로 어떤 포트가 열린 것으로 간주되는지, 닫힌 것으로 간주되는지, 또는 필터링된 것으로 간주되는지를 보여줍니다.

예시 출력 (실제 출력은 대상 시스템에 따라 다릅니다):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
All 1000 scanned ports on 192.168.1.1 are filtered

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

이 예에서 스캔된 1000 개의 모든 포트는 필터링된 것으로 보고됩니다. 이는 대상 시스템이 스캔 패킷을 차단하거나 필터링하고 있기 때문에 Nmap 이 포트가 열려 있는지 또는 닫혀 있는지 확인할 수 없었음을 의미합니다.

nmap -sX -p 22,80 127.0.0.1 로 특정 포트 스캔

이 단계에서는 특정 포트에 Xmas 스캔을 집중합니다. 이는 모든 포트를 스캔하는 대신 대상 시스템에서 실행 중인 특정 서비스의 상태를 빠르게 확인하려는 경우에 유용합니다. 로컬 호스트 (127.0.0.1) 에서 포트 22 (SSH) 및 80 (HTTP) 을 스캔합니다.

Nmap 의 -p 옵션을 사용하면 스캔할 포트를 지정할 수 있습니다. 단일 포트, 포트 범위 (예: 1-100) 또는 쉼표로 구분된 포트 목록 (예: 22,80,443) 을 제공할 수 있습니다.

Xmas 스캔을 사용하여 포트 22 와 80 을 스캔하려면 Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -sX -p 22,80 127.0.0.1

이 명령은 Nmap 에게 대상 IP 주소 127.0.0.1 (로컬 호스트) 의 포트 22 와 80 (-p 22,80) 에 대해 Xmas 스캔 (-sX) 을 수행하도록 지시합니다. 이 명령을 실행하려면 sudo 권한이 필요합니다.

스캔이 완료되면 Nmap 은 지정된 포트에 대한 결과를 표시합니다. 출력은 포트가 열려 있는지, 닫혀 있는지 또는 필터링되었는지를 나타냅니다.

예시 출력 (실제 출력은 다를 수 있습니다):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000029s latency).

PORT   STATE    SERVICE
22/tcp filtered ssh
80/tcp filtered http

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

이 예에서 포트 22 와 80 은 모두 필터링된 것으로 보고됩니다. 이는 로컬 호스트의 방화벽 규칙 또는 기타 네트워크 구성으로 인해 Nmap 이 이러한 포트가 열려 있는지 또는 닫혀 있는지 확인할 수 없었음을 의미합니다.

nmap -v -sX 192.168.1.1 로 상세 정보 추가

이 단계에서는 Xmas 스캔에 상세 정보를 추가합니다. Nmap 에서 상세 정보는 스캔 중에 표시되는 정보의 양을 늘리는 것을 의미합니다. 이는 Nmap 이 무엇을 하고 있는지 이해하고 발생할 수 있는 문제를 해결하는 데 도움이 될 수 있습니다.

Nmap 의 -v 옵션은 상세 정보 수준을 높입니다. 일반적인 상세 정보는 -v를 사용하고, 더 자세한 출력을 위해서는 -vv를 사용할 수 있습니다.

상세 정보와 함께 Xmas 스캔을 실행하려면 Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -v -sX 192.168.1.1

이 명령은 Nmap 에게 상세 정보가 활성화된 상태 (-v) 로 대상 IP 주소 192.168.1.1에 대해 Xmas 스캔 (-sX) 을 수행하도록 지시합니다. 이 명령을 실행하려면 sudo 권한이 필요합니다.

이제 출력에는 스캔 프로세스에 대한 더 많은 정보가 포함됩니다. 예를 들어 스캔되는 포트, 전송되는 패킷, 수신된 응답 등이 있습니다.

예시 출력 (실제 출력은 대상 시스템 및 네트워크 구성에 따라 다릅니다):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Xmas Scan at 10:00
Scanning 192.168.1.1 [1000 ports]
Completed Xmas Scan at 10:00, 0.00s elapsed (1000 total ports)
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
All 1000 scanned ports on 192.168.1.1 are filtered

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

상세 출력은 스캔의 진행 상황에 대한 더 자세한 정보를 제공하며, 시작 및 종료 시간, 스캔된 포트 수, 발생한 오류 또는 경고 등을 포함합니다.

nmap -sX -oN xmas.txt 127.0.0.1 로 Xmas 스캔 결과 저장

이 단계에서는 Xmas 스캔 결과를 파일에 저장하는 방법을 배웁니다. 이는 나중에 분석하거나 발견 사항을 문서화하는 데 유용합니다. Nmap 은 다양한 형식으로 스캔 결과를 저장하기 위한 여러 옵션을 제공합니다. -oN 옵션은 결과를 "일반" 사람이 읽을 수 있는 형식으로 저장합니다.

Xmas 스캔 결과를 xmas.txt라는 파일에 저장하려면 Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -sX -oN xmas.txt 127.0.0.1

이 명령은 Nmap 에게 대상 IP 주소 127.0.0.1 (로컬 호스트) 에 대해 Xmas 스캔 (-sX) 을 수행하고 결과를 일반 형식 (-oN) 으로 xmas.txt 파일에 저장하도록 지시합니다. 파일은 현재 디렉토리인 ~/project에 생성됩니다. 이 명령을 실행하려면 sudo 권한이 필요합니다.

스캔이 완료된 후 cat 명령 또는 nano와 같은 텍스트 편집기를 사용하여 xmas.txt 파일의 내용을 볼 수 있습니다.

cat xmas.txt

예시 출력 (실제 출력은 다를 수 있습니다):

## Nmap 7.80 scan initiated Tue Oct 27 10:00:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000029s latency).
All 1000 scanned ports on localhost (127.0.0.1) are filtered

## Nmap done at Tue Oct 27 10:00:00 2023 -- 1 IP address (1 host up) scanned in 0.12 seconds

또는 nano를 사용하여 파일을 열고 볼 수 있습니다.

nano xmas.txt

이렇게 하면 nano 텍스트 편집기에서 xmas.txt 파일이 열리고 스캔 결과를 검사할 수 있습니다. Ctrl+X를 누른 다음 Y를 눌러 저장을 확인하고 마지막으로 Enter를 눌러 nano를 저장하고 종료하는 것을 잊지 마십시오.

Xfce 터미널에서 Xmas 스캔과 FIN 스캔 비교

이 단계에서는 Xmas 스캔의 결과와 FIN 스캔의 결과를 비교합니다. Xmas 및 FIN 스캔은 모두 대상 시스템에서 열린 포트를 식별하는 데 사용할 수 있는 스텔스 스캔 유형입니다. 이들은 특별히 제작된 TCP 패킷을 대상에 보내고 응답을 분석하여 작동합니다.

먼저, 로컬 호스트 (127.0.0.1) 에서 FIN 스캔을 실행해 보겠습니다.

sudo nmap -sF 127.0.0.1

이 명령은 Nmap 에게 대상 IP 주소 127.0.0.1에 대해 FIN 스캔 (-sF) 을 수행하도록 지시합니다. 이 명령을 실행하려면 sudo 권한이 필요합니다.

예시 출력 (실제 출력은 다를 수 있습니다):

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.000029s latency).
All 1000 scanned ports on localhost (127.0.0.1) are filtered

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

이제 이 출력을 이전에 수행한 Xmas 스캔의 출력과 비교해 보겠습니다. 터미널 기록에서 이전 Xmas 스캔 출력을 찾거나 Xmas 스캔을 다시 실행할 수 있습니다.

sudo nmap -sX 127.0.0.1

예시 출력 (실제 출력은 다를 수 있습니다):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:01 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000029s latency).
All 1000 scanned ports on localhost (127.0.0.1) are filtered

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

두 스캔 결과의 유사점과 차이점을 관찰하십시오. 대부분의 경우 결과는 동일하며 모든 포트가 필터링된 것으로 표시됩니다. 이는 많은 최신 방화벽 및 운영 체제가 이러한 유형의 패킷을 삭제하거나 무시하도록 구성되어 있기 때문입니다.

더 자세히 비교하려면 Xmas 스캔과 유사하게 FIN 스캔 결과를 파일에 저장할 수 있습니다.

sudo nmap -sF -oN fin.txt 127.0.0.1

그런 다음 diff 명령을 사용하여 두 파일을 비교할 수 있습니다.

diff xmas.txt fin.txt

이 명령은 xmas.txt 파일과 fin.txt 파일 간의 차이점을 보여줍니다. 스캔에서 동일한 결과가 생성된 경우 diff 명령은 아무것도 출력하지 않습니다.

Xfce 터미널에서 결과 분석

이 단계에서는 수행한 Nmap 스캔 결과를 분석합니다. 잠재적인 취약점과 보안 위험을 식별하려면 Nmap 스캔의 출력을 이해하는 것이 중요합니다.

Xmas 스캔의 결과가 포함된 xmas.txt 파일을 검토하는 것으로 시작해 보겠습니다. cat 명령 또는 nano와 같은 텍스트 편집기를 사용하여 이 파일의 내용을 볼 수 있습니다.

cat xmas.txt

또는

nano xmas.txt

출력에는 일반적으로 다음 정보가 포함됩니다.

  • Nmap 버전 (Nmap version): 스캔에 사용된 Nmap 의 버전입니다.
  • 스캔 시작 시간 (Scan initiation time): 스캔이 시작된 날짜와 시간입니다.
  • 대상 정보 (Target information): 대상 시스템의 IP 주소 또는 호스트 이름입니다.
  • 호스트 상태 (Host status): 대상 호스트가 작동 중인지 여부입니다.
  • 포트 상태 (Port status): 각 스캔된 포트의 상태 (예: 열림, 닫힘, 필터링됨) 입니다.
  • 스캔 완료 시간 (Scan completion time): 스캔이 완료된 날짜와 시간입니다.

Xmas 및 FIN 스캔의 경우, 모든 포트가 "필터링됨 (filtered)"으로 보고되는 경우가 많습니다. 이는 대상 시스템이 Nmap 이 확실한 결정을 내릴 수 있도록 스캔 패킷에 응답하지 않았기 때문에 Nmap 이 포트가 열려 있는지 또는 닫혀 있는지 확인할 수 없음을 의미합니다. 이는 방화벽 또는 침입 탐지 시스템 (IDS) 으로 보호되는 시스템을 스캔할 때 흔히 나타나는 결과입니다.

포트가 "열림 (open)" 또는 "닫힘 (closed)"으로 보고되는 경우, 대상 시스템이 스캔 패킷에 예측 가능한 방식으로 응답했음을 나타냅니다. 그러나 Xmas 및 FIN 스캔은 신뢰할 수 없으며 결과가 항상 정확하지 않을 수 있다는 점에 유의해야 합니다.

대상 시스템의 열린 포트에 대한 보다 정확한 정보를 얻으려면 TCP 연결 스캔 (-sT) 또는 SYN 스캔 (-sS) 과 같은 다른 유형의 Nmap 스캔을 사용해야 할 수 있습니다. 이러한 스캔은 더 신뢰할 수 있지만 방화벽 및 IDS 에 의해 더 쉽게 감지될 수도 있습니다.

요약하면, Nmap 스캔 결과를 분석하려면 잠재적인 취약점과 보안 위험을 식별하기 위해 출력을 주의 깊게 검토해야 합니다. 다양한 유형의 Nmap 스캔과 각 스캔 유형의 제한 사항을 이해하는 것이 중요합니다. 다양한 스캔 기술을 결합하고 결과를 주의 깊게 분석함으로써 대상 시스템의 보안 상태에 대한 보다 완벽한 이해를 얻을 수 있습니다.

요약

이 랩에서는 참가자들이 Nmap 을 사용하여 TCP Xmas 스캔을 수행하는 방법을 배웁니다. 그들은 nmap -sX 명령을 사용하여 대상 IP (192.168.1.1) 에서 기본적인 Xmas 스캔을 실행하는 것으로 시작하며, 열린 포트 또는 필터링된 포트를 식별하기 위해 TCP 헤더에 FIN, PSH 및 URG 플래그를 설정한다는 것을 이해합니다. 또한 특정 포트를 스캔하고, 스캔에 상세 정보를 추가하고, 결과를 파일에 저장하는 방법을 배웁니다. 또한 Xmas 스캔을 FIN 스캔과 비교하고 Xfce 터미널에서 결과를 분석합니다.