Nmap 으로 방화벽 및 IDS 우회

NmapBeginner
지금 연습하기

소개

이 랩에서는 Nmap 을 사용하여 방화벽과 IDS(침입 탐지 시스템, Intrusion Detection System) 를 우회하는 방법을 배우게 됩니다. 이 랩은 여러 기술을 다루며, 여기에는 데코이 스캔 실행, 패킷 분할, IP 주소 스푸핑, 스캔 속도 조정 및 이러한 기술의 조합이 포함됩니다. Xfce 터미널에서 다양한 Nmap 명령을 실행하고 우회 결과를 확인합니다. 이러한 기술을 윤리적으로, 그리고 적절한 권한을 가지고 사용해야 합니다.

nmap -D RND:5 192.168.1.1 로 데코이 스캔 실행

이 단계에서는 Nmap 을 사용하여 스캔의 출처를 난독화하기 위해 데코이 스캔을 사용하는 방법을 살펴보겠습니다. 데코이 스캔은 스캔이 여러 IP 주소에서 시작되는 것처럼 보이게 하여 실제 스캐너를 찾아내기 어렵게 만듭니다.

Nmap 의 -D 옵션을 사용하면 데코이 IP 주소를 지정할 수 있습니다. RND:5 인수는 Nmap 에게 실제 IP 주소 외에 5 개의 무작위, 비예약 IP 주소를 데코이로 사용하도록 지시합니다.

대상에 대해 데코이 스캔을 수행해 보겠습니다. 시연 목적으로 192.168.1.1을 대상 IP 주소로 사용합니다. 192.168.1.1은 자리 표시자임을 유념하십시오. 실제 시나리오에서는 권한을 부여받은 대상의 실제 IP 주소로 이 값을 대체합니다.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -D RND:5 192.168.1.1

이 명령은 5 개의 무작위 IP 주소를 데코이로 사용하여 192.168.1.1에 대한 Nmap 스캔을 시작합니다. 터미널에서 Nmap 의 출력을 볼 수 있으며, 스캔 진행 상황을 보여줍니다.

예시 출력 (특정 출력은 대상 및 네트워크에 따라 다릅니다):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh

Nmap done: 1 IP address (1 host up) scanned in 1.23 seconds

중요 고려 사항:

  • 윤리적 사용: 항상 네트워크 또는 시스템을 스캔할 명시적인 권한이 있는지 확인하십시오. 무단 스캔은 불법이며 비윤리적입니다.
  • 네트워크 영향: 데코이 스캔은 상당한 양의 네트워크 트래픽을 생성할 수 있습니다. 이를 책임감 있게 사용하고 대상 네트워크에 과부하가 걸리지 않도록 하십시오.
  • 효과: 데코이 스캔은 스캔의 출처를 추적하기 어렵게 만들 수 있지만, 완벽하지는 않습니다. 정교한 IDS(침입 탐지 시스템, Intrusion Detection System) 는 여전히 실제 출처를 식별할 수 있습니다.

nmap -f 127.0.0.1 로 패킷 단편화

이 단계에서는 Nmap 을 사용하여 패킷을 분할하는 방법을 배우게 됩니다. 패킷 분할은 TCP 또는 UDP 데이터를 대상에 전송하기 전에 더 작은 조각 (fragment) 으로 나누는 것을 포함합니다. 이 기술은 분할된 패킷을 제대로 재조립하지 못할 수 있는 일부 방화벽 또는 IDS(침입 탐지 시스템, Intrusion Detection System) 를 우회하는 데 사용될 수 있습니다.

Nmap 의 -f 옵션은 패킷 분할을 활성화합니다. 기본적으로 Nmap 은 패킷을 8 바이트 청크로 분할합니다. -mtu <size>를 사용하여 다른 MTU(최대 전송 단위, Maximum Transmission Unit) 크기를 지정할 수 있습니다.

루프백 주소 127.0.0.1에 대해 분할된 스캔을 수행해 보겠습니다. 이 주소는 항상 로컬 머신을 참조하므로 테스트에 안전합니다.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -f 127.0.0.1

