AccueilFAQStatistiquesDiversContact

Sécurité : Windows : spamMonitor

spamMonitor est un programme qui vous permet de détecter si votre ordinateur envoie des spams, notamment dans le cas où celui-ci serait infecté par un virus/rootkit. Il vous alerte lorsqu'un logiciel tente d'envoyer un email ou d'établir une connexion SMTP sortante depuis votre PC et vous donne toutes les informations relatives à ce programme.
Entièrement écrit en langage machine/assembleur, il est rapide, compact (seulement 20 Ko) et très peu gourmand en ressources système. Il est gratuit, distribué sous licence GPL et son code source est aussi disponible en téléchargement.


Dernière version : v0.20 (10-09-2008)



Installation :

spamMonitor se compose d'un seul et unique fichier : spammon.exe
Vous pouvez l'installer dans n'importe quel répertoire ou dossier de votre odinateur. Il ne modifie aucun fichier de votre système et ne rajoute aucune entrée dans la base de registre. Il créé simplement un fichier log (c:\spammon.log) où seront enregistrés les détails des connexions détectées en plus de vous les afficher à l'écran.

Désinstallation :

Pour le désinstaller, il suffit de détruite spammon.exe et le fichier log.

Lancement :

Lors de son lancement, spamMonitor affiche une boîte de dialogue en bas à droite de l'écran :




Cliquer sur le bouton [OK] pour minimiser spamMonitor dans la zone de notification de la barre des tâches. L'icône indique qu'il est actif et surveille toutes les connexions sortantes de votre PC :

Si vous souhaitez restaurer la boîte de dialogue, cliquez sur son icône et sélectionnez [Ouvrir] :




Important : il vous est conseillé, à ce stade, de tester son efficacité tout simplement en envoyant un email avec votre logiciel de messagerie. spamMonitor devrait vous alerter de cet envoi.


Détections et alertes :

Lorsque spamMonitor détecte qu'un logiciel est en train d'établir une connexion SMTP*, sa boîte de dialogue apparaît immédiatement accompagnée d'une alerte sonore :

Il vous affiche dans la fenêtre du haut les connexionx SMTP* en cours, et dans celle du bas les connexions SMTP* terminées.
Dans les connexions en cours, il indique le nom du programme, l'adresse IP distante où ce programme se connecte ainsi que l'état de cette connexion. Dans la fenêtre des connexions terminées, il indique en plus l'heure à laquelle ces connexions ont été établies.

*SMTP (Simple Mail Transfer Protocol) est le protocle utilisé pour envoyer un email en se connectant au port 25 du serveur de messagerie distant.


Fichier log :

Pour chaque alerte, les indications affichées dans la boîte de dialogue sont aussi enregistrées dans un fichier log : c:\spammon.log
Vous pouvez afficher le contenu de celui-ci à tout moment en cliquant sur [Voir] :

Le fichier contient toutes les informations vues ci-dessus et un champ supplémentaire, le PID du programme. Il s'agit de l'identifiant du processus (Process ID) que vous pouvez aussi retrouver dans le Gestionnaire de Tâches de Windows (taskmgr.exe) et pouvant être utile pour détecter les programmes/virus/rootkits les plus coriaces.
A noter qu'à chaque lancement, spamMonitor écrase le précedent fichier log si celui-ci existe.




Forcer l'arrêt d'un programme :

Le bouton [Kill !] vous permet de terminer immédiatement un programme qui se trouve dans la fenêtre "Connexion SMTP actives".
Si vous suspectez un programme malveillant d'envoyer des spams, sélectionnez-le dans la liste puis cliquez sur le bouton :

Attention : comme son nom l'indique, cette option ne laisse aucune chance au programme, donc assurez-vous de ne pas vous tromper !

spamMonitor vous informera du succès ou de l'échec de l'opération :


A noter que l'envoi d'un email étant en général très rapide, il y a de fortes chances pour que le programme effectuant cet envoi n'apparaisse qu'un très brèf instant dans la fenêtre des connexions actives et qu'il ne soit pas facile d'agir à temps. Cependant, l'essentiel est de pouvoir le retrouver grâce à son nom enregistré par spamMonitor pour pouvoir le détruire.


Autres options :

La case à cocher en bas à gauche de la boîte de dialogue permet de désactiver l'alerte interne de spamMonitor et de la remplacer par un simple bip plus discret :




