Dernière activité 1 month ago

detect_perfctl.sh Brut
1#!/bin/bash
2
3# Script : detect_perfctl.sh
4# Description : Détecte la présence du malware Perfctl sur le système.
5
6echo "--------------------------------------------"
7echo " Début de l'analyse pour le malware Perfctl"
8echo "--------------------------------------------"
9echo
10
11# Fonction pour vérifier la présence de processus suspects
12check_processes() {
13 echo "1. Vérification des processus suspects..."
14 processes=$(ps aux | grep -E 'perfcc|perfclean|perfctl|\.atmp' | grep -v grep)
15 if [ -n "$processes" ]; then
16 echo " [!] Processus suspects trouvés :"
17 echo "$processes"
18 else
19 echo " Aucun processus suspect détecté."
20 fi
21}
22
23# Fonction pour vérifier la présence de fichiers et répertoires malveillants
24check_files() {
25 echo "2. Vérification des fichiers et répertoires suspects..."
26 files=(
27 "/root/.config/cron/perfcc"
28 "/etc/cron.d/perfclean"
29 "/etc/cron.daily/perfclean"
30 "/etc/cron.hourly/perfclean"
31 "/etc/cron.weekly/perfclean"
32 "/etc/cron.monthly/perfclean"
33 "/usr/bin/.atmp"
34 "/usr/bin/.atmp/tmp"
35 )
36 found_files=()
37 for file in "${files[@]}"; do
38 if [ -e "$file" ]; then
39 found_files+=("$file")
40 fi
41 done
42
43 if [ ${#found_files[@]} -gt 0 ]; then
44 echo " [!] Fichiers ou répertoires suspects trouvés :"
45 for f in "${found_files[@]}"; do
46 echo " - $f"
47 done
48 else
49 echo " Aucun fichier ou répertoire suspect détecté."
50 fi
51}
52
53# Fonction pour vérifier les tâches cron malveillantes
54check_cron() {
55 echo "3. Vérification des tâches cron suspectes..."
56 cron_jobs=$(crontab -l 2>/dev/null | grep -E 'perfcc|perfclean|perfctl')
57 if [ -n "$cron_jobs" ]; then
58 echo " [!] Tâches cron suspectes dans le crontab de l'utilisateur courant :"
59 echo "$cron_jobs"
60 else
61 echo " Aucune tâche cron suspecte dans le crontab de l'utilisateur courant."
62 fi
63
64 echo " Vérification des tâches cron système..."
65 cron_dirs=("/etc/crontab" "/etc/cron.d/" "/etc/cron.daily/" "/etc/cron.hourly/" "/etc/cron.weekly/" "/etc/cron.monthly/")
66 for dir in "${cron_dirs[@]}"; do
67 if [ -d "$dir" ]; then
68 cron_files=$(grep -rlE 'perfcc|perfclean|perfctl' "$dir")
69 if [ -n "$cron_files" ]; then
70 echo " [!] Tâches cron suspectes trouvées dans $dir :"
71 echo "$cron_files"
72 fi
73 elif [ -f "$dir" ]; then
74 cron_file=$(grep -lE 'perfcc|perfclean|perfctl' "$dir")
75 if [ -n "$cron_file" ]; then
76 echo " [!] Tâche cron suspecte trouvée dans $dir"
77 fi
78 fi
79 done
80}
81
82# Fonction pour vérifier les services système suspects
83check_services() {
84 echo "4. Vérification des services système suspects..."
85 services=$(systemctl list-unit-files | grep -E 'perfcc|perfclean|perfctl')
86 if [ -n "$services" ]; then
87 echo " [!] Services suspects trouvés :"
88 echo "$services"
89 else
90 echo " Aucun service suspect détecté."
91 fi
92}
93
94# Fonction pour vérifier les utilisateurs suspects
95check_users() {
96 echo "5. Vérification des comptes utilisateurs suspects..."
97 users=$(getent passwd | grep -E 'perfcc|perfclean|perfctl')
98 if [ -n "$users" ]; then
99 echo " [!] Comptes utilisateurs suspects trouvés :"
100 echo "$users"
101 else
102 echo " Aucun compte utilisateur suspect détecté."
103 fi
104}
105
106# Exécution des fonctions
107check_processes
108echo
109check_files
110echo
111check_cron
112echo
113check_services
114echo
115check_users
116echo
117echo "--------------------------------------------"
118echo " Analyse terminée."
119echo "--------------------------------------------"
120