Nikto 에서 집중 스캔을 위한 특정 플러그인 선택하기

Kali LinuxBeginner
지금 연습하기

소개

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

기본적으로 Nikto 는 시간이 많이 소요될 수 있는 광범위한 플러그인을 실행합니다. 보다 효율적이고 목표 지향적인 스캔을 위해 특정 플러그인을 선택하여 실행할 수 있습니다. 이는 특정 취약점이나 특정 유형의 잘못된 구성을 확인하려는 경우에 유용합니다.

이 랩에서는 사용 가능한 모든 Nikto 플러그인을 나열하는 방법과 단일 특정 플러그인을 사용하여 집중적인 스캔을 실행하는 방법을 배우게 됩니다.

-list-plugins 를 사용하여 사용 가능한 모든 플러그인 나열하기

이 단계에서는 Nikto 에서 스캔에 사용할 수 있는 모든 플러그인을 보는 방법을 배웁니다. 이는 집중적인 스캔을 수행하는 첫 번째 단계로, 선택할 수 있는 플러그인의 이름을 알아야 합니다.

-list-plugins 옵션은 Nikto 에게 모든 플러그인의 상세 목록을 출력하고 스캔을 수행하지 않고 종료하도록 지시합니다.

사용 가능한 모든 플러그인을 나열하려면 터미널에서 다음 명령을 실행하십시오.

nikto -list-plugins

그러면 플러그인 목록이 길게 스크롤되는 것을 볼 수 있습니다. 출력은 플러그인의 이름, 작성자 및 해당 목적에 대한 간략한 설명을 보여주는 열로 형식화됩니다.

다음은 출력 예시의 일부입니다.

- Nikto 2.5.0
---------------------------------------------------------------------------
Plugin: apache_expect_header
  Author:      David Lodge <dave at cirt.net>
  Description: See if an Expect header will crash Apache. Bugtraq ID 5253.
  Type:        Standard
  Version:     2.5.0
  CVSID:       $Id: apache_expect_header.plugin,v 1.6 2023/03/28 17:00:00 cirt Exp $

Plugin: apacheusers
  Author:      Chris Forte
  Description: Enumerate apache users via ~user requests
  Type:        Standard
  Version:     2.5.0
  CVSID:       $Id: apacheusers.plugin,v 1.6 2023/03/28 17:00:00 cirt Exp $

... (더 많은 플러그인) ...

잠시 시간을 내어 목록을 살펴보면서 Nikto 가 수행할 수 있는 다양한 테스트를 파악해 보십시오.

실행할 특정 플러그인 선택하기 (예: apacheusers)

이 단계에서는 이전 단계의 목록을 검토하고 집중 스캔을 위한 특정 플러그인을 선택합니다. 이는 특정 테스트 목표에 따라 플러그인을 식별하는 개념적인 단계입니다.

이 랩에서는 apacheusers 플러그인을 선택할 것입니다. 설명에 따르면 이 플러그인은 "~user 요청을 통해 아파치 사용자 열거"를 시도합니다. 이는 웹 서버가 유효한 시스템 사용자 이름을 노출하는지 확인하기 위한 일반적인 테스트입니다.

대상 서버가 간단한 Python 서버이고 Apache 가 아니더라도 이 플러그인을 사용하여 선택 및 실행 프로세스를 시연할 것입니다. 플러그인이 실행되지만 Apache 가 아닌 서버에서는 취약점을 찾지 못할 것이며, 이는 유효하고 예상된 결과입니다.

다음 단계에서는 이 플러그인만 사용하는 명령을 구성하는 방법을 배우게 됩니다.

원하는 플러그인 이름과 함께 -plugins 옵션 사용하기

이 단계에서는 선택한 플러그인만 실행하도록 Nikto 명령을 구성하는 방법을 배웁니다.

실행할 플러그인을 지정하려면 -plugins 옵션 뒤에 플러그인 이름을 사용합니다. 여러 플러그인을 실행하려면 쉼표로 구분된 목록을 제공할 수도 있지만, 이 랩에서는 단일 플러그인에 집중할 것입니다.

기본 명령 구조는 다음과 같습니다. nikto -h <target_host> -plugins <plugin_name>