Téléchargement :

  • spamMonitor v0.20 (10-09-2008) : spammon.zip - 23 Ko
  • - Compatibilité : Windows XP, XP + SP1, XP + SP2, Vista, Windows Server 2003 & 2008
    - Licence : GPL

  • Code Source : spammon_020_src.zip - 27 Ko- ( voir le fichier spammon.asm )
  • - Langage : Assembleur (Tasm32)





    Autres articles :

  • Anti-spam : les services abuse des hébergeurs enfin soulagés
  • Anti-spam : comment se débarasser des spams de referer
  • Anti-spam : comment plomber les spambots
  • Anti-spam : comment protéger son blog des spams de commentaires
  • Sécurité : Linux : blinder les ports de son serveur
  • Sécurité : Linux : mise à jour de son serveur
  • Sécurité : Linux : créer une clé USB bootable
  • Sécurité : Linux : encrypter sa clé USB
  • Sécurité : Linux : utiliser iptables pour bloquer les chaines de caractères
  • Commentaires (3)

    De : Vassili
    Le : 5-Janv-2009 à 22:46:42

    bonjour et merci pour le code source en assembler ! c'est génial de voir qu'il y a encore des gens qui n'aiment pas gacher les octets et préferent même sous vista coder en assembler plutot qu'en horrible visual basic
    je me suis mis a ce langage il y a 6 mois et j'avance pas mal mais j'aimerais poser 2 petites questions:
    -pourquoi tasm au lieu de masm? y a t'il une raison? tasm est-il mieux?
    -quel debugger utilisez-vous?

    ps: est-ce que ce ne serait pas mieux si le fichier spamon.log n'était pas écrasé a chaque démarrage?

    De : spamCle@ner
    Le : 6-Janv-2009 à 09:03:52

    Bonjour.
    Je n'utilise pas Masm32 par simple goût : je trouve qu'il a une syntaxe moche et 'fasciste' !
    Pour les debuggers, je n'en utilise pas puisque je suis sous Linux et code sous VirtualBox donc la virtualisation n'est pas toujours idéale pour du deboggage poussé. Il y avait l'excellent SoftICE de Compuware (ex-Numega) mais ils ont arrêté son développement. Il était fantastique pour debugger en ring0 (drivers) puisqu'il se chargeait au démarrage. Il me semble qu'il pouvait fonctionner sous VMware. Pour une simple application comme spamMonitor, vous avez le bon vieux debugger de Tasm (td.exe 16-bit et td32.exe 32-bit) au look 'Turbo Vision' sinon il y a Olydebug qui devrait bien faire l'affaire.
    Quant au fichier log, je pense aussi que ce serait mieux s'il n'était pas systématiquement détruit à chaque lancement, mais en attendant une nouvelle version, vu que vous apprenez l'Assembleur vous pouvez le faire vous-même

    Il faut tout d'abord créer une structure OVERLAPPED dans le fichier 'spammon.w32const' :

      OVERLAPPED struc
    Internal dd ?
    InternalHigh dd ?
    Offset dd ?
    OffsetHigh dd ?
    hEvent dd ?
    OVERLAPPED ends

    Rajouter dans spammon.asm la référence à cette structure dans la section '.data' :
      ovl  OVERLAPPED <?,?,0ffffffffh,-1,?>

    Pour info, 0xffffffff correspond a FILE_WRITE_TO_END_OF_FILE.

    Ensuite, modifier l'appel à CreateFileA vers la ligne 280, en changeant le flag CREATE_ALWAYS (0x2) par un OPEN_ALWAYS (0x4) :
      push     0
    push 80h
    push 4 ; <= ici
    push 0
    push 1
    push 40000000h
    push offset logFile
    call CreateFileA

    Puis modifier les appels a WriteFile pour y inclure la référence à la structure OVERLAPPED en modifiant le paramètre pOverlapped :

    - vers la ligne 290 :
      push     offset ovl             ; <= ici
    push offset bWritten
    push eax
    push offset logFileHeader
    push logFileHandle
    call WriteFile

    - vers la ligne 488, les 2 appels :
      push     offset ovl             ; <= ici
    push offset bWritten
    push 11
    push offset timeBuffer
    push logFileHandle
    call WriteFile
    call lstrlenA, offset outBuffer
    push offset ovl ; <= ici
    push offset bWritten
    push eax
    push offset outBuffer
    push logFileHandle
    call WriteFile

    - vers la ligne 897 :
      push     offset ovl               ; <= ici
    push offset bWritten
    push eax
    push offset logFileHeader
    push logFileHandle
    call WriteFile

    Puis il faudra supprimer le CR/LF de 'timeFormat' :
      timeFormat     db "hh:mm:ss",9,0

    Et et le mettre à la fin de 'stringFormat' :
      stringFormat   db '%s',9,'%i.%i.%i.%i',9,'[%hS]',9,'%i',13,10,0

    Et comme vous le dites, en Assembleur on ne gâche pas les octets : donc on réduit la taille du buffer 'timeBuffer' de 2 octets qui correspondent aux 2 octets enlevés de 'timeFormat' qui sont maintenant inutiles :
      timeBuffer     db 9 dup (0)

    Je pense que c'est tout ? Compilez et essayez !

    De : Vassili
    Le : 6-Janv-2009 à 19:43:33

    je viens de modifier le source et ca fonctionne parfaitement! je ne comprenais pas pourquoi la modification des retours à la ligne était nécessaire mais après compiltation avec et sans, son utilité est claire.
    je préfere tasm aussi pour la syntaxe.
    merci pour le nouveau code et aussi pour olydebug, je le trouve vraiment très inmpressionnant mais je n'ai pas encore eu le temps de faire le tour de toutes ses options.


    Poster un commentaire

    Nom :

    *Message (4 Ko maxi) :

    smileys