Nikto 로 파일에서 여러 호스트 스캔하기

Kali LinuxBeginner
지금 연습하기

소개

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

많은 수의 호스트를 수동으로 스캔하는 것은 지루하고 시간이 많이 소요될 수 있습니다. 더 효율적인 접근 방식은 모든 대상을 단일 파일에 나열하고 Nikto 가 순차적으로 스캔하도록 하는 것입니다. 이 실험실에서는 여러 대상 호스트를 포함하는 텍스트 파일을 만들고 Nikto 를 사용하여 단일 명령으로 모든 대상에 대한 취약점 스캔을 수행하는 방법을 배웁니다.

여러 대상 IP 또는 호스트 이름을 포함하는 텍스트 파일 생성

이 단계에서는 스캔하려는 대상의 호스트 이름을 포함하는 간단한 텍스트 파일을 생성합니다. Nikto 는 이 파일을 읽고 내부에 나열된 각 호스트를 스캔할 수 있습니다. 각 호스트 이름 또는 IP 주소는 새 줄에 있어야 합니다. nano 텍스트 편집기를 사용하여 현재 작업 디렉토리인 ~/project에 이 파일을 생성합니다.

먼저 nano를 사용하여 targets.txt라는 새 파일을 엽니다.

nano targets.txt

이제 nano 편집기 내에서 다음 두 호스트 이름을 추가합니다. 이들은 테스트 목적으로 사용 가능한 공개 사이트입니다.

scanme.nmap.org
example.com

nano에서 파일을 저장하려면 Ctrl+O를 누른 다음 파일 이름을 확인하기 위해 Enter를 누릅니다. nano를 종료하려면 Ctrl+X를 누릅니다.

cat 명령을 사용하여 파일 내용을 확인할 수 있습니다.

cat targets.txt

다음과 같은 출력이 표시되어야 합니다.

scanme.nmap.org
example.com

이제 Nikto 에 사용할 대상 파일이 준비되었습니다.

텍스트 파일 경로에 -h 플래그 사용

이 단계에서는 다중 대상 스캔을 위한 Nikto 명령을 준비합니다. -h (또는 --host) 플래그는 대상을 지정하는 데 사용됩니다. 일반적으로 단일 호스트 이름 또는 IP 주소를 받지만 파일 경로도 받을 수 있습니다. 파일 경로를 제공하면 Nikto 는 해당 파일에서 대상을 읽어야 함을 이해합니다.

이 작업의 기본 구문은 다음과 같습니다.

nikto -h /path/to/your/file.txt

파일 targets.txt가 현재 디렉토리 (~/project) 에 있으므로 파일 이름만 사용하면 됩니다.

실제 스캔을 실행하기 전에 Nikto 의 옵션에 익숙해지는 것이 좋습니다. 다음을 실행하여 도움말 메뉴를 볼 수 있습니다.

nikto -Help

출력을 스크롤하면 -h / -host 옵션에 대한 설명이 표시되며, 호스트 또는 호스트 파일을 받을 수 있음을 확인할 수 있습니다. 실제 스캔은 다음 단계에서 실행합니다.

다중 대상 스캔 시작

대상 파일을 생성하고 명령 구조를 이해했으므로 이제 스캔을 시작할 차례입니다. Nikto 는 targets.txt 파일을 읽고 그 안에 나열된 각 호스트를 순서대로 스캔합니다.

스캔을 시작하려면 터미널에서 다음 명령을 실행하십시오. 여러 호스트에 대한 전체 스캔은 몇 분이 걸릴 수 있으므로 인내심을 가지십시오.

nikto -h targets.txt

터미널에 스캔의 실시간 진행 상황이 표시됩니다.

Nikto 가 각 호스트를 순차적으로 스캔할 때 출력 모니터링

이 단계에서는 Nikto 가 생성하는 출력을 관찰합니다. 실행할 새로운 명령은 없습니다. 스캔이 진행됨에 따라 각 대상에 대한 자세한 정보를 볼 수 있습니다.

먼저 Nikto 는 배너를 표시하고 첫 번째 대상인 scanme.nmap.org부터 시작합니다. IP 주소, 서버 소프트웨어 및 발견된 취약점과 같은 정보가 표시됩니다.

첫 번째 호스트에 대한 초기 출력의 일부를 발췌하면 다음과 같습니다.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          45.33.32.156
+ Target Hostname:    scanme.nmap.org
+ Target Port:        80
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: Apache/2.4.7 (Ubuntu)
... (scanme.nmap.org에 대한 취약점 검사 및 결과) ...

scanme.nmap.org에 대한 스캔이 완료되면 Nikto 는 자동으로 다음 대상인 example.com 스캔을 시작합니다. 출력에는 새 대상으로 전환됨을 명확하게 나타냅니다.

... (scanme.nmap.org 스캔 종료) ...
+ 1 host(s) tested
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          93.184.216.34
+ Target Hostname:    example.com
+ Target Port:        80
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: ECS (sjc/4E5D)
... (example.com에 대한 취약점 검사 및 결과) ...

전체 프로세스가 완료될 때까지 터미널을 계속 지켜보십시오.

출력 또는 저장된 파일에서 종합 결과 검토

Nikto 가 targets.txt의 모든 호스트 스캔을 완료하면 최종 요약을 출력합니다. 이 요약에는 테스트된 총 호스트 수와 스캔 종료 시간이 포함됩니다. 모든 호스트에 대한 전체 스캔 로그가 터미널에 표시됩니다.

터미널에서 출력을 보는 것도 유용하지만, 문서화 또는 추가 분석을 위해서는 결과를 파일로 저장하는 것이 좋습니다. -o (또는 -output) 플래그를 사용하여 이를 수행할 수 있습니다.

이번에는 스캔을 다시 실행하되, 출력을 scan_results.txt라는 파일에 저장하겠습니다.

nikto -h targets.txt -o scan_results.txt

이 명령은 동일한 스캔을 수행하지만, 화면에 출력을 표시하는 것 외에도 scan_results.txt에 기록합니다. 스캔이 완료된 후 cat 명령을 사용하여 저장된 보고서의 내용을 볼 수 있습니다.

cat scan_results.txt

이를 통해 스캔을 다시 실행할 필요 없이 언제든지 모든 스캔된 호스트에 대한 결과를 검토할 수 있습니다.

요약

이 실습에서는 Nikto 를 사용하여 여러 웹 서버의 스캔을 자동화하는 방법을 성공적으로 배웠습니다. 각 대상을 새 줄에 포함하는 텍스트 파일에서 대상 목록을 만드는 연습을 했습니다. 그런 다음 -h 플래그를 사용하여 Nikto 가 이 파일을 가리키도록 하여 각 호스트를 순차적으로 스캔할 수 있도록 했습니다. 마지막으로, 검토 및 기록 보관을 용이하게 하기 위해 -o 플래그를 사용하여 다중 호스트 스캔의 종합 결과를 출력 파일에 저장하는 방법을 배웠습니다. 이 방법은 네트워크 정찰 및 취약점 평가 워크플로우의 효율성을 향상시키는 기본적인 기술입니다.