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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
OMEN — C로 작성된 Markov 모델 기반 비밀번호 추측기로, 확률에 따라 후보를 열거하여 Hashcat 또는 John을 통한 해시 크래킹을 위해 가장 가능성 높은 비밀번호를 먼저 생성합니다. | Kitploit
도구/GitHubGitHub/rub-syssec/omen
Password CrackingPassword AttacksHash AnalysisCryptographyUtilities & FrameworksPapers & Research
GitHubrub-syssec/omen

OMEN

C로 작성된 Markov 모델 기반 비밀번호 추측기로, 확률에 따라 후보를 열거하여 Hashcat 또는 John을 통한 해시 크래킹을 위해 가장 가능성 높은 비밀번호를 먼저 생성합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

OMEN: Ordered Markov ENumerator

OMEN은 C로 작성된 Markov 모델 기반 비밀번호 추측기로, 발생 확률에 따라 비밀번호 후보를 생성합니다. 즉, 가장 가능성이 높은 비밀번호를 먼저 출력합니다. OMEN은 기존 제안들보다 추측 속도를 크게 향상시킵니다. OMEN이 기존 Markov 모델 기반 비밀번호 추측 접근법보다 어떻게 개선되었는지에 대한 자세한 내용은 OMEN: Faster Password Guessing Using an Ordered Markov Enumerator를 참조하세요.

사용자 가이드

OMEN은 두 개의 별도 프로그램 모듈로 구성됩니다: createNG와 enumNG. createNG는 주어진 비밀번호 목록을 기반으로 n-gram 확률을 계산하여 하드 디스크에 저장합니다. 이 확률을 기반으로 enumNG는 새로운 비밀번호를 올바른 순서(내림차순)로 열거합니다.

설치

최신 Linux 버전을 사용하고 git(Git 버전 관리 시스템), gcc(GNU 컴파일러 컬렉션), make(GNU Make)가 설치되어 있는지 확인하세요. Ubuntu Linux에서는 다음을 통해 설치할 수 있습니다:

$ sudo apt-get install build-essential git

다음을 통해 소스 코드를 체크아웃하세요:

$ git clone https://github.com/RUB-SysSec/OMEN.git OMEN

새로 생성된 OMEN 디렉토리로 이동하여 다음을 실행하세요:

$ make

컴파일이 성공하면 현재 디렉토리에서 createNG와 enumNG를 찾을 수 있습니다.

.
├── alphabetCreator
├── createNG
├── docs
│   ├── CHANGELOG.md
│   ├── LICENSE
│   └── screenshots
├── enumNG
├── evalPW
├── makefile
├── README.md
└── src
    ├── alphabetCreator.c
    ...

원하시면 이제 src 폴더와 makefile 파일을 제거할 수 있습니다. 더 이상 사용되지 않습니다.

Windows 사용자?

Windows 10에서 Cygwin을 사용한 간단한 설치 가이드는 여기에서 확인할 수 있습니다.

기본 사용법

비밀번호를 생성하기 전에 createNG를 사용하여 n-gram 확률을 추정해야 합니다. 기본 설정을 사용하여 확률을 계산하려면 createNG를 호출할 때 훈련할 비밀번호 목록의 경로를 지정해야 합니다:

$ ./createNG --iPwdList password-training-list.txt

주어진 목록의 각 비밀번호는 새 줄에 있어야 합니다. 그런 다음 모듈은 목록을 읽고 평가하여 여러 파일을 생성합니다. 사용된 설정(이 경우 기본 설정)을 저장하는 구성 파일(createConfig) 외에도, gram과 비밀번호 길이에 대한 정보를 포함하는 여러 파일이 생성됩니다. 이 파일들은 '.level' 확장자를 가집니다:

  • IP.level (Initial Probability): 각 비밀번호의 첫 번째 (n-1)-gram의 확률을 저장합니다.
  • CP.level (Conditional Probability): 실제 n-gram의 확률을 저장합니다.
  • EP.level (End Probability): 각 비밀번호의 마지막 (n-1)-gram 의 확률을 저장합니다.
  • LN.level (Length): 비밀번호 길이에 대한 확률을 저장합니다.

