1

こんにちはまず、これが不十分な言葉である場合は、お詫び申し上げます。明確に説明しようとします。

私はtestpasswordという名前のバイナリを持っています、使用法はおそらくかなり説明的です。次のようになります

./testpassword hello

helloが正しいパスワードの場合、出力は次のようになります。

pass=correct

helloが間違ったパスワードの場合、出力は次のようになります。

pass=incorrect

私はLinuxとシェルスクリプトの完全な初心者ですが、bruteforce.shと呼ばれる非常に大雑把で単純なスクリプトを作成しました。単語のリストを使用して「ブルートフォース」攻撃を実行します。内容は以下の通りです

./testpassword hello
./testpassword jelly
./testpassword watermelon
./testpassword anotherword  
etc..

成功したときに通知する非常に大まかな方法​​をかなり探した後、新しいスクリプトで次のコマンドを実行しました

./bruteforce.sh 2 2>&1 >/dev/null | grep -n pass=correct

出力はのようになります12: pass=correct。ここで、12はbruteforce.shの行番号です。

これを画面に表示すると、ctrl-cを実行して実行できます

awk 'NR==12' bruteforce.sh

行番号に対応する正しいパスを取得します。私はこれのいずれかの部分を行うためのより簡単なまたはよりクリーンな方法があるかどうか疑問に思っていました

提案を事前に感謝します

4

1 に答える 1

0

おそらく、このようなもの。

for i in {1..1000}; do
    (echo -n "$i: " && ./testpassword $i) | grep pass=correct
done

これは、スクリプト出力の前に現在のパスワードをエコーするだけです。もちろん、{1..1000}使用する単語のリストに置き換えることができます。

于 2012-09-27T05:05:31.913 に答える