TCP 포트 스캐닝


1). FULL SCAN

TCP 스캔은 TCP 처음 연결 시 일어나는 3-웨이 핸드쉐이킹을 탐지하는 기법이다. 만약 핸드쉐이킹이 정상적으로 완료되었다면, 해당 TCP 포트는 정상적으로 열려 있는 것으로 판단할 수 있다. 서비스 거부 공격을 막기 위해, 포트 스캐너는 핸드쉐이킹 직후 연결을 종료한다.

이 방식은 일반적인 소켓 connect()를 이용하기 때문에, Nmap 등의 프로그램에서는 이 방식을 연결 스캔(connect scan)으로 부른다.

해당 포트로 동기화가 되면 열려있는거고 동기화가 안되면 닫혀있는거다.

2). HALF SCAN

SYN 스캔은 TCP 핸드쉐이킹을 완전히 수행하지 않고, 처음 SYN 패킷만을 받은 후 검사를 완료하는 방식이다. 이 방식은 실제 TCP 연결이 일어나지 않기 때문에 'half-open 스캔"으로 부르기도 한다.

이 방식을 사용하기 위해서는 TCP 스캔과 같이 connect() 함수를 이용할 수 없고, 포트 스캐너는 이 스캔 작업을 위해 TCP 패킷을 직접 생성한다.

동기화를 완전히 실행하지 않음, SYN 플래그만 사용하여 세션 연결을 하지 않는다.

즉 ,syn/ack를받고 ack를 보내지않는다. 포트가 열려있으면 syn/ack가 오고 닫혀있으면 syn/rst 가옴



스캐닝 도구 설치

 nmap(network mapper)


# yum -y install nmap.x86_64

# nmap --help

스캐닝 옵션들을 볼 수 있다.

- sS : 세션을 성립시키지않는 SYN 스캔

- sT : 세션을 성립시키는 TCP 포트 스캔

- sA : ACK 패킷에 대한 TTL 값 분석

         tcp ack 스캔으로 상대방 호스트가 방화벽을 사용중인지,

         어떤 포트가 필터링 되고 있는지 확인하는데 사용

- sW : ACK 패킷에 대한 윈도우 크기 분석

- sM :


 

- sU : UDP 포트 스캔


- sN : NULL 패킷을 이용한 스캔

- sF : FIN 패킷을 이용한 스캔

- sX : XMAS 패킷을 이용한 스캔


- b : FTP 바운드 스캔



WRITTEN BY
Bugday

,