Virus ?

Bon, il te faut tester l’intégrité de ton système, assaye avec debsums (paquet debsums) ça te donnera la liste des fichiers modifiés par rapport au paquet.

Si j’avais une de mes machines dans cet état, je me régalerai :
Même s’il est sans doute déjà trop tard, je virerai de cette machine le maximum de mes fichiers personnels, ou mieux, je remplacerai leur contenu pour que rien ne puisse me retomber dessus en fonction de ces informations,
et je ferai de cette machine (en fait, rien à faire, elle l’est déjà :slightly_smiling:) un joli Honeypot, pour passer mon temps à étudier (au moins avec wireshark) tous ce qui y entre, en ressort, et est modifié sur le système de fichier.

Une très bonne occasion d’apprendre en live, sans prendre de risque avec des données pro.

De toutes façons, je n’utiliserai pas une machine dans cet état (du moins connectée au net) pour autre chose qu’un piège à script kiddie ou autre sujet d’étude,
et encore, je demanderai des conseils, pour la positionner (réseau) de façon à ce qu’elle ne contamine pas les autres,
car c’est pas avec mon tout petit CCNA que j’y arriverai tout seul, et je suis certain que j’aurai aussi beaucoup d’autres choses à apprendre auxquelles je ne pense même pas.

En espérant n’avoir ennuyé personne avec mes réflexions personnelles sur cette situation.

Comment est-ce que ce PC est accessible en SSH ?

  • Le PC est directement raccordé à Internet ou si c’est via une box / un routeur qui ferait du (S)NAT ?

  • Est-ce que tu accèdes à la machine au travers d’Internet directement ou via un VPN ?

  • Est-ce que le PC est accessible d’une quelconque autre manière ? Par exemple en exposant des services sur Internet avec ou sans authentification.

Réponds de la manière la plus complète qui soit à ces questions et on aura une chance de pouvoir t’en dire plus sur l’origine et sur les éventuelles solutions au problème.


AnonymousCoward

fran.b : 100 % d’accord , je vais regarder debsums que je ne connais pas encore.

MicP : il n’y a ( a priori ) rien d’important sur ce PC, j’ai déjà dit à mon copain d’enlever ses fichiers perso mais je vais lui suivre ton post.
Mes objectifs sont dans cet ordre :

  1. Sécuriser et comprendre ( ne pas refaire une ‘bête’ installation )
  2. Remettre en état
  3. Idéalement riposter ( tes réflexions personnelles concernent cette étape )

AnonymousCoward

  1. Le PC est raccordé par une box orange pro, seuls 2 ports sont configurés ( le 22 pour ssh et un autre non standard pour squid ) . Naïvement j’ai considéré que ssh était sur et n’ai donc pas changé son port. C’est l’une des améliorations que je compte faire.
  2. Jusqu’à début avril je n’utilisais pas de VPN et cette configuration est en service depuis plusieurs années avec ssh et environ un an avec Squid. Depuis début avril je mes suis abonné à un VPN payant. Je n’y suis pas systématiquement connecté ( de temps en temps certains serveurs sont lents et je n’ai pas encore trouvé si j’ai la possibilité de choisir parmi les moins chargés ).
  3. Normalement il n’y a pas d’autres accès à internet en direct. Localement il y a d’autres Pcs sous windows divers. Ensuite bien sur chacun de ses Pcs peut recevoir des connexions USB ponctuelles telles que smarphones, clés ou dd de sauvegarde sans compter les imprimantes.

Un piratage local serait a priori un piratage de quelqu’un qui en veut vraiment au possesseur de la machine. C’est plus grave.

Ne cherche pas plus loin, tu as trouvé.

En fait, il y a pas mal de robots qui tentent toutes les combinaisons de mots de passe possibles pour le compte root et d’autres pris au hasard sur les services SSH qu’ils voient accessibles. Du « brute-force SSH ». Sur les machines Linux dont j’ai la charge, 97% des tentatives proviennent d’IPs chinoises (PRC, ROC, HK SAR).
Souvent, c’est en pure perte mais quand un utilisateur (pas forcément le root) a un mot de passe fragile (ou dans la liste des 10k mots de passe les plus communs, disons), paf !
Ensuite, tu reçois la visite d’un « étudiant » qui, si l’utilisateur hacké n’est pas root, utilise un exploit local pour devenir root en attaquant le kernel ou autre, uploade un bot dans le répertoire /tmp (souvent) et le démarre. ETC

