Nmap 에서 네트워크 조건 시뮬레이션

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 을 사용하여 다양한 네트워크 환경을 시뮬레이션하는 방법을 배우게 됩니다. 여기에는 잘못된 체크섬 (checksum) 시뮬레이션과 최대 전송 단위 (MTU, Maximum Transmission Unit) 를 조작하여 네트워크 스캐닝에 미치는 영향을 이해하는 것이 포함됩니다.

nmap --badsum 192.168.1.1과 같은 명령어를 사용하여 손상된 체크섬을 가진 패킷을 전송하고, nmap --mtu 1400 127.0.0.1을 사용하여 특정 MTU 를 설정하며, 이러한 명령어를 조합하는 방법을 탐구할 것입니다. 또한 -v를 사용하여 상세 정보를 추가하고, -oN을 사용하여 결과를 파일에 저장하는 방법도 배우게 됩니다. 마지막으로, Xfce 터미널에서 이러한 시뮬레이션의 효과를 분석할 것입니다.

nmap --badsum 192.168.1.1 로 잘못된 체크섬 시뮬레이션

이 단계에서는 Nmap 을 사용하여 잘못된 체크섬을 시뮬레이션하는 방법을 살펴봅니다. 체크섬은 네트워크를 통해 전송된 데이터의 무결성을 확인하는 데 사용됩니다. 잘못된 체크섬은 전송 중에 데이터가 손상되었음을 나타냅니다. 잘못된 체크섬을 시뮬레이션하는 것은 시스템이 손상된 패킷을 어떻게 처리하는지 테스트하는 데 유용할 수 있습니다.

먼저, 명령어의 기본 구문을 이해해 보겠습니다.

nmap --badsum <target_ip>

여기서 --badsum은 Nmap 에게 유효하지 않은 체크섬을 가진 패킷을 생성하도록 지시하는 옵션입니다. <target_ip>는 스캔하려는 대상의 IP 주소입니다.

명령어를 실행하기 전에, 잘못된 체크섬을 가진 패킷을 전송하는 것이 일부 네트워크 장치 또는 보안 시스템에 의해 악의적인 활동으로 해석될 수 있다는 점을 이해하는 것이 중요합니다. 따라서 이 옵션은 테스트 네트워크 또는 스캔할 명시적인 권한이 있는 대상에 사용하는 것이 가장 좋습니다.

이제 명령어를 실행해 보겠습니다. IP 주소 192.168.1.1을 대상으로 합니다. 이 IP 를 스캔할 수 있는 필요한 권한이 있는지 확인하십시오.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap --badsum 192.168.1.1

Nmap 이 잘못된 체크섬을 가진 패킷을 전송하고 있음을 나타내는 출력을 볼 수 있습니다. 정확한 출력은 대상 시스템 및 네트워크 구성에 따라 다릅니다.

예시 출력 (다를 수 있음):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds

참고: 출력은 모든 포트가 필터링되었음을 보여줍니다. 이것은 단지 예시이며, 실제 결과는 대상에 따라 다릅니다. 중요한 부분은 Nmap 이 --badsum 옵션으로 스캔을 실행했다는 것입니다.

이 명령어는 의도적으로 손상된 체크섬을 가진 패킷을 192.168.1.1로 보냅니다. 이것은 시스템이 유효하지 않은 패킷을 어떻게 처리하는지 테스트하는 데 사용될 수 있습니다.

nmap --mtu 1400 127.0.0.1 로 MTU 설정

이 단계에서는 Nmap 을 사용하여 최대 전송 단위 (MTU, Maximum Transmission Unit) 크기를 설정하는 방법을 배우겠습니다. MTU 는 네트워크 인터페이스가 전송할 수 있는 최대 패킷 크기 (바이트) 입니다. 기본적으로 Nmap 은 네트워크의 MTU 를 자동으로 감지합니다. 그러나 테스트 목적으로 MTU 값을 수동으로 설정할 수 있습니다.

사용할 명령어는 다음과 같습니다.

nmap --mtu <mtu_value> <target_ip>

여기서 --mtu는 스캔에 사용할 MTU 값을 지정하고, <target_ip>는 대상의 IP 주소입니다.

이 특정 사례에서는 MTU 를 1400 으로 설정하고 루프백 주소 127.0.0.1을 대상으로 합니다. 루프백 주소는 항상 로컬 머신을 참조하는 특수한 IP 주소입니다. 이를 통해 네트워크를 통해 패킷을 전송하지 않고 Nmap 의 MTU 설정을 테스트할 수 있습니다.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap --mtu 1400 127.0.0.1

Nmap 이 루프백 주소를 스캔하고 있음을 나타내는 출력을 볼 수 있습니다. 출력은 또한 MTU 가 1400 으로 설정되었음을 보여줍니다.

예시 출력 (다를 수 있음):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds

이 명령어는 Nmap 에게 127.0.0.1으로 패킷을 보낼 때 MTU 1400 을 사용하도록 지시합니다. 이것은 시스템이 특정 크기의 패킷을 어떻게 처리하는지 테스트하는 데 유용할 수 있습니다.

nmap -sS --mtu 1000 192.168.1.1 로 MTU 및 스캔 조합

이 단계에서는 MTU 설정을 특정 스캔 유형과 결합합니다. 지정된 MTU 크기로 스캔을 수행하기 위해 SYN 스캔 (-sS) 과 --mtu 옵션을 함께 사용합니다.

SYN 스캔 (-sS) 은 대상에 SYN 패킷만 전송하는 스텔스 스캔입니다. 전체 TCP 연결 스캔보다 빠르고 감지하기 어렵습니다.

사용할 명령어는 다음과 같습니다.

nmap -sS --mtu <mtu_value> <target_ip>

여기서 -sS는 SYN 스캔 유형을 지정하고, --mtu는 MTU 값을 설정하며, <target_ip>는 대상의 IP 주소입니다.

이 특정 사례에서는 MTU 를 1000 으로 설정하고 IP 주소 192.168.1.1을 대상으로 합니다. 필요한 권한이 있는지, 그리고 이 IP 를 스캔하는 것이 허용되는지 확인하십시오.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -sS --mtu 1000 192.168.1.1

Nmap 이 MTU 가 1000 인 SYN 스캔을 수행하고 있음을 나타내는 출력을 볼 수 있습니다. 정확한 출력은 대상 시스템 및 네트워크 구성에 따라 다릅니다.

예시 출력 (다를 수 있음):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds

참고: 출력은 모든 포트가 필터링되었음을 보여줍니다. 이것은 단지 예시이며, 실제 결과는 대상에 따라 다릅니다. 중요한 부분은 Nmap 이 --mtu 옵션으로 SYN 스캔을 실행했다는 것입니다.

이 명령어는 SYN 스캔과 특정 MTU 크기를 결합합니다. 이것은 스캔 중에 시스템이 서로 다른 패킷 크기에 어떻게 반응하는지 테스트하는 데 유용할 수 있습니다.

nmap -v --badsum 127.0.0.1 로 상세 정보 추가

이 단계에서는 Nmap 명령에 상세 정보를 추가합니다. 상세 정보는 스캔 중에 표시되는 정보의 양을 늘리며, 디버깅 및 Nmap 이 수행하는 작업을 이해하는 데 도움이 될 수 있습니다.

-v 옵션은 상세 수준을 높입니다. 더 자세한 출력을 위해 여러 번 사용할 수 있습니다 (예: -vv).

첫 번째 단계에서 사용했던 --badsum 옵션과 상세 정보 옵션을 결합하여 루프백 주소 127.0.0.1을 대상으로 합니다.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -v --badsum 127.0.0.1

이전 명령에 비해 Nmap 에서 더 자세한 출력을 볼 수 있습니다. 출력에는 전송되는 패킷, 수신된 응답 및 스캔 진행 상황에 대한 정보가 포함됩니다.

예시 출력 (다를 수 있음):

Starting Nmap 7.80 ( https://nmap.org )
NSE: Loaded 0 scripts for scanning.
Initiating Ping Scan at 15:00
Scanning localhost (127.0.0.1) [4 ports]
Completed Ping Scan at 15:00, 0.00s elapsed (1 total hosts)
Host localhost (127.0.0.1) appears to be up ... good.
Initiating Connect Scan at 15:00
Scanning localhost (127.0.0.1) [1000 ports]
Connect Scan Timing: About 0.00% done; ETC: 15:00 (0:00:00 remaining)
Completed Connect Scan at 15:00, 0.01s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds

-v 옵션은 스캔 프로세스에 대한 더 많은 정보를 제공하여 Nmap 이 수행하는 작업을 이해하고 문제를 해결하는 데 더 쉽게 해줍니다.

nmap --mtu 1200 -oN sim.txt 192.168.1.1 로 결과 저장

이 단계에서는 Nmap 스캔 결과를 파일에 저장합니다. 이는 나중에 분석하거나 다른 사람과 결과를 공유하는 데 유용합니다.

-oN 옵션은 출력을 일반 형식으로 지정된 파일에 저장하도록 지정합니다.

사용할 명령어는 다음과 같습니다.

nmap --mtu <mtu_value> -oN <output_file> <target_ip>

여기서 --mtu는 MTU 값을 설정하고, -oN은 일반 형식의 출력 파일을 지정하며, <output_file>은 결과를 저장할 파일의 이름이고, <target_ip>는 대상의 IP 주소입니다.

이 특정 사례에서는 MTU 를 1200 으로 설정하고, 출력을 ~/project 디렉토리의 sim.txt라는 파일에 저장하며, IP 주소 192.168.1.1을 대상으로 합니다. 필요한 권한이 있는지, 그리고 이 IP 를 스캔하는 것이 허용되는지 확인하십시오.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap --mtu 1200 -oN sim.txt 192.168.1.1

스캔이 완료되면 ~/project 디렉토리에 sim.txt라는 파일이 생성됩니다. 이 파일에는 사람이 읽을 수 있는 형식으로 Nmap 스캔 결과가 포함됩니다.

파일이 생성되었고 스캔 결과를 포함하는지 확인하려면 cat 명령을 사용하여 파일의 내용을 표시할 수 있습니다.

cat sim.txt

터미널에 Nmap 스캔 결과가 출력되는 것을 볼 수 있습니다.

예시 출력 (다를 수 있음):

## Nmap 7.80 scan initiated Mon Oct 26 15:05:05 2020
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
## Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds

이 명령은 Nmap 스캔 결과를 파일에 저장하여 나중에 결과를 검토하고 분석할 수 있도록 합니다.

Xfce 터미널에서 시뮬레이션 효과 분석

이 단계에서는 Nmap 을 사용하여 수행한 시뮬레이션의 효과를 분석합니다. 이전 단계의 출력을 검토하여 --badsum--mtu 옵션이 스캔 결과에 어떤 영향을 미쳤는지 이해합니다.

먼저, 이전 단계에서 생성한 sim.txt 파일을 검토해 보겠습니다. Xfce 터미널을 열고 cat 명령을 사용하여 파일의 내용을 표시합니다.

cat sim.txt

출력을 검토합니다. 대상 IP 주소, 스캔된 포트 및 해당 포트의 상태 (예: 열림, 닫힘, 필터링됨) 를 확인합니다.

다음으로, --badsum 옵션을 고려해 보겠습니다. 이 옵션은 의도적으로 Nmap 패킷의 체크섬을 손상시킵니다. 실제 시나리오에서는 이로 인해 패킷이 네트워크 또는 대상 호스트에 의해 삭제될 가능성이 높습니다. 그러나 Nmap 은 손상된 패킷으로도 일부 정보를 제공할 수 있습니다.

--badsum과 함께 사용한 명령을 기억해 보십시오.

sudo nmap --badsum 192.168.1.1

이 명령의 출력 (파일에 저장하지 않은 경우) 은 체크섬 오류에도 불구하고 Nmap 이 대상을 스캔하려고 시도한 방식을 보여주었을 것입니다.

이제 --mtu 옵션을 고려해 보겠습니다. 이 옵션은 Nmap 패킷의 최대 전송 단위 (MTU, Maximum Transmission Unit) 를 설정합니다. MTU 는 네트워크를 통해 전송할 수 있는 가장 큰 패킷 크기입니다. MTU 가 너무 높게 설정되면 패킷이 조각화될 수 있으며, 이는 스캔 결과에 영향을 미칠 수 있습니다. MTU 가 너무 낮게 설정되면 스캔 속도가 느려질 수 있습니다.

--mtu와 함께 사용한 명령을 기억해 보십시오.

sudo nmap --mtu 1200 -oN sim.txt 192.168.1.1

MTU 를 1200 으로 설정함으로써 대상 호스트가 Nmap 패킷을 수신하고 처리하는 방식에 잠재적으로 영향을 미쳤습니다. sim.txt 파일에는 이 스캔의 결과가 포함되어 있으며, --mtu 옵션이 없는 스캔과 비교하여 차이점을 확인해야 합니다.

효과를 더 자세히 분석하려면, 다른 MTU 값으로 Nmap 스캔을 실행하고 결과를 비교해 볼 수 있습니다. 예를 들어, 기본값 (일반적으로 1500) 보다 작은 MTU 값과 더 큰 MTU 값을 시도해 보십시오.

요약하면, --badsum--mtu 옵션을 사용하여 Nmap 스캔에 영향을 미칠 수 있는 네트워크 조건을 시뮬레이션했습니다. 이러한 시뮬레이션의 결과를 분석하면 Nmap 이 다양한 상황에서 어떻게 동작하는지, 그리고 그에 따라 스캔 결과를 어떻게 해석해야 하는지 이해하는 데 도움이 됩니다.

이 단계는 주로 이전 명령의 영향을 이해하는 데 중점을 둡니다. 이전 단계의 출력을 검토하는 것 외에는 이 단계에서 실행할 특정 명령이 없습니다.

요약

이 랩에서는 Nmap 을 사용하여 네트워크 조건을 시뮬레이션하는 방법을 살펴보았습니다. 특히, --badsum 옵션을 사용하여 대상 IP 주소로 유효하지 않은 체크섬을 가진 패킷을 전송하는 방법을 배우고, 시스템이 손상된 데이터를 어떻게 처리하는지 테스트할 수 있었습니다. 또한, 스캔 중에 전송되는 패킷의 크기를 제어하기 위해 --mtu 옵션을 사용하여 최대 전송 단위 (MTU, Maximum Transmission Unit) 크기를 설정하는 연습을 했습니다.

더 나아가, --mtu 옵션을 스캔 유형과 결합하고, 더 자세한 출력을 위해 -v 플래그를 사용하여 상세도를 추가하는 방법을 탐구했습니다. 마지막으로, 나중에 분석하기 위해 -oN 옵션을 사용하여 스캔 결과를 파일에 저장하는 방법을 배웠으며, Xfce 터미널에서 이러한 시뮬레이션의 효과를 분석하도록 지시받았습니다.