선택한 apacheusers 플러그인과 로컬 포트 8000에서 실행 중인 테스트 서버의 경우 명령은 다음과 같습니다. nikto -h 127.0.0.1:8000 -plugins apacheusers

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

  • nikto: 실행하는 프로그램입니다.
  • -h 127.0.0.1:8000: -h (host) 옵션은 대상을 지정합니다. 테스트 서버는 로컬 머신 (127.0.0.1) 의 포트 8000에서 실행 중입니다.
  • -plugins apacheusers: 이 명령의 핵심 부분입니다. Nikto 에게 apacheusers 플러그인만 실행하고 다른 모든 플러그인은 건너뛰도록 지시합니다.

다음 단계에서는 이 명령을 실행하고 집중 스캔 결과를 보게 됩니다.

대상에 대한 집중 스캔 실행하기

이 단계에서는 방금 배운 명령을 실행하여 테스트 웹 서버에 대한 집중 스캔을 수행합니다.

터미널에서 다음 명령을 실행합니다. 이렇게 하면 Nikto 가 시작되지만 몇 분 동안 실행되는 대신 단일 플러그인만 실행하므로 매우 빠르게 완료됩니다.

nikto -h 127.0.0.1:8000 -plugins apacheusers

출력은 일반 Nikto 스캔보다 훨씬 짧을 것입니다. 다음과 유사하게 표시됩니다.

- Nikto 2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         2023-10-27 10:30:00 (GMT0)
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ Allowed HTTP Methods: GET, HEAD
+ 1 host(s) tested
+ 0 error(s) and 0 item(s) reported on remote host
+ End Time:           2023-10-27 10:30:01 (GMT0) (1 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

스캔이 얼마나 빨리 완료되었는지 주목하십시오. 이는 대상 테스트를 위해 특정 플러그인을 사용하는 것의 주요 이점을 보여줍니다.

플러그인별 출력 분석하기

마지막 단계에서는 집중 스캔 결과를 분석해 보겠습니다. 보안 테스트에서 결과의 의미를 이해하는 것은 매우 중요한 기술입니다.

이전 단계의 출력을 다시 살펴보겠습니다.

- Nikto 2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
...
+ 0 error(s) and 0 item(s) reported on remote host
+ End Time:           ...
---------------------------------------------------------------------------
+ 1 host(s) tested

분석에서 가장 중요한 줄은 다음과 같습니다. + 0 error(s) and 0 item(s) reported on remote host

이 줄은 apacheusers 플러그인이 실행되었지만 탐지하도록 설계된 조건 중 어느 것도 찾지 못했음을 알려줍니다. 이는 대상이 Apache 서버가 아니라 사용자 디렉토리를 노출하도록 구성된 Apache 서버가 아닌 Python 서버이기 때문에 예상되는 결과입니다.

침투 테스트에서 음성 결과 (취약점 없음) 는 양성 결과만큼 중요합니다. 이는 이 특정 테스트에서 서버가 안전해 보인다는 것을 의미합니다. apacheusers 플러그인만 실행함으로써 전체 스캔의 노이즈와 시간을 들이지 않고 이를 빠르고 효율적으로 확인할 수 있었습니다.

요약

이 랩을 완료하신 것을 축하드립니다!

특정 플러그인을 선택하여 Nikto 로 집중 스캔을 수행하는 방법을 성공적으로 학습했습니다. 이 기술은 효율적이고 대상에 맞는 웹 보안 평가에 필수적입니다.

이 랩에서는 다음 기술을 연습했습니다.

  • -list-plugins 옵션을 사용하여 사용 가능한 모든 Nikto 플러그인 나열하기.
  • 특정 테스트에 관련성 있는 플러그인을 선택하는 방법 이해하기.
  • -plugins 옵션을 사용하여 Nikto 가 지정된 플러그인만 실행하도록 지시하기.
  • 집중 스캔을 실행하고 간결하고 플러그인별 출력을 분석하기.

이 기술을 숙달하면 테스트 워크플로우를 크게 가속화하고 특정 대상에 가장 중요한 취약점에 노력을 집중할 수 있습니다.