Nikto 로 HTML 보고서 생성하기

Kali LinuxBeginner
지금 연습하기

소개

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

스캔을 실행하는 것도 유용하지만, 보안 전문가에게는 결과를 명확하고 읽기 쉬우며 공유 가능한 형식으로 저장하는 것이 중요합니다. Nikto 는 다양한 형식으로 스캔 결과를 내보낼 수 있으며, HTML 은 분석에 가장 편리한 형식 중 하나입니다.

이 랩에서는 대상 웹 서버에 대해 Nikto 스캔을 실행하고 잘 구성된 HTML 보고서를 생성하는 방법을 배우게 됩니다.

HTML 형식 지정하기: -Format html

이 단계에서는 Nikto 스캔의 출력 형식을 지정하는 방법을 배우게 됩니다. Nikto 는 다양한 형식으로 보고서를 생성할 수 있으며, 이 랩에서는 가독성이 높고 탐색하기 쉬운 HTML 에 중점을 둘 것입니다.

-Format 옵션은 Nikto 에 사용할 보고서 형식을 지정하는 데 사용됩니다. HTML 보고서를 생성하려면 이 옵션에 대한 인수로 html을 지정해야 합니다.

먼저 Nikto 의 도움말 메뉴를 탐색하여 형식 옵션을 살펴보겠습니다.

nikto -Help | grep Format

html을 포함하여 사용 가능한 형식 목록이 표시되는 출력을 볼 수 있습니다.

-Format       Scan report format (csv, htm, msf+, nbe, sql, txt, xml)

HTML 형식을 지정하는 구문은 간단히 -Format html입니다. 다음 단계에서 다른 플래그와 결합하여 전체 명령을 구성할 것입니다.

출력 HTML 파일에 -o 플래그 사용하기

이 단계에서는 Nikto 가 보고서를 저장할 파일을 지정하는 방법을 배우게 됩니다. 단순히 형식을 HTML 로 설정하면 원시 HTML 코드가 터미널에 출력되는데, 이는 그다지 유용하지 않습니다. 이 출력을 파일로 리디렉션해야 합니다.

-o (또는 --output) 플래그가 이 목적으로 사용됩니다. 원하는 파일 이름을 이 플래그의 인수로 제공합니다.

이전 단계의 형식 플래그와 결합해 보겠습니다. 보고서 파일 이름을 nikto_report.html로 지정하고 현재 디렉토리 (~/project) 에 저장할 것입니다. 또한 -h (또는 --host) 플래그를 사용하여 스캔할 대상을 지정해야 합니다. 이 랩에서는 대상이 http://127.0.0.1:8000에서 실행되는 로컬 웹 서버입니다.

전체 명령 구조는 다음과 같습니다.

nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html

다음 단계에서 이 전체 명령을 실행할 것입니다. 지금은 구조와 각 플래그의 목적에 익숙해지십시오.

보고서 생성을 위한 스캔 실행하기

이제 모든 것을 종합하여 스캔을 실행할 차례입니다. 이전 단계에서 구성한 명령을 사용하여 로컬 웹 서버를 스캔하고 결과를 HTML 파일에 저장할 것입니다.

터미널에서 다음 명령을 실행하십시오. 스캔이 완료되는 데 몇 분 정도 걸릴 수 있습니다.

nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html

스캔 중에 Nikto 는 터미널에 진행 상황을 표시합니다. 출력은 다음과 유사하게 표시됩니다.

- Nikto v2.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
---------------------------------------------------------------------------
+ Server:             SimpleHTTP/0.6 Python/3.10.12
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ 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
+ No CGI directories found (use '-C all' to force check all possible dirs)
+ "robots.txt" not found.
+ OSVDB-3233: /: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ 7528 requests: 0 error(s) and 5 item(s) reported on remote host
+ End Time:           2023-10-27 10:30:15
+ (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

스캔이 완료되면 현재 디렉토리의 파일을 나열하여 보고서 파일이 생성되었는지 확인할 수 있습니다.

ls -l nikto_report.html

출력에 nikto_report.html 파일이 나열된 것을 볼 수 있습니다.

-rw-r--r-- 1 labex labex 21435 Oct 27 10:30 nikto_report.html

생성된 HTML 파일을 웹 브라우저에서 열기

이 단계에서는 생성된 nikto_report.html 파일을 열어 내용을 확인합니다. HTML 파일이므로 웹 브라우저에서 보는 것이 가장 좋습니다.

LabEx 환경에는 Firefox 웹 브라우저가 포함되어 있습니다. firefox 명령 뒤에 파일 이름을 붙여 터미널에서 직접 보고서를 열 수 있습니다.

다음 명령을 실행하십시오. 이렇게 하면 Firefox 가 실행되고 보고서가 열립니다.

firefox nikto_report.html

화면에 새 Firefox 창이 나타나 Nikto 스캔 보고서를 표시해야 합니다. 창이 터미널 뒤에 나타나면 터미널 창을 이동하여 볼 수 있습니다.

HTML 보고서의 다양한 섹션 탐색하기

이 마지막 단계에서는 방금 Firefox 에서 연 보고서를 살펴보는 과정입니다. Nikto 에서 생성된 HTML 보고서는 명확하고 유익하도록 구조화되어 있습니다.

잠시 시간을 내어 보고서의 각 부분을 살펴보십시오.

  • 스캔 세부 정보 (Scan Details): 상단에는 대상 IP, 호스트 이름, 포트 및 스캔이 수행된 시간을 포함한 스캔 요약이 있습니다.
  • 취약점 테이블 (Vulnerabilities Table): 보고서의 주요 부분은 모든 발견 사항을 나열하는 테이블입니다. 각 행은 잠재적인 문제를 나타냅니다.
  • 주요 열 (Key Columns): 영향을 받은 경로를 보여주는 URI 열과 발견 사항을 설명하는 Description 열에 주의하십시오. 많은 발견 사항에는 해당 특정 취약점에 대한 자세한 정보를 제공하는 링크 (종종 OSVDB ID) 가 포함되어 있습니다.

보고서의 일부 링크를 클릭하여 추가 컨텍스트를 제공하는 방식을 확인하십시오. 이 보고서 구조에 익숙해지는 것은 보안 스캔 결과를 분석하는 데 중요한 기술입니다. 이 단계는 관찰을 위한 것이므로 실행할 명령은 없습니다.

요약

이 실습에서는 Nikto 를 사용하여 포괄적인 웹 서버 취약점 보고서를 HTML 형식으로 생성하는 방법을 배웠습니다.

보고서 유형을 지정하기 위해 -Format html 옵션을 사용하고 출력을 nikto_report.html이라는 파일에 저장하기 위해 -o 플래그를 사용하는 연습을 했습니다. 마지막으로 웹 브라우저에서 생성된 보고서를 열고 탐색하면서 스캔 요약과 상세 결과를 해석하는 방법을 배웠습니다.

이 기술은 보안 평가를 효과적으로 문서화하고 전달하는 데 필수적입니다.