
オンラインWebアプリケーションに対する辞書攻撃/スプレー攻撃のための高度に設定可能なスクリプト。
Klydaプロジェクトは、オンラインWebアプリケーションに対する迅速な認証情報ベースの攻撃を支援するために作成されました。
Klydaは、単純なパスワードスプレーから、大規模なマルチスレッド辞書攻撃まで対応します。
Klydaは新しいプロジェクトであり、コントリビューションを募集しています。どんな助けも大変ありがたく思います。
Klydaはシンプルで覚えやすい使用方法を提供しますが、必要に応じて設定も可能です:
1) Gitリポジトリを自分のマシンにクローンします:git clone https://github.com/Xeonrx/Klyda
2) Klydaディレクトリに移動します:cd Klyda
3) Pipを使用して必要なモジュールをインストールします:pip install requests beautifulsoup4 colorama numpy
4) 使用法を確認するためにKlydaのヘルプを表示します:python3 klyda.py -h
Klydaは主にLinux向けに設計されていますが、Pythonが動作する任意のマシンで動作するはずです。
Klydaが動作するために必要なのは、たった4つのシンプルな依存関係です:攻撃対象のURL、ユーザー名、パスワード、フォームデータです。
URLは--urlタグで指定します。このようになります:--url http://127.0.0.1
適切な許可なくWebページに対して攻撃を開始しないでください。
ユーザー名はこれらの辞書攻撃の主なターゲットです。ユーザー名の広い範囲、特定のいくつか、あるいはたった1つかもしれません。 スクリプトを使用する際は、すべてユーザーの判断に委ねられます。ユーザー名は以下の方法で指定できます...
1) 手動で指定:-u Admin User123 Guest
2) ファイルを1つ、または複数を組み合わせて指定:-U users.txt extra.txt
3) ファイルと手動入力を両方指定:-U users.txt -u Johnson924
パスワードはこれらの攻撃の難しい部分です。パスワードがわからないため、辞書攻撃やブルートフォース攻撃が存在します。ユーザー名と同様に、 1つのパスワードだけから、好きなだけ多くのパスワードを指定できます。パスワードは以下の方法で指定できます...
1) 手動で指定:-p password 1234 letmein
2) ファイルを1つ、または複数を組み合わせて指定:-P passwords.txt extra.txt
3) ファイルと手動入力を両方指定:-P passwords.txt -p redklyda24
FormDataはリクエストを形成する方法であり、ターゲットのWebサイトがそれを受け取り、与えられた情報を処理できるようにします。通常は、ユーザー名の値、パスワードの値、そして場合によっては追加の値を指定する必要があります。ターゲットが使用するFormDataは、ブラウザの検証ツールのネットワークタブを確認することで確認できます。Klydaでは、-dタグを使用します。
プレースホルダーを使用して、Klydaがリクエストを送信する際にユーザー名とパスワードをどこに挿入するかを指定する必要があります。次のようになります...
-d username:xuser password:xpass Login:Login
xuserはユーザー名を挿入するプレースホルダー、xpassはパスワードを挿入するプレースホルダーです。これらを正しく指定しないとKlydaは動作しません。
FormDataは (キー):(値) の形式で指定します。
Klydaが成功した攻撃かどうかを判断するためには、データを与えて評価させる必要があります。Klydaは失敗したログイン試行から与えられたブラックリストを利用して、失敗したリクエストと成功したリクエストを区別します。3種類のデータをブラックリストに登録できます...
1) 文字列:--bstr "Login failed"
2) ステータスコード:--bcde 404
3) コンテンツ長:--blen 11
各ブラックリストに対して必要なだけデータを指定できます。レスポンスから与えられたデータが1つも見つからなかった場合、Klydaはそれを「ストライク」と判定し、ログイン成功と見なします。逆にブラックリスト内のデータが見つかった場合、Klydaはそれをログイン失敗とマークします。 ブラックリストのデータはユーザーが指定するため、誤検出は発生しません。
ブラックリストにデータを何も指定しない場合、すべてのリクエストがKlydaによってストライクとマークされます!
デフォルトでは、Klydaはシングルスレッドで実行されますが、-tタグを使用してより多くのスレッドを指定できます。これは作業の高速化に役立ちます。
ただし、認証情報攻撃はネットワーク上で非常に目立ちやすく、簡単に検知されます。対象のアカウントは、ログイン試行が多すぎるために単純にロックされる可能性があります。 これによりDoS攻撃が発生しますが、Klydaの目標であるユーザーの認証情報を取得することが妨げられます。
攻撃を少しでも目立たなくするために、--rateタグを使用できます。これにより、スレッドを1分あたりのリクエスト数で制限できます。
書式は次のようになります:--rate (リクエスト数) (分数)
例えば、--rate 5 1は1分間に5リクエストのみ送信します。これはスレッドごとの値です。2スレッドの場合、1分間に10リクエスト送信されます。
Damn Vulnerable Web App(DVWA)またはMutillidaeでKlydaをテストしてください。
python3 klyda.py --url http://127.0.0.1/dvwa/login.php -u user guest admin -p 1234 password admin -d username:xuser password:xpass Login:Login --bstr "Login failed"
python3 klyda.py --url http://127.0.0.1/mutillidae/index.php?page=login.php -u root -P passwords.txt -d username:xuser password:xpass login-php-submit-button:Login --bstr "Authentication Error"
先に述べたように、Klydaはまだ開発途中です。今後は、機能の追加とコードの整理によるクリーンな外観を計画しています。
最優先事項はプロキシ機能の追加であり、現在作業中です。