본문 바로가기

Kitri_NCS3기 보안과정/네트워크 해킹 및 보안

170417 스캔

1. 스캔 

서버의 동작여부와 서버가 제공하는 서비스를 확인하기 위한 작업 
(TCP 기반의 프로토콜은 기본적으로 request와 response를 교환하는 동작을 이용)

공격할 네트워크의 IP를 찾아내기위해선 일단 그 네트워크가 정상적으로 작동하는지의 여부가 중요하다.
보통 Ping을 사용해서 네트워크의 동작여부를 많이들 확인한다.

port scanning : 이용중인 포트를 탐색, 어떤 포트가 열려있느냐에 따라 어떤 응용프로램을 사용중인지도 예측이 가능하다. 

※ Socket과 port

 Socket

Port 

- Application 계층의 프로세스가 갖고있음

- Transport 에서 Application 계층으로 데이터를 전송할 때 socket을이용해 전송

- socket은 유일한 식별자와 Port번호를 갖고있음

- Port는 0 ~ 65535 까지의 16bit 정수

- 0~1023은 예약되어있음 



ICMP스캔

1) Echo Request(type 8)과 Echo Reply(type 0) 이용하기
:ping을 찍어보는것 TTL 값으로 지나온 홉 수 등을 예측할 수 있으며 OS 에 따라 값도 다르기 때문에 OS도 예측이 가능하다.

라우터나 방화벽에서 Echo request를 막는 경우가 있는데 이때는 아래의 세가지 방법을 이용한다.

2) Timestamp Request(Type 13) 와 Timestamp Reply(type 14)
: 송신자가 수신자에 전송하는 동안 걸린시간. 시간을 상대방쪽에서 알려준다는것은 상대방의 시스템이 활성화 되있음을 뜻한다.

3) Information Request(Type 15)와 Information reply(type 16)
: 원래 Information Request와 reply는 부팅할때 자신의 디스크가 없는 시스템이 스스로 IP를 설정 할 수 있도록 하는 패킷인데 이 패킷을 이용해 resonse를 확인해서 시스템의 활성화 여부를 확인 할 수 있다. 
4)  Address Mask Request(Type 17)와 ICMP Address mask Reply(Type 18)

: Information과 마찬가지로 부팅할때 자신의 서브넷 마스크를 파악하기 위해 보낸다. 


위 방법은 모든 운영체제에서 동작하는 것은 아니다. 가장 많은 곳에서 쓰이는 방식은 Timestamp 방식이다.


TCP 스캔

 - 풀 스캔 ( -TCP스캔) : 네이버에 22번 포트를 스캔하고싶다. 22번포트에 SYN을 보내면 SYN ack 가 오는데 ack를 보내면 활성화 되있음을 확인 할 수 있다. 닫혀있는 상태라면 RST가 올 것이다. 이런식으로 해당포트가 열려있는지 닫혀있는지 알 수 있다.  

풀 스캔의 단점은 로그가 남는다는것.


- 하프스캔( -스텔스 스캔(stealth scan)) : 풀스캔과 비슷한 방식이지만 syn ack를 받고나서 reset을 보내서 연결을 끊어버리는 방식으로 로그를 남기지 않는다.

스텔스 스캔은 누가 자신의 시스템을 스캔했는지 알 수 없다. 하지만 스텔스 스캔으로 방화벽은 통과 할 수 있지만 IDS 를 완전히 피할수 없으며 그 방법도 발전해서 스탤스 스캔의 사용자를 알아낼 수 있는 수준까지 되었다. 그래서 스텔스 스캔 역시 이를 피하기위해 시간차를 이용한 스캔을 이용하게 되었다. 아주 짧은시간동안 많은 패킷을 보내거나 아주 긴시간동안 패킷을 보내는 방법을 사용한다.


FIN, NULL , XMAS SCAN  - 플래그를 보내고 응답을 확인해서 포트가 열려있는지 여부를 확인한다는 공통점이 있다.

FIN 은 fin flag를 보내고 null은 flag값을 설정하지않는다. xmas는 모든 flag를 1로 보낸다.



스캔은 요청을 보내고 돌아오는 응답의 여부로 포트의 상태를 확인한다.