Installare JQ : apt-get install jq -y
Installare Swaks : apt-get update && apt-get install swaks -y
Script da utilzzare:
[[php light="true"]
#!/bin/bash
# --- CONFIGURAZIONE SMTP2GO ---
SMTP_SERVER="mail-eu.smtp2go.com"
SMTP_PORT="587"
SMTP_USER="*****"
SMTP_PASS="****"
EMAIL_MITTENTE="alert@****" # Sostituisci con una mail autorizzata su SMTP2GO
EMAIL_DESTINATARIO="*****"
# --- CONFIGURAZIONE REPORT ---
OGGETTO="Report Completo Sicurezza WP - $(date +%d-%m-%Y)"
FILE_REPORT="/tmp/report_wp_full.txt"
echo "Scansione globale in corso (Vulnerabilità Critical, High, Medium)..."
echo "REPORT SICUREZZA WORDPRESS - $(date)" > $FILE_REPORT
echo "==========================================================" >> $FILE_REPORT
# Recupera ID istanze
INSTANCES=$(plesk ext wp-toolkit --list -format json | jq -r '.[].id')
for ID in $INSTANCES; do
INFO=$(plesk ext wp-toolkit --info -instance-id $ID -format json)
# Estrazione Dominio
DOMINIO=$(echo $INFO | jq -r '.siteUrl' | sed -e 's|^[^/]*//||' -e 's|/.*$||')
[ -z "$DOMINIO" ] || [ "$DOMINIO" == "null" ] && DOMINIO=$(echo $INFO | jq -r '.name')
echo "SITO: $DOMINIO" >> $FILE_REPORT
# --- SEZIONE VULNERABILITÀ (Tutte le gravità) ---
# Estraiamo titolo e severità per ogni vulnerabilità presente
VULNS=$(echo $INFO | jq -r 'if .security.vulnerabilities then .security.vulnerabilities[] | "[ \(.severity | ascii_upcase) ] \(.title)" else empty end')
if [ ! -z "$VULNS" ]; then
echo "!!! PROBLEMI DI SICUREZZA RILEVATI !!!" >> $FILE_REPORT
echo "$VULNS" >> $FILE_REPORT
else
echo "Sicurezza: Nessuna vulnerabilità rilevata (Low/Med/High/Crit)." >> $FILE_REPORT
fi
# --- SEZIONE AGGIORNAMENTI CORE ---
UPD_WP=$(echo $INFO | jq -r '.update_version')
if [ ! -z "$UPD_WP" ] && [ "$UPD_WP" != "null" ]; then
echo "-> AGGIORNAMENTO WP DISPONIBILE: \(.version) a $UPD_WP" >> $FILE_REPORT
fi
# --- SEZIONE PLUGIN ---
PLUGINS_UPD=$(echo $INFO | jq -r '.plugins | to_entries[] | select(.value.update_version != "") | "- Plugin: \(.value.title) (\(.value.version) -> \(.value.update_version))"')
if [ ! -z "$PLUGINS_UPD" ]; then
echo "Aggiornamenti Plugin:" >> $FILE_REPORT
echo "$PLUGINS_UPD" >> $FILE_REPORT
fi
# --- SEZIONE TEMI ---
THEMES_UPD=$(echo $INFO | jq -r '.themes | to_entries[] | select(.value.update_version != "") | "- Tema: \(.value.title) (\(.value.version) -> \(.value.update_version))"')
if [ ! -z "$THEMES_UPD" ]; then
echo "Aggiornamenti Temi:" >> $FILE_REPORT
echo "$THEMES_UPD" >> $FILE_REPORT
fi
echo "----------------------------------------------------------" >> $FILE_REPORT
done
# Invio con Swaks
swaks --server "$SMTP_SERVER" \
--port "$SMTP_PORT" \
--auth-user "$SMTP_USER" \
--auth-password "$SMTP_PASS" \
--to "$EMAIL_DESTINATARIO" \
--from "$EMAIL_MITTENTE" \
--header "Subject: $OGGETTO" \
--body "$FILE_REPORT" \
--tls
echo "Report completo inviato."
[/php]]