이 명령은 패킷을 분할하여 127.0.0.1에 대한 Nmap 스캔을 시작합니다. 터미널에서 Nmap 의 출력을 볼 수 있으며, 스캔 진행 상황을 보여줍니다.

예시 출력 (특정 출력은 시스템 구성에 따라 다릅니다):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000028s latency).
Other addresses for localhost: ::1

PORT     STATE SERVICE
139/tcp  closed netbios-ssn
445/tcp  closed microsoft-ds

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

설명:

  • sudo nmap: 패킷 분할과 같은 raw 소켓 작업에 종종 필요한 슈퍼유저 권한으로 Nmap 을 실행합니다.
  • -f: 분할을 활성화합니다. Nmap 은 패킷을 전송하기 전에 분할합니다.
  • 127.0.0.1: 대상 IP 주소 (루프백 주소) 를 지정합니다.

중요 고려 사항:

  • 방화벽/IDS 우회: 패킷 분할은 때때로 조각을 제대로 재조립하지 못하는 단순한 방화벽 또는 IDS 를 우회할 수 있습니다. 그러나 최신 보안 장치는 일반적으로 분할된 패킷을 처리할 수 있습니다.
  • 성능 영향: 분할은 네트워크 오버헤드를 증가시키고 잠재적으로 스캔 속도를 늦출 수 있습니다.
  • MTU 옵션: -mtu 옵션을 사용하여 조각에 대한 사용자 지정 MTU 크기를 지정할 수 있습니다. 예를 들어, nmap -f -mtu 32 127.0.0.1은 패킷을 32 바이트 청크로 분할합니다.

nmap -S 192.168.1.100 192.168.1.1 로 IP 스푸핑

이 단계에서는 Nmap 스캔의 소스 IP 주소를 스푸핑하는 방법을 살펴보겠습니다. IP 주소 스푸핑은 Nmap 에서 전송하는 패킷의 소스 IP 주소를 위조하는 것을 포함합니다. 이는 실제 IP 주소를 숨기거나 네트워크 방어를 테스트하는 데 사용될 수 있습니다.

Nmap 의 -S 옵션을 사용하면 소스 IP 주소를 지정할 수 있습니다. IP 주소 스푸핑은 심각한 결과를 초래할 수 있으며, 권한이 있는 환경에서만 수행해야 한다는 점을 이해하는 것이 중요합니다. 또한, 스푸핑된 패킷에 대한 응답은 일반적으로 받지 못할 것입니다. 응답은 스푸핑된 주소로 전송되기 때문입니다. 따라서 이 기술은 응답을 볼 필요가 없는 SYN 스캔 (-sS) 또는 connect 스캔 (-sT) 과 같은 "블라인드" 스캔 기술과 함께 자주 사용됩니다.

대상에 대해 스푸핑된 IP 주소로 SYN 스캔을 수행해 보겠습니다. 시연 목적으로 192.168.1.100을 스푸핑된 IP 주소로, 192.168.1.1을 대상 IP 주소로 사용합니다. 192.168.1.1은 자리 표시자임을 유념하십시오. 실제 시나리오에서는 권한을 부여받은 대상의 실제 IP 주소로 이 값을 대체합니다. 또한, 192.168.1.100은 예시일 뿐이며, 충돌을 방지하기 위해 네트워크에서 사용하지 않는 IP 주소를 선택해야 합니다.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -sS -S 192.168.1.100 192.168.1.1

이 명령은 192.168.1.100을 스푸핑된 소스 IP 주소로 사용하여 192.168.1.1에 대한 Nmap SYN 스캔을 시작합니다. 터미널에서 Nmap 의 출력을 볼 수 있으며, 스캔 진행 상황을 보여줍니다.

예시 출력 (특정 출력은 대상 및 네트워크에 따라 다릅니다):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00029s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 2.12 seconds

