Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Berserko — Kerberos 인증을 수행하는 Burp Suite 확장 프로그램 | Kitploit
도구/GitHubGitHub/nccgroup/berserko
Web Proxies & InterceptionWeb SecurityPenetration TestingAuthentication
GitHubnccgroup/berserko

Berserko

Kerberos 인증을 수행하는 Burp Suite 확장 프로그램

저장소 보기
10517132년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Berserko - Burp Suite용 Kerberos 인증

NCC Group Plc가 오픈소스로 공개함 - http://www.nccgroup.trust/

Richard Turnbull이 개발, richard [dot] turnbull [at] nccgroup [dot] com

http://www.github.com/nccgroup/Berserko

AGPL 라이선스로 공개됨, 자세한 내용은 LICENSE 참조


❗ 중요 참고 사항 ❗

Berserko의 추가 개발은 https://github.com/rteatea/Berserko에서 진행됩니다.


소개

Berserko는 Kerberos 인증 수행 지원을 추가하는 Burp 확장 기능입니다. NTLM 인증이 지원되지 않는 Windows 도메인에서 테스트할 때 유용합니다(Burp는 이미 NTLM을 처리합니다). Berserko는 Burp를 실행하는 머신이 도메인에 가입되어 있을 필요가 없습니다(심지어 Windows를 실행 중일 필요도 없습니다).

현재 우리가 알고 있는 Burp를 사용한 Kerberos 애플리케이션 테스트를 위한 유일한 기존 솔루션은 Fiddler를 경유하고 이 지침에 따라 인증을 설정하는 것입니다. 그러나 Fiddler는 Windows 전용이며, 프록시 체이닝은 복잡성을 추가하고 성능을 저하시키므로 Burp 자체에 Kerberos 기능이 있으면 좋습니다.

시스템 요구 사항

  • Burp Suite
  • Windows 및 Linux(Kali)에서 테스트됨

설치

최신 Berserko jar 파일을 Releases 탭 또는 berserko\releases 폴더에서 받으세요.

Burp의 Extender 탭으로 이동하여 Add를 선택하고, Extension type으로 Java가 선택되어 있는지 확인한 다음 jar 파일을 지정하세요. 모든 것이 정상이면 Berserko 탭이 Burp UI에 추가됩니다.

빠른 시작

  • Berserko 탭으로 이동하여 Do Kerberos authentication 체크박스를 선택하세요.
  • Domain Settings 패널에서 Change 버튼을 클릭하고 도메인의 DNS 이름(NETBIOS 이름이 아님)과 KDC(도메인 컨트롤러)의 호스트 이름(또는 IP 주소)을 입력하세요.
  • Test domain settings 버튼을 누르고 Successfully contacted Kerberos service 응답이 표시되는지 확인하세요.
  • Domain Credentials 패널에서 Change 버튼을 클릭하고 도메인 계정의 사용자 이름과 비밀번호를 입력하세요(일반 사용자 이름만 입력하고 MYDOMAIN\user 또는 [email protected] 등과 같은 형식은 사용하지 마세요).
  • Berserko가 krb5.conf 파일을 생성하도록 하여 Kerberos 위임을 활성화하세요. Delegation 패널에서 Create krb5.conf file 버튼을 클릭하고 파일을 생성할 적절한 위치를 선택하세요. 아무 위치나 괜찮습니다. 기존 시스템 수준의 krb5.conf 파일을 덮어쓰지 않아야 합니다. Berserko가 이 파일을 krb5.conf 파일로 설정할지 묻는 질문에 예라고 답하세요. 파일을 생성해야 한다는 점은 불편하지만, 이는 Berserko나 Burp의 잘못이 아니라 Java Kerberos API의 제한 사항입니다. 자세한 내용은 아래의 Delegation 참고 사항을 확인하세요.
  • Test credentials 버튼을 누르고 "TGT successfully acquired" 응답이 표시되는지 확인하세요. 또한 *"TGT is forwardable so delegation should work"*라고 표시되면 좋습니다.
  • 이제 지정된 도메인의 호스트에 대해 Kerberos 인증이 작동합니다.

