본문 바로가기

보안/네트워크

Nmap Fragmentation Scan과 Fragmentation Attack

1. Nmap 이란?


- 고든 라이온(GordonLyon) 제작

- 보안 스캐너 (네트워크 “지도”), 네트워크 점검, OS검색, Version 점검 등

- 서비스 탐지 프로토콜 : 자신을 광고하지 않는 수동적인 서비스 발견

- 원격 컴퓨터들의 자세한 정보

- 예제 : nmap –T4 –A –v www.nmap.org


1) TCP 플래그 : 두 지점 간의 통신을 할 때 기능을 알려주는 flag


 TCP Flag

 설명

 SYN(Synchronization:동기화) 

 TCP에서 세션 성립을 위해 가장 처음 보내는 패킷

 ACK(Acknowledgement) 

 상대방에게 패킷을 받았다는 걸 알려주는 패킷

 RST(Reset)

 현재 접속하고 있는 곳과 연결을 끊기 위해 보내는 패킷

 PSH(Push)

 버퍼가 채워지기를 기다리지 않고 바로 7계층의 응용프로그램에게 데이터를 전달

 URG(Urgent)

 긴급하게 전송해야할 데이터를 위해 사용

 FIN(Finish)

 더이상 전송할 데이터가 없을 때 세션 연결을 종료시키기 위해 사용



2) 스캔옵션


 옵션

 설명 

 -sT

 일반적인 TCP연결을 사용한 포트 스캔 (open)

 -sS

 SYN패킷을 이용한 포트스캔(half open)

 -sF

 FIN 패킷을 이용한 포트스캔 (stealth)

 -sN

 NULL패킷을 이용한 포트스캔 (stealth)

 -sX

 Xmax패킷을 이용한 포트스캔 (stealth)

 -sA

 ACK 패킷을 이용한 포트스캔 (stealth)

 -sW

 ACK패킷에 대한 윈도우 크기 분석 (stealth)

 -sR

 RPC 포트 스캔 

 -sP

 Ping을 이용한 호스트 활성화 여부 확인 (sweeps)

 -sU

 UDP 포트 스캔 (misc)

 -b

 FTP바운스 스캔 (misc)



3) 실행 옵션



 옵션

 설명

 -f

 스캔할 때 패킷을 조각냄

 -v

 스캔 세부 사항을 표시

 -P0

 스캔 전 ping을 하지 않음

 -PT

 TCP 패킷을 이용하여 해당 시스템이 작동 중인지 검사

 -PS

 SYN 패킷만을 보내 시스템의 활성화 여부를 검사

 -PI

 시스템의 활성화 여부를 ICMP로 검사

 -PB

 TCP와 ICMP 둘 다 사용해서 호스트의 활성화 여부를 검사

 -O

 시스템의 운영체제를 추정

 -I

 Ident프로토콜을 사용해 열려 있는 프로세스가 어떤 사용자에 의한 것인지 검사

 -n, -R

 DNS룩업 사용여부 결정

 -T

 시간차를 이용한 스캔



4) nmap 스캔 구성도





2. Nmap Fragmentation Scan


Fragment 스캔 방식은 패킷을 분할 전송하여 방화벽이나 IDS를 통과한 후 대상 컴퓨터에서 패킷이 조합되도록 하는 스캔 방식을 말한다.


1) TCP Fragmenting


- TCP header을 잘게 쪼개서 스캔하는 과정을 모르게 하는 방법

- 서버에서 예측하기 힘든 비정상적인 결과를 얻을 수 있음

    - 패킷을 검사하고 다시 모으기 힘듦

    - 시스템 멈추거나 리붓

    - 네트워크 모니터 다운 

    - 방화벽 룰셋에서 걸러짐

- 패킷 필터링과 감시를 무력화 시킴

- 장점: IDS 를 피할 수 있으며, 탐지되기 어려움 

- 단점: 원격 호스트에서 네트워크 문제를 일으킬 수 있음


2) Nmap 패킷 파편화(Fragment) 기능

- Nmap에서 명령어 –f로 지정한 SYN 또는 FIN가 작은 조각난 패킷 스캔  가능

- 예제 :  nmap –f www.nmap.org

- 때론 공격 타겟에 따라 조각난 패킷들이 필터링 되기도 함



3. Tiny Fragmentation Attack


- 최초의 단편을 아주 작게 만들어 NIDS나 패킷 필터링 장비를 우회하는 공격

- TCP헤더가 2개의 단편으로 나누어질 정도로 작게 쪼갬(두 개의 TCP Fragment 이용)

- TCP 헤더가  첫 번째 단편에 위치하지 않도록 함

첫 번째 단편만 필터링 규칙이 적용되고 나머지 단편은 통과




헤더의 최소 크기는 20바이트이다. 만약 옵션이 존재하는 경우 최대 60바이트의 크기를 가질 수 있다. 분할전 패킷의 헤더가 60바이트라고 가정하고 프래그먼트 단위를 68바이트로 할 경우 TCP 패킷은 첫번째 8바이트만 보유하게된다.  이렇게 전송할 경우 패킷필터링은 처음 패킷만 분석하고 나머지 패킷은 그냥 받아들이므로 패킷필터링을 통과할 수 있게 된다.