소개
이 랩에서는 Nmap 을 사용하여 아이들 스캔 (idle scanning) 을 수행하는 방법을 배우게 됩니다. 이 랩은 핑 스캔 (nmap -sn) 을 사용하여 네트워크에서 좀비 호스트를 식별하는 과정을 안내합니다. 이 초기 단계는 활성 호스트를 발견하는 데 도움이 되며, 이는 아이들 스캔에 적합한 좀비 호스트를 선택하는 데 매우 중요합니다.
그런 다음, 이 랩에서는 식별된 좀비 호스트를 사용하여 대상에 대해 아이들 스캔 (nmap -sI) 을 실행하는 방법을 보여줍니다. 상세도 증가 옵션 (-v), 특정 포트 타겟팅 (-p), 스캔 결과를 파일에 저장 (-oN) 하는 옵션을 살펴봅니다. 마지막으로, Xfce 터미널 내에서 아이들 스캔 결과를 분석합니다.
nmap -sn 192.168.1.0/24로 좀비 호스트 식별
이 단계에서는 nmap을 사용하여 네트워크 192.168.1.0/24에서 활성 호스트를 검색합니다. 이는 네트워크 스캔 및 정찰의 기본적인 단계입니다. nmap의 -sn 옵션은 핑 스캔을 수행합니다. 즉, 포트 스캔을 수행하지 않고 호스트가 작동 중인지 여부만 확인합니다. 이는 네트워크에서 활성 호스트를 빠르게 식별하는 데 유용합니다.
시작하기 전에 명령어를 이해해 보겠습니다.
nmap: 네트워크 매퍼 (network mapper) 도구입니다.-sn: 이 옵션은 Nmap 에게 핑 스캔 (호스트 검색) 만 수행하도록 지시합니다. 포트 스캔을 비활성화합니다.192.168.1.0/24: CIDR 표기법으로 된 대상 네트워크입니다./24는 IP 주소의 처음 24 비트가 고정되어 있고 마지막 8 비트가 변경될 수 있음을 의미하며, 256 개의 IP 주소 범위 (192.168.1.1 ~ 192.168.1.254, 네트워크 및 브로드캐스트 주소 제외) 를 제공합니다.
이제 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음을 입력합니다.
sudo nmap -sn 192.168.1.0/24
비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지고 있으므로, 그냥 Enter 키를 누르십시오.
출력 결과는 네트워크에서 작동 중인 호스트를 보여줍니다. 다음과 유사하게 보일 수 있습니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00023s latency).
Nmap scan report for 192.168.1.2
Host is up (0.00031s latency).
Nmap scan report for 192.168.1.100
Host is up (0.00045s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.50 seconds
이 출력은 192.168.1.1, 192.168.1.2, 및 192.168.1.100이 네트워크에서 작동 중임을 나타냅니다. 작동 중인 특정 IP 주소는 환경에 따라 다를 수 있습니다. 다음 단계에서는 192.168.1.2를 좀비 호스트로, 192.168.1.1을 대상으로 사용합니다.
nmap -sI 192.168.1.2 192.168.1.1 로 아이들 스캔 실행
이 단계에서는 nmap을 사용하여 아이들 스캔을 수행합니다. 아이들 스캔은 자신의 IP 주소를 노출하지 않고 대상을 스캔할 수 있는 고급 스캔 기술입니다. 이는 "좀비" 호스트를 활용하여 스캔을 반사시키는 방식으로 작동합니다.
작동 방식은 다음과 같습니다.
- 좀비 호스트 선택: 주로 유휴 상태이며 예측 가능한 IP ID(IP 식별) 시퀀스 생성을 가진 호스트가 필요합니다. 이전 단계에서
192.168.1.2를 잠재적인 좀비 호스트로 식별했습니다. - 좀비에게 SYN-ACK 전송: Nmap 은 좀비 호스트에게 SYN-ACK 패킷을 보냅니다. 좀비 호스트는 SYN-ACK 를 예상하지 못한 경우 RST 패킷으로 응답하여 IP ID 를 증가시킵니다.
- 좀비를 통해 대상에게 SYN 전송: Nmap 은 대상 호스트를 대상으로 하는 SYN 패킷을 생성하지만, 소스 IP 주소를 좀비 호스트의 IP 주소로 스푸핑합니다.
- 좀비의 IP ID 분석:
- 대상 호스트의 포트가 닫혀 있으면 좀비에게 RST 패킷으로 응답합니다. 좀비의 IP ID 는 1 씩 증가합니다.
- 대상 호스트의 포트가 열려 있으면 좀비에게 SYN-ACK 패킷으로 응답합니다. 그러면 좀비는 (연결을 시작하지 않았으므로) 대상에게 RST 패킷을 다시 보냅니다. 좀비의 IP ID 는 2 씩 증가합니다.
- 포트 상태 결정: 좀비의 IP ID 변경 사항을 관찰하여 Nmap 은 대상 포트가 열려 있는지 또는 닫혀 있는지 확인할 수 있습니다.
이제 아이들 스캔 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음을 입력합니다.
sudo nmap -sI 192.168.1.2 192.168.1.1
명령에 대한 설명은 다음과 같습니다.
nmap: 네트워크 매퍼 도구입니다.-sI 192.168.1.2: 이 옵션은 아이들 스캔을 지정하고192.168.1.2를 좀비 호스트로 설정합니다.192.168.1.1: 스캔하려는 대상 호스트입니다.
비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지고 있으므로, 그냥 Enter 키를 누르십시오.
출력 결과는 아이들 스캔에 의해 결정된 대상 호스트 (192.168.1.1) 의 열린 포트를 보여줍니다. 결과는 다음과 유사하게 보일 수 있습니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Idle scan using zombie 192.168.1.2 (192.168.1.2:80); Class: Incremental
Nmap scan report for 192.168.1.1
Host is up (0.00029s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 15.23 seconds
이 출력은 대상 호스트 192.168.1.1에서 포트 22(SSH) 및 80(HTTP) 이 열려 있음을 나타냅니다. 특정 열린 포트는 대상 시스템의 구성에 따라 다를 수 있습니다.
nmap -v -sI 192.168.1.2 192.168.1.1 로 상세 정보 추가
이 단계에서는 이전 단계의 아이들 스캔 명령에 상세 정보를 추가합니다. nmap의 상세 정보는 스캔 프로세스에 대한 더 자세한 정보를 제공하며, 이는 진행 상황을 이해하고 문제를 해결하는 데 도움이 될 수 있습니다.
-v 옵션은 상세 정보 수준을 높입니다. 더 자세한 출력을 위해 여러 번 사용할 수 있습니다 (예: -vv 또는 -vvv). 이 랩에서는 단일 -v를 사용합니다.
상세 정보와 함께 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음을 입력합니다.
sudo nmap -v -sI 192.168.1.2 192.168.1.1
명령에 대한 설명은 다음과 같습니다.
nmap: 네트워크 매퍼 도구입니다.-v: 이 옵션은 상세 정보 수준을 높입니다.-sI 192.168.1.2: 이 옵션은 아이들 스캔을 지정하고192.168.1.2를 좀비 호스트로 설정합니다.192.168.1.1: 스캔하려는 대상 호스트입니다.
비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지고 있으므로, 그냥 Enter 키를 누르십시오.
출력은 이전 아이들 스캔보다 더 자세합니다. 전송되는 패킷, 좀비 호스트의 IP ID 값, 포트 상태 결정의 근거에 대한 정보를 표시합니다. 출력은 다음과 유사하게 보일 수 있습니다 (정확한 출력은 다를 수 있음).
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Idle scan for 192.168.1.1
Scanning 192.168.1.1 [1000 ports]
Idle scan using zombie 192.168.1.2 (192.168.1.2:80); Class: Incremental
Sending TCP SYN to 192.168.1.1:22
Got SYN-ACK from 192.168.1.1:22
PORT STATE SERVICE
22/tcp open ssh
Sending TCP SYN to 192.168.1.1:80
Got SYN-ACK from 192.168.1.1:80
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 16.54 seconds
상세 출력은 스캔 프로세스에 대한 통찰력을 제공하여 아이들 스캔의 작동 방식을 이해하고 잠재적인 문제를 진단하는 데 더 쉽게 해줍니다.
nmap -sI 192.168.1.2 -p 80 192.168.1.1 로 특정 포트 스캔
이 단계에서는 아이들 스캔을 특정 포트에 집중합니다. 이는 모든 포트를 스캔하지 않고 특정 서비스의 상태를 빠르게 확인하려는 경우에 유용합니다. 대상 호스트의 포트 80(HTTP) 을 스캔합니다.
nmap의 -p 옵션을 사용하면 스캔하려는 포트를 지정할 수 있습니다. 단일 포트, 포트 범위 (예: 1-100) 또는 쉼표로 구분된 포트 목록 (예: 22,80,443) 을 지정할 수 있습니다. 이 경우 포트 80 만 스캔합니다.
아이들 스캔 기술을 사용하여 포트 80 을 스캔하는 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음을 입력합니다.
sudo nmap -sI 192.168.1.2 -p 80 192.168.1.1
명령에 대한 설명은 다음과 같습니다.
nmap: 네트워크 매퍼 도구입니다.-sI 192.168.1.2: 이 옵션은 아이들 스캔을 지정하고192.168.1.2를 좀비 호스트로 설정합니다.-p 80: 이 옵션은 포트 80 만 스캔하려는 것을 지정합니다.192.168.1.1: 스캔하려는 대상 호스트입니다.
비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지고 있으므로, 그냥 Enter 키를 누르십시오.
출력은 대상 호스트 (192.168.1.1) 에서 포트 80 이 열려 있는지 또는 닫혀 있는지를 보여줍니다. 결과는 다음과 유사하게 보일 수 있습니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Idle scan using zombie 192.168.1.2 (192.168.1.2:80); Class: Incremental
Nmap scan report for 192.168.1.1
Host is up (0.00031s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 14.87 seconds
이 출력은 대상 호스트 192.168.1.1에서 포트 80(HTTP) 이 열려 있음을 나타냅니다. 포트가 닫혀 있으면 출력은 open 대신 closed를 표시합니다.
nmap -sI 192.168.1.2 -oN idle.txt 192.168.1.1 로 아이들 스캔 결과 저장
이 단계에서는 아이들 스캔 결과를 파일에 저장합니다. 이는 나중에 분석하거나 보고서를 작성하는 데 유용합니다. -oN 옵션을 사용하여 결과를 "일반" 형식으로 idle.txt라는 파일에 저장합니다.
-oN 옵션은 nmap에게 출력을 사람이 읽을 수 있는 형식으로 저장하도록 지시하며, 이는 읽고 이해하기 쉽습니다. 다른 출력 형식도 사용할 수 있습니다 (예: XML 의 경우 -oX, Grepable 출력의 경우 -oG). 하지만 이 랩에서는 일반 형식을 사용합니다.
아이들 스캔 결과를 파일에 저장하는 명령을 실행해 보겠습니다. Xfce 터미널을 열고 다음을 입력합니다.
sudo nmap -sI 192.168.1.2 -oN idle.txt 192.168.1.1
명령에 대한 설명은 다음과 같습니다.
nmap: 네트워크 매퍼 도구입니다.-sI 192.168.1.2: 이 옵션은 아이들 스캔을 지정하고192.168.1.2를 좀비 호스트로 설정합니다.-oN idle.txt: 이 옵션은nmap에게 출력을 일반 형식으로idle.txt라는 파일에 저장하도록 지시합니다.192.168.1.1: 스캔하려는 대상 호스트입니다.
비밀번호를 묻는 메시지가 표시됩니다. labex 사용자는 비밀번호 없이 sudo 권한을 가지고 있으므로, 그냥 Enter 키를 누르십시오.
스캔이 완료되면 결과는 현재 디렉토리 (~/project) 의 idle.txt라는 파일에 저장됩니다. 출력은 파일로 리디렉션되므로 터미널에서는 아무런 출력이 표시되지 않습니다.
파일이 생성되었고 스캔 결과를 포함하는지 확인하려면 cat 명령을 사용하여 파일의 내용을 표시할 수 있습니다.
cat idle.txt
출력은 이전 단계에서 본 것과 유사한 스캔 결과를 표시하지만, 이제 파일에 저장됩니다. 출력은 다음과 유사하게 보일 수 있습니다.
## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023 as: nmap -sI 192.168.1.2 -oN idle.txt 192.168.1.1
Idle scan using zombie 192.168.1.2 (192.168.1.2:80); Class: Incremental
Nmap scan report for 192.168.1.1
Host is up (0.00031s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
## Nmap done at Fri Oct 27 10:20:15 2023 -- 1 IP address (1 host up) scanned in 15.00 seconds
이제 추가 분석을 위해 아이들 스캔 결과가 파일에 저장되었습니다.
Xfce 터미널에서 아이들 스캔 분석
이 단계에서는 이전 단계에서 idle.txt 파일에 저장한 아이들 스캔 결과를 분석합니다. grep 명령을 사용하여 파일에서 특정 정보를 추출하고 결과를 해석하는 방법을 논의합니다.
먼저, cat 명령을 사용하여 idle.txt 파일의 내용을 표시하여 스캔 결과를 다시 상기해 보겠습니다. Xfce 터미널을 열고 다음을 입력합니다.
cat idle.txt
대상 호스트 및 스캔된 포트의 상태에 대한 정보를 포함하여 nmap 스캔의 출력을 볼 수 있습니다.
이제 grep을 사용하여 특정 정보를 찾아보겠습니다. 예를 들어, 어떤 포트가 열려 있는지 확인하려면 grep을 사용하여 "open"이라는 단어가 포함된 줄을 검색할 수 있습니다.
grep "open" idle.txt
이 명령은 idle.txt 파일에서 "open"이라는 단어가 포함된 모든 줄을 표시합니다. 출력은 다음과 유사하게 보일 수 있습니다.
80/tcp open http
이는 대상 호스트에서 포트 80(HTTP) 이 열려 있음을 알려줍니다.
grep을 사용하여 대상 호스트의 IP 주소를 찾을 수도 있습니다.
grep "Nmap scan report for" idle.txt
이 명령은 대상 호스트의 IP 주소를 포함하는 줄을 표시합니다.
Nmap scan report for 192.168.1.1
결과 해석:
아이들 스캔 결과는 대상 호스트의 열린 포트에 대한 정보를 제공합니다. 이 정보는 잠재적인 취약점 또는 호스트에서 실행 중인 서비스를 식별하는 데 사용할 수 있습니다.
- 열린 포트: 열린 포트는 해당 포트에서 서비스가 수신 대기 중이며 연결을 허용하고 있음을 나타냅니다. 이는 웹 서버 (포트 80), SSH 서버 (포트 22) 또는 기타 서비스일 수 있습니다.
- 닫힌 포트: 닫힌 포트는 해당 포트에서 서비스를 수신 대기하지 않음을 나타냅니다.
- 필터링된 포트: 필터링된 포트는 방화벽이 연결을 차단하여
nmap이 포트가 열려 있는지 또는 닫혀 있는지 확인할 수 없음을 의미합니다.
열린 포트를 분석하여 대상 호스트에서 실행 중인 서비스에 대한 통찰력을 얻고 잠재적으로 악용될 수 있는 취약점을 식별할 수 있습니다. 아이들 스캔은 은밀한 기술이지만 완벽하지 않다는 점을 기억하십시오. 네트워크 관리자는 네트워크 트래픽을 모니터링하는 경우에도 스캔을 감지할 수 있습니다.
이것으로 nmap을 사용한 아이들 스캔에 대한 랩을 마칩니다. 좀비 호스트를 식별하고, 아이들 스캔을 수행하고, 상세도를 추가하고, 특정 포트를 스캔하고, 결과를 파일에 저장하고, Xfce 터미널에서 결과를 분석하는 방법을 배웠습니다.
요약
이 랩에서는 nmap -sn 192.168.1.0/24를 사용하여 192.168.1.0/24 네트워크에서 활성 호스트를 식별하는 것으로 시작했습니다. 이 핑 스캔을 통해 192.168.1.1, 192.168.1.2, 192.168.1.100 과 같은 활성 호스트를 빠르게 발견할 수 있었으며, 이는 후속 스캔 활동에 필수적입니다. 그런 다음 좀비 호스트로 192.168.1.2 를 사용하고 대상 호스트로 192.168.1.1 을 사용하여 아이들 스캔을 수행할 준비를 했습니다.



