Gobuster 로 점 (Dot) 접두사 숨김 파일 찾기

Beginner
지금 연습하기

소개

웹 애플리케이션 보안에서 숨겨진 파일 및 디렉토리를 찾는 것은 정찰 단계의 중요한 단계입니다. 많은 애플리케이션은 민감한 설정, 버전 관리 또는 환경 변수를 점 (.) 으로 시작하는 파일 (예: .env, .git, .htaccess) 에 저장합니다. 이러한 파일은 파일 브라우저와 웹 서버에서 기본적으로 숨겨져 있어 눈에 띄지 않는 대상이 됩니다. 그러나 잘못 구성된 경우 웹 서버를 통해 직접 액세스할 수 있어 심각한 정보 노출 취약점으로 이어질 수 있습니다.

Gobuster 는 이러한 숨겨진 자산을 발견하는 데 사용할 수 있는 강력한 디렉토리 및 파일 무차별 대입 (brute-forcing) 도구입니다. 일반적인 점으로 시작하는 파일 이름이 포함된 대상 단어 목록 (wordlist) 을 제공함으로써, 놓칠 수 있는 귀중한 정보를 찾을 가능성을 크게 높일 수 있습니다.

이 랩에서는 Gobuster 를 사용하여 이러한 숨겨진 점으로 시작하는 파일을 구체적으로 대상으로 지정하고 발견하는 과정을 안내합니다. 적합한 단어 목록을 준비하고, Gobuster 스캔을 실행하고, 잠재적인 보안 위험을 식별하기 위해 결과를 해석하는 방법을 배우게 됩니다.

점으로 시작하는 파일 (예: .env, .git) 의 중요성 이해

이 단계에서는 웹 보안 맥락에서 점으로 시작하는 파일이 왜 중요한지 이해할 것입니다. .env, .git, .htaccess, .bashrc, .ssh와 같은 파일은 Linux 및 웹 개발 환경에서 설정, 버전 관리 데이터 또는 민감한 자격 증명을 저장하는 데 일반적으로 사용됩니다.

  • .env 파일: 이 파일은 환경 변수를 저장하며, 종종 데이터베이스 자격 증명, API 키 및 기타 민감한 애플리케이션 설정을 포함합니다. 노출될 경우 공격자에게 백엔드 시스템에 대한 완전한 액세스 권한을 부여할 수 있습니다.
  • .git 디렉토리: 웹 서버에서 .git 디렉토리가 노출되면 공격자는 커밋 기록, 저장소의 일부였던 민감한 파일 및 내부 주석을 포함한 전체 소스 코드 저장소를 다운로드할 수 있습니다.
  • .htaccess 파일: Apache 웹 서버에서 인증, 권한 부여 및 URL 재작성을 포함한 디렉토리 수준 설정을 구성하는 데 사용됩니다. 잘못된 구성 또는 노출은 우회 또는 정보 노출로 이어질 수 있습니다.

이러한 파일은 일반적으로 파일 탐색기에서 기본적으로 숨겨져 있으며 웹 서버를 통해 액세스할 수 없도록 의도되어 있지만, 잘못된 구성으로 인해 의도치 않게 노출될 수 있습니다. 정찰 중에 이러한 파일을 발견하면 대상 애플리케이션의 인프라 및 잠재적 취약점에 대한 중요한 통찰력을 얻을 수 있습니다.

이 랩을 위해 백그라운드에서 간단한 웹 서버를 설정했으며, /tmp/web_root에서 콘텐츠를 제공합니다. 이 디렉토리에는 숨겨진 .env 파일과 .hidden_config 파일이 포함되어 있으며, 이를 발견하려고 시도할 것입니다.

점으로 시작하는 파일 이름을 포함하는 단어 목록 생성 또는 찾기

이 단계에서는 점으로 시작하는 파일을 찾기 위해 특별히 설계된 단어 목록을 준비할 것입니다. SecLists 와 같이 많은 범용 단어 목록이 존재하지만, 이 특정 작업에 대해 대상화된 목록을 만드는 것이 더 효율적일 수 있습니다.

~/project 디렉토리에 dotfiles.txt라는 간단한 단어 목록을 생성할 것입니다. 이 단어 목록에는 Gobuster 가 확인할 점으로 시작하는 일반적인 파일 이름이 포함됩니다.

