CTF 박스를 풀 때마다 옵션을 매번 검색해서 쓰다 보니, 자주 쓰는 조합을 여기 모아둠 초기 접근 포트별 체크리스트에서 쓰는 명령어들의 근거
기본 스캔 단계
| 단계 | 명령 | 목적 |
|---|---|---|
| 1. 빠른 포트 탐색 | nmap -p- --min-rate=1000 -T4 <IP> | 열린 포트만 최대한 빠르게 찾기 |
| 2. 상세 스캔 | nmap -sC -sV -p<포트들> <IP> | 기본 스크립트 + 버전 탐지 |
| 3. UDP 확인 (필요시) | nmap -sU --top-ports 20 <IP> | UDP는 느려서 상위 포트만 |
자주 쓰는 플래그
-sC: 기본 NSE 스크립트 세트 실행 (배너 정보 등 추가로 긁어옴)-sV: 서비스/버전 탐지 — 취약점 검색의 출발점-O: OS 탐지 (권한 필요, 100% 정확하진 않음)-A:-sC -sV -O --traceroute를 한 번에 (편하지만 느림)--min-rate=1000: 초당 최소 패킷 전송 속도 강제 (느린 환경에서 스캔 속도 확보)-oN <file>: 결과를 사람이 읽기 좋은 형식으로 저장 (나중에 다시 참고할 때 필수)
NSE 스크립트 카테고리 감각
nmap --script=vuln -p<포트> <IP> # 알려진 취약점 스캔
nmap --script=smb-enum-shares -p445 <IP> # 특정 기능 타겟팅
--script=vuln은 편리하지만 오탐도 있고 스캔 시간이 길어지므로, 초기 정찰보다는 “이 서비스 좀 더 깊게 보고 싶을 때” 쓰는 편이 낫다는 걸 여러 번 겪으며 배웠음
방화벽/IDS 우회가 필요할 때 (제한적으로)
-T2처럼 스캔 속도를 늦추면 IDS 탐지를 줄일 수 있지만, 시간이 오래 걸린다는 트레이드오프가 있음-Pn: 호스트 살아있는지 ping으로 먼저 확인하는 단계를 생략 (ICMP가 막혀 있는 환경에서 유용)
더 채워야 할 것
- NSE 커스텀 스크립트를 직접 짜본 적이 없어서, 간단한 것부터 하나 만들어보고 싶음
- 방화벽 우회 기법(fragmentation, decoy)은 아직 이론으로만 알고 실습이 부족함