
ユーザープロファイリング、順列、統計に基づくインテリジェントなワードリスト生成ツール。(Mr.RobotシリーズS01E01に登場する同名のツールに由来)
Mr.RobotシリーズS01E01に登場する同じツールにちなんで名付けられた、インテリジェントな一般的なユーザーパスワードプロファイラです 😄
簡単に言うと、elpscrkは対象について知っているすべての情報を尋ね、対象が考えうるあらゆるパスワードを生成しようとします。それは、あなたが提供する情報、有効にするフラグ、そして指定する複雑さのレベルに完全に依存します。
elpscrkには、対象のタイプごとに6つの複雑さのレベルがあります。デフォルトのシンプルな人から始まり、オタクな人、パラノイアな人、そして最終ボスである核レベルまであります。核レベルでは100万以上のパスワードを生成することもあります。 😆
Elpscrkはcuppに似ていますが、メモリ効率を保ちながら順列と統計に基づいています。そのため、ほぼ瞬時により多くの結果を得ることができ、ユーザータイプごとに複雑さのレベルがあり、使用方法の部分で見るように非常にカスタマイズ可能な結果が得られます。

簡単です。スクリプトを実行すると、対象について知っている情報を尋ねるプロンプトが表示され、その後、以下で説明するように、データの一般的な組み合わせごとに順列リストが生成されます。
より高度な使用方法やカスタマイズについては、注意すべき点がいくつかあります:
生成されるパスワードのシンプルさを指定します。例えば、名前が与えられた場合:
- デフォルトのレベル0では、与えられた各名前は(大文字、小文字)に変換され、最初の文字は(大文字、小文字)に変換され、
最初の2文字は(大文字、小文字、先頭大文字)に変換されます。
- レベル1では、レベル0のすべてに加えて、各名前の反転、各名前の最初の2文字の反転も行われます。
以下は、複雑さのレベルをすべて説明する表です:
注: 一般的な考え方の列では、記載されているすべての要素が単独ではなく、多くの(一般的/一般的でない)組み合わせで使用されています。
| レベル | 一般的な考え方 |
|---|---|
| 0 - シンプルな人 | デフォルトレベルです。ここでは、上記で説明した名前の順列など多くのことが期待できます。日付は日、月、年、年の下2桁(1990と90など)のグループに分割され、電話番号は一般的な使い方として最初と最後の4桁のリスト付きの国内形式に変換されます。 |
| 1 - 平均的な人 | このレベルを使用すると、名前については各名前の反転、各名前の最初の2文字の反転、日付については10未満の(日、月)に0が追加され、5は05と5の両方になり、年の下3桁も使用されるため、1990は990になります。 |
| 2 - サイバー意識あり | デフォルトでは、与えられた古いパスワードはそのまま使用され、特殊文字は削除されます。しかしレベル2以降では、与えられた各古いパスワードは(大文字、小文字、先頭大文字、反転)の形式に変換されます。 |
| 3 - パラノイアな人 | デフォルトで--charsフラグを使用する場合、elpscrkはレベル0または1と同様に最も一般的な10文字を使用しますが、レベル3以降ではパスワードで許可されるすべての特殊文字セットを使用します(参考文献を参照)。 |
| 4 - オタクな人 | レベル3以下では、elpscrkは順序ペアを使用して順列を整列させ、組み合わせにおいて一般的でないパスワード形式を大幅に削減します。レベル4を使用すると、同じ一般的な組み合わせを使用しますが、ペアなしになるため、例えば(名前と日付)のパスワードの代わりに、(名前と日付、名前と名前、日付と日付、...)などの組み合わせが得られます。 |
| 5 - 核! | ここからが本番です 😆、elpscrkは最も複雑な非人間的な対象に対して、一般的ではなく現実的でもない結果を使い始めます。 |
注: これらのレベルのすべての順列が始まる前に、elpscrkはcuppのように単純な加算を使用して、最もよく使われるパスワード形式のいくつかを生成し、結果に含まれるようにします。
Leetフラグを有効にすると、elpscrkは通常通り動作し、結果をエクスポートした後、すべてのパスワードのLeet順列を取得し、新しいファイルに保存します。
例えば、karimという名前は['k4r1m', 'k4rim', 'kar1m', 'karim']になります。
-y/--yearsオプションを使用し、1980のような年を指定すると、elpscrkはすべてのパスワードを1980年から2022年(現在の年+1)までのすべての年と混合します。以下のようなパスワードが期待できます:
karim1980
1981karim
...
karim2022
同様に、-r/--num-rangeオプションで100のような数値を指定すると、0から100までのすべての数値が追加され、karim99, 99karim, karim100のようなパスワードが生成されます。
pip install -r requirements.txt または、複数のバージョンがインストールされている場合は python3 -m pip install -r requirements.txt を使用します。このツールが役に立ったなら、気軽にコーヒーを一杯ご馳走してください :)