소개
이 실습에서는 Nmap 을 사용하여 호스트 검색을 수행하는 방법을 배우는 것을 목표로 합니다. 이 실습에서는 192.168.1.0/24 네트워크에서 포트 스캐닝을 비활성화하는 -sn 옵션을 사용하여 핑 스캔을 실행하고, TCP SYN 핑과 ACK 핑을 사용하며, 다양한 핑을 결합하는 방법을 포함한 다양한 Nmap 명령어를 다룹니다. 또한 Xfce 터미널에서 활성 호스트를 보는 방법을 보여줍니다. 또한 로컬 호스트 주소에 대한 핑 스캔을 수행하면서 포트 스캐닝을 비활성화하는 방법을 보여줍니다.
Nmap 으로 핑 스캔 실행하기
이 단계에서는 네트워크 상의 활성 호스트를 식별하기 위해 Nmap 을 사용하여 기본적인 핑 스캔을 수행합니다. 핑 스캔 (호스트 검색이라고도 함) 은 온라인 상태인 호스트를 확인하는 기본적인 기술입니다. Nmap 은 지정된 범위의 각 IP 주소에 다양한 프로브를 보내고 응답을 분석하여 활성 호스트를 식별합니다. Nmap 의 -sn 옵션은 포트 스캔을 비활성화하여 전체 포트 스캔보다 스캔 속도를 높이고 침입성을 줄입니다.
192.168.1.0/24는 CIDR 표기법으로 네트워크를 나타냅니다. /24는 IP 주소의 첫 24 비트가 고정되어 네트워크를 정의하고, 나머지 8 비트는 해당 네트워크 내의 호스트 주소에 사용됨을 의미합니다. 이는 192.168.1.1부터 192.168.1.254까지의 IP 주소 범위를 나타냅니다.
192.168.1.0/24 네트워크에 대한 핑 스캔을 수행하려면 터미널을 열고 다음 명령어를 실행합니다.
sudo nmap -sn 192.168.1.0/24
이 명령어는 Nmap 에게 192.168.1.0/24 네트워크 내의 모든 IP 주소에 대한 핑 스캔을 수행하도록 지시합니다. sudo 명령어는 Nmap 이 특정 유형의 네트워크 패킷을 전송하기 위해 종종 높은 권한이 필요하기 때문입니다.
이 실습 환경에서 192.168.1.0/24 네트워크에는 활성 호스트가 없으므로 다음과 유사한 출력이 표시됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST
스캔이 완료되면서 호스트 보고서가 표시되지 않습니다. 이는 해당 네트워크 범위에서 핑 프로브에 응답한 호스트가 없음을 나타냅니다. 실제 환경에서 활성 호스트가 있는 경우 다음과 같은 출력이 표시됩니다.
Starting Nmap 7.XX ( https://nmap.org ) at YYYY-MM-DD HH:MM ZZZ
Nmap scan report for 192.168.1.1
Host is up (0.000XXs latency).
Nmap scan report for 192.168.1.10
Host is up (0.002XXs latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.XX seconds
다음으로 로컬 호스트 주소 (127.0.0.1) 에 대한 핑 스캔을 수행하면서 포트 스캔을 비활성화합니다. 이는 -sn 옵션을 사용하여 전체 포트 스캔을 시작하지 않고 호스트 검색만 수행하는 방법을 보여줍니다. 이는 호스트가 살아 있는지 확인하고 시간이 많이 소요되거나 소음이 많은 포트 스캔을 피하고 싶을 때 유용합니다.
127.0.0.1은 루프백 주소로, 로컬호스트라고도 합니다. 항상 현재 컴퓨터를 가리킵니다. 로컬호스트에 대한 핑은 네트워크 인터페이스가 정상적으로 작동하는지 빠르게 확인하는 방법입니다.
로컬호스트에 대한 포트 스캔 없이 핑 스캔을 수행하려면 터미널에서 다음 명령어를 실행합니다.
sudo nmap -sn 127.0.0.1
이 명령어는 Nmap 에게 127.0.0.1 주소에 대한 핑 스캔을 수행하도록 지시합니다. -sn 옵션은 Nmap 이 호스트 검색만 수행하고 포트를 스캔하지 않도록 합니다.
출력은 호스트가 작동 중인지 여부를 나타냅니다. 다음과 유사하게 보일 것입니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST
Nmap scan report for localhost (127.0.0.1)
Host is up.
Nmap done: 1 IP address (1 host up) scanned in 0.00 seconds
이 출력은 로컬호스트 (127.0.0.1) 가 작동 중임을 확인합니다. Nmap 은 -sn 옵션에 따라 핑 스캔만 수행했으며 포트를 스캔하지 않았습니다.
TCP SYN 및 ACK 핑 스캔 수행
이 단계에서는 Nmap 을 사용하여 TCP SYN 및 ACK 핑 스캔을 수행합니다. 이러한 기술은 ICMP 핑보다 종종 더 안정적입니다. 많은 방화벽이 ICMP 트래픽을 차단하지만 TCP 트래픽은 허용하기 때문입니다.
먼저, 호스트가 연결되지 않을 때 발생하는 상황을 보여주기 위해 192.168.1.1에 대한 TCP SYN 핑 스캔을 시도해 보겠습니다. TCP SYN 핑은 대상 호스트에 TCP SYN 패킷을 전송합니다. 호스트가 활성화되어 지정된 포트 (또는 기본적으로 모든 포트) 에서 수신 대기 중이면 SYN/ACK 패킷으로 응답합니다. 그런 다음 Nmap 은 RST 패킷을 전송하여 연결을 재설정합니다.
Nmap 의 -PS 옵션은 TCP SYN 핑을 사용하도록 지정합니다. 기본적으로 Nmap 은 SYN 패킷을 포트 80 으로 전송합니다.
192.168.1.1에 대한 TCP SYN 핑 스캔을 수행하려면 터미널에서 다음 명령어를 실행합니다.
sudo nmap -PS 192.168.1.1
이 명령어는 Nmap 에게 호스트 192.168.1.1의 포트 80 으로 TCP SYN 패킷을 전송하도록 지시합니다. sudo는 Nmap 이 원시 TCP 패킷을 생성하고 전송하기 위해 높은 권한이 필요하기 때문입니다.
이 실습 환경에서 192.168.1.1이 연결되지 않으므로 다음과 같은 출력이 표시됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.10 seconds
이 출력은 Nmap 이 192.168.1.1에 연결할 수 없음을 보여줍니다. 메시지는 호스트가 활성화되어 있지만 핑 프로브를 차단하는 경우 -Pn을 사용하도록 제안합니다.
이제 호스트가 연결 가능할 때 어떻게 작동하는지 확인하기 위해 로컬호스트 (127.0.0.1) 에 대한 TCP SYN 핑 스캔을 수행해 보겠습니다.
sudo nmap -PS 127.0.0.1
이렇게 하면 다음과 유사한 출력이 표시됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
2121/tcp open ccproxy-ftp
2222/tcp open EtherNetIP-1
3001/tcp open nessus
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
이 출력은 Nmap 이 로컬호스트를 성공적으로 감지하고 시스템의 열린 포트를 표시하는 포트 스캔도 수행했음을 보여줍니다.
다음으로 ACK 핑 스캔을 수행합니다. ACK 핑은 대상 호스트에 TCP ACK 패킷을 전송합니다. 연결을 설정하려는 SYN 핑과 달리 ACK 핑은 이미 설정된 연결의 일부인 것처럼 보이는 패킷을 전송합니다. 방화벽은 종종 들어오는 ACK 패킷을 SYN 패킷과 다르게 처리하는 규칙을 가지고 있으므로 ACK 핑은 일부 방화벽 구성을 우회하는 데 유용합니다.
Nmap 의 -PA 옵션은 TCP ACK 핑을 사용하도록 지정합니다. 기본적으로 Nmap 은 ACK 패킷을 포트 80 으로 전송합니다.
먼저 192.168.1.1에 대한 ACK 핑을 시도해 보겠습니다.
sudo nmap -PA 192.168.1.1
예상대로 호스트가 연결되지 않았음을 보여줍니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 CST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.11 seconds
이제 로컬호스트에 대한 TCP ACK 핑 스캔을 수행하여 성공적인 경우를 확인해 보겠습니다.
sudo nmap -PA 127.0.0.1
다음과 유사한 출력이 생성됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000040s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
2121/tcp open ccproxy-ftp
2222/tcp open EtherNetIP-1
3001/tcp open nessus
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
이 출력은 Nmap 이 로컬호스트에 TCP ACK 패킷을 전송하고 응답을 받았으며, 호스트가 활성화되어 있음을 나타냅니다. 또한 스캔에서 시스템의 열린 포트를 보여줍니다.
핑 스캔 기법 결합
이 단계에서는 Nmap 을 사용하여 TCP SYN 및 ACK 핑 스캔을 결합하여 네트워크에서 활성 호스트를 발견하는 방법을 학습합니다. 서로 다른 핑 유형을 결합하면 방화벽 규칙이나 네트워크 구성으로 인해 특정 유형의 핑에는 응답하지만 다른 유형의 핑에는 응답하지 않는 호스트가 있을 수 있으므로 호스트 발견의 신뢰도를 높일 수 있습니다.
-PS 및 -PA 옵션을 모두 사용하면 Nmap 은 지정된 네트워크의 각 호스트에 TCP SYN 및 TCP ACK 패킷을 모두 전송합니다. 이는 제한적인 방화벽이 있는 환경에서 특히 활성 호스트를 감지할 가능성을 높입니다.
먼저, 호스트가 없을 때 발생하는 상황을 보여주기 위해 192.168.1.0/24 네트워크에 대한 결합 스캔을 시도해 보겠습니다.
sudo nmap -PS -PA 192.168.1.0/24
이 명령어는 Nmap 에게 192.168.1.0/24 네트워크의 각 호스트의 포트 80 으로 TCP SYN 및 TCP ACK 패킷을 모두 전송하도록 지시합니다. sudo는 Nmap 이 원시 TCP 패킷을 생성하고 전송하기 위해 높은 권한이 필요하기 때문입니다.
이 실습 환경에서 이 네트워크 범위에 활성 호스트가 없으므로 다음과 같은 출력이 표시됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:51 CST
스캔이 완료되면서 호스트 보고서가 표시되지 않습니다. 이는 이 네트워크 범위에서 SYN 또는 ACK 핑 프로브에 응답한 호스트가 없음을 나타냅니다.
실제 환경에서 활성 호스트가 있는 경우 출력은 다음과 유사하게 보일 것입니다.
Starting Nmap 7.XX ( https://nmap.org ) at YYYY-MM-DD HH:MM ZZZ
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.2
Host is up (0.0015s latency).
Nmap scan report for 192.168.1.10
Host is up (0.0012s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.XX seconds
이렇게 하면 Nmap 이 192.168.1.0/24 네트워크를 스캔하고 결합된 핑 기법에 응답한 세 개의 활성 호스트를 찾았음을 보여줍니다.
작동하는 예제로 결합된 핑 기법을 보여주기 위해 로컬호스트에서 사용해 보겠습니다.
sudo nmap -PS -PA 127.0.0.1
이렇게 하면 로컬호스트가 두 가지 핑 유형 모두에 응답함을 보여주는 출력이 생성됩니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:51 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000040s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
2121/tcp open ccproxy-ftp
2222/tcp open EtherNetIP-1
3001/tcp open nessus
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
마지막으로, 터미널에서 실행한 명령어를 검토하여 Nmap 을 사용하여 학습한 기법을 식별할 수 있습니다. 터미널은 실행한 명령어의 기록을 유지하며, 이는 작업을 검토하고 스캔 결과를 확인하는 데 유용합니다.
터미널에서 명령어 기록을 보려면 history 명령어를 사용할 수 있습니다. 이 명령어는 이전에 실행한 명령어의 번호가 매겨진 목록을 표시합니다.
다음 명령어를 입력하고 Enter 키를 누릅니다.
history
최근 명령어 목록이 표시됩니다. 이전 단계에서 사용한 Nmap 명령어, 특히 핑 스캔을 수행하기 위해 -sn, -PS, -PA를 사용한 명령어를 찾으십시오.
예를 들어 다음과 같은 명령어가 표시될 것입니다.
1 sudo nmap -sn 192.168.1.0/24
2 sudo nmap -sn 127.0.0.1
3 sudo nmap -PS 192.168.1.1
4 sudo nmap -PS 127.0.0.1
5 sudo nmap -PA 192.168.1.1
6 sudo nmap -PA 127.0.0.1
7 sudo nmap -PS -PA 192.168.1.0/24
8 sudo nmap -PS -PA 127.0.0.1
9 history
이러한 명령어와 출력 (이전 단계에서 기록했어야 함) 을 검토하여 서로 다른 핑 기법과 연결 가능 및 연결 불가능한 호스트와의 동작을 확인할 수 있습니다. history 명령어는 작업을 감사하고 이 실습의 단계를 올바르게 수행했는지 확인하는 데 유용한 도구입니다.
참고: history 명령어의 정확한 출력은 터미널 세션에서 실행한 명령어에 따라 달라집니다.
요약
이 실습에서는 Nmap 을 사용하여 호스트 검색을 수행하는 방법을 배웠습니다. -sn 옵션으로 포트 스캔을 비활성화하여 192.168.1.0/24 네트워크에 대한 핑 스캔을 먼저 수행했습니다. 이는 더 빠르고 침입성이 적습니다. 또한 로컬호스트 주소 127.0.0.1에 대한 핑 스캔을 포트 스캔을 비활성화한 상태로 수행했습니다. 또한 TCP SYN 핑 (-PS), ACK 핑 (-PA), 그리고 -PS -PA를 사용한 결합 핑과 같은 다양한 핑 유형을 탐색하여 다양한 네트워크 시나리오에서 활성 호스트를 효과적으로 식별하는 방법을 배웠습니다. 마지막으로, 터미널에서 명령어 기록을 검토하여 작업을 확인하고 발견한 호스트를 검증하는 방법을 배웠습니다.



