116 lines
4.2 KiB
Bash
116 lines
4.2 KiB
Bash
#!/usr/bin/env bash
|
|
# ==============================================================================
|
|
# FatecSeg Corp - Script de Instalação e Deploy Automatizado
|
|
# Disciplina: Desenvolvimento Seguro
|
|
# ==============================================================================
|
|
|
|
set -e
|
|
|
|
DEST_DIR="/var/www/html/fatecseg"
|
|
TAR_URL="https://git.tmferreira.tec.br/tiago.ferreira/desenvolvimento_sitemas_seg_info/raw/branch/main/fatecseg.tar.gz"
|
|
TEMP_TAR="/tmp/fatecseg.tar.gz"
|
|
DB_USER="root"
|
|
DB_PASS="sploitme"
|
|
|
|
# Cores para o terminal
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${BLUE}======================================================${NC}"
|
|
echo -e "${BLUE} FatecSeg Corp - Deploy e Configuração Automática ${NC}"
|
|
echo -e "${BLUE}======================================================${NC}"
|
|
|
|
# 1. Verificar se é root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo -e "${RED}[!] Erro: Este script precisa ser executado com sudo/root.${NC}"
|
|
echo -e " Execute: sudo bash $0 ou curl ... | sudo bash"
|
|
exit 1
|
|
fi
|
|
|
|
# 2. Garantir que o serviço MySQL esteja ativo e com socket configurado
|
|
echo -e "\n${YELLOW}[1/5] Verificando serviço MySQL...${NC}"
|
|
if command -v service >/dev/null 2>&1; then
|
|
service mysql start >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
# Ajuste de socket do Metasploitable 3
|
|
if [ -S /run/mysql-default/mysqld.sock ] && [ ! -S /var/run/mysqld/mysqld.sock ]; then
|
|
mkdir -p /var/run/mysqld
|
|
ln -sf /run/mysql-default/mysqld.sock /var/run/mysqld/mysqld.sock >/dev/null 2>&1 || true
|
|
fi
|
|
echo -e "${GREEN}[✓] Serviço MySQL verificado.${NC}"
|
|
|
|
# 3. Limpar diretório anterior e recriar
|
|
echo -e "\n${YELLOW}[2/5] Preparando diretório ${DEST_DIR}...${NC}"
|
|
rm -rf "$DEST_DIR"
|
|
mkdir -p "$DEST_DIR"
|
|
echo -e "${GREEN}[✓] Diretório preparado.${NC}"
|
|
|
|
# 4. Baixar pacote atualizado
|
|
echo -e "\n${YELLOW}[3/5] Baixando pacote do portal FatecSeg Corp...${NC}"
|
|
echo -e "URL: ${TAR_URL}"
|
|
if command -v curl >/dev/null 2>&1; then
|
|
curl -fsSL "$TAR_URL" -o "$TEMP_TAR"
|
|
elif command -v wget >/dev/null 2>&1; then
|
|
wget -q --show-progress "$TAR_URL" -O "$TEMP_TAR"
|
|
else
|
|
echo -e "${RED}[X] Erro: curl ou wget não encontrado.${NC}"
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}[✓] Download concluído.${NC}"
|
|
|
|
# 5. Extrair pacote e ajustar permissões
|
|
echo -e "\n${YELLOW}[4/5] Extraindo arquivos e ajustando permissões...${NC}"
|
|
tar -xzf "$TEMP_TAR" -C "$DEST_DIR"
|
|
rm -f "$TEMP_TAR"
|
|
rm -f "$DEST_DIR"/data/*.sqlite >/dev/null 2>&1 || true
|
|
|
|
chown -R www-data:www-data "$DEST_DIR" 2>/dev/null || true
|
|
chmod -R 755 "$DEST_DIR"
|
|
chmod -R 777 "$DEST_DIR/data"
|
|
echo -e "${GREEN}[✓] Arquivos extraídos e permissões configuradas.${NC}"
|
|
|
|
# 6. Configurar o banco de dados MySQL
|
|
echo -e "\n${YELLOW}[5/5] Configurando banco de dados MySQL...${NC}"
|
|
DB_OK=false
|
|
|
|
if command -v mysql >/dev/null 2>&1 || command -v mariadb >/dev/null 2>&1; then
|
|
MYSQL_BIN=$(command -v mysql || command -v mariadb)
|
|
|
|
# 1ª tentativa: Metasploitable 3 (root / sploitme em 127.0.0.1)
|
|
if $MYSQL_BIN -h 127.0.0.1 -u "$DB_USER" -p"$DB_PASS" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then
|
|
DB_OK=true
|
|
# 2ª tentativa: root sem senha via socket
|
|
elif $MYSQL_BIN -u "$DB_USER" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then
|
|
DB_OK=true
|
|
# 3ª tentativa: root com sploitme via socket
|
|
elif $MYSQL_BIN -u "$DB_USER" -p"$DB_PASS" < "$DEST_DIR/database.sql" >/dev/null 2>&1; then
|
|
DB_OK=true
|
|
fi
|
|
fi
|
|
|
|
# Fallback via PHP CLI se necessário
|
|
if [ "$DB_OK" = false ] && command -v php >/dev/null 2>&1; then
|
|
if php "$DEST_DIR/setup_db.php" >/dev/null 2>&1; then
|
|
DB_OK=true
|
|
fi
|
|
fi
|
|
|
|
if [ "$DB_OK" = true ]; then
|
|
echo -e "${GREEN}[✓] Banco de dados configurado e populado com 12 usuários no MySQL!${NC}"
|
|
else
|
|
echo -e "${YELLOW}[!] Inicialize o banco pelo navegador: http://localhost/fatecseg/setup_db.php${NC}"
|
|
fi
|
|
|
|
# Identificar IP da máquina
|
|
IP_LOCAL=$(hostname -I 2>/dev/null | awk '{print $1}' || echo "localhost")
|
|
if [ -z "$IP_LOCAL" ]; then IP_LOCAL="localhost"; fi
|
|
|
|
echo -e "\n${GREEN}======================================================${NC}"
|
|
echo -e "${GREEN} Deploy concluído com sucesso! ${NC}"
|
|
echo -e "${GREEN}======================================================${NC}"
|
|
|