Spambot : identifier une machine qui spam sur un réseau/LAN

Dans cette partie vous trouverez des papiers, articles sur l'informatique/sécurité.
Avatar de l’utilisateur
Malekal_morte
Site Admin
Site Admin
Messages : 85540
Inscription : 10 sept. 2005 13:57
Contact :

Spambot : identifier une machine qui spam sur un réseau/LAN

Message par Malekal_morte » 09 juil. 2010 16:34

Voici une page pour les problèmes de SPAMBOT dans les petits réseaux.
Il est arrivé d'avoir des posts où des PME ont reçu des mails de du FAI disant que leur IP spammer et que la connexion serait coupé si rien n'était fait.
Très souvent le réseau de ces PME est "simple" et pas sécurisé et aucune visibilité est possible (Les machines sont connectées à un switch et un routeur grand public pour sortir vers internet).

Cette page vous explique comment identifier quelle machine, ce sera à partir d'un CD Live GNU/Linux.

Principe

Le principe est de faire passer le traffic reseau sortant vers internet par une machine GNU/Linux afin d'analyser le traffic et de déterminer quelle machine spamme.

On partira du principe que vous disposez d'un PC Sous Windows, vous pouvez alors utiliser un CD Live GNU/Linux (attention vous perdez la configuration à chaque redémarrage).
* CD Live Ubuntu : live-recuperation-rescue-systeme-t35499.html#p405489
* Kaella : http://kaella.linux-azur.org/
ou vous pouvez installer une distribution ou utiliser une machine virtuelle.

On partira du principe aussi que la distribution utilisée est à base Debian, dans le cas où vous avez une distribution d'un autre type (Fedora, Gentoo), utilisez la documentation de la distribution pour adapter les commandes ou fichiers de conf mentionnés sur cette page.
(Typiquement si c'est une ubuntu il faut ajouter sudo devant chaque commande afin qu'elle soit executée en tant que root)

Voici un lien des commandes minimales.
Nous aurons aussi besoin des programmes : ngrep dig whois
vous pouvez l'installer à partir de la commande : apt-get install ngrep dig whois (dans le cas d'une distribution à base Debian).



La machine suivante fera office de machine infectée qui spamme - on voit ici les connexions SMTP :
Image
  • L'adresse de la machine infectée est : 192.168.1.27
  • L'adresse de la passerelle GNU/Linux est : 192.168.1.5
  • L'adresse du routeur est : 192.168.1.1
Dans les exemples-ci, l'interface réseau de la machine est eth0, si celle-ci est différente chez vous, adaptez les commandes données.

Image

Préparation de la machine GNU/Linux

Une fois la machine GNU/Linux démarrée, celle-ci doit être en DHCP, pour visualiser l'adresse IP, tapez la commande : ifconfig.

Si vous désirez assigner une adresse IP de votre choix, voici les commandes :
ifconfig eth0 192.168.1.5 netmask 255.255.255.0
<= assigne l'adresse ip 192.168.1.5 à l'interface eth0 avec le masque de sous réseau 255.255.255.0
route add default gw 192.168.1.1
<= ajoute la route passerelle vers l'adresse IP de votre routeur afin que la machine sorte par le routeur (route -N pour visualiser les routes).

On voit bien que la passerelle est 192.168.1.1 pour l'interface eth0
neptune:/home/malekalmorte/malware# route -N
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Enfin les fichiers la configuration DNS se fait dans /etc/resolv.conf
exemple pour rajouter les DNS de Wanadoo :
echo nameserver 80.10.246.2 > /etc/resolv.conf
nameserver 80.10.246.129 >> /etc/resolv.conf
Pour visualiser le contenu du fichier DNS :
neptune:/home/malekalmorte/malware# cat /etc/resolv.conf
nameserver 80.10.246.2
nameserver 80.10.246.129
Enfin, pour vérifier sir Internet fonctionne, vous pouvez effectuer un ping sur Google - exemple :
malekalmorte@MaK-tux:/tmp$ ping http://www.google.fr
PING http://www.l.google.com (66.249.92.104) 56(84) bytes of data.
64 bytes from 66.249.92.104: icmp_req=1 ttl=55 time=29.9 ms
64 bytes from 66.249.92.104: icmp_req=2 ttl=55 time=30.1 ms
^C64 bytes from 66.249.92.104: icmp_req=3 ttl=55 time=30.0 ms