설명:

  • sudo nmap: IP 주소 스푸핑과 같은 raw 소켓 작업에 필요한 슈퍼유저 권한으로 Nmap 을 실행합니다.
  • -sS: TCP 핸드셰이크를 완료하지 않는 스텔스 스캔인 SYN 스캔을 지정합니다.
  • -S 192.168.1.100: 스푸핑된 소스 IP 주소를 지정합니다.
  • 192.168.1.1: 대상 IP 주소를 지정합니다.

중요 고려 사항:

  • 윤리적 사용: IP 주소 스푸핑은 보안 테스트와 같은 합법적인 목적으로 권한이 있는 환경에서만 사용해야 합니다.
  • 루트 권한: IP 주소 스푸핑에는 루트 권한이 필요합니다.
  • 제한된 기능: 스푸핑된 패킷에 대한 응답을 받지 못하므로 대상에 대한 정보를 수집하기 위해 다른 기술을 사용해야 할 수 있습니다.
  • 네트워크 구성: 네트워크가 스푸핑을 방지하도록 구성된 경우 스푸핑이 작동하지 않을 수 있습니다. 라우터와 방화벽은 종종 스푸핑된 소스 주소가 있는 패킷이 네트워크를 벗어나는 것을 방지하는 메커니즘을 가지고 있습니다.

nmap --max-rate 100 192.168.1.1 로 스캔 속도 조절

이 단계에서는 Nmap 의 스캔 속도를 제어하는 방법을 배우게 됩니다. 스캔 속도 조절은 탐지를 피하고 네트워크 정체를 방지하는 데 매우 중요합니다. Nmap 은 패킷을 전송하는 속도를 제어하기 위한 여러 옵션을 제공합니다.

--max-rate 옵션은 Nmap 이 초당 전송하는 패킷 수를 제한합니다. 이는 IDS(침입 탐지 시스템, Intrusion Detection System) 에 의한 탐지를 피하거나, 특히 대역폭이 제한된 네트워크를 스캔할 때 네트워크 정체를 방지하는 데 유용할 수 있습니다.

대상 IP 주소에 대해 스캔을 수행하고 최대 패킷 속도를 초당 100 패킷으로 제한해 보겠습니다. 시연 목적으로 192.168.1.1을 대상 IP 주소로 사용합니다. 192.168.1.1은 자리 표시자임을 유념하십시오. 실제 시나리오에서는 권한을 부여받은 대상의 실제 IP 주소로 이 값을 대체합니다.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap --max-rate 100 192.168.1.1

이 명령은 192.168.1.1에 대한 Nmap 스캔을 시작하고 최대 패킷 속도를 초당 100 패킷으로 제한합니다. 터미널에서 Nmap 의 출력을 볼 수 있으며, 스캔 진행 상황을 보여줍니다.

예시 출력 (특정 출력은 대상 및 네트워크에 따라 다릅니다):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00028s latency).
Not shown: 999 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 2.50 seconds

설명:

  • sudo nmap: 특정 스캔 유형에 필요할 수 있는 슈퍼유저 권한으로 Nmap 을 실행합니다.
  • --max-rate 100: 전송 속도를 초당 최대 100 패킷으로 제한합니다.
  • 192.168.1.1: 대상 IP 주소를 지정합니다.

기타 속도 제한 옵션:

Nmap 은 스캔 속도를 제어하기 위한 몇 가지 다른 옵션을 제공합니다.

  • --min-rate <number>: 전송할 초당 최소 패킷 수를 지정합니다.
  • --scan-delay <time>: Nmap 이 각 프로브를 보낸 후 대기하는 시간을 조정합니다.
  • --min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout <time>: 프로브 타임아웃 값을 제어합니다.

중요 고려 사항:

  • 네트워크 상태: 최적의 스캔 속도는 네트워크 상태에 따라 다릅니다. 네트워크가 혼잡한 경우 패킷 손실을 방지하기 위해 더 낮은 속도가 필요할 수 있습니다.
  • IDS/IPS 우회: 스캔 속도를 조정하면 침입 탐지/방지 시스템에 의한 탐지를 피하는 데 도움이 될 수 있습니다.
  • 스캔 시간: 스캔 속도를 낮추면 전체 스캔 시간이 증가합니다.

