Gobuster 스레드를 이용한 스캔 속도 제어

Beginner
지금 연습하기

소개

이 실습에서는 인기 있는 디렉토리 및 파일 무차별 대입 도구인 Gobuster 의 스캔 속도를 스레드 수를 조작하여 관리하는 방법을 탐색합니다. 스레드 수를 조정하는 방법을 이해하는 것은 효율적인 스캔과 대상 서버에 미치는 영향을 최소화하는 데 중요합니다. 기본, 증가 및 감소된 스레드 수로 스캔을 실행하고 각 설정의 실제적인 영향을 관찰하게 됩니다. 이 실습 경험은 네트워크 에티켓과 대상 안정성을 염두에 두면서 정찰 노력을 최적화하는 데 대한 통찰력을 제공할 것입니다.

기본 스레드 수 (10) 로 스캔 실행하기

이 단계에서는 기본 스레드 수인 10 을 사용하여 Gobuster 스캔을 시작합니다. 이를 통해 성능 및 출력 형식에 대한 기준선을 이해할 수 있습니다. Gobuster 는 이 실습을 위해 설정된 로컬 웹 서버에서 디렉토리 및 파일을 검색하려고 시도합니다.

터미널을 열고 다음 명령을 실행합니다.

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt
  • gobuster dir: 디렉토리/파일 무차별 대입 스캔을 수행하려는 것을 지정합니다.
  • -u http://127.0.0.1:8080: 스캔 대상 URL 을 설정합니다. 이 실습에서는 포트 8080 에서 실행되는 로컬 HTTP 서버를 대상으로 합니다.
  • -w /tmp/wordlist.txt: 무차별 대입 프로세스에 사용할 단어 목록을 지정합니다. 이 파일에는 일반적인 디렉토리 및 파일 이름이 포함되어 있습니다.

출력을 관찰합니다. Gobuster 가 스캔을 시작하고 사용 중인 스레드 수를 표시하며 (기본값 10), 발견된 디렉토리 또는 파일을 나열하는 것을 볼 수 있습니다. 결과가 얼마나 빨리 나타나는지에 주의를 기울이십시오.

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        10
[+] Wordlist:       /tmp/wordlist.txt
[+] Status codes:   200,204,301,302,307,401,403
[+] User Agent:     gobuster/X.X.X
[+] Timeout:        10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

출력에는 URL, 단어 목록 및 중요한 스레드 수를 포함하여 스캔에 사용된 구성이 표시됩니다. /admin, /login, /secret, /index와 같은 발견된 경로는 해당 HTTP 상태 코드와 함께 나열됩니다.

-t 플래그를 사용하여 스레드 수를 50 으로 늘리기

이 단계에서는 Gobuster 에서 사용하는 스레드 수를 50 으로 늘립니다. 이는 원하는 동시 스레드 수를 지정할 수 있는 -t 플래그를 사용하여 수행됩니다. 더 높은 스레드 수는 더 많은 요청이 동시에 전송되므로 일반적으로 더 빠른 스캔으로 이어집니다.

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

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt -t 50
  • -t 50: 이 새로운 플래그는 스레드 수를 50 으로 설정합니다.

출력을 다시 관찰합니다. 기본 10 개 스레드보다 훨씬 빠르게 스캔이 완료되는 것을 알 수 있습니다. 초기 출력에서 50 개의 스레드가 사용되고 있음을 확인할 수 있습니다.

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        50
[+] Wordlist:       /tmp/wordlist.txt
[+] Status codes:   200,204,301,302,307,401,403
[+] User Agent:     gobuster/X.X.X
[+] Timeout:        10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

출력에서 [+] Threads: 50 줄을 확인하여 지정한 스레드 수가 사용되고 있음을 확인할 수 있습니다. 작은 단어 목록과 로컬 대상 때문에 스캔은 거의 즉시 완료되어야 합니다.

스캔 속도 증가 관찰하기

이 단계에서는 스레드 수 증가의 영향을 시각적으로 확인하기 위해 스캔 시간을 명시적으로 비교합니다. 이전 단계에서 정성적인 관찰을 제공했지만, 이 단계는 개념을 강화하는 것을 목표로 합니다.

이전 스캔은 단어 목록이 작고 로컬 서버였기 때문에 매우 빨랐지만, 출력 표시까지 걸리는 시간에서 상당한 차이를 느꼈을 것입니다. 스레드를 10 개에서 50 개로 늘렸을 때 스캔은 거의 즉시 완료되었습니다.

속도 차이를 더 잘 설명하기 위해 단어 목록에 수천 또는 수백만 개의 항목이 포함되어 있고 대상 서버가 높은 지연 시간을 가진 원격 서버라고 상상해 보십시오. 이러한 시나리오에서는 10 개와 50 개 스레드 간의 차이가 훨씬 더 분명해져 스캔 시간을 몇 시간에서 몇 분으로 줄일 수 있습니다.

여기서 핵심은 더 많은 스레드를 사용하면 Gobuster 가 더 많은 요청을 동시에 보낼 수 있어, 특히 큰 단어 목록과 응답성이 좋은 대상의 경우 전체 스캔 시간을 크게 줄일 수 있다는 것입니다.

이 단계에서는 이전 두 단계를 기반으로 한 관찰이므로 특정 명령이 필요하지 않습니다.

스레드 수를 5 로 줄여 스캔 속도 늦추기

