관리 메뉴

개발자비행일지

네트워크 스캔 본문

▶ 보안

네트워크 스캔

Cyber0946 2020. 6. 24. 19:35

Network Scan 이란

네트워크를 통해 동작중인 공격 대상에 대해서 서비스, 열려있는 포트번호, 사용하고 있는 운영체제, 버전 , 동작중인 데먼 버전 등을 수집해서 해당 대상의 취약점을 찾기 위한 해킹의 초기 단계 

이 때 공격자는 대상 시스템을 최대한 흔적을 남기지 않고 스캔 하는 것을 목적으로 한다. 이러한 필요에 따라 다양한 방식의 Scan 기법이 개발 되었고, 시스템 관리자는 이러한 공격을 방지하기위해 이에 따른 흔적을 분석하는 네트워크 포렌식이 발전하게 되었다. 

Host Discovery

  • 이것은 공격 대상을 찾기 위해 동작하고 있는 시스템을 찾아내는 기술을 말한다. 가장 대표적인 방법으론 ICMP ping, TCP ping 등이 있다. 여기서 ICMP ping은 가장 쉽게 구현할 수 있지만, 정확도가 떨어지며, 쉽게 방지할 수 있다. 이는 ICMP echo request/reply를 이용한다. 운영체제 차원에서 기본적인 icmp ping 기능을 막아놓은 경우도 많기 때문에 이를 이용해서 시스템의 운영 여부를 찾기란 쉽지 않다.
  • TCP ping은 운영되고 있는 시스템을 대상으로 TCP 3-way handshaking을 이용한다. 이는 연결 수립 및 종료시 ACK 또는 SYN/ACK RST를 활용하는 프로토콜의 동작을 역이용한 기법이다. 

포트 스캐닝

 포트 스캐닝은 원격지 시스템의 IP주소를 알고 있다면 그 타겟시스템의 서비스 포트가 어떤 것이 열려 있는지를 확인하는 기술이다. 만약 오픈된 포트가 잘 알려진 포트라면 어떠한 서비스를 하고 있는지 알 수 있기 때문에 시스템 정보 수집이 목적이다. 예를 들어 80포트가 열려 있다면 시스템은 웹서비스를 하고 있을 것이고, 그러면 우선 웹 취약점을 찾을 수 있게 되는 것이다. 역설적으로 말하면 웹서비스를 하고 있다면 방어자 입장인 관리자는 웹 취약점을 제거해야하는 것이다. 포트 스캐닝은 크게 TCP포트 스캐닝과 UDP 포트 스캐닝으로 구분된다.

  •  TCP 포트 스캐닝 : 특정 TCP 플래그를 설정한 뒤에 패킷을 보내어 돌아오는 반응을 체크하는 기술이다. Connect() scanning, SYN/FIN/NULL, XMAS 스캐닝 등의 종류가 있다.
  •  UDP 포트 스캐닝 : 타겟 시스템의 포트를 목적지 포트로 설정하여 UDP 패킷을 보내는 것이다. 포트가 열려 있으면 아무런 응답이 없고, 포트가 닫혀 있다면 UDP port unreachable message return 되어 온다.
  •  포트스캐닝 기법과 기술
    • Open scanning : TCP connect() scanning
    • Half-open scanning : SYN scanning
    • Stealth scanning : FIN scanning, X-MAS scanning, NULL scanning
    • More advanced scanning : Spoofed scanning
  • 대표적인 스캐닝 도구로는 Nmap, mscan, sscan 등이 있다. 

운영체제의 탐지(OS Fingerprinting)

공격대상 시스템의 OS 버전을 파악하기 위해 사용하는 스캐닝 방식 , 이 때 TCP 연결설정의 시작 순서번호, TTL의 기본 값, ToS 필드 구현 방식, 배너 그래빙 등이 있다. 여기서 배너그래빙이란 텔넷, FTP처럼 원격으로 시스템에 로그인하게 되면 뜨는 안내문(표준입출력)을 파싱해서 정보를 얻어내는 방법이다. 

운영체제를 판별할 수 있는 값들은 다음과 같다. 

  • Maximum Segment Size(MSS) : OS 에서 한번에 전송 할 세그먼트 최대 사이즈를 뜻한다. 
  • Time To Live(TTL) : 패킷이 몇 개의 라우터를 거칠 때까지 살아있을지를 의미하는 값이다. 이는 네트워크에서 루핑 현상을 방지하기 위해 쓴다. 여기서 루핑 현상이란 패킷이 네트워크를 점유하여 계속 루프를 반복해서 해당 네트워크를 사용할 수 없게 되는 현생을 말한다. 
  •  Sliding Window Size : TCP 흐름제어 기법인 슬라이딩 윈도우의 Size를 의미한다. 
  •  TCP Options : TCP 플래그 값을 통한 옵션을 말한다. 
  •  Packet Length : 기본 패킷들의 길이를 의미한다. 
  •  IP ID : IP 패킷에서 식별값을 의미한다. 단편화된 하나의 패킷을 표현할 때 사용한다. 

운영체제 별로 위의 판별 조건이 어떻게 다른지 표로 정리하면 다음과 같다.

여기서 sackOK 는 선택적 승인 옵션 , wsacle -window scale은 TCP 윈도우가 send, receive 가능한지를 알려주는데 사용하고, 또 수신 윈도우의 크기를 협상하는 데 사용한다. 

 

'▶ 보안' 카테고리의 다른 글

Heap 구조, Chunk란?  (0) 2021.03.10
Independent Link Padding  (0) 2020.11.30
배너 그래빙(Banner Grabbing)  (0) 2020.11.30
리눅스 find 사용법  (0) 2020.07.13
Python 패킷스니퍼(Python packet sniffer)  (0) 2020.06.11