|
Rilevare il traffico di rete può essere utile in diversi contesti (buoni e
cattivi). Ho voluto elencare 4 approcci alla questione.
1) Tecnica Raw Sockets Questo esempio è tratto dai sorgenti
downloadabili da
www.thedelphimagazine.com; consente di selezionare una delle Network
Interfaces riconosciute dal sistema e sniffare il traffico di rete che passa per
la Network Interface in questione. Se ad esempio si seleziona la connessione ad
internet si possono vedere i dettagli delle navigazioni e quant'altro. Il tutto
gira intorno alle Winsock 2 ossia le api win32 per il networking implementate
nella dll ws2_32.dll
iplog.7z
2) Usare WinPCap con "Magenta Systems Internet Packet Monitoring
Components"
WinPCap (sviluppata dal politecnico di torino) è sicuramente la libreria di
network sniffing più usata (e ci sono dei più che buoni motivi di efficienza):
da Wireshark (ex Ethereal) a
Cain&Abel e così via, questa libreria
che consiste essenzialmente di un driver e di un set di dll per l'interazione
col driver in questione è tuttora il punto fermo nella realizzazione di
applicativi per il Network Sniffing; il suo utilizzo consente la rilevazione di
pacchetti tralasciati dall'approccio Raw Sockets discusso sopra, fornendo un
full network sniffing.
Installer (contenente driver + DLLs)
http://www.winpcap.org/install/default.htm
Development Kit (WpdPack) e Sorgenti di WinPCap (WpcapSrc)
http://www.winpcap.org/devel.htm
I Magenta Systems
Internet Packet Monitoring Components sono un package di componenti Delphi
che consentono di utilizzare WinPCap da Delphi; sono aggiornati a fine Ottobre
2005 e testati con la versione 3.1 di WinPCap, tuttavia il package (e
soprattutto i demo associati) funzia anche con la versione 4 (attualmente è in
beta la 4.1). [update - Marzo 2009]:
l'ultima versione (1.2 del 1 Settembre 2008) è costruita sulla versione corrente
di WinPCap ossia la 4.0.2. [/update] Parallelamente all'utilizzo di WinPCap, questi componenti
implementano anche la tecnica Raw Socket consentendo quindi di scegliere tra
l'una e l'altra. [update - Marzo 2009]: la
tecnica Raw Socket viene implementata utilizzando la
ICS (Internet Component Suite)
(ok con la v5 che è la release ufficiale corrente ma anche con le versioni più
recenti ossia v6 e v7).[/update]
[update - Marzo 2009] l'ultima versione (1.2 del
1 Settembre 2008) supporta tutte le versioni di Delphi dalla 6 alla 2009 ed è
stata testata sui sistemi Windows dal 2000 in su (inclusi anche gli ultimi Vista
e 2008). [/update]
3) Hook delle Winsock
Facendo api hooking sulle Winsock , è possibile intercettare le varie
connessioni di rete relative ai vari processi. Per un pò di divagazioni al
riguardo si può far riferimento all'articolo
http://pasotech.altervista.org/blogbest/Appsniffer.htm
Nell'articolo viene trattato lo User Mode Api Hooking sulle Winsock; vi sono
diversi modi per mappare la dll che implementa il Winsock Api Hooking nello
spazio di memoria del processo che si vuole tracciare: se ad esempio si vuole
sniffare ciò che fa Interne Explorer , la carta del
Browser Helper
Object è sempre valida.
4) Layered Service Provider
La prima volta che son venuto a conoscenza di questa tecnologia è stato nel
2001 dopo aver reversato il software p2p basato sulla rete FastTrack e
denominato iMesh: l'installer ti smerdava il pc con quantità non consentite di
trojan, etc... e tra questi almeno uno installava un Layered Service Provider.
Rimando a Google per approfondire l'argomento.
http://www.google.it/search?q=layered+service+provider
|