이제 프로세스를 역으로 진행하여 스레드 수를 5 로 줄입니다. 이를 통해 스레드 수가 적을수록 스캔 속도가 느려지는 것을 확인할 수 있습니다. 스캔 속도가 느린 것은 비생산적으로 보일 수 있지만, 속도 제한이 있는 대상을 다루거나 덜 침입적인 방식으로 작동해야 하는 특정 상황에서는 필요할 수 있습니다.

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

gobuster dir -u http://127.0.0.1:8080 -w /tmp/wordlist.txt -t 5
  • -t 5: 기본값의 절반인 스레드 수를 5 로 설정합니다.

출력을 관찰합니다. 기본 10 개 스레드에 비해 스캔 완료에 약간 더 오래 걸리고, 50 개 스레드 스캔보다는 눈에 띄게 더 오래 걸리는 것을 알 수 있습니다.

===============================================================
Gobuster vX.X.X-XXXXXX
===============================================================
[+] Url:            http://127.0.0.1:8080
[+] Threads:        5
[+] Wordlist:       /tmp/wordlist.txt
[+] Status codes:   200,204,301,302,307,401,403
[+] User Agent:     gobuster/X.X.X
[+] Timeout:        10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/admin                (Status: 200)
/login                (Status: 200)
/secret               (Status: 200)
/index                (Status: 200)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

[+] Threads: 5 줄은 스레드 수 감소를 확인시켜 줍니다. 작은 단어 목록으로도 이전 실행에 비해 약간의 지연을 느낄 수 있습니다. 이는 스레드 수와 스캔 시간 간의 직접적인 관계를 보여줍니다.

대상 서버에 대한 스레드 수의 영향 이해하기

이 마지막 단계에서는 스레드 수 조정의 광범위한 영향, 특히 대상 서버와 관련하여 논의합니다. 스레드를 늘리면 스캔 속도를 높일 수 있지만 대상 서버에 가해지는 부하도 증가합니다.

높은 스레드 수 (예: 50 개 이상):

  • 장점: 더 빠른 스캔 완료.
  • 단점:
    • 서버 부하 증가: 동시에 많은 요청을 보내면 대상 서버가 과부하될 수 있으며, 서비스 거부 (DoS) 또는 성능 저하를 초래할 수 있습니다.
    • 속도 제한/차단: 많은 웹 서버와 WAF(웹 애플리케이션 방화벽) 는 무차별 대입 공격을 방지하기 위해 속도 제한을 구현합니다. 높은 스레드 수는 이러한 방어 메커니즘을 빠르게 트리거하여 IP 가 일시적 또는 영구적으로 차단될 수 있습니다.
    • 네트워크 혼잡: 특히 대상이 원격인 경우 상당한 네트워크 대역폭을 소비할 수 있습니다.
    • 의심: 높은 요청 속도는 악의적인 활동을 나타내는 경우가 많으며 보안 팀에 경고를 줄 수 있습니다.

낮은 스레드 수 (예: 1-5 개):

  • 장점:
    • 서버 부하 감소: 덜 침입적이며 대상 서버의 성능 문제를 일으킬 가능성이 적습니다.
    • 속도 제한 회피: 느린 요청 속도는 속도 제한 메커니즘을 트리거할 가능성이 적어 스캔이 더 오래 탐지되지 않고 진행될 수 있습니다.
    • 은밀함: 합법적인 사용자 트래픽처럼 보이므로 탐지될 가능성이 줄어듭니다.
  • 단점:
    • 느린 스캔: 특히 큰 단어 목록의 경우 완료하는 데 훨씬 더 오래 걸립니다.

적절한 스레드 수 선택:
최적의 스레드 수는 여러 요인에 따라 달라집니다.

  • 대상 서버의 용량: 서버가 얼마나 많은 부하를 처리할 수 있습니까?
  • 네트워크 지연 시간: 지연 시간이 높을수록 적절한 속도를 유지하기 위해 더 많은 스레드가 필요할 수 있습니다.
  • 속도 제한 정책: 알려진 속도 제한 또는 WAF 가 있습니까?
  • 귀하의 목표: 속도를 우선시합니까, 아니면 은밀함을 우선시합니까?

윤리적 해킹 및 침투 테스트의 경우 대상의 안정성을 염두에 두고 중단을 일으키지 않도록 하는 것이 중요합니다. 항상 낮은 스레드 수로 시작하고 대상이 처리할 수 있고 목표 달성을 위해 더 빠른 결과가 필요한 경우 점진적으로 늘리십시오.

이 단계에서는 개념적 이해이므로 특정 명령이 필요하지 않습니다.

요약

이 실습에서는 -t 플래그를 사용하여 스레드 수를 조정함으로써 Gobuster 의 스캔 속도를 제어하는 방법을 성공적으로 배웠습니다. 기본 10 개 스레드로 스캔을 시작한 다음, 50 개로 늘려 상당한 속도 향상을 관찰하고, 마지막으로 5 개로 줄여 스캔 속도가 느려지는 것을 확인했습니다.

더 중요한 것은 스캔 시간뿐만 아니라 대상 서버의 성능 및 보안 메커니즘에 스레드 수가 미치는 중요한 영향을 이해했다는 것입니다. 이제 더 많은 스레드가 더 빠른 스캔을 의미하지만 서버 부하와 탐지 또는 차단 위험도 증가한다는 것을 알게 되었습니다. 반대로, 적은 스레드는 속도를 희생하는 대신 은밀함을 제공하고 서버에 미치는 영향을 줄입니다. 이 지식은 책임감 있고 효과적인 정보 수집을 수행하는 데 매우 중요합니다.