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à ) 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 :
- Sécuriser et comprendre ( ne pas refaire une ‘bête’ installation )
- Remettre en état
- Idéalement riposter ( tes réflexions personnelles concernent cette étape )
AnonymousCoward
- 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.
- 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 ).
- 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 , 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:
- 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
- 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.
-
virus présent mais en quarantaine ( iptables, soft de surveillances de fran.b, … )
-
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 )
-
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/ )