설정

Burp의 Berserko 탭에는 다양한 컨트롤이 있습니다.

Do Kerberos authentication 체크박스는 마스터 스위치입니다. 이 옵션이 활성화될 때까지 Berserko는 아무 작업도 수행하지 않습니다.

Restore defaults 버튼은 Berserko를 기본 구성(도메인 정보나 사용자 자격 증명이 없는 상태)으로 되돌립니다.

Clear Kerberos state 버튼은 클라이언트의 모든 Kerberos 티켓과 기타 상태를 지웁니다. 이 기능을 사용해야 하는 경우는 서버 측에서 Kerberos 구성을 변경한 후 새 상태에서 시작하려는 경우뿐입니다.

Write tickets to log 버튼은 현재 Kerberos 티켓에 대한 정보를 Berserko의 로그 스트림에 기록합니다. 이는 디버깅/문제 해결에 유용할 수 있습니다. 로그를 보려면 Burp의 Extender 탭으로 이동하여 Berserko를 선택하고 아래의 Output 탭을 확인하세요. 티켓 데이터는 GUI의 로그 버퍼를 쉽게 채울 수 있으므로 여기서 Save to file 옵션을 사용하는 것이 좋습니다.

일부 컨트롤에는 추가 정보를 표시하는 도움말 버튼이 있습니다.

도메인 설정

이 섹션의 컨트롤을 사용하여 도메인 DNS 이름과 KDC 호스트를 지정하세요. 텍스트 상자는 직접 편집할 수 없으며 Change 버튼을 사용하여 수정해야 합니다.

Domain DNS Name은 인증하려는 도메인의 DNS 이름이어야 합니다(정확히 말하면 실제로는 Kerberos 영역(realm)입니다). mydomain.acme.local과 같은 형식이어야 합니다. 도메인의 NETBIOS 이름(예: MYDOMAIN)을 사용해서는 안 됩니다.

KDC Host는 Kerberos KDC(키 배포 센터)의 호스트 이름(또는 IP 주소)이어야 합니다. Windows 도메인에서 KDC는 단순히 도메인 컨트롤러입니다.

Domain DNS Name을 입력한 후 Auto 버튼을 사용하여 KDC를 자동으로 찾을 수 있습니다. 이는 Kerberos 서비스에 대한 DNS SRV 쿼리를 전송하여 수행됩니다. DNS 서버 중 하나가 올바른 도메인의 도메인 컨트롤러라면 작동합니다. 그렇지 않으면 작동하지 않습니다. ❗이 기능은 번들로 제공되는 JRE에 필요한 DNS 라이브러리가 포함되지 않았기 때문에 최신 버전의 Burp에서는 작동하지 않습니다. 이 README 상단에 설명된 대로 전체 JRE로 실행하면 이 문제를 해결할 수 있습니다.❗

Domain DNS Name과 KDC Host를 입력한 후 Test domain settings 버튼을 사용하여 연결을 테스트하세요. 모든 것이 정상이면 Successfully contacted Kerberos service 응답을 받게 됩니다.

이러한 도메인 설정에 대한 올바른 값을 얻는 방법에 대한 자세한 내용은 이 파일을 참조하세요.

도메인 자격 증명

이 섹션의 컨트롤을 사용하여 도메인 계정의 사용자 이름과 비밀번호를 지정하세요. 텍스트 상자는 직접 편집할 수 없으며 Change 버튼을 사용하여 수정해야 합니다.

Username은 일반 사용자 이름만 입력해야 합니다. bob과 같은 형식이어야 합니다. MYDOMAIN\bob 또는 [email protected]과 같은 형식은 사용하면 안 됩니다.

자격 증명을 입력한 후 Test credentials 버튼을 사용할 수 있습니다. 이 버튼은 지정된 사용자에 대한 Kerberos 티켓 부여 티켓(TGT)을 획득하려고 시도합니다. 성공하면 TGT successfully acquired 응답을 받게 됩니다. 실패하는 경우 이는 도메인 인증 시도이므로 계정이 잠기지 않도록 주의하세요.

