forked from danieltiamorim/scripts_shell
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathautoteste_web.sh
More file actions
129 lines (105 loc) · 4.85 KB
/
autoteste_web.sh
File metadata and controls
129 lines (105 loc) · 4.85 KB
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash
#Autoteste - Versão 3.0
#Feito Por Daniel Amorim
#Script de automação de escaneamento e pentest em Sites
#Várias ferramentas de uma só vez.
#Use com consciência
#Atualiza e instala os pacotes necessários e limpa a tela
apt update
apt install net-tools whois host dirb gobuster nikto whatweb nmap
clear
# Valor padrão inicial para o caso do usuário não digitar nada.
DEFAULT_PORTS="80,8080,443"
# Log do Script
LOG_FILE=01_pentest_log.txt
# Limpa o arquivo de log anterior ou cria um novo
> $LOG_FILE
> pentest_dirb.txt
> pentest_dirb_ssl.txt
> pentest_gobuster.txt
> pentest_ip_open_ports.txt
> pentest_nikto.txt
> pentest_whatweb.txt
> pentest_nmap_ips_alvo.txt
> pentest_nmap_vuln.gnmap
echo "Script - AutoTeste_WEB, por Daniel Amorim - versão 3.0 - 10/2025" | tee -a $LOG_FILE
echo "Digite o host alvo, Exemplo = www.site.com" | tee -a $LOG_FILE
read host_alvo
echo "Digite as Portas Alvo, padrão é $DEFAULT_PORTS, Exemplo = 80,8080,443" | tee -a $LOG_FILE
read PORTS_INPUT
# Se PORTS_INPUT estiver vazio, use o valor de DEFAULT_PORTS.
PORTS=${PORTS_INPUT:-$DEFAULT_PORTS}
# Exibe o valor digitado
echo "O host alvo selecionado é: $host_alvo" | tee -a $LOG_FILE
echo "As Portas alvo selecionadas são: $PORTS" | tee -a $LOG_FILE
#echo "O host alvo selecionado é: $host_alvo" | tee -a $LOG_FILE
#echo "As Portas alvo selecionadas são: $PORTS" | tee -a $LOG_FILE
echo "O log está indo para o arquivo $LOG_FILE e é atualizado em tempo real" | tee -a $LOG_FILE
echo "--- Iniciando o pentest em $host_alvo ---" | tee -a $LOG_FILE
echo "--- Data/Hora: $(date) ---" | tee -a $LOG_FILE
# Fase 1: Ping
echo ">>" | tee -a $LOG_FILE
echo "✅ Fase 1: Verificando conectividade com Ping...." | tee -a $LOG_FILE
ping -c 4 $host_alvo > /dev/null 2>&1 | tee -a $LOG_FILE
if [ $? -ne 0 ]; then
# O código de saída NÃO é zero, ou seja, houve um erro no ping
echo "" | tee -a $LOG_FILE
echo "🚨 ERRO DE CONECTIVIDADE!" | tee -a $LOG_FILE
echo "O host '$host_alvo' não respondeu ao ping ou não foi encontrado." | tee -a $LOG_FILE
echo "Cancelando o restante dos testes." | tee -a $LOG_FILE
exit 1 # Encerra o script com um código de erro (1)
else
# O código de saída é zero, o ping foi bem-sucedido
echo "" | tee -a $LOG_FILE
echo "✅ Conectividade básica OK." | tee -a $LOG_FILE
fi
echo "Continuando com os demais testes..."
# Fase 2: Whois
echo ">>" | tee -a $LOG_FILE
echo "✅ Fase 2: WHOIS..." | tee -a $LOG_FILE
whois $host_alvo >> $LOG_FILE
echo "" | tee -a $LOG_FILE
# Fase 3: Host
echo ">>" >> $LOG_FILE
echo "✅ Fase 3: Host - Consulta de IPs através do DNS - Servidores de Email - IPv6..." >> $LOG_FILE
echo ">>" >> $LOG_FILE
echo ">> Consulta..." >> $LOG_FILE
echo ">>" >> $LOG_FILE
host $host_alvo >> $LOG_FILE
echo ">>" >> $LOG_FILE
# Fase 4: Dirb
echo ">>" | tee -a $LOG_FILE
echo "✅ Fase 4: Dirb - Enumeração de Diretórios e Páginas.." | tee -a $LOG_FILE
echo ">>" | tee -a $LOG_FILE
echo ">> Dirb HTTP..." >> $LOG_FILE
dirb http://$host_alvo -S -z 100 -o pentest_dirb.txt -t 50 >> $LOG_FILE
echo ">>" >> $LOG_FILE
echo ">> Dirb HTTPS..." | >> $LOG_FILE
dirb https://$host_alvo -S -z 100 -o pentest_dirb_ssl.txt -t 50 >> $LOG_FILE
# Fase 5: Gobuster
echo ">>" | tee -a $LOG_FILE
echo "✅ Fase 5: Gobuster - Modo de Enumeração de DNS..." | tee -a $LOG_FILE
gobuster -t 30 -o pentest_gobuster.txt dns -d "$host_alvo" -w /usr/share/dirb/wordlists/common.txt >> $LOG_FILE
# Fase 6: Nikto
echo ">>" | tee -a $LOG_FILE
echo "✅ Fase 6: Nikto" | tee -a $LOG_FILE
nikto -o pentest_nikto.txt -p "$PORTS" -h "$host_alvo" >> $LOG_FILE
# Fase 7: Nmap
echo ">>" | tee -a $LOG_FILE
echo "✅ Fase 7: Nmap - Descobrindo Vulnerabilidades" | tee -a $LOG_FILE
nmap -sV -O --script vuln -p "$PORTS" "$host_alvo" -oA pentest_nmap_vuln --min-hostgroup 10000 --min-rate 10000 >> $LOG_FILE
# Fase 8: Whatweb
echo ">>" | tee -a $LOG_FILE
echo "✅ Fase 8: WhatWeb" | tee -a $LOG_FILE
whatweb -a 4 $host_alvo -v --log-verbose=pentest_whatweb.txt >> $LOG_FILE
echo "" | tee -a $LOG_FILE
echo "✅ Finalizando..." | tee -a $LOG_FILE
echo "Fazendo a sanitização dos Dados Coletados pelo NMAP... Aguarde"| tee -a $LOG_FILE
cat pentest_nmap_vuln.gnmap | grep open | cut -d " " -f2 > pentest_nmap_ips_alvo.txt
cat pentest_nmap_vuln.gnmap | grep open | awk '{ip=$2; ports=" "; for (i=6; i<=NF; i++) {if ($i ~ /open/) {split($i, a, "/"); ports=ports a[1]","}} print ip, ports}' | sed 's/,$//' > pentest_ip_open_ports.txt
echo "Cheque os arquivos - pentest_ip_open_ports.txt e pentest_nmap_ips_alvo.txt"
echo ">> Cheque os arquivos - pentest_ip_open_ports.txt e pentest_nmap_ips_alvo.txt" | tee -a $LOG_FILE
echo ">>" | tee -a $LOG_FILE
echo "--- Data/Hora DA FINALIZAÇÃO DO ESCANEAMENTO: $(date) ---" | tee -a $LOG_FILE
echo ">> FINALIZADO - VERIFIQUE O ARQUIVO DE LOG $LOG_FILE"
echo ">> FINALIZADO" | tee -a $LOG_FILE