Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
keepass-password-dumper — CVE-2023-32784용 원본 PoC | Kitploit
도구/GitHubGitHub/vdohney/keepass-password-dumper
Memory ForensicsPassword AttacksVulnerability AnalysisExploitationForensicsDigital Forensics
GitHubvdohney/keepass-password-dumper

keepass-password-dumper

CVE-2023-32784용 원본 PoC

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

KeePass 2.X 마스터 비밀번호 덤퍼 (CVE-2023-32784)

업데이트

해당 취약점은 CVE-2023-32784로 지정되었으며 KeePass 2.54에서 수정되었습니다. 빠른 대응과 창의적인 수정에 대해 Dominik Reichl에게 다시 한번 감사드립니다!

명확히 하자면: 비밀번호는 클립보드에서 복사하는 것이 아니라 키보드로 입력해야 합니다 (작동 방식 섹션 참조).

무엇을 할 수 있나요

먼저, KeePass 2.54 이상으로 업데이트하세요.

둘째, 오랫동안 KeePass를 사용해 왔다면 마스터 비밀번호(그리고 잠재적으로 다른 비밀번호들)가 페이지 파일/스왑 파일, 최대 절전 파일, 크래시 덤프에 남아 있을 수 있습니다. 걱정되는 수준에 따라 다음 단계를 통해 문제를 해결할 수 있습니다:

  1. 마스터 비밀번호를 변경하세요
  2. 크래시 덤프를 삭제하세요 (운영 체제에 따라 다르며, Windows의 경우 최소한 C:\Windows\memory.dmp이지만 다른 것이 있을 수도 있습니다)
  3. 최대 절전 파일을 삭제하세요
  4. 페이지 파일/스왑 파일을 삭제하세요 (상당히 귀찮을 수 있으며, 다시 활성화하는 것을 잊지 마세요)
  5. HDD에서 삭제된 데이터를 덮어써서 carving을 방지하세요 (예: Windows에서 /w 옵션과 함께 Cipher 사용)
  6. 컴퓨터를 다시 시작하세요

아니면 그냥 HDD를 덮어쓰고 운영 체제를 새로 설치하세요.

영향을 받지 않는 제품의 불완전한 목록 (더 추가하려면 풀 리퀘스트(pull request)나 이슈(issue)를 생성해 주세요). 일반적으로 .NET으로 작성된 원래 KeePass 2.X 앱이 아니라면 영향을 받지 않을 가능성이 높습니다.

  • KeePassXC
  • Strongbox
  • KeePass 1.X


KeePass Master Password Dumper는 KeePass의 메모리에서 마스터 비밀번호를 덤프하는 간단한 개념 증명(PoC) 도구입니다. 첫 번째 비밀번호 문자를 제외하고는 대부분의 비밀번호를 평문으로 복구할 수 있습니다. 대상 시스템에서 코드 실행이 필요하지 않으며, 메모리 덤프만 있으면 됩니다. 메모리가 어디서 왔는지는 중요하지 않습니다. 프로세스 덤프, 스왑 파일(pagefile.sys), 최대 절전 파일(hiberfil.sys), 각종 크래시 덤프 또는 시스템 전체의 RAM 덤프가 될 수 있습니다. 작업 공간이 잠겨 있는지 여부도 중요하지 않습니다. KeePass가 더 이상 실행 중이 아니더라도 RAM에서 비밀번호를 덤프하는 것도 가능하지만, 이 방법이 성공할 확률은 그 이후 경과된 시간에 비례하여 낮아집니다.

