nikto.conf 파일로 스캔 동작 사용자 정의하기

Kali LinuxBeginner
지금 연습하기

소개

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

Nikto 는 명령줄 옵션을 사용하여 구성할 수 있지만, 기본 동작은 중앙 구성 파일인 nikto.conf에 의해 제어됩니다. 이 파일을 수정하는 방법을 이해하면 기본 설정을 영구적으로 변경하고, 특정 환경에 맞게 스캔을 조정하며, 워크플로우를 간소화할 수 있습니다.

이 랩에서는 nikto.conf 파일을 찾고, 읽고, 수정하는 방법을 배웁니다. 기본 USERAGENT 문자열을 변경하고, 스캔을 실행하여 새로운 동작을 관찰한 다음, 원래 구성을 복원합니다.

주요 nikto.conf 구성 파일 찾기

이 단계에서는 Nikto 의 주요 구성 파일인 nikto.conf를 찾습니다. 이 파일에는 Nikto 가 실행될 때 사용하는 모든 기본 설정이 포함되어 있습니다. 사용 중인 Ubuntu 환경과 같은 Debian 기반 시스템에서는 이 파일이 일반적으로 /etc/ 디렉토리에 위치합니다.

find 명령을 사용하여 파일 전체 파일 시스템을 검색할 수 있습니다. 구성 파일의 정확한 위치를 모를 때 유용한 기법입니다.

터미널에서 다음 명령을 실행하여 nikto.conf를 찾으십시오. 더 깔끔한 출력을 위해 "Permission denied" 메시지를 숨기기 위해 표준 오류 (2) 를 /dev/null로 리디렉션합니다.

sudo find / -name nikto.conf 2> /dev/null

출력으로 구성 파일의 경로가 표시됩니다.

/etc/nikto.conf

이제 위치를 알았으므로 내용을 검사할 수 있습니다.

파일 열기 및 RFIURL 과 같은 기본 설정 검토

이 단계에서는 텍스트 편집기를 사용하여 nikto.conf 파일을 열고 일부 기본 설정을 검토합니다. 간단한 명령줄 텍스트 편집기인 nano 편집기를 사용할 것입니다. 파일이 /etc/에 있고 root 사용자가 소유하고 있으므로 파일을 열려면 sudo를 사용해야 합니다.

nano로 파일을 엽니다.

sudo nano /etc/nikto.conf

nano 안으로 들어가면 화살표 키로 이동할 수 있습니다. 파일에는 각 변수가 무엇을 하는지 설명하는 주석 (줄 시작이 #인 줄) 이 많이 달려 있습니다.

특정 변수인 RFIURL을 검색해 보겠습니다. 이 변수는 Nikto 가 원격 파일 포함 (RFI) 테스트에 사용하는 외부 파일을 정의합니다. Ctrl + W를 눌러 검색 프롬프트를 열고 RFIURL을 입력한 다음 Enter를 누릅니다. 다음과 유사한 줄이 표시됩니다.

## The URL to a remote file to use for RFI tests.
RFIURL=http://cirt.net/rfi.txt

다음으로 다음 단계에서 수정할 USERAGENT 변수를 찾아보겠습니다. Ctrl + W를 다시 누르고 USERAGENT를 입력한 다음 Enter를 누릅니다. Nikto 가 웹 서버에 자신을 식별하는 데 사용하는 기본 User-Agent 문자열을 찾을 수 있습니다.

## The User-Agent to send to the web server
USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)

이러한 설정을 검토한 후 Ctrl + X를 눌러 변경 사항을 저장하지 않고 nano를 종료할 수 있습니다.

기본 USERAGENT 와 같은 정적 변수 변경

이제 구성 파일에서 정적 변수를 수정합니다. 기본 USERAGENT를 사용자 지정 값으로 변경합니다. User-Agent 를 변경하면 특정 브라우저를 모방하거나 간단한 탐지를 피하거나 로깅 목적으로 스캔 트래픽을 레이블링하는 데 유용할 수 있습니다.

먼저 nano로 파일을 다시 엽니다.

sudo nano /etc/nikto.conf

Ctrl + W를 사용하여 USERAGENT를 다시 검색합니다. 줄을 찾으면 참조를 위해 원래 값을 유지하는 것이 좋습니다. 원래 USERAGENT 줄 시작 부분에 #를 추가하여 주석 처리합니다. 그런 다음 바로 아래 새 줄에 사용자 지정 User-Agent 를 추가합니다.

