개요
nmap은 네트워크 관리자와 보안 전문가가 네트워크를 탐색하고 보안 문제를 감사하는 데 필수적인 도구입니다. 다양한 스캔 기술을 지원하며, 스크립트 엔진을 통해 기능을 확장할 수 있습니다.
주요 기능
- 호스트 발견 (네트워크 상의 활성 호스트 식별)
- 포트 스캐닝 (열려 있는 포트 및 서비스 확인)
- 운영체제(OS) 감지
- 서비스 버전 감지
- 방화벽 및 필터 우회
- Nmap 스크립트 엔진(NSE)을 통한 확장 기능
주요 옵션
nmap은 매우 다양한 옵션을 제공하므로, 주요 스캔 유형 및 출력 관련 옵션을 중심으로 설명합니다.
스캔 유형
대상 지정 및 기타
생성된 명령어:
명령어를 조합해 보세요.
설명:
`nmap` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
nmap의 다양한 스캔 기능을 활용하는 예시입니다.
기본 포트 스캔
nmap scanme.nmap.org
대상 호스트의 가장 일반적인 1000개 포트를 SYN 스캔합니다.
특정 포트 스캔
nmap -p 80,443 scanme.nmap.org
대상 호스트의 80번(HTTP)과 443번(HTTPS) 포트만 스캔합니다.
OS 및 서비스 버전 감지
nmap -A scanme.nmap.org
대상 호스트의 운영체제와 열린 포트의 서비스 버전을 감지합니다.
서브넷 전체 스캔
nmap 192.168.1.0/24
지정된 서브넷(예: 192.168.1.0/24) 내의 모든 활성 호스트를 스캔합니다.
스캔 결과를 파일로 저장
nmap -sS -oN results.txt -oX results.xml scanme.nmap.org
스캔 결과를 일반 텍스트 파일과 XML 파일로 각각 저장합니다.
설치
nmap은 대부분의 리눅스 배포판에 기본으로 포함되어 있지 않으므로, 패키지 관리자를 통해 설치해야 합니다.
Debian/Ubuntu
sudo apt update && sudo apt install nmap
APT 패키지 관리자를 사용하여 nmap을 설치합니다.
CentOS/RHEL/Fedora
sudo yum install nmap
# 또는
sudo dnf install nmap
YUM 또는 DNF 패키지 관리자를 사용하여 nmap을 설치합니다.
Arch Linux
sudo pacman -S nmap
Pacman 패키지 관리자를 사용하여 nmap을 설치합니다.
팁 & 주의사항
nmap 사용 시 유용한 팁과 주의해야 할 사항들입니다.
윤리적 사용
nmap은 강력한 네트워크 스캐닝 도구이므로, 반드시 소유하거나 스캔 권한을 부여받은 네트워크에 대해서만 사용해야 합니다. 무단 스캔은 불법적인 행위로 간주될 수 있습니다.
- 항상 스캔 대상에 대한 명시적인 허가를 받으세요.
- 공개된 네트워크나 타인의 시스템에 대한 무단 스캔은 법적 문제를 야기할 수 있습니다.
방화벽 우회 및 탐지
nmap은 다양한 기술을 사용하여 방화벽을 우회하거나 방화벽의 존재를 감지할 수 있습니다. `-f` (fragment packets), `--data-length` (add random data), `--badsum` (send packets with bad checksum) 등의 옵션을 활용할 수 있습니다.
- `-Pn` 옵션은 핑 스캔을 건너뛰어 방화벽이 ICMP 응답을 차단하는 경우에도 스캔을 진행할 수 있게 합니다.
- `-T<0-5>` 옵션으로 스캔 속도를 조절하여 IDS/IPS 시스템의 탐지를 피할 수 있습니다 (0: Paranoid, 5: Insane).
Nmap 스크립트 엔진 (NSE)
NSE는 nmap의 기능을 확장하는 강력한 스크립트 모음입니다. 취약점 감지, 백도어 감지, 정보 수집 등 다양한 작업을 수행할 수 있습니다.
- `--script <스크립트명>` 또는 `--script <카테고리>` 옵션으로 사용합니다.
- 예: `nmap --script vuln <target>` (일반적인 취약점 스캔)
- 예: `nmap --script http-enum <target>` (웹 서버 디렉토리 열거)