* 포트 스캐닝 : 공격자가 침입 전, 대상 호스트에 어떤 포트(서비스)가 활성화 되어 있는지 확인하는 기법
- 취약점 분석을 위한 사전 작업
TCP 표준 (RFC 793)
- 닫힌 포트로 RST 이외의 패킷 수신할 시, RST 패킷으로 응답(RST+ACK)
- 열린 포트로 SYN, ACK, RST 외의 패킷을 수신한 경우, 이를 폐기하고 응답하지 않음
(열린 포트에서 ACK만 수신 시에도 RST로 응답)
* TCP Connect(Open) 스캔 : 일반 사용자 권한으로 connect 시스템 호출(system call)을 이용해, 정상적 TCP 연결 과정을 수행하여 스캔하는 방식
system call : 운영체제(커널)가 제공하는 서비스를, 일반 응용 프로그램이 이용할 수 있도록 제공하는 인터페이스
- 응용 프로그램에 함수 형태로 제공되어, 시스템 함수 라고도 함.
- Target 호스트에 직접 연결되어 시스템 로그에 스캔한 흔적이 남음
- 패킷의 Raw data를 조작하는 것은 관리자 권한이 필요하여, 일반 사용자는 TCP Connect(Open) 스캔 이용
* TCP SYN(Half-Open) 스캔 : 관리자 권한으로 TCP 패킷 자체(raw packet)에서 헤더부분의 제어비트(Control Bit)를 직접 조작 후, 3-Way HandShaking을 완전히 수행하지 않는 TCP 포트 스캔
- 스텔스 (Stealth) 스캔에 해당
스텔스 스캔 : TCP 세션이 완전히 성립되지 않은(TCP 연결 설정 미완료 상태)에서, 타겟 포트의 활성화(오픈) 여부를 알아내는 스캔 방식으로, 대상 시스템에 로그가 남지 않음
- TCP SYN, FIN, NULL, Xmas Scan 등이 해당
- 닫힌 포트에 대해서는 모두 RST + ACK 응답 회신
- 열린 포트에 대해서는 TCP SYN만 SYN+ACK 회신 / TCP FIN, NULL, Xmas Scan의 경우 응답이 오지 않음
* TCP FIN Scan : 스텔스 스캔 방식 중 하나로, FIN 제어비트만 설정하여 스캔 수행
* TCP NULL Scan : 스텔스 스캔 방식 중 하나로, 제어비트 설정하지 않고(No Flags Set) 스캔 수행
* TCP Xmas 스캔 : 스텔스 스캔 방식 중 하나로, 제어비트 URG, PSH, FIN 제어비트를 설정하여 스캔 수행
- 급하게(URG), 밀어서(PSH), 끝냄(FIN) = Xmas
* TCP FIN, NULL, Xmas 스캔 방화벽 FILTERD 상태
* TCP ACK 스캔 : Target 대상이 포트 오픈 여부에 대한 판단이 아닌, 방화벽 룰셋(Filtering 정책)을 알아내기 위한 스캔 방식
- 대상 포트로 ACK 제어비트만 설정하여 패킷을 전송
- F/W Filtered : 응답없음 or Destination Unreachable 수신
- F/W Unfiltered : 포트 오픈 여부에 상관없이 RST 응답 수신
* UDP 스캔 : Target의 UDP 포트 오픈 여부를 판단하는 스캔
- Port Open 상태 : 응답이 없거나, 정상 UDP 응답 발생
- Port Close 상태 : ICMP Unreachable (Type:3 - Destination Unreacable, Code:3 - Port Unreachable)
* Decoy 스캔 : 포트 스캔 수행 시, 실제 스캐너 주소 외에 다양한 위조 IP로 스캔하는 방식
- nmap Scanner의 -D RND 옵션을 통해 위조된 IP로 설정한 스캐닝 가능
* nmap port Scanner 옵션
문법 | 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 URG/PSH/FIN 제어비트 3개를 조합한 패킷을 이용한 스캔 -sN : TCP NULL Scan : TCP 제어비트 설정 없는 NULL 패킷을 이용한 스캔 -sA : TCP ACK Scan : 방화벽 룰셋(필터링 정책)을 확인하기 위한 스캔 -sP : Ping(icmp/icmp echo) Scan : Ping을 이용해 호스트 활성화 여부를 스캔 -D : Decoy 스캔 : 실제 스캐너 주소 외에도 다양한 주소로 위조하여 스캔 -b : TCP FTP Bounce Scan, -b <FTP bounce proxy> |
port option |
-p 22 : 22번 포트 스캔 -p <service> : 특정 서비스명(ex.ssh)으로 포트 스캔 -p 20,25,80 : 20,25,80 포트 / 여러 포트 스캔 -p 1-1023 : 1-1023 포트 스캔 / 일정 범위로 포트 스캔 -pT:21,23,110,U:53 : TCP 21,23,110번 포트와 UDP 53번 포트를 분리하여 포트 스캔 |
output option |
-v : 상세 내역 출력 -d : Debugging -oN <file> : 결과를 일반 파일 형식으로 출력 -ox <file> : 결과를 XML 파일 형식으로 출력 -oG <file> : 결과를 Grepable(grep, awk등으로 분석하기 편한) 파일 형식으로 출력 -oA <Directory> : 일반(.nmap), XNL(.xml), Grepable(.gnmap), 파일로 출력 |
기타 Option |
-O : 대상 호스트의 운영 체제 정보 출력 -F : 빠른 네트워크 스캐닝 -T0 ~ T5 : T0 아주 느리게 ~ T5 아주 빠르게 -iL ./파일명.txt : 호스트 목록이 기재된 외부 파일 읽어 스캔 (다수 IP 확인에 효과적) |
Target | -hostname 지정 : (ex. www.test.com) -IP address, Network 등 가능 ex) 192.168.10.1 ex) 192.168.10.0/24 ex) 192.168.10.1-150 |
'Information Security > Hacking' 카테고리의 다른 글
HTTP (Hyper Text Transfer Protocol) (0) | 2021.05.12 |
---|---|
DRDoS (Distributed Reflection DoS) (0) | 2021.03.20 |
포맷 스트링 공격 (Format String Attack) (0) | 2021.03.05 |
레이스 컨디션 공격 (Race Condition Attack) (0) | 2021.03.05 |
버퍼 오버 플로우 (BOF - Buffer OverFlow) 공격 (0) | 2021.03.02 |