範囲
私は、wlan インターフェースを監視モードのオン、オフ、オン、オフに切り替え、各ステップで関連情報を表示することで、反復的なタスクを処理するための bash スクリプトに取り組んでいます。
私はこのようなことを始めました:
wx="wlan${1}"
wxm="${wx}mon"
# $wx
echo "$wx"
echo -n "stop $wxm if up....";airmon-ng stop $wxm &> /dev/null; echo " done.";
echo -n "bringing down $wx if up....";ifconfig $wx down &> /dev/null; echo " done.";
echo -n "changing mac to random....";macchanger -r $wx &> /dev/null; echo " done.";
echo "mac-adresses randomized"
echo -n "bringing up $wx....";ifconfig $wx up&> /dev/null; echo " done.";
echo -n "putting $wx in monitor mode....";airmon-ng start $wx &> /dev/null; echo " done.";
echo "$wxm successfully put in monitor mode"
wait
利用可能な wlan-nics をインポートするさまざまな方法を試してみましたが、友人の助けを借りて、find を使用してこの機能に行き着きました
function setup_if() {
local wx="${1}"
local wxm="${wx}mon"
echo "setting up: $wx..."
run_cmd airmon-ng stop $wxm &&
run_cmd ifconfig $wx down &&
run_cmd macchanger -r $wx &&
run_cmd ifconfig $wx up &&
run_cmd airmon-ng start $wx
wait
}
for interface in $(find /sys/class/net -name 'wlan*'); do
interface=$(basename ${interface})
setup_if ${interface} || echo "FAILED: ${interface} $previous_command"
done
行き詰まったところ
次のステップとして、Wlan のステータスに関するいくつかの有用な情報を出力したいと思いますcat /sys/class/net/wlan*/address
。iwconfig |grep --regexp wlan
最後に、airodump-ng のようなトラフィックをキャプチャするために、オペレーティング NIC を別のスクリプトにエクスポートしたいと思います。airodump-ng -w /root/pcap/air_capture -c 1,4,6,8,11 $all_operating_wlans
質問:
$w1、$w2 など、検出されたすべての wlan に対して一意の変数を作成するにはどうすればよいです
find /sys/class/net -name 'wlan?mon'
か。複数の変数を必要とする出力が複数行あるため、それを実行する方法がわかりません。パケットをキャプチャする他のスクリプトからこれらの変数にアクセスできるようにする方法。
bashスクリプトのコンテキストで同じ結果を達成するためのより良い方法はありますか?
これは、stackoverflow に関する私の最初の質問であり、次の質問がどのように改善されるかについてのフィードバックを喜んで受け取ります!