You are on page 1of 11

‫‪Remote OS Detection‬‬

‫‪-1-‬‬
‫‪By: Broken|Arrow‬‬
‫``````````````````````````````````````````````‬

‫هذا الموضوع من أهم المواضيع في عالم الختراق‪ .‬لن المخترق غالبا ما يبدأ في البحث عن‬
‫أكبر كمية من المعلومات عن هدفه‪ .‬سواء كان يستهدف أحد المواقع أو المزودات‪ ,‬أو حتى شبكة‬
‫كاملة‪ .‬و أول ما يبدأ المخترق في البحث عنه هو نظام التشغيل للهدف‪.‬هذا المقال هو عباره عن‬
‫مجموعة من النقاط و رؤوس القلم ل أكثر‪ .‬لنه موضوع شديد التشعب‪ .‬و يعتمد على الكثير من‬
‫التقنيات المعقدة‪ ,‬على القل بالنسبة لي ‪.(:‬‬

‫لكي نتمكن من الستمرار معًا حتى نهايه هذا المقال‪ .‬من المفترض ان تملك نظام تشغيل‬
‫‪ Linux‬أو ‪ .Unix‬ل أعلم أن كانت الـ ‪ shell account‬سوف تكون مناسبة لبعض الوامر التي‬
‫سوف ننفذها خلل الموضوع‪ .‬كما ينبغي ان تكون لديك معرفه‪ ,‬و لو بسيطة ببروتوكول ‪. TCP/IP‬‬

‫سوف أبدأ بمناقشة بعض الطرق التقليدية و القديمه نوعًا ما‪ .‬أولى هذه الطرق‪ ,‬هي أرسال ‪E-‬‬
‫‪ mail‬بأسم مغلوط إلى النظام المستقبل‪ ,‬الذي سوف يقوم ملقم البريد الخاص به بالرد برسالة تفيد‬
‫بأن من أرسلت له رسالتك غير موجود‪ .‬عند عرض الـ ‪ Headers‬الخاصه بالرسالة سوف تجد‬
‫معلومات خاصه بالهدف‪ ,‬و نظام التشغيل الخاص به‪ .‬في الحقيقة‪ ,‬انا لم أجرب هذه الطريقة من قبل‪.‬‬
‫ربما لنني قرأت عنها في ملفات تفوقوني عمرًا ‪ .(:‬المهم انها من أقدم و أشهر الطرق في هذا‬
‫المجال‪.‬‬

‫‪Banner Grabbing‬‬

‫ل في الكثير من النظمة و‬‫الطريقة الخرى هي الـ ‪ .Banners‬و هذه تعتبر عيبًا قات ً‬
‫التطبيقات‪ .‬حيث أنك تستطيع بمجرد التصال بالخدمة‪ ,‬تستطيع الحصول على أسم البرنامج العامل على‬
‫المنفذ‪ ,‬و ربما أكثر من ذلك‪ .‬حيث يمكنك الحصول على نوع و أصدار نظام التشغيل‪ .‬و المشكلة أن‬
‫الكثير من مدراء النظمة ل يهتمون بأغلق‪ ,‬أو على القل تزييف هذه البانارات‪ .‬و سوف نناقش الن‬
‫بعض الوسائل الخاصه بالحصول على مثل هذه المعلومات‪....‬‬

‫مبدئيَا‪ ,‬لتحديد الخدمة العاملة على أي منفذ‪ .‬كل ما علينا القيام به هو التصال بهذا المنفذ عن‬
‫طريق أي ‪ Telnet client‬عادي‪ .‬وغالبًا ما نجد الكثير من المعلومات القيمة بهذه الطريقة‪ .‬سوف‬
‫نقوم ببعض التجارب و نرى نتائجها‪...‬‬
‫‪[root@localhost root]# telnet 127.0.0.1‬‬
‫‪Trying 127.0.0.1...‬‬
‫‪Connected to 127.0.0.1.‬‬
‫‪Escape character is '^]'.‬‬
‫)‪Red Hat Linux release 7.2 (Enigma‬‬
‫‪Kernel 2.4.5 on an i686‬‬
‫‪login:‬‬
‫نلحظ هنا أننا قمنا بالتصال بالمنفذ رقم ‪ 23‬الذي يخدم الـ ‪ . Telnet‬و نلحظ أيضًا أنني‬
‫"أتفضحت" ‪ .(:‬الخدمة عرضت نظام التشغيل و أصداره و و نوعه و أصدار الـ ‪ Kernel‬و الـ‬
‫‪ .Architecture‬أي أنني أعلنت كل المعلومات الدقيقة التي يحتاجها من يخطط لختراق جهازي‪.‬‬

‫من المنافذ التي يمكن التصال بها أيضًا‪ ,‬منفذ الـ ‪ , FTP‬حيث تقوم الخدمة بتقديم بعض‬
‫المعلومات عند التصال بهذا المنفذ‪...‬‬
‫‪[root@localhost root]# telnet 127.0.0.1 21‬‬
‫‪Trying 127.0.0.1...‬‬
‫‪Connected to 127.0.0.1.‬‬
‫‪Escape character is '^]'.‬‬
‫‪220 localhost.localdomain FTP server (Version wu-2.6.1-18) ready.‬‬
‫‪user broken‬‬
‫‪331 Password required for broken.‬‬
‫************* ‪pass‬‬
‫‪230 User broken logged in.‬‬
‫‪syst‬‬
‫‪215 UNIX Type: L8‬‬
‫‪quit‬‬
‫‪221-You have transferred 0 bytes in 0 files.‬‬
‫‪221-Total traffic for this session was 421 bytes in 0 transfers.‬‬
‫‪221 Thank you for using the FTP service on localhost.localdomain.‬‬
‫‪Connection closed by foreign host.‬‬
‫‪[root@localhost root]#‬‬

‫نلحظ هنا أنني قمت بالتصال بمنفذ خدمة الـ ‪ . FTP‬بمجرد أتمام التصال‪ ,‬قام الخادم‬
‫بإخباري عن نوع برنامج الخادم و أصداره بالتفصيل‪ .‬و عند تسجيل الدخول‪ ,‬قمت بتنفيذ المر‬
‫‪ SYST‬الذي يمنحني المزيد من المعلومات عن نظام التشغيل و الخادم‪ .‬ينبغي أن نقول‪ ,‬أن هذا المر‬
‫يعتمد على الخادم و أعداداته‪ .‬حيث أنه من الممكن في بعض الحالت تنفيذ هذا المر قبل عملية الـ‬
‫‪ . Login‬و في أحيان أخرى يتم أيقاف هذا المر تمامًا عن العمل‪ .‬من الممكن أيضًا عند تسجيل‬
‫الدخول إلى الخادم‪ ,‬حتى و لو كان ذلك بحساب الـ ‪ , anonymous‬الحصول على أحدى ملفات الـ‬
‫‪ Binary‬التنفيذية ‪ ,‬مثل ‪ bin/ls/‬و أستخراج المزيد من المعلومات عن نظام التشغيل و بنيته‪.‬‬

‫الخدمة التالية التي سوف نقوم بدراستها هي ‪ HTTP‬على المنفذ ‪ 80‬أو ‪ . 8080‬أذا كان‬
‫الهدف من عملية تحديد نظام التشغيل هو عبارة عن ‪ Web Server‬فإنك بالتأكيد سوف تجد هذه‬
‫الخدمة مفعلة‪ .‬تكمن اهمية هذه الخدمة‪ ,‬في انها تمكننا من الحصول على كمية أكبر من المعلومات عن‬
‫هدفنا‪ .‬سوف نجرب الحصول على المعلومات من هذه الخدمة‪...‬‬

‫سوف نقوم بلتصال بهذا المنفذ بواسطة الـ ‪ Telnet‬و لنِر ما سيحدث‪....‬‬
‫‪[root@localhost root]# telnet 127.0.0.1 80‬‬
‫‪Trying 127.0.0.1...‬‬
‫‪Connected to 127.0.0.1.‬‬
‫‪Escape character is '^]'.‬‬
‫‪GET /qwe HTTP/1.1‬‬

‫‪HTTP/1.1 400 Bad Request‬‬


‫‪Date: Sat, 05 Oct 2002 18:06:38 GMT‬‬
‫‪Server: Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b‬‬
‫‪DAV/1.0.2 PHP/4.0.6 mod_perl/1.24_01‬‬
‫‪Connection: close‬‬
‫‪Transfer-Encoding: chunked‬‬
‫‪Content-Type: text/html; charset=iso-8859-1‬‬
‫‪XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX‬‬
‫‪Connection closed by foreign host.‬‬

‫لقد قمت بحذف الـ ‪ HTML code‬الناتج لتقليل الحجم‪ ,‬ل اكثر‪ .‬لقد قمنا هنا بالتصال بالمنفذ‬
‫رقم ‪ , 80‬و قمنا بتنفيذ طلب ‪ GET‬غير صالح‪ ,‬فكانت المخرجات هي صفحة الخطأ رقم ‪400‬الدالة‬
‫على عدم العثور على الصفحة المطلوبة‪ .‬و بعدها يعطينا الخادم الكثير من المعلومات عنه‪ .‬مثل نوع‬
‫الخادم و أصداره‪ ,‬و نظام التشغيل و المزيد من المعلومات الخرى‪.‬‬

‫‪[root@localhost root]# telnet 127.0.0.1 80‬‬


‫‪Trying 127.0.0.1...‬‬
‫‪Connected to 127.0.0.1.‬‬
‫‪Escape character is '^]'.‬‬
‫‪HEAD 127.0.0.1 HTTP/1.1‬‬

‫‪HTTP/1.1 400 Bad Request‬‬


‫‪Date: Sat, 05 Oct 2002 18:01:20 GMT‬‬
‫‪Server: Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b‬‬
‫‪DAV/1.0.2 PHP/4.0.6 mod_perl/1.24_01‬‬
‫‪Connection: close‬‬
‫‪Content-Type: text/html; charset=iso-8859-1‬‬

‫‪Connection closed by foreign host.‬‬

‫هنا قمنا بتفيذ الطلب ‪, HEAD‬الذي يعطينا رأس الصفحة فقط‪ ,‬و بالتالي نحدد مجال‬
‫المعلومات التي نحتاجها‪.‬‬

‫ينبغي ان نذكر ان الغالبية العظمى من برامج الـ ‪ Scan‬و برامج تحديد أنظمة التشغيل‬
‫المختلفة‪ ,‬و الوسيلة الكثر شهرة‪ ,‬و سهولة‪ ,‬موقع الـ ‪ www.netcraft.com‬تقوم بتحديد نظام‬
‫التشغيل بهذه الطريقة‪.‬‬

‫أعتقد اننا ذكرنا معظم التقنيات المعروفة‪ ,‬أو بالصح‪ ,‬المشهورة في هذا المجال سوف ننتقل‬
‫إلى بعض التقنيات الكثر تخصصا و تعقيدا‪ .‬و لكن بشكل مبسط و سطحي‪ .‬نظرًا لتشعبها و تقدمها‪ .‬و‬
‫في حالة الرغبة في الدراسة و التعمق بشكل أكبر‪ ,‬في هذا الموضوع‪ ,‬من الممكن البحث عن هذا‬
‫الموضوع في النترنت‪.‬‬

‫~~~~~~~~~~~~~~~~~~~~~~~~‬
Remote OS Detection Using Ping & TTL
‫ و لكي نتمكن من‬.‫ في تحديد نظام التشغيل المستهدف‬Ping ‫ سوف نستعمل أداة الـ‬,‫نعم‬
‫ في عمليات أكتشاف و تحديد‬Ping ‫ تستخدم الـ‬.‫ل عن هذه الداه‬ ً ‫ علينا أن نتحدث قلي‬,‫المتابعة‬
‫ حيث يتلخص عملها ببساطة في أرسال‬. ICMP ‫ تعتمد على برتوكول الـ‬.‫الخطاء في أنظمة الشبكات‬
‫( و يقوم الجهاز المستهدف بأستقبال هذا الطلب‬ICMP Type 8 (ECHO REQUEST ‫الطلب‬
‫( هي‬TTL (Time To Live ‫ الـ‬. (ICMP Type 0 (ECHO REPLAY ‫و الرد عليه بـ‬
‫ و لكل نظام تشغيل قيمة‬. Data Packet ‫عبارة عن قيمة توضع في أحدى خانات حزمة البيانات‬
....‫ يمكن تحديد نظام التشغيل‬,‫ و عن طريق جدول معين‬.TTL ‫معينة للـ‬
C:\>ping 127.0.0.1

Pinging 127.0.0.1 with 32 bytes of data:

Reply from 127.0.0.1: bytes=32 time<10ms TTL=128


Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128

Ping statistics for 127.0.0.1:


Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

‫ و هي‬TTL= 128 ‫ نجد أن قيمة الـ‬,‫ و عند النظر إلى النتائج‬,‫قمت بتنفيذ المر على جهازي‬
‫ و‬,‫ الجدول الخاص بأنظمة التشغيل‬,‫ و في ما يلي‬.‫ بشكل عام‬Windows ‫القيمة المرتبطة بأنظمة الـ‬
-: ‫ المرتبطة بها‬TTL ‫قيم الـ‬
OS VERSION PLATFORM TTL

Windows 9x/NT Intel 32

Windows 9x/NT Intel 128

Windows 2000 Intel 128

DigitalUnix 4.0 Alpha 60

Unisys x Mainframe 64

Linux 2.2.x Intel 64

FTX(UNIX) 3.3 STRATUS 64

SCO R5 Compaq 64

Netware 4.11 Intel 128

AIX 4.3.x IBM/RS6000 60

AIX 4.2.x IBM/RS6000 60

Cisco 11.2 7507 60

Cisco 12.0 2514 255


‫‪IRIX‬‬ ‫‪6.x‬‬ ‫‪SGI‬‬ ‫‪60‬‬

‫‪FreeBSD‬‬ ‫‪3.x‬‬ ‫‪Intel‬‬ ‫‪64‬‬

‫‪OpenBSD‬‬ ‫‪2.x‬‬ ‫‪Intel‬‬ ‫‪64‬‬

‫‪Solaris‬‬ ‫‪8‬‬ ‫‪Intel/Spar‬‬ ‫‪64‬‬

‫‪Solaris‬‬ ‫‪2.x‬‬ ‫‪Intel/Sparc‬‬ ‫‪255‬‬

‫هذه هي بعض النظمة و القيم المرتبطة بها‪ .‬عند التطبيق في الحياة العملية‪ ,‬سوف نلحظ أن‬
‫القيم الناتجة ل تساوي القيم السابقة أطلقًا‪ .‬عند مرور حزم البيانات‪ ,‬بأي ‪ Router‬أو ‪ Node‬فإن‬
‫قيمة الـ ‪ TTL‬تنقص بمقدار ‪ . 1‬لذا ينبغي علينا أن تقوم بأستعمال الداة ‪ Tracert.exe‬على الـ‬
‫‪ Windows‬أو ‪ traceroute‬على الـ ‪ .linux‬حيث نقوم بإضافة عدد الـ ‪ Nodes‬بيننا و بين‬
‫النظام المستهدف‪ ,‬إلى قيمة الـ ‪ TTL‬الناتجة‪ ,‬للحصول على القيمة الصحيحة‪ ,‬و بالتالي تحديد نظام‬
‫التشغيل‪.‬‬

‫ينبغي أن نذكر هنا أن هذه الطريقة لم تعد مجدية في الكثير من الحيان‪ ,‬نظرًا لن معظم‬
‫النظمة حاليا تقوم بتغيير هذه القيم أو منعها تمامًا‪ .‬بوساطة الجدران النارية أو أنظمة الـ ‪ IDS‬التي‬
‫تقوم بفلترة و مراقبة البيانات الداخلة و الخارجة من الشبكة‪.‬‬

‫````````````````````````````````````‬

‫‪OS Fingerprinting‬‬
‫تعد هذه الطريقة‪ ,‬أحدث الطرق و أكثرها تقدما و تعقيدًا‪ .‬تعتمد هذة الطريقه على وجود العديد‬
‫من الختلفات بين أنظمه التشغيل المختلفة و أصداراتها‪ ,‬في التعامل مع مواصفات بروتوكول الـ‬
‫‪ .(TCP/IP (RFC793,791‬حيث تختلف الـ ‪ Options‬و الـ ‪ Requests‬التي قد يقبلها أو‬
‫يعطلها نظام التشغيل‪ .‬كما تعتمد على الختلف في رسائل الخطأ و صورها التي يرسلها النظام‪ .‬و من‬
‫هنا‪ ,‬و عن كريق أجراء عده تجارب مختلفة على العديد من أنظمة التشغيل و أصداراتها‪ ,‬يمكن أن‬
‫نحدد هذه الختلفات بين النظمة‪ .‬و يسهل علينا بعد ذلك أن نحدد بدقة معقولة نسبيا‪ ,‬نظام التشغيل و‬
‫اصداره‪.‬‬

‫فيما يلي بعض المثلة المبسطة‪ ,‬و التي تعتبر توضيحية فقط‪ ,‬حيث ان المر أكثر تعقيدًا و‬
‫صعوبة‪ .‬سوف نستعمل في الختبارات التالية الداتين التاليتين‪ . hping , icmpush :‬الداة‬
‫الولى‪ hping ,‬تستعمل للرسال حزم ‪ TCP‬و أمكانية تحديد خيارات و ‪ flags‬مختلفة لها‪ ,‬و في‬
‫نفس الوقت تقوم بأنتظار الرد‪ .‬الداة الثانية‪ icmpush ,‬تستعمل في أرسال حزم الـ ‪ , ICMP‬و‬
‫أستقبال الرد عليها‪.‬‬

‫لقد قمت بأقتباس هذا المثال من أحدى المقالت‪ ,‬لنني أردت أن أكون واثقا من النتائج‪ ,‬و صيغ‬
‫الوامر‪ ,‬لذا ففي الغالب لن يكون للعنوان الذي نجري عليه الختبار أي معنى‪ .‬لنفترض أن لدينا‬
‫نظامًا‪ ,‬نريد القيام بعملية الـ ‪ OS fingerorinting‬لهذا النظام‪ .‬سوف يكون العمل كالتالي‪...‬‬
‫بداية سوف نقوم بأرسال ‪ ICMP type 17 Request‬للهدف‪ ,‬و يقوم هذا الطلب‬
‫بالحصول على الـ ‪ subnet mask‬المستخدم على شبكه النظام المستهدف‪ ,‬و يكون رد النظام هو‬
‫‪ .(ICMP type 19 Replay (Address Mask Replay‬تعد هذه هي احدى نقاط الختلف‬
‫بين أنظمة التشغيل المختلفة‪ .‬حيث أن معظم أنظمة الـ*‪ nix‬ل تستجيب لهذا الطلب‪ ,‬ول ترسل ردًا على‬
‫الطلق‪ ,‬في حين تقوم أنظمة الـ ‪ windows‬بالرد بشكل طبيعي‪...‬‬

‫‪[root@localhost]#icmpush -vv -mask 10.10.1.17‬‬


‫‪-> Outgoing interface = 10.10.1.1‬‬
‫‪-> ICMP total size = 12 bytes‬‬
‫‪-> Outgoing interface = 10.10.1.1‬‬
‫‪-> MTU = 1500 bytes‬‬
‫‪-> Total packet size (ICMP + IP) = 32 bytes‬‬
‫)‪ICMP Address Mask Request packet sent to 10.10.1.17 (10.10.1.17‬‬

‫‪Recieving ICMP Replies...‬‬


‫‪icmpush: program finished OK‬‬

‫قمنا بأستعمال أداة الـ ‪ icmpush‬لرسال طلب الـ ‪ mask-‬و قام البرناج بأرسال الطلب‪ ,‬و‬
‫أنتظار الرد‪ ,‬و عندما لم يستقبل ردًا قام بطبع رسالة تفيد بأنتهاء العملية‪.‬‬

‫كما سبق و أن ذكرنا‪ ,‬نلحظ ان النظام السابق ليس أحد أنظمة الـ ‪ windows‬حيث أننا لم‬
‫نستقبل رداً على الطلق‪ .‬نستنتج من ذلك أن النظام ربما يكون أحد أفراد عائلة الـ*‪. nix‬‬

‫لنحدد النظام أكثر‪ ,‬نقوم بالختبار التالي‪ .‬عند أرسال أي حزمة ‪ ,TCP‬عليها ‪SYN/ACK‬‬
‫‪ flags‬إلى أي نظام *‪ , nix‬أو حتى ‪ windows‬فإن النظام يستجيب بأرسال حزمة ‪ TCP‬تحمل الـ‬
‫‪ . RST flag‬النظمه الوحيدة التي تشذ عن هذه القاعدة‪ ,‬هي انظمة الـ *‪ , BSD‬حيث ل تستجيب‬
‫أطلقًا‪ .‬و من هنا يمكننا تحديد ما إذا كان النظام المستهدف يعمل على *‪ BSD‬أم ل‪.‬‬
‫‪[root@localhost]#hping 10.10.1.17 -c1 -p 23 -S -A‬‬
‫‪hping 10.10.1.17 (eth0 10.10.1.17) : SA set, 40 data bytes‬‬

‫قمنا بأستخدام الداة ‪ hping‬لرسال الحزمة المطلوبة‪ ,‬و لم نستقبل أي رد على الطلق‪ ,‬مما‬
‫يعني أن النظام هو *‪ .BSD‬و بأجراء المزيد من الختبارات‪ ,‬من الممكن تحديد توزيعة نظام التشغيل‪,‬‬
‫و رقم الصدار أيضًا‪.‬ما سبق هو مثال بسيط و سطحي للغاية‪ ,‬حول هذا الموضوع‪ .‬و هو للمساعدة‬
‫على فهم الموضوع ل أكثر‪.‬‬

‫`````````````````````````````````````‬
‫‪OS fingerprinting‬‬

‫يتم تصنيف الـ ‪ OS fingerprinting‬إلى القسمين التاليين‪-:‬‬

‫‪Active OS Fingerprinting +‬‬

‫و يعتمد على أرسال حزم من اليبانات‪ ,‬و أستقبال الردود ‪ ,‬و تحليلها للحصول على النتائج‪ .‬و‬
‫ينقسم هذا الجزء بدوره إلى قسمين‪-:‬‬

‫‪TCP/IP Fingerprinting-‬‬

‫‪ICMP Fingerprinting -‬‬

‫‪Passive OS Fingerprinting +‬‬

‫و يعتمد بشكل أساسي على الـ ‪ . Sniffing‬و لن أقوم بمناقشته في هذا الملف‪ .‬ربما في‬
‫الحلقات القادمة‪(;...‬‬

‫````````````````````````````````````‬

‫‪TCP/IP Fingerprinting‬‬
‫كما ذكرنا سابقًا‪ ,‬تعتمد فكرة الـ ‪ TCP/IP Fingerprinting‬على أختلف مواصفات‬
‫بروتوكول الـ ‪ TCP/IP‬على مختلف أنظمة التشغيل‪ .‬بمعنى أخر‪ ,‬تختلف أستجابة كل نظام تشغيل عن‬
‫الخر‪ ,‬بالنسبة لنفس طلب أو أتصال ‪ TCP‬معين‪ .‬بحيث يمكن تحديد نظام التشغيل بمجرد المقارنة‬
‫بأستجابة نظام التشغيل المعلومة مسبقًا‪.‬‬

‫توجد العديد من الدوات التي تمكننا من القيام بهذا النوع من الفحص‪ ,‬والمتوفرة على شبكة‬
‫النترنت‪ ,‬و التي تعمل كلها تقريبًا على أنظمة الـ*‪ . nix‬من أهم هذه الدوات ‪checkos, SS by:‬‬
‫‪ .Su1d, queso, nmap‬نظرًا لن ‪ nmap‬هو القوى و ألفضل ‪ ,‬و الكثر أنتشارًا و أستعماًل‪,‬‬
‫فسوف يقتصر حديثنا عليه في الوقت الحالي‪.‬‬

‫مبدئيًا‪ (nmap (Network MAPer ,‬هو عبارة عن أداة لستكشاف الشبكات‪ .‬كما يمكن‬
‫بالطبع أستخدامه بالنسبة للجهزة المنفردة‪ .‬الوظائف الساسية للـ ‪ nmap‬هي كالتالي‪-:‬‬

‫‪ +‬التأكد من وجود الجهزه على الشبكة‪.‬‬


‫‪ +‬ماهي المنافذ المفتوحة عليها )ما هي الخدمات العاملة عليها(‪.‬‬
‫‪ +‬ماهو نوع نظام التشغيل و ما أصداره ) بدقه مناسبة(‪.‬‬
.‫ الموجود على هذه الشبكة‬Filtering ‫ تحديد نوع الـ‬+

‫ حيث يقوم‬.‫ بالعديد من المميزات‬nmap ‫ يتميز‬.‫بالضافة إلى الكثير من المعلومات الخرى‬


‫ يقوم بتمييز‬. UDP ‫ و الـ‬TCP ‫ يستعمل حزم الـ‬, port scanning ‫بدعم العديد من تقنيات الـ‬
‫ و‬.‫ حيث يمكن أستخدامه لفحص شبكات كاملة‬,‫ يتميز بالقوة و السرعة‬.‫عدد كبير من أنظمة التشغيل‬
‫ حيث ان ملف المساعدةالخاص‬,‫ الجيد‬Documentation ‫ هي التوثيق‬,‫الميزة الساسية في رأيي‬
‫ بغض النظر عن العديد من الوثائق الموجوده على النترنت‬,‫به يحمل الكثير من المعلومات و المثلة‬
.‫حول استعماله‬

...‫ البسيطة مع بعض المثلة‬Parameters ‫سوف نقوم بمناقشه بعض الخيارات و‬

...‫ بدون أي خيارات‬nmap ‫عند تشغيل الـ‬


[root@localhost root]# nmap

Nmap V. 3.00 Usage: nmap [Scan Type(s)] [Options] <host or net list>
Some Common Scan Types ('*' options require root privileges)
* -sS TCP SYN stealth port scan (default if privileged (root))
-sT TCP connect() port scan (default for unprivileged users)
* -sU UDP port scan
-sP ping scan (Find any reachable machines)
* -sF,-sX,-sN Stealth FIN, Xmas, or Null scan (experts only)
-sR/-I RPC/Identd scan (use with other scan types)
Some Common Options (none are required, most can be combined):
* -O Use TCP/IP fingerprinting to guess remote operating system
-p <range> ports to scan. Example range: '1-1024,1080,6666,31337'
-F Only scans ports listed in nmap-services
-v Verbose. Its use is recommended. Use twice for greater effect.
-P0 Don't ping hosts (needed to scan www.microsoft.com and others)
* -Ddecoy_host1,decoy2[,...] Hide scan using many decoys
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> General timing
policy
-n/-R Never do DNS resolution/Always resolve [default: sometimes resolve]
-oN/-oX/-oG <logfile> Output normal/XML/grepable scan logs to <logfile>
-iL <inputfile> Get targets from file; Use '-' for stdin
* -S <your_IP>/-e <devicename> Specify source address or network interface
--interactive Go into interactive mode (then press h for help)
Example: nmap -v -sS -O www.my.com 192.168.0.0/16 '192.88-90.*.*'
SEE THE MAN PAGE FOR MANY MORE OPTIONS, DESCRIPTIONS, AND EXAMPLES

‫ سوف نقوم بمناقشة بعض الخيارات‬,‫ المهم‬. (: ‫ و ما خفي كان أعظم‬,‫هذا ملف الستعمال فقط‬
.‫ الخاصه بالبرنامج‬man page ‫ و من الممكن للراغب في الستزادة الرجوع إلى الـ‬,‫الكثر أستعماًل‬

-:‫ مثال‬++
[root@localhost root]# nmap -sT -O -vv 127.0.0.1

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )


Host localhost.localdomain (127.0.0.1) appears to be up ... good.
Initiating Connect() Scan against localhost.localdomain (127.0.0.1)
Adding open port 23/tcp
Adding open port 6000/tcp
Adding open port 22/tcp
Adding open port 1027/tcp
Adding open port 111/tcp
The Connect() Scan took 1 second to scan 1601 ports.
For OSScan assuming that port 22 is open and port 1 is closed and neither
are firewalled
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1596 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
23/tcp open telnet
111/tcp open sunrpc
1027/tcp open IIS
6000/tcp open X11
Remote operating system guess: Linux Kernel 2.4.0 - 2.5.20
OS Fingerprint:
TSeq(Class=RI%gcd=1%SI=26D8DB%IPID=Z%TS=100HZ)
T1(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E
%ULEN=134%DAT=E)

Uptime 0.007 days (since Sat Oct 5 01:12:31 2002)


TCP Sequence Prediction: Class=random positive increments
Difficulty=2545883 (Good luck!)
TCP ISN Seq. Numbers: CF9FF245 CF78E942 CFD91AAE D0406C91 D0535F65 D05E00C1
IPID Sequence Generation: All zeros

Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

-:‫في المثال السابق قمت بأجراء فحص على جهازي الخاص بأستخدام الخيارات التالية‬

sT TCP connect() port scan +

‫ و هي تعد الطريقة الكثر إنتشارًا و‬.‫ كوسيلة للفحص‬TCP ‫و يقوم هذا الخيار بتحديد حزم ال‬
‫ هي انها‬,‫ الميزة الوحيدة لهذه الطريقة‬.‫ كما أنها السهل أكتشافًا‬,‫أستعمال بين برامج الفحص المختلفة‬
.‫ كبقية الطرق الخرى‬,‫ل تحتاج إلى أي صلحيات من المستخدم‬

O Use TCP/IP fingerprinting to guess remote operating-+


system

‫لتحديد‬TCP/IP fingerprinting ‫ أستعمال الـ‬.‫هذه هي النقطة الساسية في الموضوع‬


.‫نظام التشغيل‬

v Verbose- +
‫ و يستخدم مرتين‬.‫هذا الخيار يقوم بجعل البرنامج بعرض معلومات عن العمليات التي يقوم بها‬
.‫لزيادة تأثيره و زيادة المعلومات المخرجة‬

``````````````````````````````

-:‫ مثال آخر‬++

[root@localhost root]# nmap -sS -O -vv brokenarrow.org

Starting nmap V. 3.00 ( www.insecure.org/nmap/ )


Host ns.tibp.com (65.38.3.34) appears to be up ... good.
Initiating SYN Stealth Scan against ns.tibp.com (65.38.3.34)
Adding open port 3372/tcp
Adding open port 1025/tcp
Adding open port 80/tcp
Adding open port 443/tcp
Adding open port 3389/tcp
Adding open port 1026/tcp
Adding open port 465/tcp
Adding open port 6103/tcp
Adding open port 1027/tcp
Adding open port 21/tcp
Adding open port 53/tcp
Adding open port 26/tcp
Adding open port 10000/tcp
The SYN Stealth Scan took 67 seconds to scan 1601 ports.
For OSScan assuming that port 21 is open and port 1 is closed and neither
are firewalled
Interesting ports on ns.tibp.com (65.38.3.34):
(The 1583 ports scanned but not shown below are in state: closed)
Port State Service
21/tcp open ftp
26/tcp open unknown
53/tcp open domain
80/tcp open http
135/tcp filtered loc-srv
137/tcp filtered netbios-ns
139/tcp filtered netbios-ssn
443/tcp open https
445/tcp filtered microsoft-ds
465/tcp open smtps
1025/tcp open NFS-or-IIS
1026/tcp open LSA-or-nterm
1027/tcp open IIS
1080/tcp filtered socks
3372/tcp open msdtc
3389/tcp open ms-term-serv
6103/tcp open RETS-or-BackupExec
10000/tcp open snet-sensor-mgmt
Remote operating system guess: Windows 2000/XP/ME
OS Fingerprint:
TSeq(Class=RI%gcd=2%SI=DC67%TS=0)
T1(Resp=Y%DF=Y%W=FAF0%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=Y%W=FAF0%ACK=S++%Flags=AS%Ops=MNWNNT)
T4(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

TCP Sequence Prediction: Class=random positive increments


Difficulty=56423 (Worthy challenge)
TCP ISN Seq. Numbers: 8795E81D 87989E7F 879AB8A3 879EA68B 87A12C7D 87A804B9
IPID Sequence Generation: Busy server or unknown class

Nmap run completed -- 1 IP address (1 host up) scanned in 86 seconds


[root@localhost root]#

‫ وهو يستخدم ما يسمى‬sS TCP SYN stealth port scan- ‫هنا أستعملنا الختيار‬
,‫ و لكن يعيب هذه الطريقة‬.‫ وقلة المواقع التي تقوم برصده‬,‫ يتميز بالسرعة‬.‫بالتصال نصف المفتوح‬
.root ‫انها تستلزم صلحيات الـ‬

‫ و‬,‫ و الخدمات العاملة عليها‬,‫نلحظ في هذا المثال ان البرنامج قد وضح لنا المنافذ المفتوحة‬
.‫ أم ل‬,‫أذا ماكانت مفلترة باحدى وسائل الحماية‬

End Of Part One

Dedication, this is for you, my dear ShiningBlueStar, thank you for helping through life…

GreetZ to :- king_abdo :(), SaD_jAckAl, Tw33Ty, DJ-KING, Victor_Hugo, m0s, Al7aZeEeEeEeN, B-


angle, topZero, T}{3-0N3, Broken|Arrow, Broken|Skull ;)

Special Thanks for my beta readers :)

You might also like