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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
psa-2026-00043-recovery — 복구 노트: Proxmox 권고 ID PSA-2026-00043-1 (CVE-2023-54391) | Kitploit
도구/GitHubGitHub/disqualifier/psa-2026-00043-recovery
Cloud Infrastructure SecurityVulnerability AnalysisForensicsData RecoveryDigital ForensicsIncident Response
GitHubdisqualifier/psa-2026-00043-recovery

psa-2026-00043-recovery

복구 노트: Proxmox 권고 ID PSA-2026-00043-1 (CVE-2023-54391)

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
1일 전아직 검토되지 않음

psa-2026-00043-recovery

랜섬웨어로 위장한 와이퍼(Wiper) 공격 이후 복구 — 인터넷에 노출된 Proxmox 인프라에 대한 공격(PSA-2026-00043-1 / CVE-2023-54391) 사례.

공격자는 게스트를 삭제하고 파일시스템을 손상시켰습니다. 게스트 유형에 따라 두 가지 복구 경로가 있습니다:

  • 데이터베이스 게스트 — 원시 WiredTiger 페이지에서 BSON 문서를 캐러빙(carving)
  • 애플리케이션 호스트 — 손상된 파일시스템에서 파일(nginx, systemd 유닛, env, 앱 루트)을 캐러빙

이것은 동일한 상황에 처한 누구에게나 유용하도록 일반화된 도구와 방법론입니다. 소스에 대해 읽기 전용이며, CC0입니다. 실제 복구된 데이터는 포함되어 있지 않으며, 예제 출력은 플레이스홀더를 사용합니다.


첫 1시간

손상된 디스크는 이제 남은 데이터의 유일한 사본입니다. 복구하지 마세요. 이미징하세요.

root@kitploit:~
blockdev --setro /dev/<source>                                    # 1. 즉시 읽기 전용으로 설정
dd if=/dev/<source> of=/safe/disk.img bs=4M conv=noerror,sync     # 2. 안전한 저장소에 이미징
# 3. fsck, rw 마운트 또는 "복구"를 실행하지 마세요. 캐러버가 필요로 하는 블록을 덮어씁니다.
# 4. 모든 소스 패스를 scripts/source_guard.sh로 감싸세요.
# 5. 원본이 아닌 이미지에서만 복구하세요.

스크립트

공유 규율, 분할 캐러버. -h로 실행하세요. Python 3.8+ / bash, 서드파티 패키지 없음. source_guard.sh는 Linux /proc/diskstats가 필요합니다.

실행해 보기

