-
Notifications
You must be signed in to change notification settings - Fork 0
/
airckrack.sh
113 lines (93 loc) · 3.52 KB
/
airckrack.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/bash
WORDLIST_FILE="wordlist.txt"
# Função para encontrar a interface de rede Wi-Fi
find_wifi_interface() {
local wifi_interface=$(iw dev | grep Interface | awk '{print $2}')
if [ -z "$wifi_interface" ]; then
echo "Nenhuma interface Wi-Fi encontrada."
sleep 5
exit 1
fi
echo "$wifi_interface"
}
# Detecta a interface Wi-Fi
INTERFACE=$(find_wifi_interface)
MONITOR_INTERFACE="${INTERFACE}mon"
echo "Interface Wi-Fi detectada: $INTERFACE"
echo "Interface em modo monitor: $MONITOR_INTERFACE"
echo "Iniciando monitoramento..."
sleep 5
# Verifica se o aircrack-ng está instalado
if ! command -v aircrack-ng &> /dev/null; then
echo "aircrack-ng não está instalado. Instale o aircrack-ng e tente novamente."
sleep 5
exit 1
fi
# Verifica se o airmon-ng está instalado
if ! command -v airmon-ng &> /dev/null; then
echo "airmon-ng não está instalado. Instale o aircrack-ng e tente novamente."
sleep 5
exit 1
fi
# Verifica se o airodump-ng está instalado
if ! command -v airodump-ng &> /dev/null; then
echo "airodump-ng não está instalado. Instale o aircrack-ng e tente novamente."
sleep 5
exit 1
fi
# Coloca a interface em modo monitor
echo "Colocando a interface '$INTERFACE' em modo monitor..."
sleep 5
sudo airmon-ng start "$INTERFACE"
# Verifica se a interface foi criada corretamente
if [ ! -d "/sys/class/net/$MONITOR_INTERFACE" ]; then
echo "A interface '$MONITOR_INTERFACE' não foi criada. Verifique se o adaptador é compatível."
sleep 5
exit 1
fi
# Função para capturar pacotes de uma rede específica
capture_network() {
local network_name="$1"
local sanitized_name=$(echo "$network_name" | tr -d '[:space:]') # Remove espaços para criar nomes válidos de diretórios e arquivos
local output_dir="captures/$sanitized_name"
local capture_file="$output_dir/capture.cap"
echo "Criando pasta para a rede '$network_name' em '$output_dir'..."
mkdir -p "$output_dir"
echo "Capturando pacotes da rede '$network_name'..."
sleep 5
sudo timeout "$CAPTURE_DURATION" airodump-ng "$MONITOR_INTERFACE" --write "$capture_file" --output-format cap --bssid "$network_name"
# Verifica se a captura foi bem-sucedida
if [ $? -eq 0 ]; then
echo "Captura da rede '$network_name' concluída. Arquivo salvo em '$capture_file'."
else
echo "Erro ao capturar pacotes da rede '$network_name'."
fi
}
# Loop para capturar redes
echo "Iniciando o scan de redes Wi-Fi..."
sleep 5
sudo airodump-ng "$MONITOR_INTERFACE" -w /tmp/networks --output-format csv &
# Espera X segundos para garantir que o airodump-ng tenha tempo suficiente para coletar dados
read -p "Digite o tempo de captura em segundos:" CAPTURE_DURATION
sleep $CAPTURE_DURATION
# Para o airodump-ng após a coleta inicial
sudo pkill -f airodump-ng
# Processa os arquivos CSV gerados pelo airodump-ng
if [ -f /tmp/networks-01.csv ]; then
echo "Processando redes encontradas..."
sleep 5
grep -v '^#' /tmp/networks-01.csv | while IFS=',' read -r _ _ _ _ _ _ _ _ _ _ _ _ network_name _; do
if [ ! -z "$network_name" ] && [ "$network_name" != "SSID" ]; then
capture_network "$network_name"
fi
done
else
echo "Arquivo CSV não encontrado. Verifique se o airodump-ng coletou dados."
sleep 5
exit 1
fi
# Limpeza: Para o modo monitor e restaura a interface para o modo gerenciado
echo "Restaurando a interface para o modo gerenciado..."
sudo airmon-ng stop "$MONITOR_INTERFACE"
sudo service network-manager restart
echo "Processo concluído."