Les Forums

Les Forums

Les forums sont fermés. Ils restent présent pour consultation et archivage.
Vous pouvez désormais poser vos questions directement dans les commentaires en bas de chaque page du site.
Alors n'hésitez pas à participer

Ecouter toutes les sockets ouvertes

Bonjour !

Voilà, je cherche à faire un petit programme de filtrage de données, mais il y a plusieurs points qui m'empêchent de démarrer :

1/ Est-il possible de lister toutes les sockets ouvertes, et de les écouter de manière transparente ?

2/ Dois-je utiliser un genre de hook, mais fonctionnant aussi sur les applications sans interface graphique ?

3/ J'ai pas vraiment d'autres idées....

Pour info, je programme en C++ sous Windows. Le programme sera déclaré comme Service (avec les droits SYSTEM)

Merci d'avance pour vos réponses.
Bonjour,

1/ Oui, pour cela il faut basculer en mode promiscuous (axe tes recherches sur ce terme)

2/ Un hook ou un driver, ou au mieux une librairie comme Winpcap. (le fait que l'appli soit graphique ou pas n'a aucun rapport)

Concernant les droits, il faut bien sur que le service possède les droits suffisants.

++
Bonjour,
D'abord, merci pour ces réponses, je vais y regarder de plus près, mais :

1/ j'utilise une carte wifi intel 2200 => je crois que le mode promiscuous ne marche pas dessus

2/ Il m'avait semblé que les Win32Hooks ne marchaient que sur des applications graphiques (SetWindowsHook). Pour le driver, ça reste une solution mais un peu costaud à réaliser je pense.

Enfin, pour ce qui est de libpcap ça m'a l'air d'aller, je vais m'orienter sur cette solution.

@++
Bon, je viens de m'apercevoir que WinPCap ne sais pas bloquer un paquet...

Je vais quand même jeter un oeil à la source de la librairie histoire de voir si je peux pas modifier ça, ou au moins m'en inspirer....

Sinon, mon filtre ne servira pour le moment qu'à envoyer des alertes à un admin.
Re,

En fait, si tu veux partir sur les hooks, tu as plusieurs méthodes.

J'en connais deux, mais tu dois en avoir plus que ca:
- Hooker toutes les API winsock en modifiant le PE Header par exemple,
- Hooker les fonctions d'envoi / reception de winsock 2.

Niveau driver, tu as le NDIS et TDI qui sont deux mots clefs qui peuvent t'aider, mais effectivement je pense que c'est un peu costaud.

Il faudrait que je vérifie, mais il n'y a que 8 fonctions à hooker je crois (4 pour l'envoi et 4 pour le receive):
[list:0f4f2b9685]-send()
-recv()
-sento()
-recvfrom()
-WSASend()
-WSASenTo()
-WSARecv()
-WSARecvFrom.[/list:u:0f4f2b9685]

Toutes ces fonctions font appel à:
[list:0f4f2b9685]- WSPSend
- WSPSendTo
- WSPRecv
- WSPRecvFrom[/list:u:0f4f2b9685]

Donc tu n'as en gros que ces 4 là à hooker. 🙂
Bonjour,

je me permet de me joindre à votre discussion pour demander ces lumières à
4n4lyz3R.

Pense tu qu'il serrait possible de contourner la protection des raw socket de SP2 grace a des hooks ?

Pourrait-on d'apres toi, utiliser des hooks pour cree des raw socket winsock sur un XP SP2 ? 🙄
J'en doute, un hook a en effet pour but d'intercepter des appels, pas de modifier le fonctionnement d'une fonction appelée.

Par contre, au niveau de la limitation du SP2, je ne sais pas si:
- c'est contournable par regedit ou autre -> paramétrage/bidouille
- c'est modifiable -> reverse engineering

Il faudrait pour ca prendre beaucoup de temps pour savoir exactement de quoi il en retourne.
Ok merci pour ta reponse express :).
A ce propos y a t-il les même limitations des raw sockets sur Vista ?