--- http://www.l.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 10127ms
rtt min/avg/max/mdev = 29.991/30.066/30.125/0.055 ms
Ensuite nous devons configurer la machine GNU/Linux afin que celle-ci fasse du NAT, c'est à dire qu'elle partage la connexion Windows et que le trafic réseau passe par elle.
Iptables permet de cela (n'hésitez pas à faire des recherches Google, il y a bcp de documentations sur Iptables).

Il suffit de passer les commandes suivantes :
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Enfin vous devez configurer le réseau pour que tous les postes clients passent par la machine GNU/Linux pour sortir.
Il faut donc que tous les postes clients aient en passerelle l'adresse IP de la machine GNU/Linux.
Configurez le serveur DHCP en mettant donc l'adresse IP de la machine GNU/Linux en passerelle à la place du routeur actuel.

Avant de faire cela et impacter tout le réseau, vous pouvez eventuellement tester depuis un poste en modifiant la passerelle de ce dernier et vérifier qu'internaute est toujours fonctionnel.
Du côté de la machine GNU/Linux, si vous voulez vous assurer que le traffic de la machine passe bien par celle-ci, vous pouvez utiliser la commande :
conntrack -L
Par exemple ici, on voit que la machine 192.168.1.27 effectue des requêtes DNS (protocole udp - port 53) vers des machines distantes : 203.119.8.106 (nscache1.vnnic.net.vn)
udp 17 2 src=192.168.1.27 dst=203.119.8.106 sport=4835 dport=53 packets=1 bytes=75 [UNREPLIED] src=203.119.8.106 dst=192.168.1.27 sport=53 dport=4835 packets=0 bytes=0 mark=0 secmark=0 use=1
udp 17 16 src=192.168.1.27 dst=203.119.8.106 sport=4857 dport=53 packets=1 bytes=75 [UNREPLIED] src=203.119.8.106 dst=192.168.1.27 sport=53 dport=4857 packets=0 bytes=0 mark=0 secmark=0 use=2
udp 17 6 src=192.168.1.27 dst=203.119.8.106 sport=4841 dport=53 packets=1 bytes=75 [UNREPLIED] src=203.119.8.106 dst=192.168.1.27 sport=53 dport=4841 packets=0 bytes=0 mark=0 secmark=0 use=1
udp 17 21 src=192.168.1.27 dst=203.119.8.106 sport=4863 dport=53 packets=1 bytes=75 [UNREPLIED] src=203.119.8.106 dst=192.168.1.27 sport=53 dport=4863 packets=0 bytes=0 mark=0 secmark=0 use=1
Image

Si cela fonctionne, vous pouvez modifier la configuration DHCP.

Identifier la machine qui spamme

Toutes les machines clientes ont redémarré et utilisent comme passerelle votre machine GNU/Linux.
Il suffit maintenant de tracker les connexions vers le port 25 afin de visualiser les connexions SMTP effectuer par les machines clientes du LAN.

La commande conntrack -L|egrep "dport=25" permet de le faire.
Ce qui donne dans mon cas ceci, où l'on voit clairement les connexions SMTP :
Image

On voit bien que notre machine infectée (192.168.1.27) bourrinent au niveau des connexions SMTP :)

Les adresses IP n'étant pas parlante, pour avoir le reverse :
neptune:/home/malekalmorte/malware# dig -x 98.137.54.237

; <<>> DiG 9.5.1-P3 <<>> -x 98.137.54.237
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24765
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;237.54.137.98.in-addr.arpa. IN PTR

;; ANSWER SECTION:
237.54.137.98.in-addr.arpa. 1195 IN PTR mta-v1.mail.vip.sp2.yahoo.com.

;; Query time: 31 msec
;; SERVER: 80.10.246.2#53(80.10.246.2)
;; WHEN: Fri Jul 9 16:26:16 2010
;; MSG SIZE rcvd: 87
et un whois sur l'adresse IP donne les informations sur le réseau, le pays etc :
neptune:/home/malekalmorte/malware# whois 98.137.54.237

OrgName: Yahoo! Inc.
OrgID: YHOO
Address: 701 First Ave
City: Sunnyvale
StateProv: CA
PostalCode: 94089
Country: US

NetRange: 98.136.0.0 - 98.139.255.255
CIDR: 98.136.0.0/14
NetName: A-YAHOO-US9
NetHandle: NET-98-136-0-0-1
Parent: NET-98-0-0-0-0
NetType: Direct Allocation
NameServer: NS1.YAHOO.COM
NameServer: NS2.YAHOO.COM
NameServer: NS3.YAHOO.COM
NameServer: NS4.YAHOO.COM
NameServer: NS5.YAHOO.COM
Comment:
RegDate: 2007-12-07
Updated: 2009-05-18

RAbuseHandle: NETWO857-ARIN
RAbuseName: Network Abuse
RAbusePhone: +1-408-349-3300
RAbuseEmail: network-abuse@cc.yahoo-inc.com

RTechHandle: NA258-ARIN
RTechName: Netblock Admin
RTechPhone: +1-408-349-3300
RTechEmail: rauschen@yahoo-inc.com

OrgAbuseHandle: NETWO857-ARIN
OrgAbuseName: Network Abuse
OrgAbusePhone: +1-408-349-3300
OrgAbuseEmail: network-abuse@cc.yahoo-inc.com

OrgTechHandle: NA258-ARIN
OrgTechName: Netblock Admin
OrgTechPhone: +1-408-349-3300
OrgTechEmail: rauschen@yahoo-inc.com

# ARIN WHOIS database, last updated 2010-07-08 20:00
# Enter ? for additional hints on searching ARIN's WHOIS database.
#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at https://www.arin.net/whois_tou.html
#
On voit donc qu'ici la machine utilise un serveur Yahoo! comme serveur SMTP (ce que l'on constatait sur la capture initiale).