Pour éviter cela, on peut protéger SSH en :

  • Interdisant l’accès au compte root à distance (il y a plus pratique)
  • Interdisant l’authentification SSH par mot de passe et en laissant l’authentification par clé publique (qui elle-même peut être protégée par une phrase de passe). Ça, ça marche bien.
  • Installant fail2ban ou équivalent. En plus tu peux protéger d’autres services que SSH avec.
  • Utilisant une politique d’interdiction des mots de passe faibles.
  • Interdisant toutes les IPs des réseaux chinois avec le pare-feu.
    … et j’en passe.

Pour ton problème actuel, je te suggère de créer un tout nouvel utilisateur sur la machine et de l’ajouter au groupe sudo pour qu’il puisse passer root. Puis, via le fichier de configuration de SSH, interdire toute connexion à la machine sauf avec le compte nouvellement créé.
Parce-que l’attaquant à accès au compte root, certes, mais c’est peut-être en trouvant le mot de passe de l’utilisateur bernard qu’il est entré.

Et si tu veux rigoler un coup, tu peux toujours tenter de cracker les mots de passe contenus dans le fichier /etc/shadow de la machine en utilisant des logiciels comme John the Ripper ou Hashcat. Généralement, au bout de 24h de fonctionnement sur plusieurs threads, tu as trouvé le « maillon faible ».

Pour ce qui est du VPN, on peut tout à fait établir un VPN entre machines nous appartenant. Les VPNs commerciaux faisant passer les suédois pour des amateurs de films en langue francaise ne sont qu’un des nombreux usages possibles. Par exemple, les entreprises les utilisent beaucoup pour relier directement les différents sites géographiques entre eux. A une époque, j’utilisais un VPN pour jouer en réseau avec un pote.
En VPN disponible en Open Source, tu as le très connu openvpn, ipsec, ou encore pptp si tu aimes les risques.
En te connectant au réseau de ton pote via un VPN installé sur son routeur Orange, si c’était possible, tu n’aurais pas forcément eu besoin d’exposer le SSH à tout l’Internet et cela aurait évité le problème.

Bon courage !


AnonymousCoward

Le fail2ban ne sert pas à grand chose mis à part à limiter tes logs. J’ai mis une limite chez moi à 5 minutes et voilà ce que j’obtiens en ce moment

[...]
May 12 09:17:48 cerbere sshd[30179]: Failed password for root from 58.218.205.68 port 40706 ssh2
May 12 09:17:49 cerbere sshd[30181]: Failed password for root from 58.218.204.213 port 52026 ssh2
May 12 09:17:50 cerbere sshd[30179]: Failed password for root from 58.218.205.68 port 40706 ssh2
May 12 09:17:51 cerbere sshd[30181]: Failed password for root from 58.218.204.213 port 52026 ssh2
May 12 09:17:55 cerbere sshd[30194]: Failed password for root from 58.218.205.68 port 47671 ssh2
May 12 09:17:56 cerbere sshd[30196]: Failed password for root from 58.218.204.213 port 44204 ssh2
May 12 09:17:57 cerbere sshd[30194]: Failed password for root from 58.218.205.68 port 47671 ssh2
May 12 09:17:58 cerbere sshd[30196]: Failed password for root from 58.218.204.213 port 44204 ssh2
May 12 09:18:00 cerbere sshd[30194]: Failed password for root from 58.218.205.68 port 47671 ssh2
May 12 09:18:01 cerbere sshd[30196]: Failed password for root from 58.218.204.213 port 44204 ssh2
May 12 09:18:05 cerbere sshd[30200]: Failed password for root from 58.218.205.68 port 54533 ssh2
May 12 09:18:06 cerbere sshd[30212]: Failed password for root from 58.218.204.213 port 39345 ssh2
May 12 09:18:06 cerbere sshd[30200]: Failed password for root from 58.218.205.68 port 54533 ssh2
May 12 09:18:08 cerbere sshd[30212]: Failed password for root from 58.218.204.213 port 39345 ssh2
May 12 09:18:08 cerbere sshd[30200]: Failed password for root from 58.218.205.68 port 54533 ssh2
May 12 09:18:11 cerbere sshd[30212]: Failed password for root from 58.218.204.213 port 39345 ssh2
May 12 09:18:14 cerbere sshd[30214]: Failed password for root from 58.218.205.68 port 60768 ssh2
May 12 09:18:16 cerbere sshd[30214]: Failed password for root from 58.218.205.68 port 60768 ssh2
[...]

le gars tourne sur plusieurs machines. J’ai déjà vu un gars passer 3 mois avec un botnet et essayer un dictionnaire de quelques milliers de login, chacun avec plusieurs mots de passe. Impressionnant mais en pure perte.

