News Protocol Download Articles Contacts  AOLHACKERS.RU      Articles  Cutting floret (ru) Г‡iГ§ekГ§iДџi Kesmek: _ _/ \_ / \ / \ >--o--< \_/ \_/ \I/C D A PROJECT best regars from payhash Г–ncelikle belirtmek isterim ki,bu dГ¶kГјman size ICQ Oscar protokolГјnГјn 7. ve 8. sГјrГјmlerinin tam bir aГ§Д±klamasД±nД± sunmayacak ve size bu protokoller hakkД±nda genel bir bilgi vermekten ilerigitmeyecektir.Bir protokol hakkД±nda fikir yГјrГјtebilmek iГ§in neler bilmemiz gereklidir? Г–ncelikle Еџu biliniyor ki, login.icq.com servisi Гјzerinde 5190. port a ve TCP protokolГј ile Г§alД±Еџan bir ICQ servisi var.AГ§Д±kГ§a anlaЕџД±lmalД±dД±r ki,7. protokol Гјzerinden Г§alД±ЕџtД±ДџД±na gГ¶re, Oscar TCP modunda Г§alД±Еџmakta olup,7'nin altД±ndaki protokollerde UDP modunda Г§alД±ЕџmaktadД±r. Yani,bu protokolleri bir dГ¶ngГј halinde aГ§Д±klamak istersek,Еџu adД±mlarД± takip etmeliyiz: AdД±m 1:
ICQ client'ı,ilk olarak ICQ servisi üzerinden yetkilendirilerek bu şekilde giriş sağlanmaktadır. Önem verilmesi gereken başka bir husus ise ICQ servisi üzerinden gerçekleştirilen bu işlemin çeşitli ve anlaşılması zor prosedürlerden sayesinde oluşmasıdır. |----------| |---------------| | | | | | CLIENT | OCKAR 7/8 | login.icq.com | | | LP ----------------->5190 | | |ICQ2003a | | ICQ SERVICE | | | | | |----------| |---------------| Ilk gerçekleşen olay,5190. porttan login.icq.com servisi bağlanılması ,ardından login.icq.com servisinin bir test FLAP paketi yollamasıdır.Paketin görünümünün Dump hali şu şekildedir. 2A 01 7E BF 000400000001 Daha bilmemiz gerekenler başka şeyler de var!ICQ servisinde bir kanal içeriği mevcuttur. 5 çeşit)IRC benzeri kanallar gibi olmakla beraber şu görevleri yerine getirirler. Kanal 1 - Bağlantı sağlanması ve yetki verilmesi amaçlı Kanal 2 - Basit paketlerin ve bilgilerin iletimesi amaçlı Kanal 3 - Hataların iletilmesi amaçlı Kanal 4 - Kanalların ayrılması amaçlı Kanal 5 - Servisin kullanımı amaçlı(sanırım sadece yetkili kişiler kullanabiliyor) ICQ 'nun belirlediği kanala bağlı olarak,ilgili servislere iletim yapılmaktadır. ICQ paketindeki kanal her zaman FLAP paketinin ikinci baytından belirlenmiştir. Işte aşağıda gösterildiği gibi: Bu paket, UIN 'in ( yani ICQ numarasının) ve şifresinin login.icq.com servisine gönderilmesinin zamanını geldiğini gösteriyor.Client tarafından yapılan ilk iş bu. ICQ 'nun servis üzerinden kullandığı parametreler ise,paketin dump hali ile şu şekildedir: dump #1 2A 01 11 53 00 83 00 00 00 01 00 01 00 06 3X 3X 3X 3X 3X 3X 00 02 00 08 XX XX XX XX XX XX XX XX 00 03 00 33 49 43 51 20 49 6E 63 2E 20 2D 20 50 72 6F 64 75 63 74 20 6F 66 20 49 43 51 20 28 54 4D 29 2E 32 30 30 33 61 2E 35 2E 34 37 2E 31 2E 33 38 30 30 2E 38 35 00 16 00 02 01 0A 00 17 00 02 00 05 00 18 00 02 00 2F 00 19 00 02 00 01 00 1A 00 02 0E D8 00 14 00 04 00 00 00 55 00 0F 00 02 65 6E 00 0E 00 02 75 73 Bu paketi daha detaylı inceleyelim: ICQ 'daki paketlerin FLAP 'la (özellikle 2. bayta) bağlantılı olduğunu hatırlayalım. FLAP SNAC paketleri olarak adlandırılan paketleri sahip olup,çeşitli TLV paketlerine dönüşürler. VE SNAC paketlerinin onaylanması ile ICQ servisine iletim oluşur. |-----------------------------| | F L A P | | | | | | |-------------------------| | | | S N A C | | | | | | | | |----------------| | | | | | | | | | | | T L V | | | | | | | | | | | |----------------| | | | |-------------------------| | | | ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ | |-------------------------| | | | S N A C | | | | | | | | |----------------| | | | | | | | | | | | T L V | | | | | | | | | | | |----------------| | | | |-------------------------| | | | |-----------------------------| FLAP: 2A 01 11 53 00 83 00 00 00 01 2A - (Command Start) ICQ Servis Bilgi paketlerinin diğer paketlerden ayrılmasına izin verir. (ICQ paketinin başlangıcı.) 01 - Yukarıda da açıklandığı gibi kanal servisi. 11 - Dizi numarası olarak da adlandırılan rast gele sayılar. 00 83 - Veri alanı uzunluğu FLAP 'den sonra gelecek bilgi akışını kesmek içindir. Bu paket çok önemlidir. Hepsini genel olarak inceledikten sonra,tabloyu şu şekilde özetleyebiliriz: ------------------- | Command Start | | byte: '\x2A' | ------------------- | Channel ID | | byte | ------------------- | Sequence Number | | word | ------------------- |Data Field Length| |word | ------------------- |Data | |variable | ------------------- FLAP-paketi, sabit biz uzunlukla başlar.(Yaklaşık 6 bayt) Bir de standart TLV var; TLV 01 : 00 01 UIN bilgisinin servise iletilmesinden önce , onun bir giriş uzunluğunun olduğunu bildirir. Uinin giriş uzunluğu, 00 06 kendisi ise uin 39 36 33 36 33 32 2 'dir. Bundan başka zorunlu olmayan bazı parametreler vardır. Bir Sürümun yapısı şu şekildedir: TLV 03 : 00 03 49 43 51 20 49 6E 63 2E 20 2D 20 50 72 6F 64 75 63 74 20 6F 66 20 49 43 51 20 28 54 4D 29 2E 32 30 30 33 61 2E 35 2E 3437 2E 31 2E 33 38 30 30 2E 38 35 Örnek olarak: 3ICQ Inc. - Product of ICQ (TM) .2003a.5.47.1.3800.85 TLV 16 : 00 16 Genellikle 2 bayt 01 0A TLV 17 : 00 17 Bu Sürüm öncelikli ve önemli client'lar içindir,Örnek olarak: icq2000 için 4, icq2001 veicq2003 2001 için ise 5 TLV 18 : 00 18 Önemsiz Sürümlar içindir. TLV 19 : 00 19 Bir client Sürümu için en azından bulunması gereken bayt 00 01 TLV 1A: 00 1A Client'ın Sürümu buradan şu iki baytı görevlendirir 0E D8 TLV 14 : 00 14 Bu verisyonu görevlendiren veriyonu bilmiyorum 4 bytes 00 00 00 55 TLV 0F: 00 0F Client'ın kullandığı dil genellikle 2 karakter ile adlandırılır(INgilizce "en" vb) TLV 0E: 00 0E Client'ın bulunduğu ülkeye göre genellikle 2 karakter ile adlandırılır , genellikle "us" Işte burada paket sona erer.Bunu bilmek önemlidir! TLV'den sonra hep tek bir boyut vardır. TLV'nin içeriği: Öncekikle SNAC paketini inceleyelim çünkü FLAP paketini barındırıyor. | |-------------------------| | | | S N A C | | | | | | | | |----------------| | | | | | | | | | | | T L V | | | | | | | | | | | |----------------| | | | |-------------------------| | | | |-----------------------------| SNAC paketi dump #1'den açık olarak görülecek şekilde şu veri alanlarını içeriyor: 1) TLV 2) TLV içeriklerinin boyutu 3) TLV içerikleri |-------------------------| | WORD TLV sürümü | | | | WORD TLV boyutu | | | | VAR TLV verisi | | | |-------------------------| Böylece bağlantı yapısı şu şekilde gerçekleşir. TLV(1) STRING Uin TLV(2) STRING Şifrelenmiş( kriptolu ) parola TLV(3) STRING Client profili, örnek olarak"3ICQ Inc.-Product of ICQ (TM).2003a.5.47.1.3800.85" TLV(16) WORD unk, genellikle 01 0A TLV(17) WORD büyük sürüm, icq2000 için 4,icq2001 için 5 TLV(18) WORD küçük sürüm TLV(19) WORD daha ufak sürümler TLV(1A) WORD Yapı sürümü TLV(14) DWORD Bilinmeyen sürüm TLV(0F) STRING dil, 2 karakterle, genellikle "en" TLV(0E) STRING ülke, 2 karakterle, genellikle "us" Client'ın doğru olarak bir giriş paketi yaratmasına izin veririz ve bu paketi login.icq.com servisine yollarız,peki ya sonra. Eğer herşey doğru gidiyorsa login.icq.com takribi FLAP paketine cevap vermelidir. Burada SNAC: UIN, IPserver:PORT, COOKIE (Normalde 256 baytlık bir bilgi. ) Bu paketin dumb hali: Dump *2 2A 04 C6 B5 01 21 00 01 00 06 3X 3X 3X 3X 3X 3X 00 05 00 0F 32 30 35 2E 31 38 38 2E 38 2E 31 38 3A 35 33 00 06 01 00 35 A3 D2 E6 D5 A2 75 F1 9F 2E C0 78 8C 78 D8 AA 10 B7 60 42 10 44 27 9A 58 E9 12 24 CD E9 4C F0 51 06 BD 86 2E A4 86 CF 1E 9B 21 AC FE 8F EE BF 16 B6 94 8D 50 58 35 5F CD 1E 8C C5 5B E1 ED 12 FD 93 48 31 1D C0 B2 A9 E7 E0 00 F5 D4 9E 5C 6E BF BC BF 34 93 4A BD 4E 94 55 97 4B 8F 9A A9 F0 14 1D 15 97 CB 1B 08 C3 D1 E2 1E CA 8F 5A 10 7F 91 B7 AA 1A 8F 56 22 B2 2C AD 31 A2 73 4F A9 F9 8E 2A 5C A5 71 AD C1 4A 6E 8A 65 CD 86 2C 6B 32 05 DA DC 3D C0 09 37 5A 10 76 C2 55 C0 8D 7B 30 5C 53 C9 2F A2 B0 FA 26 45 82 8D 58 D8 BF 2C 26 BD F0 5B 13 B4 B1 D3 00 8D 90 A7 8F 18 91 AF C7 F7 3F 46 00 30 60 53 BF DE 8C 4E 4E D4 28 D8 0D 17 3A AB 85 B2 49 E4 19 3E D4 73 6C 82 24 7C FB 16 94 50 88 4B 8E EE 08 62 99 1D E1 BE 23 F2 98 15 17 D5 B4 FD 47 AF 9E 65 CD EC 31 67 20 B9 D4 Görüyoruz ki FLAP şunu içeriyor SNAC's: TLV 0001, TL 0005, TL 0006. TLV 0001 - UIN TLV 0005 - bağlanmak için gerekli servis ve port TLV 0006 - Servise yollanacak bilgiyi barındıran COOKIE TLV 0005 belirtilmiş port ki bu girişi bizim yaptığımızı onaylıyor SNAC TLV 00 01 00 06 39 36 33 36 33 32 - UIN TLV 00 05 F 32 30 35 2E 31 38 38 2E 38 2E 31 38 3A 35 33 - IP:PORT TLV 00 06 01 00 35 A3 D2 E6 D5 A2 75 F1 9F 2E C0 78 8C 78 D8 AA 10 B7 60 42 10 44 27 9A 58 E9 12 24 CD E9 4C F0 51 06 BD 86 2E A4 86 CF 1E 9B 21 AC FE 8F EE BF 16 B6 94 8D 50 58 35 5F CD 1E 8C C5 5B E1 ED 12 FD 93 48 31 1D C0 B2 A9 E7 E0 00 F5 D4 9E 5C 6E BF BC BF 34 93 4A BD 4E 94 55 97 4B 8F 9A A9 F0 14 1D 15 97 CB 1B 08 C3 D1 E2 1E CA 8F 5A 10 7F 91 B7 AA 1A 8F 56 22 B2 2C AD 31 A2 73 4F A9 F9 8E 2A 5C A5 71 AD C1 4A 6E 8A 65 CD 86 2C 6B 32 05 DA DC 3D C0 09 37 5A 10 76 C2 55 C0 8D 7B 30 5C 53 C9 2F A2 B0 FA 26 45 82 8D 58 D8 BF 2C 26 BD F0 5B 13 B4 B1 D3 00 8D 90 A7 8F 18 91 AF C7 F7 3F 46 00 30 60 53 BF DE 8C 4E 4E D4 28 D8 0D 17 3A AB 85 B2 49 E4 19 3E D4 73 6C 82 24 7C FB 16 94 50 88 4B 8E EE 08 62 99 1D E1 BE 23 F2 98 15 17 D5 B4 FD 47 AF 9E 65 CD EC 31 67 20 B9 D4 - Is the COOKIE (Normalde 256 baytlık bir bilgi. ) Bu pakette belirtilen verilere göre hangi servisten ve portta yönlendirileceğimiz anlaşılmaktadır.ICQ için Brute Force programı yazacak olanlar için yeterli görünüyor :) Bir uin ve şifresinin doğru olduğunu onaylanması sağlayan ve brute programında bulunması gereken kod: buffer[512]='\xEE'; rbuf=buffer; do { rbuf++; if(*rbuf == '\x06'){ if(*(rbuf+1) != '\x01'){rbuf++;} } if((*rbuf == '\x06') && ((*(rbuf+1) == '\x01'))){break;} }while(*rbuf != '\xEE'); if((*rbuf == '\x06') && ((*(rbuf+1) == '\x01'))){close(proxysock); return 5;} Programdaki kod,bir cookie olan TLV 06 'nin varlığını araştırarak, bizi bilgilendiriyor.6. şemadakii oluşum sırasına göre , şu oluşumu program yapısına dahil etmek için gerekenler, TLV(1) STRING Eğer şifre ve icq numaram eşleşiyorsa TLV(5) STRING BOS-adres;-ort TLV(6) STRING cookie else TLV(8) hata kodu TLV(4) STRING url Şifre veya uinde bir sorun olduğunda da servisin cevabı, Takribi şu FLAP paketidir (TLV 04) 2A 04 AE B0 00 56 00 01 00 09 32 34 30 37 39 30 31 35 32 00 04 00 3F 68 74 74 70 3A 2F 2F 77 77 77 2E 61 69 6D 2E 63 6F 6D 2F 65 72 72 6F 72 73 2F 4D 49 53 4D 41 54 43 48 5F 50 41 53 53 57 44 2E 68 74 6D 6C 3F 63 63 6F 64 65 3D 75 73 26 6C 61 6E 67 3D 65 6E 00 08 00 02 00 05 Servise tekrar bağlanmak için gerekli DUMP hali ise, 2A 01 28 E0 01 08 00 00 00 01 00 06 01 00 EC 9F D0 FB 60 5F 7C 66 D4 24 4F 87 83 E7 98 41 15 DF AB DA C5 AF D0 CD FD 52 45 57 99 EC 9F 6A 96 3D C4 1A D7 E2 93 88 5F 9F 77 78 8F DD FB 19 E0 D5 01 DA 0B 48 19 33 F6 95 B9 9E AF 01 D3 D0 9D 46 D3 AD 4D 3C B3 0D 80 CC 2E 03 90 2C E2 77 B9 3A C8 F1 F5 6F 84 3B 33 97 F4 04 16 9B 84 FA 2B 21 35 FC B7 97 60 E9 77 7A 81 3A 1F 50 6A E4 21 B6 B0 FC 07 17 09 3A 2E 9D 2E 86 BD 30 06 20 FA 5C A9 F6 EE 55 63 26 A1 E5 CD C7 F6 91 FD 86 7D B9 3F DF 07 34 79 52 66 F8 F4 AE FB D5 BF 7B CB 2E D2 FA CB 64 68 EE 19 F1 47 D5 70 40 E3 22 65 43 20 5E 1C 27 DA 81 5B 64 10 52 67 E9 8A 47 D5 89 92 6E C8 EF A9 0D FB 40 96 AD DD 41 2F 0E A2 96 B7 D0 12 CD D5 92 30 45 79 E6 DE 9A 70 5A 40 0B 9D C3 23 D8 AB 51 4D 83 92 BA A3 0E 3C 82 9C F3 EC 2B 7C 8A F1 F8 77 E3 C1 09 D4 8F 94 9A FLAP paketinde gördüğümüz üzere ,içerik sadece SNAC ile TLV 06 'den oluşuyor ;) Servisin bu paketi tepkisi ne olmalıdır? Servis hazır bir paket ile cevap vermelidir ki hazır paketin dump hali: TLV 03 SNAC 1,03 2A 02 8F 2D 00 24 00 01 00 03 00 00 83 C8 13 D5 00 01 00 02 00 03 00 04 00 06 00 08 00 09 00 0A 00 0B 00 0C 00 13 00 15 00 22 Bu paket client 'a çalışmak için hazır olduğunu belirtir. SNAC 1,13 ,şuna cevap verilmelidir SNAC 1,17 (TLV 17) 2A 02 67 E1 00 32 00 01 00 17 00 00 00 00 00 17 00 01 00 04 00 13 00 04 00 02 00 01 00 03 00 01 00 15 00 01 00 04 00 01 00 06 00 01 00 09 00 01 00 0A 00 01 00 0B 00 01 Bu paket diyor ki , hey!! , Ben ICQ client'ıyım, AIM değil ;)))) Böylece servis üzerindeki yetkilendirme sona erer. Bir sonraki dökümanda ise size diğer ICQ Client'ları üzerinden mesaj göndermeyi anlatacağım. Acemi programcı arkadaşlara başarılar dilerim... Payhash из AolHackerS.ru runsolar@mail.ru AOLHACKERS.RU 2004 design by Gn0m =:]o<