Nikto 스캔 요청 간 지연 시간 설정

Kali LinuxBeginner
지금 연습하기

소개

Nikto 는 인기 있는 오픈 소스 웹 서버 스캐너로, 6,700 개 이상의 잠재적으로 위험한 파일/프로그램, 1,250 개 이상의 서버의 오래된 버전 확인, 270 개 이상의 서버에 대한 버전별 문제 등 다양한 항목에 대해 웹 서버를 포괄적으로 테스트합니다.

기본적으로 Nikto 는 가능한 한 빠르게 대상 서버에 요청을 보냅니다. 이는 효율적이지만 보안 시스템에 의해 쉽게 탐지될 수 있으며 대상 서버에 과부하를 줄 수 있습니다. -Pause 옵션을 사용하면 각 테스트 사이에 지연 시간을 추가하여 스캔 속도를 제어할 수 있습니다.

이 랩에서는 Nikto 의 -Pause 옵션을 사용하여 더 느리고 덜 침입적인 스캔을 수행하는 방법을 배우게 됩니다.

-Pause 옵션의 목적 이해하기

이 단계에서는 Nikto 의 -Pause 옵션에 대해 알아보겠습니다. 이 옵션은 각 스캔 요청 사이에 초 단위의 지연 시간을 지정하는 데 사용됩니다. 이는 은밀한 스캔을 수행하거나 요청량이 많은 것을 잘 처리하지 못할 수 있는 취약한 시스템을 테스트하는 데 중요한 기능입니다.

먼저 Nikto 의 도움말 정보를 보고 -Pause 옵션에 대한 설명을 살펴보겠습니다. 이는 모든 도구의 옵션 기능을 이해하는 좋은 습관입니다.

터미널에서 다음 명령을 실행하십시오.

nikto -Help

출력을 스크롤하여 -Pause 옵션을 찾으십시오. 해당 기능에 대한 설명이 표시됩니다.

...
-Pause <seconds>      Pause between tests (seconds, integer or float)
...

이는 -Pause가 각 테스트 사이에 대기할 초를 나타내는 숫자 (정수 또는 부동 소수점) 를 허용한다는 것을 확인시켜 줍니다.

테스트 사이에 5 초를 대기하도록 -Pause 5 로 스캔 실행하기

이 단계에서는 -Pause 옵션을 사용하여 Nikto 스캔을 수행합니다. 저희 랩 환경에는 스캔할 수 있도록 http://localhost:8000에서 실행되는 간단한 웹 서버가 있습니다.

각 테스트 사이에 5 초의 일시 중지 시간을 설정합니다. 이는 Nikto 가 다음 요청을 보내기 전에 하나의 요청을 보낸 후 5 초 동안 대기한다는 것을 의미합니다.

스캔을 시작하려면 터미널에서 다음 명령을 실행하십시오.

nikto -h http://localhost:8000 -Pause 5

명령을 분석해 보겠습니다.

  • nikto: Nikto 스캐너를 실행하는 명령입니다.
  • -h http://localhost:8000: -h (또는 -host) 옵션은 대상 호스트를 지정합니다. 이 경우 로컬 테스트 서버입니다.
  • -Pause 5: Nikto 에게 수행하는 각 테스트 사이에 5 초 동안 일시 중지하도록 지시합니다.

명령을 실행하면 스캔이 시작됩니다. 터미널에 출력이 나타나는 것을 볼 수 있습니다.

스캔 속도 저하 관찰하기

이 단계에서는 이전 단계에서 실행한 명령의 출력을 관찰합니다. 여기서는 새로운 명령을 실행할 필요가 없습니다.

Nikto 스캔이 실행 중인 터미널을 살펴보십시오. 개별 테스트 결과를 나타내는 새로운 출력 줄이 기본 스캔보다 훨씬 느리게 나타나는 것을 알 수 있습니다. 화면에 새로운 테스트 결과가 나타날 때마다 눈에 띄는 5 초의 간격이 있을 것입니다.

각 줄이 지연 후 나타나는 출력 예시는 다음과 같습니다.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8000
+ Start Time:         2023-10-27 10:30:00 (GMT0)
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type.
... (새로운 줄이 5초마다 나타남) ...

