MSN PROTOKOLÜNÜ ANALİZ ETMEK



Benzer belgeler
Bölüm3 Taşıma Katmanı. Transport Layer 3-1

INTEGER OVERFLOW ***************************************************************/

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

Ağ Protokolleri. Aysel Aksu. Nisan, 2016

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

LİNUX İŞLETİM SİSTEMİNİN KÖPRÜ MODUNDA ÇALIŞTIRILMASI VE GÜVENLİK DUVARI İŞLEMLERİ

MCR02-AE Ethernet Temassız Kart Okuyucu

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2. İçerik. IP ICMP MAC Tracert

FreeBSD Üzerinde VLAN Kullanımı

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2

Saldırı Tespit ve Engelleme Sistemleri Eğitimi Ön Hazırlık Soruları

FreeBSD Üzerinde VLAN Kullanımı

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

Bilgisayar Programcılığı

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Ayni sistem(host) üzerinde IPC. Ağ(network) aracılığı ile IPC

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

KÜTÜPHANE KAYNAKLARINA DIŞARIDAN (PROXY SUNUCU KULLANARAK) BAĞLANMAK İÇİN YAPILMASI GEREKENLER A. INTERNET EXPLORER KULLANICILARI İÇİN;

BİLGİSAYAR AĞLARI VE İLETİŞİM

VIDEOCELL API. Versiyon 1.0.0

DM-501 Tak-Çalıştır GPRS-UART Köprüsü

Dünyanın bilgisine açılan pencere... Ya da sadece yeni çağın eğlencesi...

Bölüm 12: UDP ve TCP UDP (User Datagram Protocol)

Yeni Nesil Ağ Güvenliği

Basit Bootstrap Uygulaması

Ağ Temelleri Semineri. erbil KARAMAN

Xpeech VoIP Gateway Konfigurasyon Ayarları

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

EC-100. Ethernet RS232/422/485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

ETA:MOBİL KURULUM TALİMATI

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

SERNET ET485CAS x2 RS485/RS422 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

Lisanslama Sistemi ve Set Yükleme İşlemleri

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

TELTONİKA ROUTER LARDA HABERLEŞME SÜREKLİLİĞİNİ SAĞLAYAN UYGULAMALAR

Free Cooling (Tibbo Ethernet Modüllü)

OSI REFERANS MODELI-II

Wireshark Lab: TCP and UDP

qmail ile SPAM engelleme Devrim Sipahi Dokuz Eylül Üniversitesi

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU

MaestroPanel Kurulum

Bilgisayar Sistemleri ilk ortaya çıktığında...

TC KİMLİK NO SMS GÖNDERİM XML API

Yrd. Doç. Dr. A. Burak İNNER

BIL321 VERİ İLETİŞİMİ LABORATUVARI

TCP / IP NEDİR? TCP / IP SORUN ÇÖZME

TCP/IP protokol kümesini tanımlamak. Bu protokol kümesindeki katmanları sıralamak.

ACR-Net 100 Kullanım Kılavuzu

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

WAMP SERVER KURULUMU

SAMURAİ FRAMEWORK İLE HACKİNG-1 (FOOTPRINTING)

AĞ TEMELLERI. İSİM SOYİSİM: EMRE BOSTAN BÖLÜM: BİLGİSAYAR PROGRAMCILIĞI ÜNİVERSİTE: NİŞANTAŞI KONU: Konu 5. TCP/IP

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

Soket IPC (bağlantı doğrultusunda olan istemci and sunucu operasyonları) Sunucu. İstemci. socket() Bir soket yarat. bind()

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Proticaret Exclusive Versiyon Yükseltme Dokümanı(v.3.0'dan v3.1.0'a)

Windows Server 2012 DHCP Kurulum ve Yapılandırma

Bilgi ve Olay Yönetim Sistemi

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Şekil 9.1 IP paket yapısı

Proticaret Exclusive Versiyon Yükseltme Dokümanı(v.3.2.0'dan v3.2.1'e)

Internet in Kısa Tarihçesi

Microsoft Outlook 2003 Kurulumu

Bir port aynı anda bir process tarafından dinlenebilir. Fakat bir process birden fazla portu dinleyebilir.

EC-232C. Ethernet RS232 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

VPN NEDIR? NASıL KULLANıLıR?

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş

CENG 362 Computer Networks (2005) Midterm Exam 1 Çözümleri

AĞ KURULUMU ANA MAKİNA İÇİN:

BİLGİSAYAR 4 MOLEKÜLER BİYOLOJİ VE GENETİK BÖLÜMÜ 1. DERS İNTERNET, TCP/IP, İNTERNETTE MESAJ VE BİLGİ AKTARIMI YARD. DOÇ. DR.

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Ağ Sızma Testleri ve 2. Katman Saldırıları Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

Computer Networks 5. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

COM API v.1.1 BELGE SÜRÜMÜ : 1.1

GEM-10 GPRS/Modbus Gateway Kullanım Kılavuzu. Rev /2011

Web Sunucusu BLGM 344 Bilgisayar Ağları Proje. BLGM 344 Proje 1* WEB SUNUCUSU UYGULAMASI

HUAWEI Cihazlara Erişim Yöntemleri

MODBUS GATEWAY KONFİGÜRASYON YAZILIMI

TCP/IP. TCP (Transmission Control Protocol) Paketlerin iletimi. IP (Internet Protocol) Paketlerin yönlendirmesi TCP / IP

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Kurumsal Güvenlik ve Web Filtreleme

FAKS SUNUCU EĞİTİM DÖKÜMANI

YÖNLENDİRİCİLER. Temel Bilgiler. Vize Hazırlık Notları

BM 402 Bilgisayar Ağları (Computer Networks)

Google Chrome Kullanıyorsanız; Microsoft Internet Explorer Kullanıyorsanız;

TRANSPORT KATMANI. Akış kontrolu yapar. Bütün bu işlevleri yerine getiren protokollerden önemlileri şunlardır: 1 *TCP, * UDP, *SPX

EMG Modbus Gateway Kullanım Kılavuzu

COM API v2.0 Belge sürümü : 2.0.3

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

SSH Tünelleme ile İçerik Filtreleyicileri Atlatmak

ÖNDER BİLGİSAYAR KURSU. Sistem ve Ağ Uzmanlığı Eğitimi İçeriği

V-Ray Lisanslama Sistemi

AJANS İLETİŞİM API XML API v İçindekiler. 1. AMAÇ - Sayfa 2

Transkript:

MSN PROTOKOLÜNÜ ANALİZ ETMEK BELGE HAKKINDA Bu belge "GNU Free Documentation Licence" ile kaynak gösterilmek ve önceden yazarından izin alınmak kaydıyla yeniden yayınlanabilir. Bu belgedeki eksik, yanlış ya da geliştirilmesi gerektiğini düşündüğünüz yerleri e-posta yoluyla bildirebilirsiniz. Belgenin ilk oluşturulma tarihi: 10 Haziran 2007 /*************************************************************** * Cihan KÖMEÇOĞLU * * cihan [at] akademi.enderunix.org * * EnderUNIX Yazılım Geliştirme Takımı * * http://www.enderunix.org * * Sürüm : 1.0 * * Tarih : 10.06.2007 * * Etiketler : msn, sniff,protokol * * Seviye : Başlangıç - Orta Seviye * * Makalenin en yeni versiyonu : http://www.enderunix.org/docs/msnsniff.pdf adresinden elde edilebilir. * ***************************************************************/

MSN PROTOKOLÜNÜ ANALİZ ETMEK 1.Giriş Msn sunucusuna yapılan tüm bağlantılar TCP/IP üzerinden olmaktadır.msn Messenger 1863. portu kullanmaktadır.sunucuya yapılan bağlantı asenkrondur. Yaptığınız bir işlem için sunucudan cevap beklemek zorunda değilsiniz.mesajlaşmalar sunucu üzerinden yapılmaktadır.sunucu ile soket üzerinden bağlantı olduğu gibi http protokolü ile de bağlantı olabilmektedir.mesajlaşmalar tcp paketleri ile olmaktadır. 2. Msn Paketlerini dinlemek için yapılması gereken işlemler Burada anlatılanlar ağınızda bulunan bir ağgeçidinden geçen paketleri dinleyebilmek içindir.bir dinleme işlemini yapabilmeniz için pakelerin dinleme yapılacağı makineden geçmek zorundadır. Her bir paketi yakaladıktan sonra bu paketlerin tcp ve ip başlıklarının uzunluğuna bakmamız gerekir. Normal bir paketin ip ve tcp başlık uzunluğu minimum 20 byte olması gerekir. Yani 20 bytedan daha düşük olan paketleri dikkate almamamız gerekir. Tcp ve ip başlık uzunluklarının tutulduğu alan 4 bit dir ve uzunluğun ¼ ü kadar tutulmaktadır.20 byte lık bir paket için bu alana 5 yazılmaktadır.biz buradaki değeri 4 ile çarptığımızda paketin başlık uzunluğunu elde ederiz. Paketleri yakaladıktan sonra bu paketlerin hangilerinin msn paketleri olduğunu belirlememiz gerekir. Bunu da port numarasına bakarak yapabiliriz. Aslında port numarasına bakarak bunu tam olarak belirleyemeyiz.çünkü aynı portu kullanan başka uygulamalarda olabilir.ip numarasına göre de yapamayız çünkü her bağlantı için hemen hemen ip numarası farklı olabilmektedir. Bu yüzden performans için en iyi yöntem port numaralarına bakarak dinleme yapmaktır.bunun içinde msn sunucusunun kullandığı 1863. port numarasını kullanarak yapacağız.msn messenger tcp portokolünü kullandığı için tcp katmanındaki hedef ve kaynak portların 1863 olup olmadığına bakacağız. Kaynak portu 1863 olan paketler msn sunucusundan gelen paketler, hedef portu 1863 olan paketler ise istemciden sunucuya giden paketlerdir. Paketlerin port numarasına baktıktan sonra bunların bir tcp paketi olup olmadığını araştıracağız. Bunun içinde ip katmanındaki protokol bilgisine bakmamız gerekir. Bu bize ip katmanından sonraki bir üst protokolün hangi protokol olduğunu göstermektedir. Paketlerin tcp paketi olduğuna karar verdikten sonra bu paketlerin veri taşıyıp taşımadığını bulmamız gerekir.bunu yapmak için paketlerin büyüklüğünden yararlanacağız. Ip katmanında paketin toplam uzunluğunun tutulduğu 16 bitlik bir alan bulunmaktadır. Bu alan paketin ip başlık uzunluğu,tcp başlık uzunluğu ve verinin büyüklüğünün toplamıdır.yani minimum başlık uzunlukları olan ve 12 byte bir veri taşıyan paket için toplam uzunluk alanındaki değer 52 dir. 20 byte ip başlık uzunluğu, 20 byte tcp başlık uzunluğu ve 12 byte verinin toplamıdır. Burada bu paketin veri taşıyıp taşımadığını anlamak için tcp ve ip başlık uzunluklarını toplayıp ip katmanındaki toplam uzunluk değerinden çıkarmamız gerekir. Yani az önceki örnekte 52 byte lık bir paket için 20+20 =40 byte ve 52-40=12 byte veri olduğunu buluruz. Bu işlemden sonra çıkan değer sıfırdan büyük ise bu paketin veri taşıdığını anlarız ve buradaki veriyi alarak msn protokolüne ait bilgiyi elde etmiş oluruz. Yalnız Bu fragmentation olan paketler için ek işlemler yapmamız gerekir.makalenin devamında Ip fragmentation ve reordering işlemlerini anlatacağım.

Ip fragmentation Fragmentation olan paketlerdeki verileri birleştirebilmemiz için ip katmanındaki more fragment biti,dont fragment biti ve identification kısmına bakmamız gerekir. İlk olarak dont fragment bitine bakacağız. Eğer bu dont fragment biti 1 ise bu verinin fragmentation yapılmadığını gösterir. Eğer 0 ise verinin fragmentation yapıldığını göstermeyebilir. Bu sırada more fragment bitine de bakmamız gerekir.eğer more fragment biti 1 ise bunun fragmentation yapıldığını gösterir.ama verinin son parçasında more fragment biti 0 olacağı için identification kısmına da bakmamız gerekir.bir identification lisetesi tutup her bir fragmantation parçasının identification kısmına bakarak karşılaştırmamız gerekir. Böylelikle fragmentation olan paketleri anlayabiliriz. Verileri birleştirirken dikkat etmemiz gereken şey ise verinin ilk parçası taşıyıcı katmanından (transport layer) sonra geldiği, bundan sonraki parçalarda verinin bulunduğu kısım hemen ip katmanından sonra gelmektedir. Tcp paket reordering & reassembly Msn mesajları parçalara ayrılarak yollanabilir. Bizim yapmamız gereken bunları birleştirmektir. Bunun içinde tcp katmanındaki push flag inden yararlanacağız. Tcp push flag i bize pakette veri olup olmadığını göstermektedir. Yalnız bu reordering & reassembly gerektiren paketler için geçerli değildir. Yani verinin parçalarını taşıyan ilk pakette push flag 1 olmakta sonraki parçalarında ise push flag 0 olmaktadır. Biz bunu kullanarak verileri birleştireceğiz. Yapmamız gereken sadece ikinci bir push flagi 1 olan paketleri görene kadar verileri buffer etmektir. Aşağıdaki şekilde olduğu gibi 1. paketin push flagi 1, 2. ve 3. paketin push flagi 0, 4. paketin push flagi ise 1 değerindedir. Yukarıda anlatıldığı gibi ikinci bir push flagi set edilmiş paket görene kadar verileri birleştirmemiz gerekir.yani 2,3,4 nolu paketlerin verileri birleştirilmesi gerekir. 1. paket başka bir verinin parçasını taşımaktadır. 2,3,4 nolu paketleri birleştirdiğimizde biz FOOBAR değerini elde edeceğiz.

3. Msn Protokolü Kısaca dinlemek için yapılması gereken adımları anlattıktan sonra kendiniz basit bir sniffer yazacak kadar msn protokolünden bahsedeceğim. CALL: Bir kişi ile sohbet etmek istediğiniz zaman CALL mesajı yollanır. Karşı tarafta buna JOI mesajı ile cevaplar. Bu durumda iki kişi sohbete başlayabilir.çağrılmak istenen kişinin mail adresi parametre olarak yollanmaktadır.aşağıdaki mesajın en sonunda \r\n karakteri görülmektedir. Bu her mesajın sonunda bulunmaktadır. İlgili mesajdaki satırın bittiğini göstermektedir. Örnek Bir CALL mesajı CAL 2 ornek@hotmail.com JOI: Call mesajına karşılık cevap olarak verilir. JOI mesajında parametre olarak sohbete katılan kişinin mail adresi bulunmaktadır.böylelikle sohbet başlayabilir. JOI ornek@hotmail.com Name_123\r\n OUT:Sunucu ile bağlantı kapatılmak istendiğinde yollanır. Herhangi bir paramteresi bulunmamaktadır. OUT \r\n BYE:İki türlü BYE mesajı bulunmaktadır.birincisi bir kişi out mesajını yollayıp sunucu ile bağlantısını kopardığı zaman kişinin oturumunda bulunan online kişilere yollanarak offline olduğu bildirilir.bu mesaj aşağıdaki gibidir. BYE ornek@hotmail.com \r\n Diğer bye mesajı ise sohbet sonlandırıldığında yollanır. Diğer bye mesajından farklı olarak en son parametresi 1 olmaktadır. BYE ornek@hotmail.com 1 \r\n MSG:Mesaj yollanmak istendiğinde server a yollanan mesaj tipidir. Parametre olarak kişinin yolladığı mesaj, msn client programının adı, karakter kodlaması, kişinin yazdığı mesaj bulunmaktadır.msg mesajlarının bazıları mail adresi içerebilmektedir. Mail adresi içeren msg mesajları sohbet yapılan kişiden gelen mesajlardır.buradaki mail adresi mesajı yollayan kişinin mail adresidir. Mail adresi içermeyen msg mesajları ise sohbet yaptığımız kişiye yollanılan mesajlardır. Aşağıdaki örnekten birincisi sohbet yapığımız kişiye yollanılan mesajdır.ikincisi ise cevap olarak gelen mesajdır.mesajın en sonunda \r\n\r\n karakterleri görülmektedir.bu yazılan mesajın başlayacağını göstermektedir.\r\n olanları ise satırın bittiğini göstermektedir. Örnek bir MSG mesajı: MSG 4 N 100\r\n MIME-Version: 1.0\r\n Content-Type: text/plain; charset=utf-8\r\n X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22\r\n\r\n Merhaba Nasılsın

MSG ornek@hotmail.com isim 133\r\n MIME-Version: 1.0\r\n Content-Type: text/plain; charset=utf-8\r\n X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22\r\n \r\niyilik Aşağıdaki mesaj ise kullanıcının bir mesaj yazdığını göstermektedir. MSG 7 U 91\r\n MIME-Version: 1.0\r\n Content-Type: text/x-msmsgscontrol\r\n TypingUser: ornek@hotmail.com\r\n NLN: Msn messenger daki kullanıcının durum bilgisini göstermektedir. NLN AWY ornek@hotmail.com ornek%20display%20name 268435492 NLN - Available IDL - Idle PHN - On the Phone LUN - Out to Lunch BSY - Busy AWY - Away XFR:Notification server dan switchboard server a yönlendirme yapabilmek için istemcinin gönderdiği mesajdır. Server bu mesaja yine XFR ile cevap verir. Mesajın ilk parametresi switchboard server a yönlendirme yapılacağını bildirmektedir. İkinci parametresi switchboard server ın ip adresidir. Üçüncü parametresi kimlik doğrulama tipidir. Her zaman CKI olur. Dördüncü parametre ise kimlik doğrulama stringidir.switchboard server a bağlantı kurulacağı zaman kimliğini kanıtlayabilmesi için bu string gereklidir. >>> XFR 15 SB\r\n <<< XFR 15 SB 207.46.108.37:1863 CKI 17262740.1050826919.32308\r\n

IRO:Switchboard server ile bağlantı kurulduktan sonra size listenizdeki kişiler IRO mesajı ile yollanır. IRO mesajının ilk parametresi size gönderilen kaçıncı IRO mesajı olduğunu göstermektedir.birinci IRO mesajı için 1, ikinci IRO mesajı için ise 2 olmaktadır. İkinci parametresi ise toplam IRO mesajının sayısıdır. Üçüncü parametresi listenizdeki kişinin hesap adıdır. Dördüncü parametresi ise kişinin görünen adıdır. <<< IRO 1 1 2 example@passport.com Mike\r\n <<< IRO 1 2 2 myname@msn.com My%20Name\r\n Kaynaklar [1.]Richard Stevens TCP/IP Illustrated, Volume1: The Protocols [2.]http://www.hypothetic.org/