Dernière activité 1 month ago

Erreur32's Avatar Erreur32 a révisé ce gist 2 years ago. Aller à la révision

1 file changed, 119 insertions

detect_perfctl.sh(fichier créé)

@@ -0,0 +1,119 @@
1 + #!/bin/bash
2 +
3 + # Script : detect_perfctl.sh
4 + # Description : Détecte la présence du malware Perfctl sur le système.
5 +
6 + echo "--------------------------------------------"
7 + echo " Début de l'analyse pour le malware Perfctl"
8 + echo "--------------------------------------------"
9 + echo
10 +
11 + # Fonction pour vérifier la présence de processus suspects
12 + check_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
24 + check_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
54 + check_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
83 + check_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
95 + check_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
107 + check_processes
108 + echo
109 + check_files
110 + echo
111 + check_cron
112 + echo
113 + check_services
114 + echo
115 + check_users
116 + echo
117 + echo "--------------------------------------------"
118 + echo " Analyse terminée."
119 + echo "--------------------------------------------"
Plus récent Plus ancien