보안/study

포트 스캔 공격 정리 및 공격툴(nmap,ncat,hping3)

iiliiiili 2021. 5. 15. 22:33

1. 포트 스캔 종류

스캔 종류 설명 공격 예시
TCP Connect(Open) 스캔 정상적인 TCP 연결 과정을 수행 #nmap -sT
TCP SYN(Half Open)스캔 -닫힌 포트 -> RST + ACK
-열린 포트 -> SYN + ACK
#nmap -sS
스텔스(Stelth)스캔 스캔 대상 호스트에 로그를 남기지 않는 기법
-닫힌 포트 -> RST + ACK
-열린 포트 -> 응답X
 
TCP FIN(스텔스) -닫힌 포트 -> RST + ACK
-열린 포트 -> 응답X
#nmap -sF
TCP NULL(스텔스) -닫힌 포트 -> RST + ACK
-열린 포트 -> 응답X
#nmap -sN
XMAS(스텔스)
-닫힌 포트 -> RST + ACK

-열린 포트 -> 응답X
#nmap -sX
TCP ACK 스캔 타겟 호스트의 포트 오픈 여부x 방화벽 룰셋 확인

-방화벽 허용 -> 호스트의 포트 오픈여부와 상관없이 RST
-방화벽 차단 -> 응답이 없거나,
ICMP error(Destination Unreachable)
#nmap -sA
UDP 스캔 UDP 포트 오픈여부 확인 #nmap -sU
ping 스캔 Ping 을 이용해 호스트 활성화 확인 #nmap -sP 
Decoy 스캔 타겟 호스트에서 스캐너 주소를 식별하기 어렵도록 실제 스캐너 주소 외에 다양한 위조된 주소로 스캔하는 방식 #namp -D 
TCP FTP Bounce 스캔 FTP 서버를 통해 FTP PORT 명령을 임의의 서버로 replay하여 포트의 open여부를 확인한다. #nmap -b <FTP bounce proxy>

 

 

 

1. 공격 툴

(1) nmap

종류 옵션 설명 및 사용 예
Port 지정 -p 포트번호, 포트번호 나열(22,23), 포트범위(1-1023)
서비스명: telnet, ssh 등
-pT:21,22,U:53 : TCP , UDP 분리하여 포트 스캔
Target Host 지정   hostnmae 지정 : 도메인(ex tistory.com)
ip address, network : CIDR,범위 지정(ex 192.168.200.1-10)
스캔 옵션 -sP ping 스캔
-sT TCP Connect(Open) 스캔
-sS TCP SYN(Half-Open) 스캔
-sF TCP FIN 스캔
-sX XMAS 스캔
-sN TCP NULL 스캔
-sU UDP 스캔
-D Decoy 스캔
-b FTP 바운스 공격 전용 포트스캔
Output 옵션 -oN 스캔 결과 일반 파일 형식으로 출력
# nmap -T4 -sS -oN "/var/nmap.out" -p 23,80 192.168.200.1
-oX 스캔 결과 xml 파일 형식으로 출력
# nmap -T4 -sS -oX "/var/xml.out" -p 23,80 192.168.200.1
-oG 스캔 결과 Grepable(grep, awk 등으로 분석하기 편한) 파일 형식으로 출력
# nmap -T4 -sS -oN "/var/grepable.out" -p 23,80 192.168.200.1
기타 옵션 -O 타겟 호스트의 운영체제 정보 출력
# nmap -O 192.168.200.1
-F 빠른 네트워크 스캐닝
-T0 ~ T5 T0 아주 느리게 ~ T5 아주 빠르게

+nmap scripting engine(nse)

 

(2) ncat(nc)

사용법: nc [옵션] [목적지 host] [목적지 port]

옵션 설명
-n
-n : 
호스트 네임과 포트를 숫자로만 입력받는다.

-o [filename] 보내거나 받은 데이터를 헥스덤프하여 파일에 저장한다.
-v
verbosity 
를 증가 시킨다더 많은 정보를 얻을수 있다.

-p  
-l  
   

 

(3) hping3

사용법: hping3 [목적지 host] [옵션] or hping3  [옵션] [목적지 host] 

포트스캔, flooding 공격에 사용된다.

옵션 설명
-p, --destport 목적지 포트
-S, --syn syn 패킷을 보냄
-A, --ack ack 패킷을 보냄
-F, --fin fin 패킷을 보냄
-R, --rst rst 패킷을 보냄
-D, --data 데이터 크기 설정
-V, --verbose 자세히 보기