nmap은 네트워크 맵(Network Mapper)의 줄임말로, 서버나 네트워크의 상태를 분석하고 보안 취약점을 찾는 데 많이 쓰여요. 해커도 사용하지만, 보안 관리자가 더 많이 씁니다.
여기에 nse (Nmap Scripting Engine)를 이용하면, 단순 포트 스캔을 넘어서 웹 취약점 진단까지 자동화할 수 있어요.
nmap 기본 기능: 포트 스캔, 운영체제 식별, 서비스 버전 확인 등 nse 스크립트: SQL Injection, XSS, HTTP 인증 우회 등 다양한 보안 진단 가능쉽게 말해, nmap은 몸통이고 nse는 뇌라고 생각하면 이해하기 편해요!
예를 들어, 우리가 운영하는 쇼핑몰 홈페이지에서 어떤 포트가 열려 있고, 취약한 서비스가 있는지 점검하려고 해볼게요.
“웹 서버의 불필요한 포트가 열려 있는 걸 모르고 방치하다 해킹 당하는 경우가 의외로 많아요!”
다음과 같은 문제 상황이 있다고 가정해볼게요:
| 문제 | 상세 내용 |
|---|---|
| 열린 포트 방치 | TCP 8080 포트에서 불필요한 서비스 실행 |
| 웹 취약점 미점검 | HTTP 서비스에 취약점 존재 여부 확인 안 함 |
이런 경우 nmap과 nse 스크립트를 이용해 다음과 같이 문제를 해결할 수 있어요.
nmap으로 포트 스캔 → 불필요한 포트 확인 후 차단 nse 스크립트로 HTTP 취약점 검사 → 보안 설정 강화이제 본격적으로 실습해볼까요? 우분투 기준으로 진행합니다.
Step 1: nmap 설치sudo apt update
sudo apt install nmap
Step 2: 포트 스캔 기본 명령어
nmap -sS 192.168.0.10
여기서 -sS는 TCP SYN 스캔이에요. 가장 기본적이고 빠릅니다.
nmap --script=http-enum 192.168.0.10
http-enum 스크립트는 웹 서버에서 실행 중인 경로나 서비스를 확인해주는 nse입니다.
Step 4: 여러 스크립트 동시에 실행nmap -p 80,443 --script=http-vuln* 192.168.0.10
위 명령어는 HTTP 취약점 관련 nse 스크립트를 한 번에 실행하는 방법이에요.
Step 5: 결과 확인 후 조치취약점 결과를 확인한 후, 웹 서버 설정을 변경하거나 보안 패치를 적용하면 끝!
조금 더 깊이 있게 배워볼 분들을 위해 nse 스크립트 추천 목록과 활용 팁을 정리해볼게요.
| 스크립트 이름 | 기능 | 사용 예시 |
|---|---|---|
| http-enum | 웹 서비스 디렉토리 탐색 | nmap --script=http-enum |
| http-vuln-cve2021-26855 | 익스체인지 서버 취약점 탐지 | nmap --script=http-vuln-cve2021-26855 |
| http-headers | HTTP 보안 헤더 확인 | nmap --script=http-headers |
| ssl-cert | SSL 인증서 정보 확인 | nmap --script=ssl-cert |
그리고 참고로:
nmap --script-help 명령어로 스크립트 설명을 확인할 수 있어요. nmap -Pn 옵션을 쓰면 Ping 없이 바로 스캔 가능합니다.정기적으로 nmap과 nse를 활용해서 점검하는 습관을 들이면 보안 사고를 예방할 수 있어요!

