Skip to content

quackquacks01/KKB_VM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🔐 KKB_VM — Ransomware Analysis & Guard (PoC)

랜섬웨어 포렌식 & 방어 PoC 입니다.
구조는 복호화 시도 코드(decryption/)와 행위 기반 탐지 프로그램(ransom_guard/)으로 구성됩니다.

⚠️ 실제 공격 키/IV 부재로 인해 FLAG.txt.ryk 복호화는 실패했습니다.
대신, 시도 과정·논리·코드를 그대로 재현해 기록했습니다.


📂 Repository Structure

  KKB_VM/
  ├─ decryption/ # 복호화 시도 코드 (성공/실패 포함 기록)
  │ ├─ simpleXOR.py # 1) 단일 바이트 XOR (SHA256 첫 바이트)
  │ ├─ GUIDcycle.py # 2) GUID 문자열 순환 XOR
  │ ├─ SHAcycle_program.py # 3) SHA256 32B 순환 XOR (CLI/GUI 버전)
  │ └─ plausible.py # 4) Known-plaintext(FLAG{, CTF{, PDF/ZIP/PNG 헤더 등) 역산
  │
  ├─ ransom_guard/ # 랜섬웨어 행위 기반 탐지 프로그램 (PoC)
  │ ├─ config.py
  │ ├─ utils.py
  │ ├─ watcher.py
  │ ├─ main.py
  │ ├─ requirements.txt # watchdog 등 의존성
  │ ├─ samples/ # 소형 샘플 로그
  │ │ ├─ rg_events.sample.csv
  │ │ └─ rg_events.sample.jsonl
  │ └─ pycache/ # (자동 생성, .gitignore로 제외)
  │
  └─ README.md

🔐 decryption/ (복호화 시도 기록)

암호화된 FLAG.txt.ryk 파일을 복호화하기 위한 다양한 접근을 기록했습니다.

  1. simpleXOR.py

    • SHA256 해시의 첫 1바이트를 키로 사용해 단일 바이트 XOR 시도
  2. GUIDcycle.py

    • 감염 지표에서 발견된 GUID 문자열을 바이트 배열로 변환 → itertools.cycle로 순환 XOR
  3. SHAcycle_program.py

    • SHA256(32B)을 순환 XOR 키로 사용 (CLI/간단 GUI 포함)
  4. plausible.py

    • RC4/AES(CTR/CFB) 후보, Known-plaintext(FLAG{, CTF{, PDF/ZIP/PNG 헤더 등) 기반 역산
    • ASCII 비율, 엔트로피, 키워드 매칭 등으로 plausibility 스코어링

결과물은 C:\Analysis\Output\ 또는 C:\Export\ 경로에 저장됩니다.


🛡️ ransom_guard/ (행위 기반 탐지 PoC)

  • 실시간 감시 대상: Desktop, Downloads, Documents
  • 의심 확장자 / 버스트 이벤트 / 엔트로피 급상승 탐지
  • CSV/JSONL 로그 저장 (샘플은 samples/ 폴더 커밋)

설치 & 실행

pip install -r ransom_guard/requirements.txt
python ransom_guard/main.py
  • config.py: 감시 폴더, 확장자 블랙리스트, 임계치 설정
  • utils.py: 엔트로피 계산, 이벤트 카운터, CSV/JSONL 로깅
  • watcher.py: 파일 이벤트 핸들러 (생성/수정/삭제/이름변경 감시)
  • main.py: 프로그램 엔트리 (watchdog 기반)

❗ Notes

  • 본 코드는 포렌식 보고서와 1:1 대응되게 작성되었습니다.
  • 복호화는 키/IV 부재로 실패했으나, 시도 과정과 재현 가능한 코드를 제공합니다.
  • 연구 및 학습 목적 공개.

📎 References


📜 License

이 레포지토리의 코드는 MIT License 하에 배포됩니다.
자유롭게 사용, 수정, 재배포할 수 있으나, 출처 표기를 권장합니다.

Releases

No releases published

Packages

 
 
 

Contributors

Languages