范围
我正在开发一个 bash 脚本,用于处理重复性任务,将 wlan 接口置于监控模式、进出监控模式,并通过每个步骤显示相关信息。
我开始了这样的事情:
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 捕获流量,例如airodump-ng -w /root/pcap/air_capture -c 1,4,6,8,11 $all_operating_wlans
问题:
我如何为所有检测到的 wlan 创建唯一变量,例如 $w1、$w2 等。我还没有弄清楚如何通过它,
find /sys/class/net -name 'wlan?mon'
因为它是需要多个变量的几行输出。如何使那些将捕获数据包的其他脚本可以访问这些变量。
在 bash 脚本上下文中是否有更好的方法来实现相同的结果?
这是我关于 stackoverflow 的第一个问题,我很高兴收到有关我的下一个问题如何变得更好的反馈!