Save password in Burp config? 체크박스를 선택하지 않는 한 비밀번호는 다음 번을 위해 Berserko 구성에 저장되지 않습니다. 다른 모든 설정은 저장됩니다.

위임

일부 애플리케이션은 서버 측에서 Kerberos 위임을 사용하여 클라이언트의 ID를 다른 서버로 전달합니다(하지만 클라이언트 측에서 이 기능이 사용되는지 여부를 쉽게 확인할 수 있는 방법은 없습니다).

Berserko는 이 기능을 지원하지만 한 가지 문제가 있습니다. 위임은 사용자가 전달 가능한(forwardable) TGT(티켓 부여 티켓)를 보유한 경우에만 작동합니다. 안타깝게도 Java Kerberos 구현은 전달 가능한 티켓을 획득하도록 프로그래밍 방식으로 지정하는 방법을 제공하지 않습니다. 이는 krb5.conf 구성 파일에 적절한 항목을 추가해야만 가능합니다.

따라서 위임이 작동하려면 Berserko가 적절한 krb5.conf 파일을 가리켜야 하며, 여기에는 두 가지 방법이 있습니다.

가장 쉬운 방법이자 권장되는 방법은 Create krb5.conf file 버튼을 사용하는 것입니다. 이 버튼은 선택한 위치에 적절한 파일을 생성합니다. 임시 디렉터리나 프로젝트 디렉터리 등 어디에나 저장할 수 있습니다. 그러나 동일한 파일을 계속 재사용할 수 있으므로 더 영구적인 위치에 두는 것이 좋습니다. Change 버튼을 사용하면 사용할 다른 파일을 선택할 수 있습니다.

관심이 있다면 생성되는 krb5.conf 파일은 매우 단순하며 다음과 같은 내용을 가집니다:

[libdefaults]
    forwardable = true

또는 Change 버튼을 사용하여 시스템의 기존 krb5.conf 파일을 가리킬 수도 있습니다. 이렇게 하려는 유일한 이유는 이 파일에 Berserko가 읽어들이기를 원하는 다른 중요한 Kerberos 설정이 있는 경우입니다(이론적으로는 잘 작동해야 하지만 실제로 테스트되지는 않았습니다). Linux에서 이 파일의 기본 위치는 /etc/krb5.conf입니다. 다른 운영 체제에는 이 파일이 있을 가능성이 낮습니다. 기존 krb5.conf 파일을 가리키는 경우 전달을 활성화하도록 편집해야 합니다. [libdefaults] 섹션에 forwardable = true를 추가하세요(또는 각 영역별로 개별적으로 추가). 그러나 주의하세요. Berserko가 파일을 생성하도록 하는 것이 99%의 경우 더 나은 선택입니다.

위임 구성이 성공적인지 확인하려면 Check current config 버튼을 사용하세요. 이 버튼은 krb5.conf 파일이 찾아졌는지, forwardable 설정이 올바른지 알려줍니다. 또한 Berserko는 Test credentials 버튼을 사용할 때 전달 가능한 TGT를 성공적으로 획득했는지 여부도 알려줍니다.

애플리케이션 사용을 시작하기 전에 전달 가능한 티켓이 있는지 확인하는 것이 좋습니다. IIS는 서버 측에서 사용자의 인증 상태를 캐시하여 전달 불가능한 티켓에서 전달 가능한 티켓으로 전환해도 작동하지 않을 수 있습니다.

인증 전략

이 섹션의 설정은 Berserko가 Kerberos 인증을 '반응적(reactive)'으로 시도할지(즉, 서버로부터 401 응답을 기다린 후 Kerberos 인증 헤더를 추가하여 요청을 다시 전송) 아니면 '선제적(proactive)'으로 시도할지(즉, 나가는 요청에 Kerberos 인증 헤더를 추가)를 제어합니다.