Windows(영문)에서는 KeePass 2.53.1, Debian(keepass2 패키지)에서는 KeePass 2.47로 테스트했습니다. macOS 버전에서도 작동해야 합니다. 불행히도 Enter master key on secure desktop 옵션을 활성화해도 공격을 막는 데 도움이 되지 않습니다. PoC는 이전 버전의 KeePass로 만든 데이터베이스에서 문제가 발생할 수 있지만, 재현하지는 못했습니다 (이슈 #4 참조).

이 발견은 KeePass의 저자인 Dominik Reichl에 의해 여기에서 확인되었습니다. Dominik의 빠른 응대에 감사드립니다. 조만간 수정되기를 바랍니다!

설정

  1. .NET 설치 (대부분의 주요 운영 체제를 지원합니다)
  2. 저장소를 클론하세요: git clone https://github.com/vdohney/keepass-password-dumper 또는 GitHub에서 다운로드하세요
  3. 터미널(Windows에서는 Powershell)에서 프로젝트 디렉터리로 이동하세요 cd keepass-password-dumper
  4. dotnet run PATH_TO_DUMP

Windows에서 가장 쉽게 테스트하는 방법은 작업 관리자에서 KeePass 프로세스를 마우스 오른쪽 버튼으로 클릭하고 "Create dump file"을 선택하여 프로세스 덤프를 생성하는 것입니다.

사용 예시

  1. 또는 dotnet run PATH_TO_DUMP PATH_TO_PWDLIST 매개변수를 추가하여 두 번째 문자부터 시작하는 가능한 모든 비밀번호 목록을 생성할 수 있습니다.

걱정해야 할까요?

위협 모델에 따라 다릅니다. 컴퓨터가 이미 사용자 권한으로 백그라운드에서 실행되는 맬웨어에 감염된 경우, 이 발견으로 상황이 훨씬 나빠지지는 않습니다. 그러나 KeeTheft나 KeeFarce와 달리 프로세스 인젝션이나 다른 유형의 코드 실행이 필요 없기 때문에 맬웨어가 은밀하게 행동하고 안티바이러스를 회피하기가 더 쉬울 수 있습니다.

누군가 컴퓨터에 접근하여 포렌식 분석을 수행할 수 있다고 합리적으로 의심할 만한 상황이라면, 이는 좋지 않을 수 있습니다. 최악의 경우 KeePass가 잠겨 있거나 전혀 실행되고 있지 않더라도 마스터 비밀번호가 복구될 수 있습니다.

강력한 비밀번호로 전체 디스크 암호화를 사용하고 시스템이 깨끗하다면 괜찮을 것입니다. 이 발견만으로는 인터넷을 통해 원격으로 비밀번호를 도난당하지 않습니다.

작동 방식

KeePass 2.X는 비밀번호 입력을 위해 자체 개발한 텍스트 상자 SecureTextBoxEx를 사용합니다. 이 텍스트 상자는 마스터 비밀번호 입력뿐만 아니라 비밀번호 편집 상자 등 KeePass의 다른 곳에서도 사용됩니다 (따라서 이 공격은 해당 내용을 복구하는 데에도 사용될 수 있습니다).

여기서 악용되는 결함은 입력된 모든 문자에 대해 메모리에 잔여 문자열이 생성된다는 것입니다. .NET의 동작 방식 때문에 일단 생성되면 이를 제거하는 것이 거의 불가능합니다. 예를 들어 "Password"를 입력하면 다음과 같은 잔여 문자열이 생성됩니다: •a, ••s, •••s, ••••w, •••••o, ••••••r, •••••••d. POC 애플리케이션은 덤프에서 이러한 패턴을 검색하여 비밀번호의 각 위치에 대한 가능한 문자를 제시합니다.

이 공격의 신뢰성은 비밀번호가 입력된 방식과 세션당 얼마나 많은 비밀번호가 입력되었는지에 따라 달라질 수 있습니다. 그러나 세션에 여러 비밀번호가 있거나 오타가 있더라도 .NET CLR이 이러한 문자열을 할당하는 방식 때문에 메모리에서 깔끔하게 정렬될 가능성이 높다는 것을 발견했습니다. 따라서 세 개의 서로 다른 비밀번호가 입력된 경우 각 문자 위치에 대해 세 개의 후보가 순서대로 나올 가능성이 높으며, 이를 통해 세 개의 비밀번호를 모두 복구할 수 있습니다.

개발

빠르게 만든 POC이므로 신뢰성과 견고성이 높지 않을 수 있습니다. 문제를 발견하면 풀 리퀘스트를 생성하여 수정해 주세요.

허용되는 비밀번호 문자는 현재 다음과 같이 하드코딩되어 있습니다: ^[\x20-\x7E]+$ (인쇄 가능한 모든 ASCII 문자 및 공백).

감사의 말

비밀번호 목록 자동 생성 기능을 추가해 준 adridlug와 코드를 리팩터링해 준 ynuwenhof에게 감사드립니다.

관련 프로젝트

  • PoC의 Python 구현 제작: CMEPW
  • PoC의 Rust 구현 제작: ynuwenhof

아직 그중 어느 것도 확인하지 못했습니다.

도구 다운로드