개요
포트 스캔(port scan)은 운영 중인 서버에서 열려 있는 TCP/UDP 포트를 검색하는 것을 의미한다.
(RFC 2828)
Open Scan
- TCP Open
- 포트가 열려 있을 경우 SYN+ACK이 온다.
- UDP Open
- 포트가 열려 있을 경우 응답이 오지 않는다.
- 포트가 닫혀 있을 경우에는 ICMP Unreachable 패킷을 수신받는다.
Stealth Scan
세션을 완전히 성립하지 않고 공격 대상 시스템의 포트 활성화 여부를 알아내기 때문에 대상 시스템에 로그가 남지 않는다.
- TCP FIN 스캔
- FIN플래그를 설정하여 보낸다. 응답이 없으면 열려 있는 것으로 판단한다.
- RST 패킷이 되돌아 오면 닫혀 있는 것이다.
- TCP ACK 스캔
- 포트의 오픈 여부를 판단하는 것이 아닌, 방화벽 정책을 테스트하기 위한 스캔
- 대상 방화벽이 상태 기반(Stateful)인지 여부, 대상 포트가 방화벽에서 필터링되는지 여부
- NULL 스캔
- NULL 플래그(모든 플래그가 0)를 설정하여 보낸다. 응답이 없으면 열려 있는 것으로 판단한다.
- RST 패킷이 되돌아 오면 닫혀 있는 것이다.
- Xmas 스캔
- 여러 플래그를 동시에 설정하여 한꺼번에 보낸다. 응답이 없으면 열려 있는 것으로 판단한다.
- RST 패킷이 되돌아 오면 닫혀 있는 것이다.
- SYN 스캔
- Open 스캔과 대비하여 Half-Open 스캔이라고도 부른다.
- SYN을 보내 SYN+ACK이 오면 열린 것으로 판단하고, RST 패킷을 보내 접속을 끊어버린다.
Sweep
"훑어보다"라는 뜻으로, 특정 포트를 지정하여 Open 여부를 확인하는 것이 아니라, 취약한 포트 중 열린 포트가 있는지 광범위하게 훑어보기 위한 스캔을 말한다. 특정 취약한 포트가 열려 있는지 찾으려 여러 서버들을 훑어 보는 것도 포함된다. 방법론보단 행위의 목적에 대한 구분이다.