먼저 프로젝트 디렉토리로 이동합니다.

cd ~/project

이제 nano를 사용하여 dotfiles.txt 파일을 생성하고 몇 가지 일반적인 점으로 시작하는 파일 이름을 추가합니다.

nano dotfiles.txt

nano 안에서 다음 줄을 추가합니다.

.env
.git
.htaccess
.bashrc
.profile
.ssh
.hidden_config

Ctrl+S를 눌러 파일을 저장하고 Ctrl+X를 눌러 nano를 종료합니다.

cat을 사용하여 단어 목록의 내용을 확인할 수 있습니다.

cat dotfiles.txt

방금 추가한 점으로 시작하는 파일 이름 목록이 표시되어야 합니다.

.env
.git
.htaccess
.bashrc
.profile
.ssh
.hidden_config

이 단어 목록은 Gobuster 가 대상 웹 서버에서 이러한 특정 파일의 존재 여부를 무차별 대입하는 데 사용됩니다.

이 특정 단어 목록으로 gobuster dir 스캔 실행

이 단계에서는 생성한 dotfiles.txt 단어 목록을 사용하여 gobuster dir 스캔을 실행할 것입니다. http://127.0.0.1:8000에서 실행되는 더미 웹 서버를 대상으로 할 것입니다.

gobuster dir의 기본 구문은 다음과 같습니다.
gobuster dir -u <target_url> -w <wordlist_path>

여기서 -u는 대상 URL 을 지정하고, -w는 단어 목록의 경로를 지정합니다.

터미널에서 다음 명령을 실행합니다.

gobuster dir -u http://127.0.0.1:8000 -w ~/project/dotfiles.txt

명령을 자세히 살펴보겠습니다.

  • gobuster dir: 디렉토리/파일 무차별 대입 스캔을 수행하려는 것을 지정합니다.
  • -u http://127.0.0.1:8000: 대상 URL 을 로컬 더미 웹 서버로 설정합니다.
  • -w ~/project/dotfiles.txt: Gobuster 에게 사용자 지정 dotfiles.txt 단어 목록을 사용하도록 지시합니다.

명령을 실행한 후 Gobuster 는 단어 목록을 반복하고 대상 서버에 요청을 보내기 시작합니다. 발견된 파일을 나타내는 다음과 유사한 출력이 표시되어야 합니다.

===============================================================
Gobuster vX.X.X.X-XXXXX Linux/amd64
===============================================================
[+] Url:                     http://127.0.0.1:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/dotfiles.txt
[+] Status codes:            200,204,301,302,307,401,403
[+] User Agent:              gobuster/X.X.X
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/.env                 (Status: 200) [Size: 20]
/.hidden_config       (Status: 200) [Size: 27]
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

보시다시피 Gobuster 는 .env.hidden_config 파일을 성공적으로 식별했으며, 둘 다 200 OK 상태를 반환하여 액세스 가능하다는 것을 나타냅니다.

--no-error 플래그를 사용하여 연결 오류 숨기기

이 단계에서는 Gobuster 의 --no-error 플래그에 대해 알아봅니다. 스캔을 수행할 때, 특히 불안정한 대상을 대상으로 하거나 네트워크 문제를 다룰 때 Gobuster 는 많은 연결 오류 메시지를 출력할 수 있습니다. 이러한 오류는 출력을 어지럽히고 실제 발견 사항을 파악하기 어렵게 만들 수 있습니다.

--no-error 플래그는 Gobuster 에게 이러한 연결 관련 오류 메시지를 억제하도록 지시하여 성공적인 발견에 초점을 맞춘 더 깔끔한 출력을 제공합니다.

이번에는 --no-error 플래그를 포함하여 Gobuster 스캔을 다시 실행해 보겠습니다. 현재 로컬 서버는 안정적이지만, 이 플래그는 실제 시나리오에서 매우 유용합니다.

gobuster dir -u http://127.0.0.1:8000 -w ~/project/dotfiles.txt --no-error

