3 Mayıs 2009 Pazar

Wireshark&BitTorrent

Evet arkadaşlar bugünkü konumuz wireshark ve torrent(Torrent trafiği desem daha doğru:).Öncelikle size torrentin çalışma prensibini anlattıktan sonra elimden geldiğince torrent trafiğini nasıl gözlemleyebileceğinizi anlatacağım.

BitTorrent

BitTorrent hepimizin bildiği gibi dosya transferleri için düzenlenmiş olan protkollerden biridir. Doğasında peer to peer bulunan bu protokol kullanıcıları direk olarak birbirlerine bağlar ancak arada tracker diye adlandırılan aksiyonları koordine eden bir server vardır.Bu trackerın sadece bağlantıları kontrol etme yetkisi bulunur gönderilen ya da alınan dosyaların içeriği görmesine izin verilmez.

Wireshark Analizi:)

Bir bakalım burada şu anlık neler yapabiliriz. Şimdilik sadece size anlatabileceğim torrent trafiğini görebilmek ve torrentin hangi adres ve program kullanılarak indirildiğini bulabilmektir.
Öncelikle wireshark programımızı açalım ve paket yakalamaya başlayalım.Daha sonra indirmek istediğimiz torrenti indirmeye başlayalım.Bir anda ekranınızda bir sürü paket dolmaya başlayacaktır.Filter kısmına gidip bu paketleri nispetende olsa biraz indirebiliriz. Ayrıca bize lazım olan paketler torrent olanlar ne de olsa.Bu yüzden filter kısmına bittorrent yazıp apply düğmesine basalım.Artık sadece torrent trafiğini izliyoruz. Karşımıza hemen 4-5 satır boyunca handshaking işlemleri çıkıyor.Bilgisayar-Server arasındaki ve data nın alınacağı kişi arasındaki bağlantı sağlanıyor. Buradan sonra requestler ve pieces lar başlıyor.Bunlarda zaten data yı indirmeye başladığımızın alameti:).
Eh biraz zaman geçtikten sonra dosyamız iniyor.Paket kalabalığını kaldırmak için stop düğmesine basıyoruz.Filter kısmına tcp yazıyoruz ve burada biraz arama zahmetine katlanarak info kısmında sso-service ile başlayan satırı buluyoruz. Şimdi bu satır üzerinde sağ tuş tıklayıp follow tcp stream yolunu izledikten sonra artık indirilen adres ve program da karşınızda.Şimdilik bu kadar bende bu protokol hakkında daha fazla şey öğrendikçe sizlere aktarmaya devam edeceğim.

BitTorrent Filter's
Field name
Type
Description
Versions
bittorrent.azureus_msg
None
Azureus Message
0.99.0 to 1.0.7
bittorrent.bdict
None
Dictionary
0.99.0 to 1.0.7
bittorrent.bdict.entry
None
Entry
0.99.0 to 1.0.7
bittorrent.bint
Signed 32-bit integer
Integer
0.99.0 to 1.0.7
bittorrent.blist
None
List
0.99.0 to 1.0.7
bittorrent.bstr
String
String
0.99.0 to 1.0.7
bittorrent.bstr.length
Unsigned 32-bit integer
String Length
0.99.0 to 1.0.7
bittorrent.info_hash
Byte array
SHA1 Hash of info dictionary
0.99.0 to 1.0.7
bittorrent.jpc.addr
String
Cache Address
0.99.0 to 1.0.7
bittorrent.jpc.addr.length
Unsigned 32-bit integer
Cache Address Length
0.99.0 to 1.0.7
bittorrent.jpc.port
Unsigned 32-bit integer
Port
0.99.0 to 1.0.7
bittorrent.jpc.session
Unsigned 32-bit integer
Session ID
0.99.0 to 1.0.7
bittorrent.length
Unsigned 32-bit integer
Field Length
0.99.0 to 1.0.7
bittorrent.msg
None
Message
0.99.0 to 1.0.7
bittorrent.msg.aztype
String
Message Type
0.99.0 to 1.0.7
bittorrent.msg.bitfield
Byte array
Bitfield data
0.99.0 to 1.0.7
bittorrent.msg.length
Unsigned 32-bit integer
Message Length
0.99.0 to 1.0.7
bittorrent.msg.prio
Unsigned 8-bit integer
Message Priority
0.99.0 to 1.0.7
bittorrent.msg.type
Unsigned 8-bit integer
Message Type
0.99.0 to 1.0.7
bittorrent.msg.typelen
Unsigned 32-bit integer
Message Type Length
0.99.0 to 1.0.7
bittorrent.peer_id
Byte array
Peer ID
0.99.0 to 1.0.7
bittorrent.piece.begin
Unsigned 32-bit integer
Begin offset of piece
0.99.0 to 1.0.7
bittorrent.piece.data
Byte array
Data in a piece
0.99.0 to 1.0.7
bittorrent.piece.index
Unsigned 32-bit integer
Piece index
0.99.0 to 1.0.7
bittorrent.piece.length
Unsigned 32-bit integer
Piece Length
0.99.0 to 1.0.7
bittorrent.protocol.name
String
Protocol Name
0.99.0 to 1.0.7
bittorrent.protocol.name.length
Unsigned 8-bit integer
Protocol Name Length
0.99.0 to 1.0.7
bittorrent.reserved
Byte array
Reserved Extension Bytes
0.99.0 to 1.0.7

0 yorum:

Yorum Gönder