#!/bin/bash # Script : detect_perfctl.sh # Description : Détecte la présence du malware Perfctl sur le système. echo "--------------------------------------------" echo " Début de l'analyse pour le malware Perfctl" echo "--------------------------------------------" echo # Fonction pour vérifier la présence de processus suspects check_processes() { echo "1. Vérification des processus suspects..." processes=$(ps aux | grep -E 'perfcc|perfclean|perfctl|\.atmp' | grep -v grep) if [ -n "$processes" ]; then echo " [!] Processus suspects trouvés :" echo "$processes" else echo " Aucun processus suspect détecté." fi } # Fonction pour vérifier la présence de fichiers et répertoires malveillants check_files() { echo "2. Vérification des fichiers et répertoires suspects..." files=( "/root/.config/cron/perfcc" "/etc/cron.d/perfclean" "/etc/cron.daily/perfclean" "/etc/cron.hourly/perfclean" "/etc/cron.weekly/perfclean" "/etc/cron.monthly/perfclean" "/usr/bin/.atmp" "/usr/bin/.atmp/tmp" ) found_files=() for file in "${files[@]}"; do if [ -e "$file" ]; then found_files+=("$file") fi done if [ ${#found_files[@]} -gt 0 ]; then echo " [!] Fichiers ou répertoires suspects trouvés :" for f in "${found_files[@]}"; do echo " - $f" done else echo " Aucun fichier ou répertoire suspect détecté." fi } # Fonction pour vérifier les tâches cron malveillantes check_cron() { echo "3. Vérification des tâches cron suspectes..." cron_jobs=$(crontab -l 2>/dev/null | grep -E 'perfcc|perfclean|perfctl') if [ -n "$cron_jobs" ]; then echo " [!] Tâches cron suspectes dans le crontab de l'utilisateur courant :" echo "$cron_jobs" else echo " Aucune tâche cron suspecte dans le crontab de l'utilisateur courant." fi echo " Vérification des tâches cron système..." cron_dirs=("/etc/crontab" "/etc/cron.d/" "/etc/cron.daily/" "/etc/cron.hourly/" "/etc/cron.weekly/" "/etc/cron.monthly/") for dir in "${cron_dirs[@]}"; do if [ -d "$dir" ]; then cron_files=$(grep -rlE 'perfcc|perfclean|perfctl' "$dir") if [ -n "$cron_files" ]; then echo " [!] Tâches cron suspectes trouvées dans $dir :" echo "$cron_files" fi elif [ -f "$dir" ]; then cron_file=$(grep -lE 'perfcc|perfclean|perfctl' "$dir") if [ -n "$cron_file" ]; then echo " [!] Tâche cron suspecte trouvée dans $dir" fi fi done } # Fonction pour vérifier les services système suspects check_services() { echo "4. Vérification des services système suspects..." services=$(systemctl list-unit-files | grep -E 'perfcc|perfclean|perfctl') if [ -n "$services" ]; then echo " [!] Services suspects trouvés :" echo "$services" else echo " Aucun service suspect détecté." fi } # Fonction pour vérifier les utilisateurs suspects check_users() { echo "5. Vérification des comptes utilisateurs suspects..." users=$(getent passwd | grep -E 'perfcc|perfclean|perfctl') if [ -n "$users" ]; then echo " [!] Comptes utilisateurs suspects trouvés :" echo "$users" else echo " Aucun compte utilisateur suspect détecté." fi } # Exécution des fonctions check_processes echo check_files echo check_cron echo check_services echo check_users echo echo "--------------------------------------------" echo " Analyse terminée." echo "--------------------------------------------"