안정적인 로컬 환경에서는 억제할 연결 오류가 없었기 때문에 출력은 이전 단계와 유사하다는 것을 알 수 있습니다. 그러나 실제 시나리오에서 많은 요청과 잠재적인 네트워크 문제가 발생할 경우, 이 플래그는 노이즈를 크게 줄여줄 것입니다.

이 플래그의 주요 목적은 관련 없는 오류 메시지를 필터링하여 스캔 결과의 가독성을 높이고, 실제 발견 사항 (예: 200 OK 응답) 에 집중할 수 있도록 하는 것입니다.

민감한 파일 노출 결과 분석

이 마지막 단계에서는 Gobuster 스캔에서 얻은 결과를 분석하고 이러한 파일을 발견한 의미를 이해합니다.

이전 Gobuster 스캔 결과에서 다음을 발견했습니다.

  • /.env (상태: 200) [크기: 20]
  • /.hidden_config (상태: 200) [크기: 27]

200 OK 상태 코드는 파일이 발견되었고 웹 서버를 통해 액세스 가능하다는 것을 나타냅니다. 이는 매우 중요한 발견입니다.

영향을 보여주기 위해 curl을 사용하여 .env 파일에 직접 액세스해 보겠습니다.

curl http://127.0.0.1:8000/.env

.env 파일의 내용을 볼 수 있어야 합니다.

DB_PASSWORD=supersecret

이는 민감한 정보 (이 경우 데이터베이스 비밀번호) 가 노출되었음을 명확하게 보여줍니다. 실제 시나리오에서 공격자는 이 정보를 사용하여 데이터베이스 또는 기타 백엔드 시스템에 대한 무단 액세스를 얻을 수 있습니다.

마찬가지로 .hidden_config 파일에 액세스해 볼 수 있습니다.

curl http://127.0.0.1:8000/.hidden_config

출력:

This is another hidden file.

이 특정 파일에는 매우 민감한 데이터가 포함되어 있지 않을 수 있지만, 이를 발견했다는 것은 숨겨져야 할 파일이 공개적으로 액세스 가능하다는 잠재적인 잘못된 구성을 나타냅니다. 이는 더 중요한 자산의 추가적인 열거 및 발견으로 이어질 수 있습니다.

주요 요점:

  • 웹 정찰 중에 항상 점 (dot) 으로 시작하는 파일을 확인하십시오.
  • 200 OK 상태로 이러한 파일이 존재하는 것은 정보 노출의 강력한 지표입니다.
  • 개발자 및 시스템 관리자는 민감한 파일이 웹 서버를 통해 직접 액세스되지 않도록 해야 합니다. 일반적으로 서버 규칙 (예: Nginx location 블록, Apache Directory 지시문) 을 구성하거나 웹 루트 외부에 배치하여 이를 수행합니다.

이 연습은 철저한 정찰의 중요성과 Gobuster 와 같은 도구가 숨겨진 취약점을 발견하는 데 얼마나 강력한지를 강조합니다.

요약

이 실습에서는 Gobuster 를 사용하여 점 (dot) 으로 시작하는 숨겨진 파일 및 디렉토리를 검색하는 방법을 성공적으로 배웠습니다. 환경 변수나 버전 관리 데이터와 같은 민감한 정보를 자주 포함하는 이러한 파일의 중요성을 이해하는 것부터 시작했습니다.

그런 다음 일반적인 점으로 시작하는 파일 이름을 포함하는 대상 단어 목록을 만들고 이를 사용하여 더미 웹 서버에 대한 gobuster dir 스캔을 수행했습니다. Gobuster 가 .env.hidden_config와 같이 액세스 가능한 숨겨진 파일을 효과적으로 식별하는 방법을 관찰했습니다. 또한 연결 오류를 억제하여 스캔 출력을 정리하는 --no-error 플래그에 대해 배웠습니다.

마지막으로 결과를 분석하여 .env 파일에 직접 액세스하는 것이 중요한 자격 증명 노출로 이어질 수 있음을 입증했습니다. 이 실습은 웹 애플리케이션의 잠재적인 정보 노출 취약점을 발견하기 위해 정찰 방법론에 점 파일 열거를 포함하는 것의 중요성을 강조했습니다.

이 기술을 숙달함으로써 간과될 수 있는 보안 위험을 식별하고 보고할 수 있는 능력이 향상되었습니다.