OVH Cloud OVH Cloud

[friend.xms.exe] quelqu'un connait ?

31 réponses
Avatar
Oliviegntchik
salut a tous et a toutes.

au hasard d'une visite sur ce qui devait être une page perso, un popup
d'un genre un peu particulier est apparu.
pub pour friend.fr, genre envoyer des sms .
d'apres ce que j' ai cru comprendre, en fait le site visité est un site
d'un affilié qui installe cette salopperie.
jusque la rien d'extraordinaire.

mais sans que je comprenne encore pourquoi, un programme
[friend.xms.exe] s'est installé dans un repertoire c:\temp avec un tas
de choses.
rien de bien méchant, il change les couleurs des barres d'IE et de OE,
et puis se connecte pour recevoir des pubs.
creant uen sorte de proxy et voulant attribuer a ie des droits de
serveur comme le firewall le signale immediatement.
j' ai viré tout cela de la base de registre, fais mon nettoyage maison.
ca va.

avec un petit ini aussi :

[Setup Hooks]
hook1=hook1

[hook1]
run=%EXTRACT_DIR%\friend.xms.exe

[Version]
; This section is required for compatibility on both Windows 95 and
Windows NT.
Signature="$CHICAGO$"
AdvancedInf=2.0


j' ai pourtant tout passé a Ad-aware, spybot, kaspersky , le tout a jour
de ce jour.
rien. je reconnais que c'est pas un virus - a supposer que s'en soit
un - tres mechant, mais bon.

j' ai gardé le programme si quelqu'un veut y jeter un oeil ou me dire si
c'est nouveau ou pas.
si c'est connu.

merci.

10 réponses

1 2 3 4
Avatar
Roland Garcia

Tweakie wrote:
Plutôt oui. Paf. :-)

Ben il doit pas modifier que des clefs de la BdR. Il doit installer ses
propres
Dll et tout le tintouin, non ? Je te passe les :

.text:0040106B mov edi, ds:GetWindowsDirectoryA
[...]
.text:00401081 push offset aWininit_ini ;
"Wininit.ini"
.text:00401086 push eax
.text:00401087 call _strcat
.text:0040108C mov esi, ds:fopen
.text:00401092 lea eax, [ebp+var_324]
.text:00401098 push offset aR ; "r+"
[...]
.text:004010B4 push offset aW_0 ; "w+"
[...]
.text:004010C8 mov esi, ds:fputs
.text:004010CE push edi
.text:004010CF push offset aRename ; "[rename]n"



Il n'y a pas de wininit.ini sous 98, ce ne serait pas plutôt fait pour
Windows 2000/XP ça?


Si.

Le wininit.ini est destiné à empêcher l'effacement des fichiers.

La machin installe des fichiers de données, des dll et des exe (sans
oublier les copies):

C:WINDOWSSYSTEMmsvri.dll
C:WINDOWSSYSTEMSpOrder.dll
C:WINDOWSSYSTEMmsvrl.dll
C:WINDOWSSYSTEMmsvr.dll
C:WINDOWSTEMPxms.dat
C:WINDOWSTEMPxmshead.dat
C:WINDOWSTEMPsign.xms.exe
C:WINDOWSTEMPsign.xms.exe_CP
C:WINDOWSTEMPsigner.dll
C:WINDOWSTEMPsigner.dll_CP
C:WINDOWSTEMPmsvri.dll
C:WINDOWSTEMPmsvri.dll_CP
C:WINDOWSTEMPSpOrder.dll
C:WINDOWSTEMPSpOrder.dll_CP
C:WINDOWSTEMPmsvrl.dll
C:WINDOWSTEMPmsvrl.dll_CP
C:WINDOWSTEMPfriend.xms.exe
C:WINDOWSWininit.ini
C:WINDOWSWininit.new

Le winini.ini est destiné à recopier msvri.dll dans les fichiers
temporaires au démarrage. Mais il y a également wininit.new bien planqué
au cas où pour reconstituer msvrl.dll, msvri.dll et svri.dll si les
choses tournaient mal.

Roland Garcia


Avatar
AMcD
Bon, alors, voyons voir d'un peu plus près ! Nan, c'est vrai j'aime qu'on me
titille :-).

À l'exécution, l'animal crée/modifie/recherche/etc. ces clés dans la BR :

1) HKLMSoftwareFriendToolbar

Sans doute la configuration de sa barre d'outil.

2) HKLMSoftwareMicrosoftWABDLLPath

C'est l'endroit ou est stipulé la localisation de wab32.dll. WAB signifie
Windows Address Book. C'est la DLL qui permet à Outlook de gérer ses carnets
d'adresses/contacts.

3) HKLMSoftwareMicrosoftWindowsCurrentVersionUninstallFriendXMS

Il s'agit de l'entrée qui permet à cette application d'être désinstallée via
:

DémarrerParamètresPanneau de configurationAjout/Suppression de programmes

Elle y figurera avec le libellé : Friend.XMS Image Gratuit

4) HKLMSoftwareMicrosoftInternet explorerToolbar

