이제 포트 스캔을 시작해보자


포트 스캔은 대상 서버에 불필요한 포트가 열려있는지 확인할 수 있고


어떤 버전의 서비스를 사용하고 있는지도 알아볼 수 있다.


스캔에 종류는 TCP open 스캔과 Stealth 스캔 UDP 스캔으로 나눠 보겠다



첫번째로 TCP 스캔은 TCP의 특징중 하나인 3 way handshake 를 수행하여


포트가 열려 있는지 닫혀 있는지 알아보는 스캔 방법이다


TCP의 SYN 패킷을 이용하며


대상 포트가 열려있다면 SYN + ACK 가 응답으로 오고


SYN + ACK 를 받으면 잘 받았다고 ACK를 보내주면서


3 way hand shake 를 수행한다


대상 포트가 닫힌 포트라면 RST + ACK 가 온다



두번째로 Stealth 스캔은 TCP를 이용하지만


3 way hand shake를 수행하지 않기 때문에 연결 기록이 남지 않아서


Stealth 스캔이라고 부른다


Stealth 스캔에는 4가지가 있는데


tcp half open 스캔

fin 스캔

null 스캔

xmas 스캔


그중 tcp half open 스캔을 먼저 보자


tcp half open 스캔은


tcp 스캔 과정에서 SYN을 이용해서


열린 포트일 경우 SYN + ACK가 오고


잘 받았다고 ACK를 보내줘야하는데 ACK 대신에


RST 을 보내 3way hand shake를 수행하지 않기때문에


로그 기록에 피할수 있다


syn 을 이용한 스캔이기때문에 방화벽에서 막지 않을 것이고


로그도 남기지 않아서 스캔중 좋은 방법인거 같다



fin 스캔과 null 스캔 xmas 스캔은 처음에 무슨 flag로 보내는지에 대해 차이인데


fin 은 fin / null 은 flag가 없는것이고 / xmas는 urg + fin + rst + psh 4가지를 보내는 방식이다


열린 포트라면 비정상적인 flags 이기때문에 응답이 없을것이고


닫혀있는 포트라면 RST + ACK가 오기 때문에 구분이 가능하다



마지막으로 UDP 스캔은


UDP와 icmp를 이용한 스캔인데


열린 포트라면 응답이 없을것이고


닫힌 포트라면 icmp destination unreachable 이 올것이다