Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
OMEN — C言語によるMarkovモデルベースのパスワード推測ツール。確率順に候補を列挙し、HashcatやJohnによるハッシュクラッキング向けに最も可能性の高いパスワードから生成します。 | Kitploit
ツール/GitHubGitHub/rub-syssec/omen
パスワードクラッキングパスワード攻撃ハッシュ分析暗号化ユーティリティとフレームワーク論文と研究
GitHubrub-syssec/omen

OMEN

C言語によるMarkovモデルベースのパスワード推測ツール。確率順に候補を列挙し、HashcatやJohnによるハッシュクラッキング向けに最も可能性の高いパスワードから生成します。

リポジトリを見る
335447年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

OMEN: Ordered Markov ENumerator

OMENはC言語で書かれたマルコフモデルベースのパスワード推測ツールです。パスワード候補をその出現確率に従って生成します。つまり、最も可能性の高いパスワードから順に出力します。OMENは既存の提案手法と比較して推測速度を大幅に改善します。 OMENが既存のマルコフモデルベースのパスワード推測手法をどのように改善しているかの詳細に興味がある場合は、OMEN: Faster Password Guessing Using an Ordered Markov Enumeratorを参照してください。

ユーザーガイド

OMENは2つの独立したプログラムモジュールで構成されています: createNG と enumNG です。createNG は与えられたパスワードリストに基づいてn-gram確率を計算し、ハードディスクに保存します。これらの確率に基づいて enumNG は新しい パスワードを正しい順序(降順)で列挙します。

インストール

最近のLinuxバージョンを使用し、git(Gitバージョン管理システム)、gcc(GNU Compiler Collection)、および 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)の他に、グラムとパスワード長に関する情報を含むいくつかのファイルが作成されます。これらのファイルは拡張子 '.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 は3つの動作モードをサポートしています: file、stdout、simulated plaintext attack です。enumNG のデフォルトモードでは、これらのレベルに基づくパスワード推測のリストが作成されます。コマンド

$ ./enumNG

を使用すると10億個のパスワードを生成し、それらをテキストファイルに保存します。このファイルは 'results' フォルダにあります。このファイル内のパスワードはレベル(つまり確率)順に並んでいます。一般的なテキストエディタはこのような巨大なファイルを扱えないため、テスト時には生成されるパスワード数を減らすことを推奨します。これは引数 -m を使用して行えます。

$ ./enumNG -m 10000

これにより10,000個のパスワードのみを含む順序付きリストが作成されます。パスワードを標準出力(stdout)ストリームに出力したい場合は、引数 -p を使用します。

$ ./enumNG -p -m 10000

plaintext パスワードテストセットに対して推測性能を評価したい場合は、引数 -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

マルコフモデル

  • 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 プロセス中に作成される確率分布は、サポートされているスムージング関数の1つ、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' モードに相当)。

したがって、関連するヒントまたは複数のヒント(タブ区切り)を別のファイルに提供する必要があります。さらに、それぞれの アルファ値を含むアルファファイルが必要です(1行にタブ区切り)。アルファ値は提供されたヒントの影響を重み付けするために使用されます。重要なのは、 行内の各ヒントに対してアルファファイルでアルファを指定する必要があることです。これらのアルファは、行ごとのヒントと同じ順序でなければなりません。

例として、パスワード "Mary'sPW2305" を推測したいとします。名、ユーザー名、生年月日、およびメールアドレスを含むヒントファイルの対応する行は次のようになります:

mary   mary1   19880523    [email protected]

アルファファイルは、名、ユーザー名、生年月日、およびメールアドレスに関連するアルファ値を、ヒントファイルと同じ順序で並べる必要があります。例:

1   2   1   2

OMEN+を使用するには、enumNG をヒントファイルとアルファファイルへのパスを指定して呼び出す必要があります:

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

パフォーマンス

OMEN

スムージング設定

スムージング関数は設定ファイル(createConfig)を使用して選択および設定されます。 ファイルにはスムージング関数の名前を含める必要があり、任意の変数パラメータの値を含めることができます。ファイルは次のようにフォーマットする必要があります:

ツールをダウンロード