Qu'est ce que ces fichiers qui squattent ma racine?

et en tant que tel, tu isole toute sauvegarde que tu en as faite, car elles sont probablement compromise aussi.
Tu n’as plus qu’à formater et reinstaller ta machine, car rien ne dit qu’il n’y a pas quelque chose ailleurs dans tes fichiers.

Il serait intéressant de voir d’où vient ce virus.

  • Je te suggère de regarder les ports ouverts, tu dois en avoir unqui sert d’entrée. Ça peut être très astucieux, j’ai vu un shell consistant en un code PHP inséré au milieu d’une page avec l’entrée donné en base64 et la réponse ds les headers. Quasi indetectable.
  • Si tu as un serveur Web, active le module modsecurity qui te permettra d’avoir les arguments des requêtes POST
  • Tu as deux solutions:
    → refaire tout sans trop savoir où est la faille
    → Continuer en espionnant celui qui a introduit ce virus pouvoir d’où ça vient

Je te suggère de regarder via find les fichiers qui ont été modifiés entre le 19 et le 20 aout

Et isole immédiatement les accès. Car sinon la compromission continuera et elle t’empêchera de faire une analyse correcte.
Car si tu as un site web utilisé par des personnes extérieures, tu les met à risque en les laissant accéder à un site compromis.

Si c’est le cas, il faudrait regarder les logs de la période 19-20 août (les access.log et error.log de cette période), si tu les as, je peux regarder ça

On dirait qu’il se connecte régulièrement à cette adresse. Par ailleurs, les connexions se font en UDP semble-t-il (classique ça pour un bindshell). Je te dirais plus plus tard, je suis dans un train

Je te suggère dans le cas où cette IP ne te dit rien de la capturer ou bien de la bloquer (elle est en Hollande on dirait)

Tout d’abord merci pour le temps passé et vos investigations
Je réponds aux différentes questions dans la soirée (là je suis au travail)
Ce serveur a un navidrome avec plein de mp3 ainsi qu’un nextcloud dans le cadre familial,.Puis je récupérer les données sans soucis ? Ou faut il prendre certaines précautions ? Les datas sont stockées sur un disque dur externe
D’avance merci.
J’ai un raspberry en rab plus performant ; j’en profiterai pour changer de machine