Dans votre cas, vous devriez identifier des connexions SMTP depuis plusieurs machines (selon la taille de votre réseau), une machine qui spamme doit effectuer plus de requêtes SMTP que les autres.

Il est aussi possible de visualiser ce qui passe en clair sur le réseau et donc de capter les mails, ce que fait la commande ngrep.
Pour voir le traffic SMTP :
ngrep port 25
si vous avez un doute sur une machine, vous pouvez restreindre l'écoute sur l'adresse IP de cette machine - ex :
ngrep host 192.168.1.27 and port 25
Ce qui donne dans le cas de notre machine infectée :
Image

On voit bien les connexions SMTP avec le contenu du mail qui passe et une belle URL .ru

Je me suis amusé à récupérer les mails de SPAM (comme je l'avais fait dans le cas du malware CutWail - cf : les-zombis-botnet-t1020.html#p153175 ).

Les mails sont identiques :

Image

Image

Bloquer les machines qui spamment et aller un peu plus loin

Voici quelques règles IPTABLES qui peuvent vous aider à bloquer les connexions SMTP.
Bloquer les connexions SMTP pour la machine qui spamment (mettre l'adresse IP de votre machine) :
iptables -I FORWARD -o eth0 -s 192.168.1.27 -p tcp --dport 25 -j DROP
Pour la supprimer :
iptables -D FORWARD -o eth0 -s 192.168.1.27 -p tcp --dport 25 -j DROP
Pour visualiser les règles Iptables :
iptables -L -n -v
Vous devez regarder la chaîne FORWARD dans notre cas.


Notez que l'outil iptraf peut permettre de visualiser les connexions établies avec le débit qui passe, ce qui peut dans certains cas s'avérer utile.

Image

Enfin l'installation d'un proxy WEB (type squid https://www.malekal.com/squid.php ) peut vous permettre de visualiser les pages WEB consultés et donc dans le cas d'une machine infectée, les connexions à son Command Center (C&C) typiquement, ce sont des pages PHP avec des informations renvoyés (id, version etc).

Si vous coupez les connexions au C&C le malware ne reçoit plus d'autres et il devient inactif.
Voir la page : PC Zombis/ Botnet

Exemples :

Code : Tout sélectionner

278756481.094    178 192.168.1.90 TCP_MISS/200 294 GET http://aahydrogen.com/yulgbvqk/vzdlfahpxe.php?adv=adv448&code1=LVP0&code2=7905&id=1353422705&p=1 - DIRECT/195.2.252.150 text/html
1278756481.301    170 192.168.1.90 TCP_MISS/200 294 GET http://aahydrogen.com/yulgbvqk/wnrltbvf.php?id=1353422705&p=1 - DIRECT/195.2.252.150 text/html

Code : Tout sélectionner

1278756523.229    384 192.168.1.90 TCP_MISS/200 372 GET http://buydiscountqbsoftware.com/no/getcmd.php?uid=386744&ver=2.03a - DIRECT/174.120.61.8 text/html
1278756632.647    822 192.168.1.90 TCP_MISS/200 297 GET http://antivirmore.com/loads2.php?r=75.3&pgid=2 - DIRECT/188.65.74.169 text/html

Code : Tout sélectionner

1278755486.077     91 192.168.1.96 TCP_MISS/200 345 GET http://oneysongs.info/dw/dw.php?id=&ver=d01 - DIRECT/94.75.233.171 text/html
1278755486.129     50 192.168.1.96 TCP_MISS/200 350 GET http://oneysongs.info/dw/dw.php?id=1CB201460BFF130&ver=d00&v=250510&er=S_wd_rd_wr_rr_we_re_wc_rc_ - DIRECT/94.75.233.171 text/html
Conclusion

En espérant que cette page a pû vous aider à identifier la machine responsable du SPAM.
Vous pouvez tenter la désinfection en suivant les instructions de la page suivante : https://www.malekal.com/Procedure_Desinfection_virus.php
ou poster sur le forum.
Sinon il reste le formatage.

GNU/Linux peut s'avérer utile pour sécuriser son réseau et avoir une meilleur visibilité (cette page était un maigre aperçu des possibilites qu'offre GNU/Linux) pour un coût faible (l'achet d'un boîtier firewall étant possible).
Pour aller plus loin, vous pouvez installer une machine GNU/Linux définitive et y configurer un firewall qui pourrait par exemple réduire le traffic SMTP aux serveurs de votre FAI.
Vous pouvez aussi y ajouter un Proxy filtrant type Squid : https://www.malekal.com/squid.php
etc.
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas

Sécuriser son ordinateur (version courte)

Tutoriels Logiciels - Tutoriel Windows - Windows 10

Stop publicités - popups intempestives
supprimer-trojan.com : guide de suppression de malwares

Partagez malekal.com : n'hésitez pas à partager sur Facebook et GooglePlus les articles qui vous plaisent.

Répondre

Revenir vers « Papiers / Articles »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité