Récupération du traffic HTTP d'une machine infectée

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

Récupération du traffic HTTP d'une machine infectée

Message par Malekal_morte » 30 juin 2007 17:09

Voici un tutorial qui vous explique comment récupérer le traffic http d'une machine infectée.
Le but étant de récupérer des URLS & fichiers infectieuses via un machine virtuelle.

Rappel, s'amuser à infecter sa machine pour voir ce que ça fait peut poser des problèmes de sécurité (récupération de mot de passe etc..), cet article est destiné à un public averti

Introduction et prérequis

Vous devez avoir une machine virtuelle (ou un vrai PC) installé et configuré au niveau du réseau.
La machine hôte est soit un PC sous GNU/Linux, soit un PC sous Windows.

Dans ce tutorial, nous utiliserons comme exemple :
- une machine virtuelle avec l'adresse IP : 192.168.1.50/255.255.255.0
- la machine hôte aura l'IP : 192.168.1.4/255.255.255.0
- Un routeur qui partage la connexion.

Attention à bien faire attention durant les configurations réseaux, car il y a de grande chance que vous aillez une configuration plutôt du type 192.168.0.0/255.255.255.0

Ethereal

Pour récupérer le traffic de votre VM, vous pouvez installer Ethereal.
Ethereal est un analyseur réseau (sniffer) qui une fois installé sur votre VM permet de récupérer le traffic réseau et donc les urls auquelles votre VM se connectent.
Pour fonctionner Ethereal n'a besoin d'aucune modification du réseau. Il suffit d'installer Ethereal puis de lancer la capture du traffic pour cela cliquez sur le Menu Capture puis interfaces, cliquez sur capture sur l'interface sur laquelle vous désirez récupérer le traffic.

Pour arreter la capture du traffic, cliquez sur le bouton close.
Le traffic récupéré apparaît alors sous forme de liste. Il est alors possible de placer des filtres sur des protocoles, exporter le fichier en format TXT etc..

Voici un exemple de traffic récupéré par Ethereal :
Image

Le gros avantage d'Ethereal est donc qu'il ne necessite aucune modification de la configuration et qu'il s'installe facilement, néanmoins il présente deux inconvénients, à savoir :
- Etant donné qu'il est installé sur la machine infectée, il se peut qu'il ne puisse pas voir et donc récupéré le traffic réseau rootkité.
- il ne protège pas la VM de traffic comme l'envoi de mail de SPAM

Squid

Squid est un serveur proxy performent et libre.
Squid permet de pallier au deux inconvénients d'Ethereal.

En installant Squid sur la machine hôte et en passant le traffic HTTP de la VM via squid, il est alors possible de récupérer l'intégralité des connexions HTTP effectuées (rootkitées ou non).

Squid fonctionne sous GNU/Linux mais aussi sous Windows.

Installation de squid sous GNU/Linux

- Installer squid via le package de votre distribution
- Vous devez ensuite éditer le fichier de configuration, en général : /etc/squid/squid.conf - Voici un fichier de configuration (non commenté)

Code : Tout sélectionner

visible_hostname ubuntu
http_port 80 transparent

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
access_log /var/log/squid/access.log squid

dns_nameservers 80.10.246.2 80.10.246.129

hosts_file /etc/hosts
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl MonReseau src 192.168.1.0/255.255.255.0

acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT

acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access allow MonReseau
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access allow all

icp_access allow all

cache_effective_group proxy
coredump_dir /var/spool/squid
Les éléments suivants sont à modifier selon votre configuration:
- visible_hostname contient le nom réseau de votre machine hôte, vous pouvez récupérer le nom via la commande hostname.
- dns_nameservers contient les adresses des serveurs DNS de votre fournisseur d'accès
- acl MonReseau contient les adresses réseaux des machines qui pourront se connecter sur squid. Dans notre exemple (192.168.1.0/255.255.255.0) les machines dont les adresses vont de 192.168.1.1 à 192.168.1.254 pourront s'y connecter. Vous devez donc modifier les adresses en fonction de la plage réseau utilisée par votre VM.
- enfin coredump_dir est le chemin du cache squid.

Une fois la configuration modifiée, redémarrez squid via la commande : /etc/init.d/squid restart

Il n'y a plus qu'à tester, voir paragraphe plus bas.

Installation de squid sous Windows

- Vous pouvez récupérer squid à partir des mirrors suivants : http://www.acmeconsulting.it/SquidNT/download.html
- Il n'y a pas de programme d'installation, les dossiers de squid sont fourni dans une archive.
- Décompressez l'archive dans le dossier c:\squid
- Via le Bloc-note, créez le fichier C:\squid\etc\squid.conf puis copiez les éléments suivants :

Code : Tout sélectionner

visible_hostname nomdelamachinereseau
http_port 80 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
access_log C:/squid/var/logs/access.log squid
dns_nameservers 80.10.246.2 80.10.246.129
hosts_file c:/windows/system32/drivers/etc/hosts

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl MonReseau src 192.168.1.0/255.255.255.0

acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access allow MonReseau
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access allow all

icp_access allow all
cache_effective_group proxy
coredump_dir c:/squid/var/spool/
Les éléments suivants sont à modifier selon votre configuration:
- visible_hostname contient le nom réseau de votre machine hôte, vous pouvez récupérer le nom via la commande hostname dans un shell.
- dns_nameservers contient les adresses des serveurs DNS de votre fournisseur d'accès
- acl MonReseau contient les adresses réseaux des machines qui pourront se connecter sur squid. Dans notre exemple (192.168.1.0/255.255.255.0) les machines dont les adresses vont de 192.168.1.1 à 192.168.1.254 pourront s'y connecter. Vous devez donc modifier les adresses en fonction de la plage réseau utilisée par votre VM.
- hosts_file contient le chemin du fichier HOSTS Windows qui peut différer selon dans quel dossier Windows a été installé.

- Toujours dans le dossier C:\squid\etc, supprimez l'extension .default des fichiers cachemgr.conf mime.conf pour obtenir c:\squid\etc\cachemgr.conf et c:\squid\etc\mime.conf
- Créez le dossier c:\squid\var\spool\
- Ouvre un shell, déplacez vous dans le dossier C:\squid\sbin via la commande "cd \" puis "cd c:\squid\sbin"
- Tapez la commande squid -z qui va créer le cache
- Tapez la commande squid, si vous obtenez le message "abnormal program termination", c'est qu'un élément de la configuration est erronnée ou un répertoire mentionné est manquant. Vous pouvez consulter C:\squid\var\logs\cache.log ou C:\squid\var\logs\error.log pour obtenir plus d'informations.
- Si tout est OK, vous pouvez alors installer squid en service la commande "squid -i" (nom par défaut squid) ou "squid -i -n nomduservice"

Configuration Réseau VM et tests

Il convient ensuite de modifier la configuration réseau de votre VM.
Nous allons donc nous mettre en IP fixe (il y a des chances que vous soyez en DHCP).

Avant toute modification, suivez la procédure suivante.
- Menu Démarrer / executer et tapez cmd
- tapez la commande : ipconfig /all > c:\confreseau.txt
- Fermez les fenêtres
- Ouvrez le poste de travail, puis le fichier c:\confreseau.txt
- Gardez les informations réseaux ouvert.

Voici un exemple de configuration.. que je vais détailler plus bas.
Image

- Dans le champs Adresse IP et masque de sous-réseaux, ressaisissez les même adresses que celles obtenus dans le Bloc-Note.
- Laissez le champs passerelle vide.
- Dans le champs DNS, saisissez l'adresse de votre routeur.
- alidez toutes les fenêtres par le bouton OK.

Nous allons maintenant configurer les informations de connexion du proxy sur Internet Explorer.
- Ouvrez internet Explorer
- Menu Outils / Options Internet
- Cliquez sur l'onglet Connexions
- Cliquez sur le champs "Connexions réseaux"
- Dans le champs adresse, saisissez l'adresse IP de la machine hôte.
- Dans le champs port, saisissez 80
- Validez toutes les fenêtres par le bouton OK.

Vérifiez que vous pouvez surfer.
Si c'est le cas tout est OK !

Vous pouvez aussi vérifier que les connexions vers les serveurs d'envoi de mails (SMTP) ne sont pas possibles, afin lorsque votre VM sera infectée.. d'être certains que les malwares ne pourront pas envoyer de mails de SPAM. Pour cela :
- Menu Démarrer / executer et tapez cmd
- Dans la nouvelle fenêtre, tapez : telnet smtp.orange.fr 25
- Un message doit vous dire que la connexion a échoué.
Si vous obtenez l'encar suivante, c'est que la connexion a réussi dans ce cas, vérifiez votre connexion réseau (notamment la passerelle).
"Connected to smtp.orange.fr.
Escape character is '^]'.
220 mwinf2007.orange.fr ESMTP ABO **************************"


Exemple de récupération de traffic HTTP

Voici un exemple de récupération du traffic sur une VM en cours d'infection.

Du côté de la VM : Nous pouvons voir le site du rogue WinAntivirus Pro à l'origine de l'infection..
Dans la partie de droite, ProcessExplorer nous permet de visualiser les processus suspects en cours d'execution sur la machin.
Enfin en bas à droite, une fausse alerte indiquant que notre ordinateur est infecté afin de nous faire télécharger un rogue

Sur le log Squid : Nous voyons bien les sites défiler avec notamment en premier une url avec un fichier .anr, probablement l'exploitation de la faille ANI.
Image

Squid récupère donc bien le traffic HTTP durant l'infection de la VM.
Il est alors possible de vérifier si les fichiers infectieux sont bien détectés par les antivirus 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.


Malekal_morte
Site Admin
Site Admin
Messages : 95744
Inscription : 10 sept. 2005 13:57
Contact :

Récupération du traffic HTTP avec FiddlerCap

Message par Malekal_morte » 18 mars 2008 17:09

FiddlerCap est un programme de capture du traffic HTTP.
Ce dernier permet de récupérer et enregistrer tout le traffic WEB depuis une machine et reconsulter ultérieurement.

Vous pouvez télécharger le programme depuis ce lien : http://www.fiddlercap.com/dl/fiddlercapsetup.exe
Version avancée : http://www.fiddler2.com/fiddler2/
et le tutorial FiddlerCap : Fiddler : Monitorer le traffic HTTP

FiddlerCap s'appuye sur le Microsoft .NET Framework Version 2.0 qui doit être installé sur votre PC pour fonctionner.
ce dernier peut être téléchargé depuis ce lien : Microsoft .NET Framework Version 2.0. Dans tous les cas, l'installation de FiddlerCap vous proposera d'installer le .NET Framework s'il est manquant.

Pour lancer FiddlerCap, cliquez sur le menu Démarrer / Programmes puis FiddlerCap.

Pour lancer, la capture du traffic WEB, cliquez sur le bouton Start Capture
Image

A chaque connexion sur un site WEB, les adresses sur lesquelles vous vous connectez s'affichent sur FiddlerCap
Image

Une fois que vous avez récupéré le traffic HTTP qui vous interresse, vous pouvez stopper la capture en cliquant sur le bouton Stop Capture
Image

Il est ensuite possible d'enregistrer le log pour le reconsulter ultérieurement ou l'envoyer.
Cliquez sur le bouton Save Capture
Image

Choisissez le dossier dans lequel vous souhaitez enregistrer le log... par exemple, le bureau ou mes documents.
Image

Image

Le rapport est au format .zaz qui est un format de compression que la majorité des logiciels de compression savent exploiter (voir la page : Les fichiers compressés/Archives : Zip, Rar etc..)

Le rapport contient un répertoire raw et un fichier _index.hml
En double-clicquant dessus, le rapport s'ouvre sur le navigateur WEB.

Image
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.

Avatar de l’utilisateur
Contact75
Geek à longue barbe
Geek à longue barbe
Messages : 964
Inscription : 03 sept. 2007 18:22
Localisation : Partout et nulle part :-)

Re: Récupération du traffic HTTP d'une machine infectée

Message par Contact75 » 19 mars 2008 00:06

Juste un p'tit truc ; Ethereal s'appelle maintenant Wireshark (une sombre histoire de droits)
la dernière version de février 2008 se trouve ici

http://www.wireshark.org/

et pourtant la page Ethereal existe toujours mais avec une version qui date de mars 2006 :

http://www.ethereal.com/


Répondre

Revenir vers « Papiers / Articles »