이러한 의도적인 속도 조절은 -Pause 5 옵션을 사용한 직접적인 결과입니다. 이 설정을 사용하면 전체 스캔에 상당한 시간이 소요될 수 있습니다. 터미널에서 Ctrl+C를 눌러 언제든지 스캔을 중지할 수 있습니다. 이 실습에서는 1 분 정도 실행하여 효과를 관찰한 후 다음 단계로 진행하기 전에 중지할 수 있습니다.

이 기능이 속도 제한 방화벽을 우회하는 데 어떻게 도움이 되는지 분석하기

이 단계에서는 -Pause 옵션을 사용하는 주요 보안 관련 이유, 즉 속도 제한 방어 메커니즘 우회에 대해 논의합니다.

웹 애플리케이션 방화벽 (WAF) 및 침입 탐지 시스템 (IDS) 과 같은 많은 최신 보안 시스템은 속도 제한을 방어 메커니즘으로 사용합니다. 속도 제한은 특정 기간 동안 단일 IP 주소에서 오는 요청 수를 추적하여 작동합니다. 요청 수가 미리 정의된 임계값 (예: 분당 100 개 요청) 을 초과하면 시스템에서 해당 IP 주소를 일시적으로 또는 영구적으로 차단할 수 있습니다.

기본 Nikto 스캔은 매우 공격적이며 매우 짧은 시간 안에 수백 또는 수천 개의 요청을 보냅니다. 이러한 동작은 거의 확실하게 속도 제한 규칙을 트리거하여 스캔이 차단되고 결과가 불완전하고 부정확하게 됩니다.

-Pause 5를 사용하면 스캔의 요청 속도를 5 초당 1 개의 요청으로 변경하여 분당 12 개의 요청만 보냅니다. 이 훨씬 낮은 속도는 간단한 속도 제한 방어에 감지되지 않을 가능성이 훨씬 높아 스캔이 차단되지 않고 성공적으로 완료될 수 있도록 합니다. 이는 -Pause 옵션을 더 은밀한 침투 테스트를 위한 귀중한 도구로 만듭니다.

취약하거나 민감한 시스템 스캔에 이 옵션 사용하기

이 단계에서는 -Pause 옵션의 또 다른 중요한 사용 사례, 즉 취약하거나 민감한 시스템을 책임감 있게 스캔하는 방법에 대해 알아보겠습니다.

공격적이고 빠른 속도의 스캔은 탐지를 위험할 뿐만 아니라 대상 시스템의 안정성에도 부정적인 영향을 미칠 수 있습니다. 웹 서버, 특히 오래되거나 성능이 부족하거나 잘못 구성된 서버는 스캐너의 갑작스러운 요청 폭주를 처리하는 데 어려움을 겪을 수 있습니다. 이는 심각한 성능 저하로 이어져 합법적인 사용자가 애플리케이션을 느리거나 응답하지 않게 만들거나, 최악의 경우 웹 서비스 또는 전체 서버가 충돌할 수 있습니다.

실제 운영 환경 또는 알려진 취약한 시스템을 평가하는 임무를 맡았을 때 서비스 거부를 유발하는 것은 비전문적이며 비생산적입니다.

-Pause 옵션을 사용하는 것은 책임감 있고 전문적인 보안 평가를 수행하는 데 핵심적인 부분입니다. 스캔 속도를 늦춤으로써 대상 서버의 부하를 크게 줄여 정상적인 작동을 방해할 위험을 최소화합니다. 이를 통해 보안 테스트가 비즈니스 운영에 간섭하지 않도록 합니다.

요약

이 실습에서는 -Pause 옵션을 사용하여 Nikto 웹 서버 스캔 속도를 제어하는 방법을 배웠습니다.

요청 간 5 초 지연으로 스캔을 실행하고 스캔 속도가 어떻게 극적으로 느려지는지 관찰했습니다. 또한 이 기법의 두 가지 주요 이점을 탐구했습니다.

  1. 은밀성: 요청 속도를 늦추면 방화벽 및 침입 탐지 시스템에 구현된 간단한 속도 제한 규칙을 우회하는 데 도움이 됩니다.
  2. 안정성: 요청 속도를 줄이면 대상 서버의 부하가 최소화되며, 이는 취약하거나 성능이 부족하거나 중요한 프로덕션 시스템을 스캔할 때 중요합니다.

-Pause 옵션을 숙달하는 것은 더 효과적이고 책임감 있는 보안 전문가가 되기 위한 중요한 단계입니다.