선제적 인증의 장점은 HTTP 왕복이 한 번만 필요하다는 것이고, 반응적 인증은 두 번 필요하다는 것입니다. 선제적 인증의 단점은 Kerberos 인증 헤더를 기대하지 않는 호스트에 헤더가 전송될 수 있다는 것입니다. 또한 Berserko는 반응적 전략을 사용할 때 인증 오류를 더 잘 진단할 수 있습니다.

Proactive Kerberos authentication, only after initial 401 received 옵션은 이 두 가지 접근 방식의 하이브리드로, Berserko가 호스트에 대한 첫 번째 요청에서는 반응적으로 인증한 다음 이후에는 선제적으로 인증합니다.

범위

이 섹션에서는 Kerberos 인증 범위에 포함되는 호스트를 정의할 수 있습니다.

기본적으로 All hosts in this Kerberos domain in scope for Kerberos 상자가 선택되어 있습니다. 즉, Berserko는 호스트 이름이 도메인 DNS 이름으로 끝나는 웹 서버에 대해서만 Kerberos 인증을 시도합니다. 많은 상황에서 이 정도로 충분합니다. 그러나 호스트 이름이 이 형식이 아닌 Kerberos 지원 웹 애플리케이션이 있을 수도 있습니다(관리자가 적절한 SPN(서비스 사용자 이름)을 설정했다고 가정). 이를 고려하기 위해 오른쪽의 목록 상자를 사용하여 범위에 포함할 추가 호스트를 추가할 수 있습니다. 와일드카드를 사용할 수 있습니다(*는 0개 이상의 문자와 일치, ?는 점을 제외한 임의의 문자와 일치).

또는 All hosts in scope for Kerberos authentication 상자를 선택할 수 있습니다. 분명히 범위를 수동으로 지정할 필요가 없다는 장점이 있습니다. 이 구성의 잠재적인 단점은 Berserko가 도메인에 없는 호스트에 대한 서비스 티켓을 획득하기 위해 KDC에 Kerberos 요청을 보낼 수 있다는 것입니다. 이는 성능 문제와 개인정보 보호 문제(이 정보가 KDC에 유출되는 것을 원하지 않는 경우)를 야기할 수 있습니다. 특히 Proactive Kerberos authentication 전략에서 문제가 될 가능성이 높습니다. 이 경우 Berserko는 Burp를 통과하는 모든 요청에 Kerberos 인증 헤더를 추가하려고 시도합니다. 이 옵션 조합은 권장되지 않으며, Berserko는 선택된 경우 경고를 표시합니다(하지만 실제로 막지는 않습니다).

All hosts in this Kerberos domain in scope for Kerberos도 All hosts in scope for Kerberos authentication도 선택되지 않은 경우 범위에 있는 유일한 호스트는 목록 상자에 추가된 호스트뿐입니다.

Plain hostnames considered part of domain 옵션을 선택하면 '일반 호스트 이름'(즉, 단일 구성 요소로만 구성된 호스트 이름)이 도메인의 일부로 간주됩니다(따라서 All hosts in this Kerberos domain in scope for Kerberos가 선택된 경우 자동으로 범위에 포함됩니다). 이 옵션을 비활성화하려는 주요 이유는 머신이 Berserko로 인증하려는 도메인과 다른 도메인에 가입되어 있는 경우입니다(이 경우 일반 호스트 이름은 가입된 도메인의 호스트를 가리킬 가능성이 높습니다).

선택된 경우 Do not perform Kerberos authentication to servers which support NTLM 옵션은 Kerberos 외에도 NTLM을 지원하는 호스트(즉, WWW-Authenticate: NTLM 및 WWW-Authenticate: Negotiate 헤더를 모두 반환하는 호스트)에 대해 Kerberos 인증을 시도하지 않도록 Berserko에 지시합니다.

로깅

Alert Level 및 Logging Level을 NONE, NORMAL 또는 VERBOSE 중 하나로 구성할 수 있습니다.

도구 다운로드