Gobuster 에서 스캔 결과를 파일로 저장하기

Beginner
지금 연습하기

소개

이 랩에서는 디렉토리 및 파일 무차별 대입 (brute-forcing) 에 널리 사용되는 도구인 Gobuster 를 사용하여 스캔 결과를 파일로 저장하는 방법을 배우게 됩니다. 스캔 결과를 저장하는 것은 사이버 보안에서 기본적인 실천 사항으로, 상세한 분석, 보고서 작성 및 향후 참조를 가능하게 합니다. Gobuster 명령을 구성하고, 출력 파일을 지정하고, 스캔을 실행하고, 저장된 결과의 무결성을 확인하는 과정을 단계별로 안내합니다. 이 기술은 웹 애플리케이션 보안 테스트 또는 침투 테스트에 관련된 모든 사람에게 필수적입니다. 귀중한 발견 사항을 올바르게 문서화하고 접근 가능하도록 보장하기 때문입니다.

표준 gobuster dir 명령 구성

이 단계에서는 기본적인 gobuster dir 명령을 구성합니다. gobuster dir 명령은 디렉토리 및 파일 무차별 대입 (brute-forcing) 에 사용됩니다. 대상 URL 과 일반적인 단어 목록 (wordlist) 을 지정할 것입니다.

먼저 ~/project 디렉토리에 있는지 확인합니다.

cd ~/project

이제 기본적인 gobuster dir 명령을 구성해 보겠습니다. 대상 URL 로는 http://127.0.0.1:8080을 사용하고, 단어 목록으로는 /usr/share/wordlists/dirb/common.txt를 사용합니다.

gobuster dir -u http://127.0.0.1:8080 -w /usr/share/wordlists/dirb/common.txt

이 명령은 대상에서 단어 목록에 나열된 디렉토리 및 파일을 스캔하고 결과를 터미널에 직접 표시합니다.

예상 출력 (일부):

===============================================================
Gobuster v3.5
by OJ <oj@gobuster.io>
===============================================================
[+] Url:                     http://127.0.0.1:8080
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Add Slash:               false
[+] Allow Timeouts:          false
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/admin.html           (Status: 200)
/secret.txt           (Status: 200)
/testdir              (Status: 200)
...

출력 파일 지정을 위한 -o 플래그 추가

이 단계에서는 스캔 결과를 저장할 출력 파일을 지정할 수 있는 -o 플래그를 포함하도록 gobuster 명령을 수정합니다. 이는 나중에 분석할 발견 사항을 저장하는 데 매우 중요합니다.

출력은 ~/project 디렉토리에 gobuster_results.txt라는 파일로 저장할 것입니다.

이전 명령에 -o gobuster_results.txt를 추가하여 수정합니다:

gobuster dir -u http://127.0.0.1:8080 -w /usr/share/wordlists/dirb/common.txt -o gobuster_results.txt

이 명령은 스캔을 실행하고, 콘솔에 출력하는 것 외에도 모든 발견 사항을 지정된 파일에 기록합니다.

스캔 실행

이 단계에서는 -o 플래그와 함께 gobuster 명령을 실행합니다. 이렇게 하면 디렉토리 열거 프로세스가 시작되고 결과가 gobuster_results.txt에 저장됩니다.

이전 단계에서 구성한 명령을 실행합니다:

gobuster dir -u http://127.0.0.1:8080 -w /usr/share/wordlists/dirb/common.txt -o gobuster_results.txt

스캔이 실행되며 터미널에 일부 출력이 표시될 수 있지만, 전체 결과는 파일로 전달됩니다. 스캔이 완료될 때까지 기다립니다. 단어 목록 크기에 따라 몇 분 정도 소요될 수 있습니다.

예상 출력 (일부, 대부분의 출력은 파일로 이동하므로):

===============================================================
Gobuster v3.5
by OJ <oj@gobuster.io>
===============================================================
[+] Url:                     http://127.0.0.1:8080
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Add Slash:               false
[+] Allow Timeouts:          false
[+] User Agent:              gobuster/3.5
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================

출력 파일 생성 확인

이 단계에서는 스캔이 완료된 후 ~/project 디렉토리에 gobuster_results.txt 파일이 성공적으로 생성되었는지 확인합니다.

ls 명령을 사용하여 현재 디렉토리의 내용을 나열하고 gobuster_results.txt 파일이 있는지 확인합니다.

ls -l

파일 목록에서 gobuster_results.txt가 표시되는 것을 볼 수 있습니다.

예상 출력 (일부):

total 8
-rw-r--r-- 1 labex labex 1234 Jan  1 12:00 gobuster_results.txt

저장된 결과 파일 내용 보기

마지막 단계에서는 gobuster_results.txt 파일의 내용을 보면서 스캔 결과가 올바르게 저장되었는지 확인합니다.

cat 명령을 사용하여 파일 내용을 표시합니다:

cat gobuster_results.txt

gobuster 스캔의 터미널 출력에서 볼 수 있는 것과 유사하게, 발견된 디렉토리와 파일 및 해당 HTTP 상태 코드를 볼 수 있습니다.

예상 출력 (일부):

/admin.html           (Status: 200)
/secret.txt           (Status: 200)
/testdir              (Status: 200)

이를 통해 gobuster 스캔 결과가 파일에 성공적으로 저장되었음을 확인할 수 있으며, 이는 실제 시나리오에서 문서화 및 추가 분석을 위한 중요한 단계입니다.

요약

이 실습에서는 gobuster 스캔 결과를 파일에 저장하는 방법을 성공적으로 학습했습니다. 표준 gobuster dir 명령을 구성하는 것으로 시작하여, 출력 파일을 지정하기 위해 -o 플래그를 추가하여 개선했습니다. 스캔을 실행한 후 출력 파일의 생성을 확인하고 그 내용을 보면서 결과가 올바르게 저장되었는지 확인했습니다. 이 기술은 웹 보안 평가 및 침투 테스트에서 효과적인 문서화 및 분석을 위한 기본입니다.