Parfois j’ai ça

 Illegal users from:
    41.220.26.222 (mail.firstpack.co.zw): 20 times
       oracle: 4 times
       123: 2 times
       123456: 2 times
       boot: 2 times
       dff: 2 times
       git: 2 times
       test: 2 times
       ubuntu: 2 times
       zhangyan: 2 times
    58.64.197.111: 9931 times
       admin: 56 times
       test: 42 times
       toor: 34 times
       tester: 32 times
       student: 28 times
       students: 28 times
       testing: 28 times
       guest: 26 times
       oracle: 22 times
       vic: 22 times
       victor: 22 times
[...]
       test1: 6 times
       test123: 6 times
       unreal: 6 times
       var: 6 times
       www: 6 times
       xxx: 6 times
       abe: 4 times
       abel: 4 times
       abigail: 4 times
       abraham: 4 times
       account: 4 times
       ace: 4 times
       ada: 4 times
       adam: 4 times
       adela: 4 times
       adeline: 4 times
       admins: 4 times
       admissions: 4 times
       adolf: 4 times
       adolph: 4 times
       adrian: 4 times
       adriana: 4 times
       africa: 4 times
       agnes: 4 times
       al: 4 times
       alan: 4 times
       albert: 4 times
       albertha: 4 times
       alec: 4 times
       alex: 4 times
[...]

mais souvent c’est ça

Failed logins from:
    43.255.190.89: 153 times
       root/password: 153 times
    43.255.190.92: 314 times
       root/password: 314 times
    43.255.190.115: 139 times
       root/password: 139 times
    43.255.190.116: 319 times
       root/password: 319 times
    43.255.190.117: 157 times
       root/password: 157 times
    43.255.190.118: 156 times
       root/password: 156 times
    43.255.190.119: 156 times
       root/password: 156 times
    43.255.190.120: 159 times
       root/password: 159 times
    43.255.190.122: 152 times
       root/password: 152 times
    43.255.190.123: 157 times
       root/password: 157 times
    43.255.190.124: 316 times
       root/password: 316 times
    43.255.190.126: 312 times
       root/password: 312 times
    43.255.190.130: 145 times
       root/password: 145 times
    43.255.190.132: 201 times
       root/password: 201 times
    43.255.190.133: 147 times
       root/password: 147 times
    43.255.190.134: 298 times
       root/password: 298 times
    43.255.190.135: 151 times
       root/password: 151 times
    43.255.190.137: 123 times
       root/password: 123 times
    43.255.190.139: 322 times
       root/password: 322 times
    43.255.190.141: 153 times
       root/password: 153 times
    43.255.190.144: 151 times
       root/password: 151 times
    43.255.190.145: 162 times
       root/password: 162 times
    43.255.190.146: 159 times
       root/password: 159 times
    43.255.190.147: 134 times
[..](plusieurs milliers de lignes (13000))[..]

sur un log de quelques semaines (le gars a fait les classiques puis de a, aa, aaa, abba… à zzelano en passant par morgengold), j’ai une collection de logins impressionnante

fran.b : Certes. Mais avec un petit bantime = 7889400 concernant le ssh dans /etc/fail2ban/jail.local et c’est nettement mieux. Cela correspond à 3 mois.

Parfois, il faut aussi adapter le findtime pour éviter que les cyber-coquins n’attendent 30 minutes entre chaque série de tentatives et échappent ainsi au filtrage.


AnonymousCoward

On en reparlera lorsque tu te trouveras coincé pour 3 mois après une série de scp…