nmap -f --max-rate 50 127.0.0.1 로 다양한 기법 조합

이 단계에서는 패킷 단편화와 속도 제한 기술을 결합하여 Nmap 스캔을 더욱 개선해 보겠습니다. 기술을 결합하는 것은 탐지를 우회하고 스캔 성능을 최적화하는 데 유용할 수 있습니다.

-f 옵션을 사용하여 패킷을 단편화하고 --max-rate 옵션을 사용하여 전송 속도를 제한합니다. 패킷 단편화는 TCP 헤더를 여러 패킷으로 분할하여 패킷 필터 및 방화벽이 스캔을 탐지하기 어렵게 만듭니다. 속도 제한은 스캔이 네트워크를 압도하거나 경보를 트리거하지 않도록 보장합니다.

루프백 주소 (127.0.0.1) 에 대해 스캔을 수행하고 패킷 단편화를 사용하며 최대 패킷 속도를 초당 50 패킷으로 제한해 보겠습니다.

Xfce 터미널을 열고 다음 명령을 실행합니다.

sudo nmap -f --max-rate 50 127.0.0.1

이 명령은 127.0.0.1에 대한 Nmap 스캔을 시작하고, 패킷을 단편화하며 최대 패킷 속도를 초당 50 패킷으로 제한합니다. 터미널에서 Nmap 의 출력을 볼 수 있으며, 스캔 진행 상황을 보여줍니다.

예시 출력 (특정 출력은 대상 및 네트워크에 따라 다릅니다):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Other addresses for localhost: ::1
Not shown: 999 closed ports
PORT     STATE SERVICE
135/tcp  open  msrpc

Nmap done: 1 IP address (1 host up) scanned in 1.85 seconds

설명:

  • sudo nmap: 특정 스캔 유형에 필요할 수 있는 슈퍼유저 권한으로 Nmap 을 실행합니다.
  • -f: 패킷을 더 작은 조각으로 단편화합니다.
  • --max-rate 50: 전송 속도를 초당 최대 50 패킷으로 제한합니다.
  • 127.0.0.1: 대상 IP 주소 (루프백 주소) 를 지정합니다.

중요 고려 사항:

  • 단편화 오버헤드: 패킷 단편화는 더 많은 패킷을 전송해야 하므로 스캔의 오버헤드를 증가시킬 수 있습니다.
  • 방화벽 동작: 일부 방화벽은 검사하기 전에 단편화된 패킷을 재조립하여 단편화의 효과를 무효화할 수 있습니다.
  • 속도 제한 효과: 속도 제한의 효과는 네트워크 상태 및 대상 시스템의 민감도에 따라 다릅니다.
  • 기술 결합: 서로 다른 우회 기술을 결합하면 보안 조치를 우회할 가능성이 높아지지만, 스캔의 복잡성도 증가합니다.

Xfce 터미널에서 우회 기법 검증

이 단계에서는 이전 단계에서 사용한 우회 기술의 효과를 검증하는 방법에 대해 논의합니다. 스캔이 완전히 탐지 불가능하다는 것을 확실하게 증명할 수는 없지만, 다양한 방법을 사용하여 우회 가능성을 평가할 수 있습니다.