root@kitploit:~
python3 scripts/make_demo.py
python3 scripts/bson_frame.py --total demo/*.bson
python3 scripts/sensitivity_scan.py demo/*.bson
python3 scripts/integrity_verify.py --compare demo/source demo/copy

방법론

다음 순서로 실행했습니다. 캐러빙 단계는 게스트 유형에 따라 분기되며, setro/이미지 양끝단과 콘텐츠 키 기반 검증은 두 경우 모두 동일합니다.

root@kitploit:~
손상된 디스크 ──setro+이미지──► 읽기 전용 이미지
                                    │
                데이터베이스 ────────►│◄────────── 파일시스템
          WT 페이지 캐러빙           │            파일 캐러빙
          문서 개수 계산             │            콘텐츠 분류 + 매니페스트
                                    │
                          노출 계층화 (RED/AMBER/GREEN)
                          복사본 검증 (콘텐츠 키 기반)
                                    │
                                 복구

실패 모드

  1. 0은 모호합니다: 빈 영역과 블라인드 디코더 모두 아무것도 반환하지 않습니다. 이미 확보한 페이지에 대해 모든 0을 양성 대조군으로 검증하세요.
  2. 페이지 크기는 첫 번째 피트가 아닌 첫 번째 성공적인 디코드로 선택하세요. 피트는 항상 4096을 선택하고 다중 블록 페이지를 놓칩니다.
  3. 샘플링된 개수는 하한이지 총계가 아닙니다. 전체 빈(bin)을 읽으세요.
  4. 이름은 과대 표시(맵 키로 사용되는 데이터), 값은 과소 표시(사람이 읽을 수 있는 형식의 비밀)됩니다. 둘 다와 컨텍스트를 요구하세요.
  5. 발생 횟수가 아닌 채워진 필드를 계산하세요. Null이 많은 필드는 숫자를 부풀립니다.
  6. 파일명이 아닌 콘텐츠 해시로 검증하세요. 복구는 모든 것을 이름 변경합니다.
  7. find | sort | xargs sha256sum | sha256sum은 경로와 로케일도 해시합니다. LC_ALL=C 또는 파일별 매니페스트를 사용하세요.
  8. sha256sum -c는 FAILED를 출력하면서도 0으로 종료합니다. $?가 아닌 열을 읽으세요.
  9. 자격 증명 위치 보고서에는 자격 증명 값이 포함되어서는 안 됩니다. 형태와 개수만 출력하세요.
  10. 검증은 실행되었을 때만 참입니다. 모든 판독에 스탬프를 찍고 현재 상태를 다시 확인하세요.

참고 사항

시작점이지 완성된 솔루션이 아닙니다. 프로덕션 WiredTiger는 일반 캐러버가 스텁 처리하는 페이지 압축(snappy/zstd)과 셀 인코딩을 사용합니다. 압축 페이지용 자체 강력한 디코더를 구현하세요. 모든 숫자를 양성 대조군과 두 번째, 다른 도구로 교차 검증하세요: 동일한 가정을 공유하는 두 도구는 그 가정 때문에 일치하지, 올바르기 때문에 일치하지 않습니다. 바이트를 읽는 것이 이를 잡아내는 방법입니다.

데이터가 동일하지 않더라도(다른 데이터베이스, 앱 또는 파일시스템) 방법론은 여전히 유효합니다: 소스를 읽기 전용으로 설정하고, 이미징하고, 복사본에서 캐러빙하고, 0을 믿기 전에 양성 대조군을 확인하고, 전체를 계산하고, 콘텐츠로 검증하세요. 캐러버를 교체하고 규율을 유지하세요.

근본 원인을 강화하세요: :8006의 Proxmox 웹 UI는 인터넷에서 접근 가능해서는 안 됩니다. 공식 Proxmox 보안 권고를 따르세요: https://forum.proxmox.com/threads/proxmox-virtual-environment-security-advisories.149331/

복구 및 강화에 대한 저자의 일반적인 조언이 포함된 더 사용자 친화적인 문서: https://claude.ai/code/artifact/621495ce-4972-405a-ad90-f7703f7dc2f1

CC0 / 퍼블릭 도메인. LICENSE 참조.

도구 다운로드
스크립트경로기능
scripts/source_guard.sh공유복구 명령을 감싸고, 쓰기 카운터 차이를 통해 소스가 읽기 전용으로 유지되었음을 증명합니다. 어떤 소스 쓰기에도 실패합니다.
scripts/wt_leaf_carve.py데이터베이스원시 WiredTiger 리프 페이지에서 BSON을 캐러빙합니다. 페이지 크기는 피트(fit)가 아닌 디코드로 결정하며, 양성 대조군이 필수입니다.
scripts/bson_frame.py데이터베이스온디스크 프레이밍으로 BSON 문서를 계산/검증합니다. 기본적으로 전체 파일을 대상으로 하며, 샘플은 하한(FLOOR) 으로 표시됩니다.
scripts/fs_carve_classify.py파일시스템캐러빙된 파일 조각을 파일명이 아닌 콘텐츠로 분류하고, 파일별 매니페스트를 작성하며, 철저한 비밀 스캔을 수행합니다.
scripts/sensitivity_scan.py공유복구된 데이터를 자격 증명/PII 노출에 따라 RED/AMBER/GREEN으로 계층화합니다. 개수만 출력하며 값은 절대 출력하지 않습니다.
scripts/integrity_verify.py공유재구성된 복사본이 소스에 충실함을 증명합니다. 콘텐츠 키 기반(이름 변경에도 유효), 종료 코드가 아닌 OK/FAILED 열을 읽습니다.
scripts/make_demo.py—도구 키트를 테스트하기 위한 합성 BSON 픽스처(실제 데이터 없음)를 생성합니다.