오늘은 정보보안을 공부하면서 공격자의 입장에서 침입 전 취약점을 분석하기 위해 실행하는 포트스캐닝에 대해 정리하고 스캔 방식에 따라 포트가 열린상태, 닫힌 상태에 따라 어떤 응답이 오는지 정리하고자 함
포트 스캐닝(Port Scanning)이란 네트워크 상의 호스트(컴퓨터나 서버)에서 열려 있는 포트들을 탐색하는 과정으로 각 포트는 특정 서비스나 애플리케이션과 연결되어 있음
포트 스캐닝은 네트워크 보안이나 침투 테스트 과정에서 중요한 도구로 사용되며, 시스템의 취약점을 찾는 데 도움이 될 수 있음
포트 스캐닝은 네트워크 관리자에게 유용한 도구임 하지만 악의적인 해커가 시스템의 취약점을 찾기 위해 사용될 수도 있어 방어 기술도 중요함
nmap
을 많이 사용함TCP 스캔
: TCP 연결을 시도하여 열려 있는 포트를 확인 가장 일반적인 포트 스캔 방법
SYN 스캔
: 완전한 TCP 연결을 시도하지 않고, SYN 패킷만 보내고 응답을 확인하여 포트 상태를 파악. 비교적 빠르고 은밀하게 스캔 가능
UDP 스캔
: UDP 프로토콜을 사용하는 포트를 탐색. TCP에 비해 스캔이 느리고 응답이 불확실할 수 있음
스텔스 스캔
: 탐지가 어려운 방식으로 포트를 스캔, 방화벽이나 IDS(침입 탐지 시스템) 회피를 목적으로 함
nmap [scan type] [options] <target>
www.test.com
, 192.168.159.151
192.168.159.0/24
(대역 스캔), 192.168.159.100-150
(특정 범위 스캔)기본 스캔: 대상 IP 주소의 열려 있는 포트를 기본 스캔
nmap 192.168.1.1
특정 포트 스캔: 80번과 443번 포트만 스캔
nmap -p 80,443 192.168.1.1
서비스 버전 탐지와 운영체제 정보 탐지: 대상 시스템의 서비스 버전과 운영체제 정보 확인
nmap -sV -O 192.168.1.1
일반 사용자 권한으로 TCP 포트 오픈 여부를 확인하기 위해 connect 시스템을 호출하는 방식의 스캔
Target 호스트의 대상 포트로 SYN 패킷을 전송
SYN + ACK
응답 수신 RST + ACK
응답 수신대상 포트가 열린 상태라면 연결설정이 완료되고 포트 오픈 여부를 확인했기 때문에 연결을 즉시 중단하기 위해 RST + ACK
패킷을 전송
관리자 권한으로 TCP 패킷 자체(raw packet)를 직접 조작하여 TCP 포트 오픈 여부를 판단하는 스캔방식
Target 호스트의 대상 포트로 SYN 패킷을 전송
SYN + ACK
응답 수신 RST + ACK
응답 수신SYN + ACK
응답만으로 포트가 열린 상태임을 알수 있기 때문에 패킷 조잣을 통해 RST
패킷을 전송하여 연결을 완료하지 않고 즉시 중단함
관리자 권한으로 TCP 패킷 자체를 직접 조작하여 TCP 포트 오픈 여부를 판단하는 스캔 방식
TCP 표준 특성을 이용하여 포트 오픈 여부를 확인함
SYN
, ACK
또는 RST
이외의 패킷을 수신한 경우 닫힌 포트에서는 RST
패킷으로 응답하고 열린 포트에서는 응답하지 않음FIN 스캔
: FIN 제어 비트만을 설정하여 스캔하는 방식 (표준 : FIN+ACK 제어비트 사용)
NULL 스캔
: 제어 비트를 설정하지 않고 스캔하는 방식 (TCP 표준에서 사용하지 않음)
Xmas 스캔
: URG, RSH, FIN 제어비트를 설정하여 스캔하는 방식 (TCP 표준에서 사용하지 않음)
RST + ACK
응답 수신포트 오픈 여부를 판단하는 것이 아닌 방화벽 룰셋(필터링 정책)을 알아내기 위한 스캔 방식
RST
수신UDP 포트 오픈 여부를 판단하는 스캔 방식으로 닫힌 UDP 포트로 패킷 수신 시 ICMP 에러 메시지로 응답하는 특성을 이용함
다양한 포트 스캔을 수행할 때 스캔을 당하는 Target 호스트에서 스캐너 주소를 식별하기 어렵게 실제 스캐너 주소 외에 다양한 위조된 주소로 스캔하는 방식
nmap -T4 -sF -p 23,80 192.168.56.100 -D RND
-D
옵션을 통해서 공격자 IP 외에 임의로 부여한(RND
) 위조된 IP로 TCP FIN 스캔(-sF
)을 수행Target 호스트의 포트(서비스)가 방화벽에 의해 필터링(차단)되고 있는 상태
TCP Connect 스캔 , TCP SYN 스캔, TCP FIN/NULL/Xmas 스캔, UDP 스캔이 이에 해당함
방화벽의 정책에 따라 응답이 다름
DROP 정책
: DROP 차단 정책을 사용하면 해당 패킷을 폐기한 후 아무런 응답을 하지 않음
REJECT 정책
: REJECT 차단 정책을 사용하면 해당 패킷을 페기한 후 ICMP 에러 메시지(Destination Unreachable)를 응답함