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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
featherduster — 자동화된 모듈식 암호분석 도구, 즉 수학 파괴 무기 | Kitploit
도구/GitHubGitHub/nccgroup/featherduster
Encryption/Decryption ToolsVulnerability AnalysisExploitationCryptographyPenetration Testing
GitHubnccgroup/featherduster

featherduster

자동화된 모듈식 암호분석 도구, 즉 수학 파괴 무기

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

FeatherDuster (및 Cryptanalib)

FeatherDuster 로고 Build Status

FeatherDuster는 주로 Daniel "unicornfurnace" Crowley가 커뮤니티의 기여와 함께 작성한 암호 해독 도구입니다. 이 도구는 취약한 암호 시스템을 식별하고 공격하는 과정을 최대한 쉽게 만들기 위해 설계되었습니다. Cryptanalib는 FeatherDuster의 내부 동작을 담당하는 부분으로, FeatherDuster와 독립적으로 사용할 수 있습니다.

왜 "FeatherDuster"일까요? 암호 전문가들 사이에는 암호를 잘못 사용하거나, 암호로 해결할 수 없는 문제를 암호로 해결하려는 행동을 "마법의 암호 요정 가루를 뿌린다"라고 부르는 농담이 있습니다. FeatherDuster는 바로 그 마법의 암호 요정 가루를 청소하기 위한 도구입니다.

이 버전은 FeatherDuster의 베타 릴리스입니다. 일부 기능이 제대로 작동하지 않을 수 있습니다.

버그를 발견하면 이슈를 등록해 주세요. 풀 리퀘스트도 환영하며 적극 권장합니다.

FeatherDuster 사용법

python featherduster/featherduster.py [ciphertext file 1] ... [ciphertext file n]

FeatherDuster를 가상 환경에 설치했다면 다음과 같이 간단히 실행할 수 있습니다:

root@kitploit:~
(featherduster) $ featherduster [ciphertext file 1] ... [ciphertext file n]

위치 인자를 통해 샘플을 가져오면 파일 형식과 관계없이 각 파일이 하나의 암호문으로 처리됩니다. FeatherDuster는 일반적인 인코딩을 자동으로 인식하고 디코딩할 수 있으므로, 파일에 인코딩된 샘플이 포함되어 있어도 괜찮습니다.

FeatherDuster 콘솔이 시작된 후에는 다른 방법으로도 암호문을 가져올 수 있습니다. 특히, 줄바꿈으로 구분된 샘플이 들어 있는 파일을 가져오면 각 줄이 별도의 샘플로 처리됩니다. 예를 들면 다음과 같습니다.

root@kitploit:~
68657920636f6f6c
796f752072656164
74686520726561646d65

또한 FeatherDuster 명령줄 입력을 통해 단일 암호문을 지정할 수도 있습니다. 이 입력은 줄바꿈에서 종료되므로, 샘플에 줄바꿈이 포함된 경우를 대비해 어떤 형태의 인코딩을 사용하는 것이 좋습니다.

Cryptanalib 사용법

Cryptanalib는 FeatherDuster와 별도로 사용하여 Python 기반의 암호 공격 도구를 만들 수 있습니다. cryptanalib 함수에 대한 문서는 Python의 help() 함수를 통해 확인할 수 있습니다:

root@kitploit:~
>>> import cryptanalib as ca
>>> dir(ca)    # output edited for a cleaner README file
[ ... 'analyze_ciphertext', 'batch_gcd', 'bb98_padding_oracle', 'break_alpha_shift', 'break_ascii_shift', 'break_columnar_transposition', 'break_generic_shift', 'break_many_time_pad', ... ]
>>> help(ca.bb98_padding_oracle)

Help on function bb98_padding_oracle in module cryptanalib:

bb98_padding_oracle(ciphertext, padding_oracle, exponent, modulus, verbose=False, debug=False)
    Bleichenbacher's RSA-PKCS1-v1_5 padding oracle from CRYPTO '98
    
    Given an RSA-PKCS1-v1.5 padding oracle and a ciphertext,
    decrypt the ciphertext.
    
    ciphertext - The ciphertext to decrypt
    padding_oracle - A function that communicates with the padding oracle.
       The function should take a single parameter as the ciphertext, and
       should return either True for good padding or False for bad padding.
    exponent - The public exponent of the keypair
    modulus - The modulus of the keypair
    verbose - (bool) Whether to show verbose output
    debug - (bool) Show very verbose output

Cryptanalib 분석 엔진

FeatherDuster에서 사용하는 Cryptanalib의 분석 엔진은 인코딩을 자동으로 감지하고 샘플을 디코딩할 수 있습니다. 엔진은 모든 샘플이 동일한 과정(예: base64encode(aes_encrypt(datum)))으로 생성되었다고 가정하지만, 혼합된 샘플도 어느 정도 처리할 수 있습니다. 현재 Cryptanalib는 다음 인코딩 방식을 감지하고 디코딩할 수 있습니다:

  • Vanilla Base64
  • ASCII 16진수 인코딩
  • Zlib 압축
  • URL 인코딩

Cryptanalib의 분석 엔진은 분석 단계에서 다음과 같은 여러 속성도 감지할 수 있습니다:

  • 낮은 엔트로피 암호문(자체 제작 암호를 탐지하는 데 유용)
  • 블록 암호 사용 여부 및 스트림 암호 사용 여부
  • ECB 모드
  • 고정 IV가 있는 CBC 모드
  • 해시 알고리즘(엔진은 Merkle-Daamgard 기반 해시 알고리즘에 길이 확장 공격이 적용될 수 있음을 알려줍니다)
  • OpenSSL 형식의 암호문
  • 스트림 암호 키 재사용
  • 개인 키 구성 요소가 있는 RSA 키
  • 충분히 크지 않은 RSA 모듈러스
  • RSA 모듈러스 재사용
  • 전치(transposition) 전용 암호
도구 다운로드