C'est juste histoire de mettre un peu le bazar dans la barre d'outils d'IE
de l'explorateur et d'O/OE. En fait, l'animal va remplacer le fond
(généralement gris) de la barre d'outils, par une image de son cru. Il
suffit de regarder le contenu des données BackBitmapIE5 et BackbitmapShell.
Vu le bitmap, ce doit être graphiquement horrible :o).

5) HKCUSoftwareMicrosoftInternet ExplorerMain

Là, il modifie la page de démarrage de IE :

Start Page : http://www.friend.fr/idc/go.php?url«out:blank

6) HKCRCLISD{AC3AEF75-0A6B-4AB8-82B5-2C9BA8396644}

Hé, hé. Le petit malin ! Bon, pour ce qui ne connaisse pas, tiré de la doc
de Microsoft :

« Registers a 32-bit in-process server and specifies the threading model of
the apartment the server can run in. »

D'ailleurs, voici un lien utile à tous les RE :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/reg_5n8y.asp

Bah ! Vu le type d'application, je ne vois rien d'anormal à ce qu'il
installe un serveur ! C'est quand même le moyen le plus connu pour
envoyer/recevoir des infos :o).

Il y a d'autres trucs du même tonneau. Et des petits trucs bizarres. Par
exemple :

Création de deux fichiers temporaires :

- xms.dat
- xmshead.dat

dans le sous-répertoire temp de l'utilisateur courant. Il s'agit
visiblement d'exécutables et d'en-tête d'exécutable camouflés. Peut-être des
données permettant de créer à la volée :

- signer.dll
- msvri.dll
- SpOrder.dll

Noter les ruses orthographiques. Normalement :

- SIGNER.DLL est la « Authenticode Signing Interface » de Microsoft. Bon, c'
est la DLL qui permet « d'exécuter » les signatures lors d'authentification.
Cela cause donc de la SPC et visiblement le prog a besoin de SA version de
signer.dll. Une ancienne version ? Une version permettant d'exploiter une
faille ? Heu, faudrait chercher.

Un lien pour hackers en herbe :
http://www.hackemate.com.ar/ezines/2020hacker/2020Hacker5/2020hac5.htm
Un plus sérieux :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/cryptography_tools.asp

- sporder.dll : Normalement, il s'agit de la « WinSock2 reorder service
providers ». D'après nos amis de Kro :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/transport_configuration_and_installation_2.asp

« Sporder.dll, that exports a procedural interface for reordering
protocols. ».

Avançons qu'il doit s'agir de quelque chose ayant à voir avec le protocole
pour envoyer les SMS. Je ne pense pas qu'il soit présent par défaut et il
faut bien l'installer en sur(sous)-couche de Winsock.

La troisième DLL, msvri.dll semble plus bizarre. Il s'agit d'une DLL
propriétaire. À mon humble avis, elle sert au démarrage/arrêt du serveur.
Elle possède 5 fonctions exportables dont DllRegisterServer et
DllUnregisterServer.

Ce prog n'est pas avare en création de fichiers ! On trouve plein de
fichiers dans temp :

- friend.europe.frd
- friend.id.com
- un raccourci
- etc.

Bon. C'est vraiment un peu le fouilli ! De plus ce n'est pas programmé top
niveau hein. Comme d'habitude.
Alors.

1) Je pense que tous ces petits fichiers épars servent surtout à
reconstituer certaines parties, au cas où.
2) Visiblement, une fois désinstallé, il ne reste pas grand-chose dans la
BR.
3) Pour le reste, je ne vois pas (certes, faudrait pousser un peu plus loin)
de choses bien dramatiques. Je veux dire par là pour ce genre de logiciel.
4) Note pour Joke0. Les exécutables ont leur code traditionnellement rangé
dans une section appelé .txt. Du moins avec les compilos Microsoft.
5) Note pour Tweakie.

WABOpen() permet d'accéder au carnet d'adresse.
MAPISendMail envoie le mail :o).

Bah visiblement les contacts à qui t'envoie les SMS sont ceux du carnet d'
adresse. Qu'est-ce qu'il y a de malsain ?

De plus j'ai déjà donné ici le détail des calculs pour interpréter les
timestamps. Déçu je suis.

Franchement, je ne pense pas qu'il y ait lieu de fouiller plus dans cette
daube. Mais bon, sait-on jamais...

--
AMcD

http://arnold.mcdonald.free.fr/
http://amcd.diablo.free.fr/
Avatar
AMcD
J'avais oublié ! MSRVI se désinstalle aussi via la manière légale :o).

Mais en fait, il semble que plein de traces subsistent par ci, par là dans
la BR ou sur le disque. Je pense qu'il faut nettoyer la BR de toutes les
entrées FriendXMS à la main (il doit rester plein de clés). Pareil pour
msrvi.

Sur le disque, semble rester msrvi.dll, msvrl.dll, etc. Bref, une belle
pagaille ce truc !

--
AMcD