우회 검증 방법:

  1. 네트워크 모니터링: tcpdump 또는 Wireshark와 같은 도구를 사용하여 네트워크 트래픽을 캡처하고 Nmap 스캔의 특성을 분석합니다. 단편화된 패킷, 데코이 IP 주소, 속도 제한 트래픽을 찾습니다. 이는 대상과 동일한 네트워크에 있는 별도의 머신이 필요합니다. 격리된 환경에 있으므로 이 방법은 실행 불가능합니다.

  2. IDS/IPS 로그: IDS(침입 탐지/방지 시스템, Intrusion Detection/Prevention System) 로그에 액세스할 수 있는 경우 Nmap 스캔과 관련된 경고가 있는지 검토합니다. 경고가 없다고 해서 우회가 보장되는 것은 아니지만 긍정적인 신호입니다. 이 또한 외부 시스템에 대한 접근이 필요하며, 저희는 접근 권한이 없습니다.

  3. 대상 시스템 로그: Nmap 스캔의 증거가 있는지 대상 시스템의 로그를 확인합니다. 여기에는 특정 포트에 대한 연결 시도 또는 비정상적인 네트워크 활동이 포함될 수 있습니다. 마찬가지로, 대상 시스템에 대한 접근이 필요합니다.

  4. 타사 온라인 서비스: 일부 온라인 서비스는 네트워크 트래픽을 분석하고 잠재적인 보안 위협을 식별할 수 있습니다. Nmap 스캔 트래픽의 샘플을 이러한 서비스에 분석을 위해 제출할 수 있습니다.

Lab 환경의 제한 사항:

LabEx VM 환경의 제한 사항 (예: 별도의 모니터링 머신 부재, IDS/IPS 또는 대상 시스템 로그에 대한 접근 불가) 으로 인해 우회에 대한 포괄적인 검증을 수행할 수 없습니다. 그러나 실행한 명령을 검토하고 우회에 어떻게 기여하는지 이해할 수 있습니다.

우회 기술 검토:

  • 데코이 스캔 (nmap -D RND:5 192.168.1.1): 이 기술은 스캔이 무작위로 생성된 IP 주소를 포함하여 여러 IP 주소에서 시작된 것처럼 보이게 합니다. 이는 네트워크 관리자를 혼란스럽게 하고 스캔을 실제 소스로 추적하기 어렵게 만들 수 있습니다.

  • 패킷 단편화 (nmap -f 127.0.0.1): 이 기술은 TCP 헤더를 여러 패킷으로 분할하여 패킷 필터 및 방화벽이 스캔을 탐지하기 어렵게 만듭니다.

  • IP 스푸핑 (nmap -S 192.168.1.100 192.168.1.1): 이 기술은 다른 소스 IP 주소를 사용하여 실제 IP 주소를 숨깁니다.

  • 속도 제한 (nmap --max-rate 100 192.168.1.1): 이 기술은 스캔 속도를 늦추어 경보를 트리거하거나 네트워크 정체를 일으킬 가능성을 줄입니다.

  • 결합된 기술 (nmap -f --max-rate 50 127.0.0.1): 단편화와 속도 제한을 결합하면 우회에 대한 다중 계층 접근 방식이 제공됩니다.

결론:

LabEx VM 환경에서 우회를 확실하게 검증할 수는 없지만, 이러한 기술의 원리와 작동 방식을 이해하는 것은 은밀하고 효과적인 Nmap 스캔을 수행하는 데 매우 중요합니다. 실제 시나리오에서는 위에 설명된 방법을 사용하여 우회 노력의 효과를 평가합니다.

이 단계는 터미널에서 특정 작업을 수행하는 것보다 개념과 제한 사항을 이해하는 데 더 중점을 둡니다. 따라서 검증 단계에서는 단순히 이 랩의 이 단계에 액세스했는지 확인합니다.

요약

이 랩에서는 참가자들이 Nmap 을 사용하여 방화벽 및 IDS 를 우회하는 방법을 배웁니다. nmap -D RND:5를 사용한 데코이 스캔 실행, nmap -f를 사용한 패킷 단편화, nmap -S를 사용한 IP 주소 스푸핑, nmap --max-rate를 사용한 스캔 속도 조정, 그리고 이러한 기술들을 결합하는 것을 포함한 다양한 기술을 탐구합니다. 각 명령은 Xfce 터미널에서 실행되며, 참가자들은 윤리적 사용, 네트워크 영향, 그리고 이러한 우회 방법의 한계의 중요성을 상기합니다.