Les mp3 pas de souci, dans le nextcloud tu peux faire un backup de la base de données et des données elles même si ce ne sont pas des executables. Tu peux vérifier avec find la dernière date de modification éventuellement. Pour les executables, c’est plus délicat mais tu peux les tester à l’antivirus ou regarder là aussi les dates de modification.
C’est quelle version de nextcloud? Si tu veux, tu peux faire une archive des .php/js/html de ce nextcoud (en enlevant les mots de passe et autre dans le config.php et la passer, on pourra comparer avec le nextcloud d’origine et voire ce qui s’est passé.
Regarde les logs du serveur apache pour la période et change tes mots de passe bien sur.

Alors voilà
Version de nextclound Version Nextcloud Hub 10 (31.0.9) Packagée par yunohost

Pour les logs, mes logs ne remontent pas si loin, désolé.

Cette IP 87.121.84.220 te dit-elle quelque chose?

Non du tout

Pour le find / date du 19 au 20 aout : c’est là https://crust.ovh/site/files-vir.txt
( find / -type f -newerat 2025-08-18 ! -newerat 2025-08-21 > /var/www/my_webapp/www/files-vir.txt)

ça a l’air de correspondre essentiellement à une mise à jour yunohost.
Je n’ai jamais rien installé d’exotique à yunohost d’ailleurs.

J’ai fait un chkrootkit, la sortie est là https://crust.ovh/site/chkrootkit.txt
Je ne sais pas si ça peut être utile

Pour les ports ouverts c’est là https://crust.ovh/site/port.png

Je pense que je vais poser la question sur le forum yunohost, ils ont peut être des scripts internes (yunohost tools) pour ce type de situation

En attendant, je ne pense pas que mon espace disque ait changé ni l’utilisation de ma RAM

N’hésitez pas si vous avez d’autres infos/questions :wink:

Mots de passe changé et je vais conseiller à mes qq utilisateurs de faire de même :wink:

En tout cas un grand merci :wink:

Je pensais au résultat sur la machine de

# netstat -tupln

Sinon je te confirme que le virus se connecte ou écoute régulièrement sur 87.121.84.220

root@crust:~# netstat -tupln
Connexions Internet actives (seulement serveurs)
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name    
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      2610/master         
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1107/redis-server 1 
tcp        0      0 127.0.0.1:5037          0.0.0.0:*               LISTEN      704/adbd            
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      1476/dovecot        
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/init              
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2064/nginx: master  
tcp        0      0 127.0.0.1:32529         0.0.0.0:*               LISTEN      1112/sshwifty       
tcp        0      0 127.0.0.1:10001         0.0.0.0:*               LISTEN      861/postsrsd        
tcp        0      0 127.0.0.1:10002         0.0.0.0:*               LISTEN      861/postsrsd        
tcp        0      0 0.0.0.0:2515            0.0.0.0:*               LISTEN      1173/sshd: /usr/sbi 
tcp        0      0 0.0.0.0:5555            0.0.0.0:*               LISTEN      704/adbd            
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1166/dnsmasq        
tcp        0      0 127.0.0.1:8088          0.0.0.0:*               LISTEN      1981/influxd        
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      2610/master         
tcp        0      0 127.0.0.1:61209         0.0.0.0:*               LISTEN      1072/python3        
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      2064/nginx: master  
tcp        0      0 127.0.0.1:8891          0.0.0.0:*               LISTEN      1414/opendkim       
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      1358/slapd          
tcp        0      0 0.0.0.0:4190            0.0.0.0:*               LISTEN      1476/dovecot        
tcp        0      0 127.0.0.1:50561         0.0.0.0:*               LISTEN      1087/navidrome      
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      1476/dovecot        
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN      1099/prometheus     
tcp        0      0 127.0.0.1:6787          0.0.0.0:*               LISTEN      1118/python3        
tcp        0      0 127.0.0.1:11332         0.0.0.0:*               LISTEN      1334/rspamd: main p 
tcp        0      0 127.0.0.1:6788          0.0.0.0:*               LISTEN      1119/python3        
tcp        0      0 127.0.0.1:11333         0.0.0.0:*               LISTEN      1334/rspamd: main p 
tcp        0      0 127.0.0.1:389           0.0.0.0:*               LISTEN      1358/slapd          
tcp        0      0 127.0.0.1:11334         0.0.0.0:*               LISTEN      1334/rspamd: main p 
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1478/mariadbd       
tcp6       0      0 ::1:6379                :::*                    LISTEN      1107/redis-server 1 
tcp6       0      0 :::587                  :::*                    LISTEN      2610/master         
tcp6       0      0 :::45548                :::*                    LISTEN      2714/grafana        
tcp6       0      0 :::143                  :::*                    LISTEN      1476/dovecot        
tcp6       0      0 :::111                  :::*                    LISTEN      1/init              
tcp6       0      0 :::80                   :::*                    LISTEN      2064/nginx: master  
tcp6       0      0 :::4242                 :::*                    LISTEN      1981/influxd        
tcp6       0      0 :::2515                 :::*                    LISTEN      1173/sshd: /usr/sbi 
tcp6       0      0 :::53                   :::*                    LISTEN      1166/dnsmasq        
tcp6       0      0 :::8086                 :::*                    LISTEN      1981/influxd        
tcp6       0      0 :::25                   :::*                    LISTEN      2610/master         
tcp6       0      0 :::443                  :::*                    LISTEN      2064/nginx: master  
tcp6       0      0 :::636                  :::*                    LISTEN      1358/slapd          
tcp6       0      0 :::4190                 :::*                    LISTEN      1476/dovecot        
tcp6       0      0 :::993                  :::*                    LISTEN      1476/dovecot        
tcp6       0      0 ::1:11332               :::*                    LISTEN      1334/rspamd: main p 
tcp6       0      0 ::1:11333               :::*                    LISTEN      1334/rspamd: main p 
tcp6       0      0 ::1:389                 :::*                    LISTEN      1358/slapd          
tcp6       0      0 ::1:11334               :::*                    LISTEN      1334/rspamd: main p 
udp        0      0 127.0.0.1:5353          0.0.0.0:*                           1072/python3        
udp        0      0 192.168.0.50:5353       0.0.0.0:*                           1072/python3        
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           1072/python3        
udp        0      0 0.0.0.0:53              0.0.0.0:*                           1166/dnsmasq        
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/init              
udp        0      0 192.168.0.50:123        0.0.0.0:*                           1351/ntpd           
udp        0      0 127.0.0.1:123           0.0.0.0:*                           1351/ntpd           
udp        0      0 0.0.0.0:123             0.0.0.0:*                           1351/ntpd           
udp6       0      0 :::53                   :::*                                1166/dnsmasq        
udp6       0      0 :::111                  :::*                                1/init              
udp6       0      0 fe80::7ab9:b6f3:17d:123 :::*                                1351/ntpd           
udp6       0      0 2a01:e0a:82d:d0c0:9:123 :::*                                1351/ntpd           
udp6       0      0 ::1:123                 :::*                                1351/ntpd           
udp6       0      0 :::123                  :::*                                1351/ntpd

Je peux blacklister cette ip, je vais le faire :wink:

Peux tu également exeuter

debsums

sous root, ça te donnera les fichiers modifés par rapport à la version déclarés dans les paquets.

Sinon qu’est le processus 1072? Il est normal?

Sinon qu’est le processus 1072? Il est normal?

root@crust:~# ps 1072
    PID TTY      STAT   TIME COMMAND
   1072 ?        Ssl    0:03 /usr/bin/python3 /usr/bin/glances -s -B 127.0.0.1
root@crust:~# debsums -e | grep FAILED
/etc/logrotate.d/apt                                                      FAILED
/etc/logrotate.d/aptitude                                                 FAILED
/etc/issue                                                                FAILED
/etc/issue.net                                                            FAILED
/etc/skel/.bashrc                                                         FAILED
/etc/dnsmasq.conf                                                         FAILED
/etc/default/dnsmasq                                                      FAILED
/etc/logrotate.d/dpkg                                                     FAILED
/etc/logrotate.d/alternatives                                             FAILED
/etc/fail2ban/jail.conf                                                   FAILED
/etc/logrotate.d/fail2ban                                                 FAILED
/etc/influxdb/influxdb.conf                                               FAILED
/etc/logrotate.d/influxdb                                                 FAILED
/etc/initramfs-tools/initramfs.conf                                       FAILED
/etc/pulse/client.conf                                                    FAILED
/etc/logrotate.d/wtmp                                                     FAILED
/etc/logrotate.d/btmp                                                     FAILED
/etc/logrotate.conf                                                       FAILED
/etc/logrotate.d/mariadb                                                  FAILED
/etc/NetworkManager/NetworkManager.conf                                   FAILED
/etc/nftables.conf                                                        FAILED
/etc/nginx/fastcgi_params                                                 FAILED
/etc/logrotate.d/nginx                                                    FAILED
/etc/opendkim.conf                                                        FAILED
/etc/logrotate.d/php8.0-fpm                                               FAILED
/etc/logrotate.d/php8.3-fpm                                               FAILED
/etc/logrotate.d/php8.4-fpm                                               FAILED
/etc/logrotate.d/bootlog                                                  FAILED
/etc/sysctl.conf                                                          FAILED
/etc/logrotate.d/redis-server                                             FAILED
/etc/resolvconf/resolv.conf.d/head                                        FAILED
/etc/logrotate.d/rspamd                                                   FAILED
/etc/logrotate.d/rsyslog                                                  FAILED
/etc/default/slapd                                                        FAILED
/etc/systemd/journald.conf                                                FAILED
/etc/logrotate.d/unattended-upgrades                                      FAILED
/etc/logrotate.d/yunohost                                                 FAILED
/etc/zsh/zprofile                                                         FAILED

Pas top tout ça, non ?

Ce sont des fichiers de configuration, il faudrait regarder mais que la version du paquet soit adapté à la machine est normal. L’encourageant est que les binaires sont corrects. Il faudrait regarder quand ces fichiers ont été modifiés via la commande

ls -ltr --time=mtime «les dits fichiers en question»

Peut être un

debsums -c | xargs -n ls -ltr --time=mtime 

fonctionnera directement (je ne connais pas bien la sortie de debsums)

J’ai essayé ce script

#!/bin/bash
filename='debsum.txt'
echo Start
while read p; do 
    ls -ltr --time=mtime $p
done < "$filename"

avec

cat debsum.txt 
/etc/logrotate.d/apt
/etc/logrotate.d/aptitude
/etc/issue.net
/etc/issue
/etc/skel/.bashrc
/etc/default/dnsmasq
/etc/dnsmasq.conf
/etc/logrotate.d/dpkg
/etc/logrotate.d/alternatives
/etc/logrotate.d/fail2ban
/etc/fail2ban/jail.conf
/etc/logrotate.d/influxdb
/etc/influxdb/influxdb.conf
/etc/initramfs-tools/initramfs.conf
/etc/pulse/client.conf
/etc/logrotate.d/wtmp
/etc/logrotate.conf
/etc/logrotate.d/btmp
/etc/logrotate.d/mariadb
/etc/NetworkManager/NetworkManager.conf
/etc/nftables.conf
/etc/nginx/fastcgi_params
/etc/logrotate.d/nginx
/etc/opendkim.conf
/etc/logrotate.d/php8.0-fpm
/etc/logrotate.d/php8.3-fpm
/etc/logrotate.d/php8.4-fpm
/etc/logrotate.d/bootlog
/etc/sysctl.conf
/etc/logrotate.d/redis-server
/etc/resolvconf/resolv.conf.d/head
/etc/logrotate.d/rspamd
/etc/logrotate.d/rsyslog
/etc/default/slapd
/etc/systemd/journald.conf
/etc/logrotate.d/unattended-upgrades
/etc/logrotate.d/yunohost
/etc/zsh/zprofile

Mais

Saisissez « ls --help » pour plus d'informations.
ls: argument « mtime » incorrect pour « --time »
Les arguments valables sont :
  - « atime », « access », « use »
  - « ctime », « status »
  - « birth », « creation »

Mince, moi j’ai

je suis sous archlinux mais tout de même

Essaye avec ctime

peut être ctime d’après le man (change time)

Dans ce cas

root@crust:~# sh test.sh 
Start
-rw-r--r-- 1 root root 181 17 oct.  20:20 /etc/logrotate.d/apt
-rw-r--r-- 1 root root 83 17 oct.  20:20 /etc/logrotate.d/aptitude
-rw-r--r-- 1 root root 25 25 avril  2024 /etc/issue.net
-rw-r--r-- 1 root root 877 17 oct.  20:20 /etc/issue
-rw-r--r-- 1 root root 3523 25 avril  2024 /etc/skel/.bashrc
-rw-r--r-- 1 root root 1543 25 juil.  2024 /etc/default/dnsmasq
-rw-r--r-- 1 root root 112 25 juil.  2024 /etc/dnsmasq.conf
-rw-r--r-- 1 root root 116 17 oct.  20:20 /etc/logrotate.d/dpkg
-rw-r--r-- 1 root root 124 17 oct.  20:20 /etc/logrotate.d/alternatives
-rw-r--r-- 1 root root 358 17 oct.  20:20 /etc/logrotate.d/fail2ban
-rw-r--r-- 1 root root 25586 20 août  11:52 /etc/fail2ban/jail.conf
-rw-r--r-- 1 root root 117 17 oct.  20:20 /etc/logrotate.d/influxdb
-rw-r----- 1 influxdb influxdb 19258  9 sept. 19:46 /etc/influxdb/influxdb.conf
-rw-r--r-- 1 root root 1377 25 avril  2024 /etc/initramfs-tools/initramfs.conf
-rw-r--r-- 1 root root 1222 25 avril  2024 /etc/pulse/client.conf
-rw-r--r-- 1 root root 158 17 oct.  20:20 /etc/logrotate.d/wtmp
-rw-r--r-- 1 root root 493 17 oct.  20:20 /etc/logrotate.conf
-rw-r--r-- 1 root root 143 17 oct.  20:20 /etc/logrotate.d/btmp
-rw-r--r-- 1 root root 1840 17 oct.  20:20 /etc/logrotate.d/mariadb
-rw-r--r-- 1 root root 85 13 oct.   2024 /etc/NetworkManager/NetworkManager.conf
-rwxr-xr-x 1 root root 363 20 août  11:52 /etc/nftables.conf
-rw-r--r-- 1 root root 1070 16 oct.  18:10 /etc/nginx/fastcgi_params
-rw-r--r-- 1 root root 333 17 oct.  20:20 /etc/logrotate.d/nginx
-rw-r--r-- 1 root root 897 10 nov.   2024 /etc/opendkim.conf
-rw-r--r-- 1 root root 219 17 oct.  20:20 /etc/logrotate.d/php8.0-fpm
-rw-r--r-- 1 root root 219 17 oct.  20:20 /etc/logrotate.d/php8.3-fpm
-rw-r--r-- 1 root root 219 17 oct.  20:20 /etc/logrotate.d/php8.4-fpm
-rw-r--r-- 1 root root 104 17 oct.  20:20 /etc/logrotate.d/bootlog
-rw-r--r-- 1 root root 2372 25 avril  2024 /etc/sysctl.conf
-rw-r--r-- 1 root root 128 17 oct.  20:20 /etc/logrotate.d/redis-server
-rw-r--r-- 1 root root 19 25 avril  2024 /etc/resolvconf/resolv.conf.d/head
-rw-r--r-- 1 root root 559 17 oct.  20:20 /etc/logrotate.d/rspamd
-rw-r--r-- 1 root root 426 17 oct.  20:20 /etc/logrotate.d/rsyslog
-rw-r--r-- 1 root root 1796 25 juil.  2024 /etc/default/slapd
-rw-r--r-- 1 root root 1054 17 oct.  20:20 /etc/systemd/journald.conf
-rw-r--r-- 1 root root 247 17 oct.  20:20 /etc/logrotate.d/unattended-upgrades
-rw-r--r-- 1 root root 140 17 oct.  20:20 /etc/logrotate.d/yunohost
-rw-r--r-- 1 root root 300 25 avril  2024 /etc/zsh/zprofile

Désolé, nos messages ont du se croiser…

Je veux pas déranger mais il est fort possible que le but premier étais simplement d’ajouter une machine à un simple botnet avec un shell, dans ce cas faudrait surtout voir qui est en cause et la ça va être coton.

Merci Clochette, merci concrètement quel chemin suivre ?