TCP와 UDP를 이용한 스캔은 시스템 자체의 활성화 여부가 아닌 포트 스캔을 한다. 물론 포트가 열려 있다면 해당 시스템은 활성화되어 있는 것이다.
1. TCP Open 스캔
TCP를 이용한 가장 기본적인 스캔으로는 Open 스캔이 있다. 먼저 동작하리라고 예상하는 포트에 세션을 생성하기 위한 SYN 패킷을 보낸다. 포트가 열린 경우 서버에서 SYN + ACK 패킷이 돌아오고, 공격자는 다시 ACK 패킷을 보낸다.
(a)에서 볼 수 있듯이 Open 스캔은 3-way-handshake 과정을 모두 거친다. 따라서 상대방 시스템에 로그가 남는다. 포트가 닫혀 있는 경우에는 (b)처럼 공격자가 SYN 패킷을 보내면 RST+ACK 패킷이 돌아오고, 공격자는 아무 패킷도 보내지 않는다.
Open 스캔 중에는 Reverse Ident라는 방법이 있다. 이 방법은 세션을 성립한 상태에서 원격지 서버에서 데몬을 실행하고 있는 프로세스의 소유권자를 확인하기 위한 것이다.
* 데몬 : 시스템의 사용자 인터페이스에는 나타나지 않지만, 서비스를 요청하면 이에 반응할 수 있도록 항상 실행되고 있는 프로그램을 말한다.
위 그림에서 확인할 수 있듯이 Reverse Ident 스캔은 세션을 성립한 후에 113번 포트를 연다. 113번 포트는 사용자 인증을 위해 사용되지만, 이 서비스는 보통 중지되어 있다.
2. 스텔스 스캔
스텔스 스캔은 세션을 완전히 성립하지 않고 공격 대상 시스템의 포트 활성화 여부를 알아내기 대문에 공격 대상 시스템에 로그가 남지 않는다. 따라서 공격 대상의 시스템 관리자는 어떤 IP를 가진 공격자가 자신의 시스템을 스캔했는지 확인할 수가 없다. 스텔스 스캔은 이처럼 단순히 로그를 남기지 않는 것만이 아니라, 공격 대상을 속이고 자신의 위치를 숨기는 스캔 모두를 통칭한다.
TCP Half Open 스캔이 대표적이다. 스캔의 시작은 Open 스캔과 같다. 먼저 SYN 패킷을 보낸다. 포트가 열린 경우 서버는 SYN+ACK 패킷을 보내고 공격자는 즉시 연결을 끊는 RST 패킷을 보낸다. 포트가 닫힌 경우는 Open 스캔과 같다.
스텔스 스캔의 다른 형토로 FIN 패킷을 보내는 방법이 있다. 포트가 열린 경우에는 응답이 없고, 포트가 닫힌 경우에만 RST 패킷이 되돌아 온다.
NULL과 XMAS 패킷을 보내는 때도 이와 같은 결과를 얻을 수 있다. NULL은 플래그 값을 설정하지 않고 보낸 패킷을 말하고, XMAS는 ACK, FIN, RST, SYN, URG 플래그 모두를 설정하여 보낸 패킷을 말한다. XMAS 패킷은 크리스마스 선물처럼 푸짐하게 모두 준다는 의미로 붙여진 이름이다.
또 다른 방법으로 ACK 패킷을 보내는 방법이 있다. 이때 포트 하나가 아니라 모든 포트에 ACK 패킷을 보낸다. ACK 패킷을 받은 시스템은 이에 대한 RST 패킷을 보내고 공격자는 RST 패킷의 TTL 값과 윈도우의 크기를 분석한다. 포트가 열린 경우 TTL 값이 64 이하인 RST 패킷이 돌아오고, 윈도우가 0이 아닌 임의의 값을 가진 RST 패킷이 돌아온다. 포트가 닫힌 경우에는 TTL 값이 운영체제에 따라 일정하게 큰 값이며, 윈도우의 크기가 0인 RST 패킷이 돌아온다.
TCP 패킷을 이용한 스캔 역시 ICMP 스캔처럼 모든 시스템에 동일하게 적용되는 것은 아니다. 이러한 스캔 방법은 최근 시스템에는 거의 적용되지 않는다고 생각해도 될 만큼 많이 알려졌다. 하지만 SYN 패킷을 이용한 스캔 방법은 세션을 성립하기 위한 정당한 패킷과 구별할 수 없기 때문에 아직도 유효하며 아주 효과적이다.
TCP를 이용한 또 다른 스텔스 스캔 방법으로는 TCP 단편화가 있다. 이 방법은 크기가 20바이트인 TCP 헤더를 패킷 두 개로 나누어 보내는 것이다. 첫 번째 패킷에 출발지 IP주소와 도착지 IP주소를, 두 번째 패킷에 스캔하고자 하는 포트 번호가 있는 부분을 보낸다. 첫 번째 패킷은 TCP 포트에 대한 정보가 없기 때문에 방화벽을 통과하고, 두 번째 패킷은 출발지 주소와 목적지 주소가 없어 방화벽을 지날 수 있다.
'NCS보안3기 > 네트워크 해킹' 카테고리의 다른 글
[Network Hacking] 스푸핑 공격 (0) | 2017.04.30 |
---|---|
[Network Hacking] 스니핑 (0) | 2017.04.30 |
[Network Hacking] ICMP스캔 (0) | 2017.04.30 |
[Network Hacking] DNS( Domain Name System ) (0) | 2017.04.24 |
[Network Hacking] OSI 7계층 (0) | 2017.04.23 |