각 n-gram과 길이의 확률은 0(가장 가능성 높음)에서 10(가장 가능성 낮음) 사이의 레벨로 매핑됩니다. 이 파일들이 생성되면 enumNG를 사용하여 확률 순으로 정렬된 비밀번호 목록을 생성할 수 있습니다. 현재 enumNG는 세 가지 작동 모드를 지원합니다: file, stdout, simulated plaintext attack. enumNG의 기본 모드에서는 이러한 레벨을 기반으로 비밀번호 추측 목록이 생성됩니다. 다음 명령을 사용하면

$ ./enumNG

10억 개의 비밀번호를 생성하고 이를 텍스트 파일에 저장하며, 이 파일은 'results' 폴더에서 찾을 수 있습니다. 이 파일의 비밀번호는 레벨(즉, 확률) 순으로 정렬됩니다. 일반적인 텍스트 편집기는 이러한 거대한 파일을 처리할 수 없으므로, 테스트를 위해 생성되는 비밀번호 수를 줄이는 것이 좋습니다. 이는 -m 인수를 사용하여 수행할 수 있습니다.

$ ./enumNG -m 10000

10,000개의 비밀번호만 포함된 정렬된 목록을 생성합니다. 비밀번호를 표준 출력(stdout) 스트림으로 출력하려면 -p 인수를 사용하세요.

$ ./enumNG -p -m 10000

평문 비밀번호 테스트 세트에 대한 추측 성능을 평가하려면 -s 인수를 사용하세요. 참고: 이 모드에서 OMEN은 실시간 피드백을 통합한 적응형 길이 스케줄링 알고리즘의 이점을 활용하는데, 이는 file 및 stdout 모드에서는 (피드백 채널이 없기 때문에) 사용할 수 없습니다.

$ ./enumNG -s=password-testing-list.txt -m 10000

이 평가의 결과는 'results' 폴더에서 찾을 수 있습니다.

두 모듈 모두 -h 또는 --help 인수를 사용하여 표시할 수 있는 도움말 대화상자를 제공합니다.

비밀번호 크래킹

$2a$10$HNYF4KajSTqxIP/KoiB5tOCVeKUgvscTh32hhAmppFk4T/USmI2B.에서 "GoodOMEN!123"으로 어떻게 갈 수 있을까요?

윤리

OMEN은 확률적 비밀번호 모델링 개선, 추측 횟수 추정 또는 비밀번호 강도와 같은 학술적 사용 사례를 위해 개발되었으며, 일반적으로 비밀번호 보안을 개선하기 위한 것입니다. 이 소프트웨어를 악용하여 다른 사람의 개인정보를 침해하거나 법을 위반하지 마세요.

사전 이미지 공격

Hashcat 및 John the Ripper와 같은 인기 있는 해시 평가기는 수백 가지의 해시 및 암호 형식을 지원하며, 표준 입력(stdin) 스트림을 통해 비밀번호 후보를 읽을 수 있기 때문에 쉽게 통합할 수 있습니다.

$ ./enumNG -p -m 10000 | ./hashcat64.bin ...

또는

$ ./enumNG -p -m 10000 | ./john --stdin ...

최적의 추측 성능을 위해서는 크래킹하려는 비밀번호 분포와 유사한 비밀번호 분포로 createNG를 훈련하는 것을 고려하세요.

참고: 확률적 비밀번호 모델링을 사용하여 비밀번호를 크래킹하는 것은 일반적으로 실행 가능한 추측 횟수가 제한적인 느린 해시(예: bcrypt, PBKDF2, scrypt 또는 Argon2)에 대해서만 고려하거나 매우 표적화된 공격에서만 고려해야 합니다. 반대로, 매우 빠른 해시(MD5, SHA-1 또는 NTLM)의 경우 좋은 사전과 맹글링 규칙(예: best64.rule)을 사용하는 것이 좋습니다.

이 주제에 관심이 있다면 다음 논문과 관련 연구를 읽어보는 것을 고려하세요 (이 목록은 불완전하며, 확장하는 데 도움을 줄 수 있습니다):