변경 사항은 다음과 같이 표시됩니다.

## The User-Agent to send to the web server
#USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)
USERAGENT=MyCustomScanner/1.0

이제 변경 사항을 저장하고 편집기를 종료합니다. Ctrl + O를 눌러 변경 사항을 작성하고, Enter를 눌러 파일 이름을 확인한 다음, Ctrl + X를 눌러 nano를 종료합니다. 구성이 이제 업데이트되었습니다.

새로운 기본 동작을 관찰하기 위한 스캔 실행

이 단계에서는 로컬 웹 서버를 대상으로 Nikto 스캔을 실행하여 새 USERAGENT가 작동하는 것을 확인합니다. 이 실습을 위한 설정 스크립트에서 이미 Apache 웹 서버를 설치하고 시작했으며, 이는 127.0.0.1(localhost) 에서 실행 중입니다.

Nikto 가 스캔을 시작하면 사용 중인 구성 요약이 출력됩니다. 이를 통해 웹 서버 로그를 검사할 필요 없이 변경 사항을 확인할 수 있습니다.

-h(호스트) 옵션을 사용하여 로컬 서버에 대한 기본 스캔을 실행합니다.

nikto -h http://127.0.0.1

Nikto 의 초기 출력을 관찰합니다. 대상 정보와 스캔에 사용되는 일부 옵션이 나열됩니다. 사용자 지정 User-Agent 가 출력에 반영되어야 합니다.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        80
+ Start Time:         2023-10-27 10:30:00 (GMT0)
---------------------------------------------------------------------------
- Server: Apache/2.4.52 (Ubuntu)
+ User-Agent: MyCustomScanner/1.0
- The anti-clickjacking X-Frame-Options header is not present.
... (scan results will continue) ...

+ User-Agent: MyCustomScanner/1.0 줄에서 볼 수 있듯이 Nikto 는 이제 nikto.conf에 설정한 기본값을 사용하고 있습니다. 언제든지 Ctrl + C를 눌러 스캔을 중지할 수 있습니다.

원래 구성으로 변경 사항 되돌리기

마지막으로, 특히 공유 환경에서는 구성을 원래 상태로 복원하는 것이 좋습니다. 이 단계에서는 nikto.conf에 대한 변경 사항을 되돌립니다.

실습 설정 중에 원본 구성 파일의 백업이 /etc/nikto.conf.bak에 자동으로 생성되었습니다. 수정된 파일을 원본 파일로 덮어쓰기 위해 mv(move) 명령을 사용하여 이 백업을 복원할 수 있습니다.

백업을 복원하려면 다음 명령을 실행합니다.

sudo mv /etc/nikto.conf.bak /etc/nikto.conf

이 명령은 /etc/nikto.conf.bak/etc/nikto.conf로 이동하여 편집한 파일을 효과적으로 교체합니다.

파일이 되돌려졌는지 확인하려면 grep 명령을 사용하여 USERAGENT 줄을 다시 확인할 수 있습니다.

grep USERAGENT /etc/nikto.conf

출력에는 이제 원본 주석 처리되지 않은 User-Agent 줄이 표시되어 변경 사항이 성공적으로 되돌려졌음을 확인해야 합니다.

USERAGENT=Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0 (Nikto/2.5.0)

요약

이 실습에서는 Nikto 의 핵심 구성 파일인 nikto.conf를 편집하여 Nikto 의 동작을 성공적으로 사용자 정의했습니다. 이는 침투 테스트 또는 보안 감사에 대한 특정 요구 사항을 충족하도록 보안 도구를 조정하는 기본적인 기술입니다.

다음과 같은 내용을 배웠습니다.

  • Linux 시스템에서 nikto.conf 파일 찾기
  • 구성 변수의 목적을 읽고 이해하기
  • 정적 변수, 특히 USERAGENT 수정하기
  • 스캔을 실행하고 출력을 관찰하여 구성 변경 확인하기
  • 백업 파일에서 원본 구성 복원하기

구성 파일 변경을 마스터하면 도구에 대한 영구적이고 사용자 정의된 기본값을 설정할 수 있어 보안 테스트를 더욱 효율적이고 효과적으로 수행할 수 있습니다.