http://arnold.mcdonald.free.fr/
http://amcd.diablo.free.fr/
Avatar
Nicob
On Wed, 10 Dec 2003 22:41:51 +0100, Tweakie wrote:

Il est vraissemblable que la version la plus recente est l'"officielle",
mais je suis sur qu'une bonne ame me rappellera comment interpreter le
timestamp present dans l'entete des executables...


========================================================== :~/bin/ > cat pe_find_date.pl
#!/usr/bin/perl

# read-pe-timestamp.pl
# by Joe Stewart
# usage: ./read-pe-timestamp.pl <PE file>
# tested on Linux; Win32 users may need to add binmode()

use strict;

my $filename = $ARGV[0];
my $now = time;
my $old = 800000000;
die "Usage: $0 <PE file>n" unless $filename;
open(IN, $filename) or die "Couldn't open $filename : $!n";
for (0..255) {
my $dword;
read(IN, $dword, 4);
next unless $dword eq "PEx00x00";
read(IN, $dword, 4);
read(IN, $dword, 4);
my $t = unpack("N*", reverse($dword));
my $time = localtime($t);
print "$filename was compiled on $timen";
print "(Probably erroneous)n" if ($t >= $now || $t <= $old);
close IN;
exit;
}
close IN;
print "Could not find PE header in $filename.n";
==========================================================
:~/bin/ > ./pe_find_date.pl ../friend.xms.exe
../friend.xms.exe was compiled on Tue Dec 9 16:13:55 2003


Nicob

Avatar
Oliviegntchik
AMcD enrichissait fr.comp.securite.virus de sa prose :

J'avais oublié ! MSRVI se désinstalle aussi via la manière légale
:o).

Mais en fait, il semble que plein de traces subsistent par ci, par
là dans la BR ou sur le disque. Je pense qu'il faut nettoyer la BR
de toutes les entrées FriendXMS à la main (il doit rester plein de
clés). Pareil pour msrvi.

Sur le disque, semble rester msrvi.dll, msvrl.dll, etc. Bref, une
belle pagaille ce truc !



du très beau travail . j'ai appris plein de trucs grace à vous tous.
sinon j' ai voulu faire des bricolages a la main sur les dll et j'ai
foutu encore plus le bordel :)

msrvi par exemple.
quand j' ai voulu supprimé tout ca, de windows c'etait pas possible.
alors j'ai viré le tout à la main et la plus de connection internet.
doit installer une sorte de proxy mais j'ai rien trouvé .
du coup j'ai du reinstallé le virus pour refaire marcher le tout et de
nouveau virer les trucs les plus visibles en en virant moins cette
fois.

en clair je sais pas faire tourner une connection sans passer par leur
proxy mais je trouve pas comment le virer.
si quelqu'un a une idee , je prends :)

c'est pas mortel, mais c'est chiant !
salut a tout le monde pour vos explications et details sur ce truc.

Avatar
Frederic Bonroy
Roland Garcia wrote:

Il n'y a pas de wininit.ini sous 98, ce ne serait pas plutôt fait pour
Windows 2000/XP ça?



Si.


Ah oui oui, si je me souviens bien certains antivirus s'en servent pour
"nettoyer" indirectement des fichiers infectés.


Avatar
Gribouille
Bonjour,

Du message:,
de Roland Garcia , j'ai retenu le ou les
passage(s) suivant(s) :
aRename ;
| Le wininit.ini est destiné à empêcher l'effacement des fichiers.

Jusqu'à présent, je croyais que le wininit.ini était utilisé par
wininit.exe pour remplacer des fichiers qui ne pouvaient l'être 'à
chaud' lors d'une correction ou d'une mise à jour (re-boot nécessaire).
Cela permettait également de modifier 'artificiellement' (par une
astuce) le vmm32.vxd. Mais sur XP depuis bientôt 2 ans (sans écran bleu
!), j'ai 'un peu' oublié la procédure.
--
Gribouille
Avatar
AMcD
Salut.

MSRVI se désinstalle "à la régulière", comme FriendXMS. Nettoie ensuite les
traces dans la base de registres, les dll qui restent dans
c:windowssystem32 et les répertoires temporaires.

--
AMcD

http://arnold.mcdonald.free.fr/
http://amcd.diablo.free.fr/
Avatar
AMcD
Rajoutons :

<3f749899$0$27015$

--
AMcD

http://arnold.mcdonald.free.fr/
http://amcd.diablo.free.fr/
Avatar
Roland Garcia

Bonjour,

Du message:,
de Roland Garcia , j'ai retenu le ou les
passage(s) suivant(s) :
aRename ;
| Le wininit.ini est destiné à empêcher l'effacement des fichiers.

Jusqu'à présent, je croyais que le wininit.ini était utilisé par
wininit.exe pour remplacer des fichiers qui ne pouvaient l'être 'à
chaud' lors d'une correction ou d'une mise à jour (re-boot nécessaire).


C'est son usage normal et habituel. Dans notre cas il remplace au
démarrage le fichier existant déjà (inutile) ou effacé par
l'utilisateur.


Roland Garcia

1 2 3 4