확률적 문맥 자유 문법

  • Password Cracking Using Probabilistic Context-Free Grammars (SP '09)
  • Guess Again (and Again and Again): Measuring Password Strength by Simulating Password-Cracking Algorithms (SP '12)
  • On the Semantic Patterns of Passwords and their Security Impact (NDSS '14)
  • Next Gen PCFG Password Cracking (TIFS '15)
  • ...
  • Software A, Software B

Markov 모델

  • Fast Dictionary Attacks on Passwords Using Time-Space Tradeoff (CCS '05)
  • OMEN+: When Privacy meets Security: Leveraging personal information for password cracking (CoRR '13)
  • A Study of Probabilistic Password Models (SP '14)
  • OMEN: Faster Password Guessing Using an Ordered Markov Enumerator (ESSoS '15)
  • ...
  • Software A, Software B

신경망

  • Fast, Lean, and Accurate: Modeling Password Guessability Using Neural Networks (USENIX '16)
  • Using Neural Networks for Password Cracking (Blog post by Sebastian Neef '16)
  • Design and Evaluation of a Data-Driven Password Meter (CHI '17)
  • ...
  • Software A, Software B

하이브리드

  • John the Ripper 'Incremental' Mode
  • Introducing the PRINCE Attack-Mode (PASSWORDS '14)
  • ...
  • Software A, Software B

접근법 비교

  • Measuring Real-World Accuracies and Biases in Modeling Password Guessability (USENIX '15)
  • A Framework for Comparing Password Guessing Strategies (PASSWORDS '15)
  • PARS: A Uniform and Open-source Password Analysis and Research System (ACSAC '15)
  • ...
  • Software A, Software B

고급 사용법

두 모듈 모두 사용 가능한 다양한 모드를 선택하고 기본 설정을 변경할 수 있는 여러 명령줄 인수를 제공합니다. 예를 들어, createNG 프로세스 중에 생성된 확률 분포는 지원되는 평활화 함수, n-gram 크기 또는 사용된 알파벳 중 하나를 선택하여 조작할 수 있습니다. createNG에 사용 가능한 모든 매개변수, 간단한 설명 및 기본값은 -h 또는 --help로 프로그램을 호출하여 확인할 수 있습니다. enumNG도 마찬가지로 작동하며, 예를 들어 열거 모드, 사용된 길이 스케줄링 알고리즘(-s 모드에서만 사용됨, '기본 사용법' 섹션 참조) 및 최대 시도 횟수를 선택할 수 있습니다. 열거 모드가 지정되지 않으면 기본 모드가 실행되어 생성된 모든 비밀번호를 'results' 폴더의 텍스트 파일에 저장합니다.

OMEN+

OMEN+는 When Privacy Meets Security: Leveraging Personal Information for Password Cracking을 기반으로 하며 OMEN의 추가 기능입니다(동일한 바이너리에 구현됨). 사용자에 대한 추가 개인 정보(예: 비밀번호 힌트 또는 소셜 네트워크에서 스크랩한 개인 배경 정보)를 사용하면 비밀번호 추측 프로세스 속도를 높이는 데 도움이 될 수 있습니다(John the Ripper 'Single crack' 모드와 유사).

따라서 관련 힌트 또는 여러 힌트(탭으로 구분)를 별도 파일에 제공해야 합니다. 또한 해당 알파 값을 포함하는 알파 파일이 필요합니다(한 줄에 탭으로 구분). 알파 값은 제공된 힌트의 영향을 가중치로 부여하는 데 사용됩니다. 중요한 것은 줄의 각 힌트에 대해 알파 파일에 알파가 지정되어야 한다는 것입니다. 이러한 알파는 줄당 힌트와 동일한 순서여야 합니다.

예를 들어, 비밀번호 "Mary'sPW2305"를 추측하려고 합니다. 이름, 사용자 이름, 생년월일 및 이메일 주소를 포함하는 힌트 파일의 해당 줄은 다음과 같습니다:

mary   mary1   19880523    [email protected]

알파 파일은 이름, 사용자 이름, 생년월일 및 이메일 주소에 대한 관련 알파 값을 힌트 파일과 동일한 순서로 정렬해야 합니다. 예를 들어:

1   2   1   2

OMEN+를 사용하려면 enumNG를 호출할 때 힌트 및 알파 파일의 경로를 지정해야 합니다:

$ ./enumNG -H hint-file.txt -a alpha-file.txt

성능

OMEN

평활화 구성

도구 다운로드