포트 스캐닝(Port Scanning)
포트 스캐닝은 공격자가 침입 전 대상 호스트에 대하여 어떤 포트(서비스)가 활성화되어 있는지 확인하는 기법으로 취약점을 분석하기 위한 사전 작업 중 하나이다. 포트 스캐닝을 통해 대상 호스트의 동작 여부와 제공하는 서비스 등을 확인할 수 있다.
일반적으로 포트 스캐닝을 수행하기 위한 스캐너로 nmap을 많이 사용하며, 그중에서도 GUI 환경을 제공하는 Zenmap을 사용해보았다.
nmap 사용법
- 기본 문법: nmap [scan type] [options] <target>
Scan Type | -sS : TCP SYN(Half-Open) Scan, TCP 포트 오픈여부를 확인하는 스캔 -sT : TCP Connect(Open) Scan, TCP 포트 오픈 여부를 확인하는 스캔 -sU : UDP Scan, UDP 포트 오픈 여부를 확인하는 스캔 -sF : TCP FIN Scan, TCP FIN 제어비트 패킷을 이용한 스캔 -sX : TCP Xmas Scan, TCP FIN, PSH, PSH, URG 제어비트를 조합한 패킷을 이용한 스캔 -sN : TCP NULL Scan, TCP 제어비트 설정이 없는 NULL 패킷을 이용한 스캔 -sA : TCP Ack Scan : 방화벽 룰셋(필터링 정책)을 확인하기 위한 스캔 -sP : Ping(ICMP/ICMP Echo) Scan, Ping을 이용해 호스트 활성화 여부를 확인하는 스캔 -sV : 대상 호스트의 운영체제와 포트별 프로그램, 버전 정보를 출력하는 스캔 -D : Decoy 스캔, 실제 스캐너 주소 외에도 다양한 주소로 위조하여 스캔하는 방식 -b : TCP FTP Bounce Scan, -b <FTP bounce proxy> |
Port Option | -p 22 : 22번 포트(ssh) 스캔 -p <service> : 특정 서비스명(ex. ssh)으로 포트 스캔 -p 20, 25, 80 : 20, 25, 80번 포트 스캔(여러 포트를 지정하여 스캔) -p 1-1023 : 포트 범위를 지정하여 스캔 -p T:21, 23, 110, U:53 : TCP 21, 23, 110번 포트와 UDP 53번 포트를 분리하여 스캔 |
Output Option | -v : 상세 내역 출력 -d : 디버깅 -oN <file> : 결과를 일반 파일 형식으로 출력 -oX <file> : 결과를 XML 파일 형식으로 출력 -oG <file> : 결과를 Grepable(grep, awk 분석을 위한) 파일 형식으로 출력 -oA <Directory> : 일반(.nmap), XML(.xml), Grepable(.gnmap) 파일 형식으로 출력 |
기타 Option | -O : 대상 호스트의 운영체제 정보를 출력 -F : 빠른 네트워크 스캐닝 -T0(아주 느리게) ~ T5(아주 빠르게) |
Target | - hostname, IP Address 등 지정 ex) 192.168.159.150 : 특정 IP를 지정하여 스캔 ex) 192.168.159.0/24 : 192.168.159 대역을 스캔 |
Zenmap 실습
- nmap -T3 -A -vv 호스트 IP(125.xxx.xxx.xxx)
-A 옵션은 -sV와 유사한 옵션으로, 대상 호스트의 운영체제와 포트별 프로그램, 버전 정보를 출력한다.
위와 같이 활성화되어 있는 포트의 상세 정보가 출력되는 것을 확인할 수 있다.
80, 443/TCP 포트에 대하여 Apache Tomcat 버전 정보를 확인할 수 있는데, 공격자는 공격 시 해당 정보를 이용할 수 있으므로 서버 정보를 삭제하는 것을 권고하고 있다.
Apache Tomcat의 경우에는 server.xml의 Connector 설정에 server=" "의 문자열을 추가해주면 된다.
<Connector port="80" protocol="HTTP/1.1" server=" "
... />
server.xml 수정 후 Zenmap을 다시 수행한 결과 버전 정보가 삭제된 것을 볼 수 있다.
주의할 점
공개되어 있는 IP/도메인에 대하여 사전 허가 없이 포트 스캐닝을 수행하는 것은 불법행위로 간주되므로 주의를 요한다.
아래는 정보통신망법 제48조(정보통신망 침해행위 등의 금지)의 내용이다.
제48조(정보통신망 침해행위 등의 금지)
① 누구든지 정당한 접근권한 없이 또는 허용된 접근권한을 넘어 정보통신망에 침입하여서는 아니 된다.
② 누구든지 정당한 사유 없이 정보통신시스템, 데이터 또는 프로그램 등을 훼손ㆍ멸실ㆍ변경ㆍ위조하거나 그 운용을 방해할 수 있는 프로그램(이하 “악성프로그램”이라 한다)을 전달 또는 유포하여서는 아니 된다.
③ 누구든지 정보통신망의 안정적 운영을 방해할 목적으로 대량의 신호 또는 데이터를 보내거나 부정한 명령을 처리하도록 하는 등의 방법으로 정보통신망에 장애가 발생하게 하여서는 아니 된다.
[전문개정 2008. 6. 13.]
'정보보안 > 네트워크' 카테고리의 다른 글
가상 사설망(VPN: Virtual Private Network)의 개념 (0) | 2022.01.24 |
---|