Point d’étape 5.
debsums contrôlés : rien vu ( sur ce pc mais /usr/share/keyrings/debian-archive-removed-keys.gpg sur mon serveur )
les accès ssh ayant étant reconfigurés (mdp changé yc pour bernard, clés non recréées pour l’instant, j’ai de nouveau rebooté le PC après avoir nettoyer /etc/init.d -> virus toujours présent !
à noter que je n’ai pas faire un test Off/On mais à part ça je commence à manquer d’idée …

J’ai donc bloquer un maximum par iptables, a priori avec succès pour l’instant, et je viens de me rendre compte, via ntop, que j’ai en fait essentiellement des réceptions non expliquées ( jusqu’à 7Go ) ! ?

  • le PC servirait de proxy ?
  • peut imaginer qu’en bloquant les sorties, les réceptions continuent ! ?
  • … ?

L’affichage ntop est repris ci-dessous et de façon plus lisible dans le fichier joint.

12/05/15 – 21:42 – Received																					
Host 	Location	Data Descending order, click to reverse 	Unknown	FTP	Mail_POP	Mail_SMTP	Mail_IMAP	DNS	IPP	HTTP	MDNS	NTP	NETBIOS	NFS	SSDP	BGP	SNMP	XDMCP	SMB	SYSLOG	
clsrv01.wchonline.com  HTTP Server    	  	7.1 GBytes	25.2 %	0	20.4 KBytes	1.4 GBytes	0	7.4 KBytes	60.3 KBytes	24.1 KBytes	129.9 KBytes	26.0 KBytes	89.1 KBytes	104.8 KBytes	258.8 KBytes	0	28.8 KBytes	32.5 KBytes	24.1 KBytes	127.1 KBytes	204.1 KBytes
clsrv01.wchonline.com  HTTP Server    	  	7.1 GBytes	25.2 %	7.4 KBytes	32.5 KBytes	2.0 GBytes	20.4 KBytes	76.1 KBytes	196.7 KBytes	33.4 KBytes	91.8 KBytes	40.8 KBytes	26.9 KBytes	192.0 KBytes	381.3 KBytes	42.7 KBytes	71.4 KBytes	49.2 KBytes	76.1 KBytes	169.8 KBytes	260.7 KBytes
162.159.28.163    	  	5.4 GBytes	19.2 %	107.6 KBytes	14.8 KBytes	0	1.1 GBytes	144.7 KBytes	0	30.6 KBytes	141.9 KBytes	0	52.9 KBytes	3.7 KBytes	156.8 KBytes	35.3 KBytes	119.7 KBytes	39.0 KBytes	0	75.1 KBytes	154.0 KBytes
162.159.31.164    	  	5.1 GBytes	18.0 %	25.0 KBytes	50.1 KBytes	104.8 KBytes	1.9 GBytes	88.1 KBytes	53.8 KBytes	111.3 KBytes	70.5 KBytes	101.1 KBytes	72.4 KBytes	120.6 KBytes	309.9 KBytes	63.1 KBytes	115.0 KBytes	0	77.9 KBytes	177.2 KBytes	116.0 KBytes
104.28.8.98  HTTP Server    	  	3.5 GBytes	12.5 %	1.9 KBytes	14.8 KBytes	293.9 MBytes	23.2 KBytes	0	10.2 KBytes	13.0 KBytes	2.8 KBytes	0	18.6 KBytes	16.7 KBytes	57.5 KBytes	0	0	0	7.4 KBytes	950	0
192.168.1.52  Printer Mail (SMTP) HTTP Server High Risk   	  	2.4 MBytes	0.0 %	235.4 KBytes	0	0	747	0	0	599	0	0	0	0	0	1.3 MBytes	0	0	0	0	0
xx    	  	793.4 KBytes	0.0 %	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
3-14...rse.queryfoundry.net    	  	34.2 KBytes	0.0 %	30.7 KBytes	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
livebox  DHCP Server  Router DNS Medium Risk   	  	19.1 KBytes	0.0 %	0	0	0	691	0	0	0	0	0	0	0	0	0	0	0	0	0	0
239.255.255.250    	  	1.8 KBytes	0.0 %	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
224.0.0.251    	  	777	0.0 %	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
ff02::fb    	  	0	0.0 %	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0			
																					
12/05/15 – 21:43 – Send																					
Host 	Location	Data Descending order, click to reverse 	Unknown	FTP	Mail_POP	Mail_SMTP	Mail_IMAP	DNS	IPP	HTTP	MDNS	NTP	NETBIOS	NFS	SSDP	BGP	SNMP	XDMCP	SMB	SYSLOG	
192.168.1.52  Printer Mail (SMTP) HTTP Server High Risk   	  	31.1 GBytes	100.0 %	174.9 KBytes	132.7 KBytes	3.8 GBytes	3.2 GBytes	325.6 KBytes	321.0 KBytes	226.1 KBytes	447.2 KBytes	183.7 KBytes	272.8 KBytes	447.2 KBytes	1.2 MBytes	4.5 MBytes	355.3 KBytes	120.6 KBytes	188.3 KBytes	572.4 KBytes	759.8 KBytes
3-14...rse.queryfoundry.net    	  	267.9 KBytes	0.0 %	236.3 KBytes	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
xx    	  	235.0 KBytes	0.0 %	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
livebox  DHCP Server  Router DNS Medium Risk   	  	213.1 KBytes	0.0 %	0	0	0	747	0	0	0	0	0	0	0	0	0	0	0	0	0	0
58.218.205.69    	  	6.4 KBytes	0.0 %	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0

Pour info xx est mon serveur
Ntop-150512.ods (16.4 KB)

Désolé je n’ai pas vu vos derniers messages alors que j’écrivaiis en même temps mon point d’étape 5.

Oui le mdp root sur la machine en question était faible, je le savais mais comme ce n’était pas encore très critique je n’avais pas imposé à mon ami de le durcir, ni mis en place l’interdiction de l’accès root pour ssh, ni …

La remarque ‘hors sujet’ de fran.b sur les VPN et la dernière précision technique m’amène aussi à partager mes réflexions que je poste ailleurs ( pause café ) pour ne pas ‘polluer’ ce sujet qui pour moi n’est pas encore terminé … voir mon post précédent ( je n’ai pas encore compris comment le virus se régénère )

Oui, bien sûr que des robots passent leur temps à tester le port 22, j’avais constaté le même genre de log en très peu de temps (c’était impressionnant).
Mais le mot de passe root était assez fort (20 caractères chiffres lettres Maj Min) et surtout pas d’accès ssh au compte root.
En 3 semaines ininterrompue, je n’ai rien constaté d’anormal dans les logs, si ce n’est des attaques de plus en plus nombreuses : J’avais l’impression qu’ils devaient se faire passer mon adresse IP, genre "On en tiens un! Venez tous :slightly_smiling:, mais bon, ça, ce n’est que mon interprétation toute personnelle avec ma très petite expérience en réseau et petite compétence.

Comme dans mon cas il s’agissait d’un besoin d’accès temporaire (quand je suis en déplacement), j’avais résolu le problème en ne démarrant la machine cible qu’à certaines heures (avec le WakeOnRTC) et pour un certain temps (avec un script qui stoppait la machine si je ne m’étais pas connecté dans les 10mn.
Une fois connecté et ce que j’avais à faire terminé, je réglais l’heure (+ le jour, + le mois) ou la condition (script de travaux à faire terminé) de l’arrêt et l’heure-date-Mois du redémarrage du serveur ssh (ou/et de la machine).

NOTES :
Que l’option du BIOS WakeOnRTC soit présente ou pas, les composants électroniques RTC ont cette fonctionnalité, et il suffit d’y accéder depuis Linux.

Le serveur tourne sur un EeePC 900 qui m’a coûté moins de 50€.

Je projette de faire démarrer ce serveur par un GSM (vu les 2€ /mois pour la SIM + 20 ou 30€ d’un bon vieux GSM, mais en fait j’ai 2 Nokia 5220 dont un (ou les deux) fera parfaitement l’affaire.),
ce sera encore plus “sécure” puisque autre réseau + N° de l’appelant + option Message si autre N° déclencheur etc…

=======
Mais pour le cas de PmGs, c’est encore plus simple : il y a quelqu’un sur le poste cible qui pourrait tout simplement démarrer et stopper le serveur ssh (ou autre) à la demande (un coup de fil => une commande à lancer).

=======
Quoi qu’il en soit, le VPN me semble bien plus intéressant côté sécurité : j’en avais monté un pour mon fils en utilisant le port 443 (https) de façon à ce qu’il puisse utiliser ce VPN depuis tous les HotSpots, et ça lui a permit de faire passer tout ce qu’il voulait comme protocoles.
Maintenant, il a un GSM avec 4G, donc, j’ai archivé une copie des notes de configuration et du disque (Clef USB) du serveur (1.5GB), et je passe à autre chose.

Hum, visiblement la machine sert de serveur SMTP ou de parefeu. Qu’est cette machine clsrv01.wchonline.com?
Je ne la trouve pas. Pense quand même à envisager que les logs ont été modifiés (je ne pense pas).

Je vérifierais deux points:

  1. En regardant la version exacte d’un des paquets voire en le retrouvant (par exemple +++ net-tools ou itop) je verifierais l’empreinte de netstat ou iftop
  2. Par netstat ou iftop (+++) je vérifierais le trafic sur la machine.

Tu dis qu’il y a encore le virus, précise la situation. As tu essayé chkrootkit?

PmGs :

Peut-être que le virus en question se recopie et se relance lui-même quand on essaye de le tuer. Pour cela, tu peux essayer de le terminer avec kill -TERM process_id . L’intérêt de SIGTERM est que ce signal ne peut ni être intercepté par le processus ni être ignoré.

Pour trouver les fichiers créés entre telle et telle date, tu peux essayer une commande telle que sudo find / -xdev -newermt ‘10 may’ -a -not -newermt ‘12 may’ -a -uid 0 -a -gid 0 , par exemple. Ce qui cherche les fichiers modifiés depuis le 10 mai et pas après le 12 mai appartenant à l’utilisateur root et au groupe root.
Note bien que contrairement à ce que beaucoup de personnes croient, le ctime d’un fichier n’indique pas la date de création d’un fichier mais la date de changement de son contenu ou de ses attributs. C’est pourquoi dans l’exemple j’utilise l’option -newermt avec le m pour mtime.

Ceci étant, le virus en question a l’air d’un machin assez classique qui tente d’envoyer du SPAM. Ce virus est très probablement écrit en PERL, ce genre de virus sous Linux étant très rarement écrits en C.
Ce qui serait bien et didactique, ce serait que tu recopie un des virus quelque-part dans un répertoire bien précis de la machine, pour ensuite estimer quel est son contenu avec la commande file /pandora/virus . Et après, tu pourras même jeter un coup d’oeuil au PERL illisible (puisque souvent obfusqué).
Si c’est bien un virus écrit en PERL, c’est encore plus simple de les chercher sur le système.


AnonymousCoward

AnonymousCoward,
merci pour tes suggestions mais j’en avais déjà vérifié 2/3 et et je te confirme :

kill -TERM process_id ne fonctionne pas ! ( en fait j’avais été plus ‘rustre’ que toi en coupant l’alim du PC )

file kxniljcqke
kxniljcqke: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped

ls -la
-rwxr-xr-x 1 root root 618642 mai 10 12:58 kxniljcqke

fran.b et AnonymousCoward, je peux imaginer vous ouvrir l’accès à la machine si vous le souhaitez, normalement en tant qu’admin, vous pouvez m’écrire sur mon mail, à défaut utilisez virus_debian@yahoo.com.
A deux conditions cependant :

  • on se présentera sur nos vrais noms
  • chacun pourra observer à sa guise mais on décidera ensemble de toutes les actions

Pour ma part, j’ai arrêté mes cogitations et essaie* de créer 2 containers lxc sur le PC pour imaginer d’autres tests, … en coupant le port 22 sur la machine primaire et en le redirigeant sur une ‘VM’.

  • Je ‘merde’ lamentablement depuis 1 heure sur la version lxc debian de base ( impossible de rentrer en console suite erreur - WARN lxc_console - console input disabled dans les logs, et Failed to mount tmpfs at /dev/shm: No such file or directory si je rajoute lxc-consle … dans la config ! )

Situation à ce jour.

  1. virus présent mais en quarantaine ( iptables, soft de surveillances de fran.b, … )

  2. containers créés hors accès réseau ( PC distant ) -> besoin de passer par un PC intermédiaire qui n’existe pas ( pour l’instant )

  3. peu de disponibilité en ce moment pour continuer les essais.

Et donc … à suivre ( en juin ?)

J’ai pris un peu de temps ce matin pour reprendre qq essais.

Etat des lieux :

  • virus toujours présent et en ‹ quarantaine ›
  • abandon de lxc car complexe à gérer ( pour moi ) sur un PC distant
  • et donc toujours même comportement ( kill -> le virus revient sous un autre nom reel et d’emprunt )

Analyse avec ps :
Pour info le virus est /usr/bin/tetaigipwb , son pid 22208 et il se cache sous le nom ifconfig

ps -e
22208 ? 00:00:01 tetaigipwb

ps -ex

22208 ?        SNsl   0:01 ifconfig           CONSOLE=/dev/console HOME=/ init=/sbin/init runlevel=2 INIT_VERSION=sysvinit-2.88 TERM=linux COLUMNS=80 BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin RUNLEVEL=2 PREVLEVEL=N SHELL=/bin/sh PWD=/ previous=N LINES=25 rootmnt=/root

ps -exf | tail

22208 ?        SNsl   0:01 ifconfig           CONSOLE=/dev/console HOME=/ init=/sbin/init runlevel=2 INIT_VERSION=sysvinit-2.88 TERM=linux COLUMNS=80 BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin RUNLEVEL=2 PREVLEVEL=N SHELL=/bin/sh PWD=/ previous=N LINES=25 rootmnt=/root
18632 ?        SNs    0:00 who                          CONSOLE=/dev/console HOME=/ init=/sbin/init runlevel=2 INIT_VERSION=sysvinit-2.88 TERM=linux COLUMNS=80 BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin RUNLEVEL=2 PREVLEVEL=N SHELL=/bin/sh PWD=/ previous=N LINES=25 rootmnt=/root
18633 ?        SNs    0:00 pwd                          CONSOLE=/dev/console HOME=/ init=/sbin/init runlevel=2 INIT_VERSION=sysvinit-2.88 TERM=linux COLUMNS=80 BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin RUNLEVEL=2 PREVLEVEL=N SHELL=/bin/sh PWD=/ previous=N LINES=25 rootmnt=/root
18637 ?        SNs    0:00 echo "find"                          CONSOLE=/dev/console HOME=/ init=/sbin/init runlevel=2 INIT_VERSION=sysvinit-2.88 TERM=linux COLUMNS=80 BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin RUNLEVEL=2 PREVLEVEL=N SHELL=/bin/sh PWD=/ previous=N LINES=25 rootmnt=/root
18638 ?        SNs    0:00 ifconfig                          CONSOLE=/dev/console HOME=/ init=/sbin/init runlevel=2 INIT_VERSION=sysvinit-2.88 TERM=linux COLUMNS=80 BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin RUNLEVEL=2 PREVLEVEL=N SHELL=/bin/sh PWD=/ previous=N LINES=25 rootmnt=/root
18639 ?        SNs    0:00 su                          CONSOLE=/dev/console HOME=/ init=/sbin/init runlevel=2 INIT_VERSION=sysvinit-2.88 TERM=linux COLUMNS=80 BOOT_IMAGE=/boot/vmlinuz-3.2.0-4-amd64 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin RUNLEVEL=2 PREVLEVEL=N SHELL=/bin/sh PWD=/ previous=N LINES=25 rootmnt=/root

et bien sûr ce n’est qu’une photo, car les processus fils changent en permanence !

Un lecteur a-t-il des idées sur des essais complémentaires, …

Qu’a donné le résultat avec debsums? Tu as visiblement un rootkit d’installé. Tu as bêtement essayé un chkrootkit?

Bonjour fran.b,

ces deux commandes avaient déjà été essayées, je vient tout de même de les relancer et :

  • debsum -c ne retourne rien
    chkrootkit : voir en bas de ce post : a priori rien qui explique le problème

Ceci dit j’en suis enfin venu à bout hier soir via un script bash ( voir ci-dessous ) qui suit la méthode suivante :

  • récupérer tous les pid associés au virus ( pour mémoire seul le virus ‹ principal › a 1 pid constant et ses ‹ fils › sont en fait rattachés à init ( ppid = 1 ), le principe est donc basé sur l’analyse de la ‹ COMMAND ›
    Ce n’était pas simple pour autant car cette ‹ COMMAND › fictive pouvait correspondre aussi à d’autre processus réels et change a chaque nouveau virus ( et donc à chaque essai erroné il faut retester un nouveau script ! )
  • kill -9 de tous les pid en question
    En pratique , j’ai réussi lors d’une erreur de mon script, à savoir que j’ai tué des processus qui n’étaient ( a oriori* ) pas uniquement les fils du virus.
    *je ne le saurai pas sauf à refaire la manip, j’ai toujours à disposition le virus et je peux donc le relancer, mais c’est une autre histoire qui attendra de nouveau temps libre …

Pour info le script ‹ erroné › était le suivant :

for cpid in $(ps -efx | grep 'LOGNAME=root P' | awk '{print $1}')
    do
       echo $cpid
       echo "killing: $(ps -p $cpid -o cmd=)"
       kill -9 $cpid > /dev/null 2>&1
    done

— retour de chkrootkit :

ROOTDIR is `/'
Checking `amd'...                                           not found
Checking `basename'...                                      not infected
Checking `biff'...                                          not found
Checking `chfn'...                                          not infected
Checking `chsh'...                                          not infected
Checking `cron'...                                          not infected
Checking `crontab'...                                       not infected
Checking `date'...                                          not infected
Checking `du'...                                            not infected
Checking `dirname'...                                       not infected
Checking `echo'...                                          not infected
Checking `egrep'...                                         not infected
Checking `env'...                                           not infected
Checking `find'...                                          not infected
Checking `fingerd'...                                       not found
Checking `gpm'...                                           not found
Checking `grep'...                                          not infected
Checking `hdparm'...                                        not infected
Checking `su'...                                            not infected
Checking `ifconfig'...                                      not infected
Checking `inetd'...                                         not infected
Checking `inetdconf'...                                     not infected
Checking `identd'...                                        not found
Checking `init'...                                          not infected
Checking `killall'...                                       not infected
Checking `ldsopreload'...                                   not infected
Checking `login'...                                         not infected
Checking `ls'...                                            not infected
Checking `lsof'...                                          not infected
Checking `mail'...                                          not infected
Checking `mingetty'...                                      not found
Checking `netstat'...                                       not infected
Checking `named'...                                         not found
Checking `passwd'...                                        not infected
Checking `pidof'...                                         not infected
Checking `pop2'...                                          not found
Checking `pop3'...                                          not found
Checking `ps'...                                            not infected
Checking `pstree'...                                        not infected
Checking `rpcinfo'...                                       not infected
Checking `rlogind'...                                       not found
Checking `rshd'...                                          not found
Checking `slogin'...                                        not infected
Checking `sendmail'...                                      not infected
Checking `sshd'...                                          not infected
Checking `syslogd'...                                       not tested
Checking `tar'...                                           not infected
Checking `tcpd'...                                          not infected
Checking `tcpdump'...                                       not infected
Checking `top'...                                           not infected
Checking `telnetd'...                                       not found
Checking `timed'...                                         not found
Checking `traceroute'...                                    not infected
Checking `vdir'...                                          not infected
Checking `w'...                                             not infected
Checking `write'...                                         not infected
Checking `aliens'...                                        no suspect files
Searching for sniffer's logs, it may take a while...        nothing found
Searching for rootkit HiDrootkit's default files...         nothing found
Searching for rootkit t0rn's default files...               nothing found
Searching for t0rn's v8 defaults...                         nothing found
Searching for rootkit Lion's default files...               nothing found
Searching for rootkit RSHA's default files...               nothing found
Searching for rootkit RH-Sharpe's default files...          nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
Searching for suspicious files and dirs, it may take a while... The following suspicious files and directories were found:  
/usr/lib/jvm/.java-1.6.0-openjdk-amd64.jinfo /usr/lib/pymodules/python2.6/.path /usr/lib/pymodules/python2.7/.path

Searching for LPD Worm files and dirs...                    nothing found
Searching for Ramen Worm files and dirs...                  nothing found
Searching for Maniac files and dirs...                      nothing found
Searching for RK17 files and dirs...                        nothing found
Searching for Ducoci rootkit...                             nothing found
Searching for Adore Worm...                                 nothing found
Searching for ShitC Worm...                                 nothing found
Searching for Omega Worm...                                 nothing found
Searching for Sadmind/IIS Worm...                           nothing found
Searching for MonKit...                                     nothing found
Searching for Showtee...                                    nothing found
Searching for OpticKit...                                   nothing found
Searching for T.R.K...                                      nothing found
Searching for Mithra...                                     nothing found
Searching for LOC rootkit...                                nothing found
Searching for Romanian rootkit...                           nothing found
Searching for Suckit rootkit...                             nothing found
Searching for Volc rootkit...                               nothing found
Searching for Gold2 rootkit...                              nothing found
Searching for TC2 Worm default files and dirs...            nothing found
Searching for Anonoying rootkit default files and dirs...   nothing found
Searching for ZK rootkit default files and dirs...          nothing found
Searching for ShKit rootkit default files and dirs...       nothing found
Searching for AjaKit rootkit default files and dirs...      nothing found
Searching for zaRwT rootkit default files and dirs...       nothing found
Searching for Madalin rootkit default files...              nothing found
Searching for Fu rootkit default files...                   nothing found
Searching for ESRK rootkit default files...                 nothing found
Searching for rootedoor...                                  nothing found
Searching for ENYELKM rootkit default files...              nothing found
Searching for common ssh-scanners default files...          nothing found
Searching for suspect PHP files...                          nothing found
Searching for anomalies in shell history files...           nothing found
Checking `asp'...                                           not infected
Checking `bindshell'...                                     not infected
Checking `lkm'...                                           chkproc: nothing detected
chkdirs: nothing detected
Checking `rexedcs'...                                       not found
Checking `sniffer'...                                       lo: not promisc and no packet sniffer sockets
eth0: PACKET SNIFFER(/usr/sbin/ntop[2798])
Checking `w55808'...                                        not infected[/size]
Checking `wted'...                                          chkwtmp: nothing deleted
Checking `scalper'...                                       not infected
Checking `slapper'...                                       not infected
Checking `z2'...                                            chklastlog: nothing deleted
Checking `chkutmp'...                                       chkutmp: nothing deleted
Checking `OSX_RSPLUG'...                                    not infected

Tu peux m’envoyer le virus? Tu as mon adresse sur le site de clefagreg ( clefagreg.dnsalias.org/8.0/ )