
手作り(および自動化)されたワードリスト ♥
ランダムなパスワードサンプル:``` 1qaz2wsx | panel197111 | @bcd1234 | Root!22020 1q2w3e4r5t6y | catalog841@@ | Zaq@#$m,. | 1Qazxsw@222 qwerty12345 | Asdzxc129191 | testguest | User@#$12@ password123 | qwerty!@12345 | Guest1120 | ?99998888? 123321! | Cloud03%% | rootj | administrator8,4 p$ssw0rd | abcdefghi27 | administrator/test | test3#@121 qweqweqwe | !1q2w3e4rt|59 | .321Root | (ASDQWE1) admin! | *12shellshell12#$ | root,32020 | Qwas07 pass! | 00!integration | Viper | guest3422! 98989898 | zimbra@273 | Midnight1 | zxccvbnm321
必要条件:
* Python 3.9, 3.10
* `hashcat`
* `hashcat-utils`
* GNUツール: `cat`, `awk`, `comm`, `sort`, `uniq`
* `wordz` (pypi)
推奨:
* `lzop`
* masterブランチからコンパイルした `hashcat`
## 使い方
### 事前コンパイル済みリスト
事前コンパイル済みリストは次の場所にあります:
brutas/wordlists/dns
brutas/wordlists/http
brutas/wordlists/passwords
brutas/wordlists/ports
brutas/wordlists/usernames
**注: GitHubの制限により、「妥当な」サイズのリストのみが事前コンパイルされています。** 完全なセットを生成するには、自分でビルドスクリプト (`compile.sh` と `huge.sh`) を実行する必要があります。
このリポジトリに含まれていないリストはこちらでホストされており、随時更新されます:
- [brutas-passwords-5-l.zip](https://drive.proton.me/urls/5ESDFTKQVC#pTokh18bYyfN) [更新日 2025/08/01] (71,621,639行 - 展開後722MB)
- [brutas-passwords-6-xl.zip](https://drive.proton.me/urls/Z586VGA1BW#k2mwYceQIJYA) [更新日 2025/08/01] (347,450,342行 - 展開後4.1GB)
以下のものは自分でコンパイルする必要があります:
- brutas-passwords-7-xxl (18,008,399,243行 - 展開後237GB)
- brutas-http-paths-all.zip (261,481,011行 - 展開後5.3GB)
### キーワードソース
キーワードのソースファイルは `src/keywords` にあります。特に言語固有の辞書を構築する際に興味深いものとなるでしょう。
#### 帯域幅を節約する
最新のファイルのみを取得したい場合(「指定されたコミット数に履歴を切り詰めた浅いクローン」):```
% git clone --depth 1 https://github.com/tasooshi/brutas.git
最初に wordz(ワードリスト自動化フレームワーク)をインストールする必要があります:```
% pip install wordz
ビルドプロセスは自動化されており、プロジェクトのルートにあるスクリプトによって処理されます。一時ファイルはそのままでも十分機能する場合があるため、完全な攻撃を起動する必要がないこともあります。以下により、`1-6-*.txt` パスワード、およびサブドメインと基本的なHTTPリストが生成されます。```
~/brutas:% ./compile.sh
残りの部分(7-xxl.txt およびすべての HTTP パス)については、実行:```
~/brutas:% ./huge.sh -t /media/user/ExternalDrive/tmp
#### カスタムワードリスト
##### 全部入り
`src/keywords/custom.txt` 内のキーワードに基づいてカスタムワードリスト(`wordlists/passwords/custom.txt`)を生成したい場合は、以下のコマンドを使用します:```
~/brutas:% ./custom.sh -t /media/user/ExternalDrive/tmp -o /media/users/AnotherDrive/new
カスタムリストの作成には多くのリソースが必要であることに注意してください。期待される結果の種類を確認したい場合は、単一の単語 love に基づく例 wordlists/passwords/custom.txt をご覧ください(現在、150MB以上のデータと12,591,796のユニークな行を生成し、ランダムに選択された10,000行にトリミングされています)。以下に小さなサンプルを示します:```
---LoveLove1!1 | 2022_|ove!23
love!580 | love!5|79 55!lov607 | 10v34444@# Love'10#61 | 22Lovelove))
Loveo2020@ | Love&01,78
love$1$64 | ()LoveLove+^+
love9/79 | 2021$lov3111+++
l0ve123212 | Love+91979
|ove66612345! | Loveasd,.
Love^0259 | l)v#22$#@!
##### 特定のターゲットに最適化
また、対象組織の名前に最適化されたカスタムワードリストを生成することもできます(名前を `src/keywords/custom.txt` に配置します)。次のクラスを使用します。```
~/brutas:% wordz -p src/classes/passwords.py::OrganizationNamePasswords
製品名やブランドなどに適したクラスの別のバージョンもあります:``` ~/brutas:% wordz -p src/classes/passwords.py::OrganizationKeywordsPasswords
#### 特定の言語の使用
2つのオプションがあります:
1) `lang-int-*.txt` ファイルを上書きするか、
2) または、キーワードを `src/keywords/custom.txt` にコピーした `CustomPasswords` クラスを使用します。
最初のオプションでは、ビルドがその特定の言語をベースとして使用するようになりますが、他の言語も引き続き使用されます(`wordlists/passwords/6-xl.txt` リストから始まります)。2番目のオプションでは、通常のビルドプロセスを無視し、 `src/keywords/custom.txt` ファイルに対してルールの完全なセットを使用します。その場合、大量の出力が予想されます。
#### よくある問題
##### Kali Linux の hashcat-utils
hashcat ユーティリティは `/usr/lib/hashcat-utils/` にあります。この `$PATH` を `.zshrc` に追加する必要があります。
##### OpenCL の欠如 / GPU 以外の設定
GPU を使用しない場合(`No OpenCL, HIP or CUDA compatible platform found`)、次の情報が役立つかもしれません:```
# apt install pocl-opencl-icd
これらのパスワードリストはなぜ違うのか? 目的はすべてのパスワードを解読することではなく、ネットワーク内で前進することです。そして、もし本当にクラッキングが必要なら、より大きなリストを使うことができます。しかし、ここでの前提は、合理的な時間内で、限られたリソース(VMや乗っ取ったホストなど)で行われることです。
パスワードリストの簡単な説明:
wordlists/passwords{1-7}-*.txt - 国際的なキーワード、hashcatルール、文字列の部分一致を使用して生成されたパスワードclassics.txt - 役割(test、admin)、単語(password、secret)、または「面白い」もの(letmeinやtrustno1など)に基づく典型的な管理者パスワード、パターンなしpatterns.txt - 近いキーの組み合わせや簡単なフレーズ(例:abcd)を、大文字化、数字、繰り返しなどと組み合わせたものtop.txt - リークで見つかった最も一般的なユーザーパスワードで構成されたリスト。近いキーやより洗練された組み合わせは含まれません。generic-1k.txt - 1-xxs.txt に加えて、他のセットから手動で選択したパスワードunique.txt - 独立したパスワードとして使用するのに十分複雑で、余計な文字と混ざることはほとんどなく、通常はポップカルチャーやスポーツに関連するパスワード(例:apollo13、9inchnails、ronaldo7)numbers.txt - パスワードで使用される小さな数字のリスト(例:日付、数学定数)custom.txt - ここにカスタムキーワードを置き、custom.sh または custom-mini.sh を使用してワードリストを生成します。結果は wordlists/passwords/custom{-mini}.txt に出力されます。wordlists/dns - 一般的な慣習、セルフホストソフトウェアなどから構成された、ホスト発見にかなり合理的なリストwordlists/http/paths - Webアプリケーションのファジングに役立つHTTPパス/パラメータ。HttpWords のサブクラスで生成されます *)wordlists/http/files/extensions - HTTPディスカバリに役立つファイル拡張子wordlists/http/files/biggquery/github - 例えばIISの短い名前の列挙などに役立つ可能性のあるファイル名。明らかなユニーク、シリーズ、ガベージ(MD5ハッシュなど)はかなり除去され、ファイルサイズを削減。最大40文字。大きなファイルの場合は最低2回の出現が必要(ただし、ユニークが意味をなす場合は除く。class.csvを参照)。それ以外は手を加えていません。wordlists/ports - 内部ネットワークのスキャンと公開サービスの両方に使用するポートの個人的な選択。nmapのトップリストの代わりに使用。wordlists/usernames - 最も一般的なユーザー名。短いバージョンと長いバージョンがあります。*) これらのリストのペアの中には、重複していたり、意味をなさないものもあります(例:postsPosts や syndication-editor ですが、わかりません…)。これは予想されるトレードオフです。通常送信されるリクエスト数を考慮すると、今のところ許容範囲です。
結合リスト {1,2,3,4}-*.txt は、汎用的でかなり高速なパスワードクラッキングに最も効果的と思われます。最小のものから始めて、徐々に進めてください。リスト {1,2}-*.txt は、大規模ネットワークでのクイックウィンを目的としています。本当に最小限のものが必要な場合は、1-xxs.txt だけを試してみてください(私の非常に主観的なトップ100の見解です)。
ただし、ターゲットに応じてこれらのセットを自分で実験し、再構築することをお勧めします。母国語のキーワードを取り入れるのも良いでしょう。例えば、ファイル名やドメイン名と numbers.txt を組み合わせると、暗号化されたアーカイブやワイヤレスネットワークに対して非常に効果的であることがわかります。何事にも言えることですが、「パスワードポリシー」に対するローカルなアプローチを理解するには、少しソーシャルエンジニアリングが役立ちます。
2つのカテゴリ(ソーシャルネットワークと技術フォーラム)のリークに基づく、現在(2022/05/20)の有効性は以下の通りです:
| パスワード数 | ソーシャルネットワーク (~100万) | 技術フォーラム (~45万) | |
|---|---|---|---|
| brutas-passwords-1-xxs.txt (*) | 100 | 2.16% | 2.75% |
| brutas-passwords-2-xs.txt (*) | 6,549 | 3.05% | 3.63% |
| brutas-passwords-3-s.txt (*) | 24,805 | 3.99% | 4.32% |
| brutas-passwords-4-m.txt | 922,624 | 3.59% | 5.05% |
| brutas-passwords-5-l.txt | 33,278,126 | 13.91% | 17.10% |
| brutas-passwords-6-xl.txt | 162,843,765 | 6.93% | 9.24% |
| brutas-passwords-7-xxl.txt | 10,051,549,134 | 26.08% | 34.21% |
| オンラインブルートフォースに適したもの (*) | 9.20% (99,197) | 10.70% (48,885) | |
| オフラインクラッキングに使用されるもの | 50.51% (544,617) | 65.64% (299,699) | |
| 合計 | 59.71% (643,891) | 76.34% (348,757) |
したがって、基本の3つのリスト(約31Kのパスワード)は、これらのかなり多様で大きなサンプルに対して平均10%の成功率を提供します。私の経験では、トップ100を使ったパスワードスプレーは、興味深い結果をもたらすことが保証されています。そして、ほとんどの場合、数個のアカウントがあれば、ほぼすべてのネットワークで前進するのに十分です。
rockyou.txt との比較は?有名な rockyou.txt 辞書には14,344,392個のパスワードが含まれています(少なくともKali Linuxの「エディション」では)。同じセットに対する結果は以下の通りです: