Professional Documents
Culture Documents
-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
لقد قمت بحذف الـ HTML codeالناتج لتقليل الحجم ,ل اكثر .لقد قمنا هنا بالتصال بالمنفذ
رقم , 80و قمنا بتنفيذ طلب GETغير صالح ,فكانت المخرجات هي صفحة الخطأ رقم 400الدالة
على عدم العثور على الصفحة المطلوبة .و بعدها يعطينا الخادم الكثير من المعلومات عنه .مثل نوع
الخادم و أصداره ,و نظام التشغيل و المزيد من المعلومات الخرى.
هنا قمنا بتفيذ الطلب , 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
و هيTTL= 128 نجد أن قيمة الـ, و عند النظر إلى النتائج,قمت بتنفيذ المر على جهازي
و, الجدول الخاص بأنظمة التشغيل, و في ما يلي. بشكل عامWindows القيمة المرتبطة بأنظمة الـ
-: المرتبطة بهاTTL قيم الـ
OS VERSION PLATFORM TTL
Unisys x Mainframe 64
SCO R5 Compaq 64
هذه هي بعض النظمة و القيم المرتبطة بها .عند التطبيق في الحياة العملية ,سوف نلحظ أن
القيم الناتجة ل تساوي القيم السابقة أطلقًا .عند مرور حزم البيانات ,بأي 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بالرد بشكل طبيعي...
قمنا بأستعمال أداة الـ 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
و يعتمد على أرسال حزم من اليبانات ,و أستقبال الردود ,و تحليلها للحصول على النتائج .و
ينقسم هذا الجزء بدوره إلى قسمين-:
TCP/IP Fingerprinting-
و يعتمد بشكل أساسي على الـ . Sniffingو لن أقوم بمناقشته في هذا الملف .ربما في
الحلقات القادمة(;...
````````````````````````````````````
TCP/IP Fingerprinting
كما ذكرنا سابقًا ,تعتمد فكرة الـ TCP/IP Fingerprintingعلى أختلف مواصفات
بروتوكول الـ TCP/IPعلى مختلف أنظمة التشغيل .بمعنى أخر ,تختلف أستجابة كل نظام تشغيل عن
الخر ,بالنسبة لنفس طلب أو أتصال TCPمعين .بحيث يمكن تحديد نظام التشغيل بمجرد المقارنة
بأستجابة نظام التشغيل المعلومة مسبقًا.
توجد العديد من الدوات التي تمكننا من القيام بهذا النوع من الفحص ,والمتوفرة على شبكة
النترنت ,و التي تعمل كلها تقريبًا على أنظمة الـ* . nixمن أهم هذه الدوات checkos, SS by:
.Su1d, queso, nmapنظرًا لن nmapهو القوى و ألفضل ,و الكثر أنتشارًا و أستعماًل,
فسوف يقتصر حديثنا عليه في الوقت الحالي.
مبدئيًا (nmap (Network MAPer ,هو عبارة عن أداة لستكشاف الشبكات .كما يمكن
بالطبع أستخدامه بالنسبة للجهزة المنفردة .الوظائف الساسية للـ 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
-:في المثال السابق قمت بأجراء فحص على جهازي الخاص بأستخدام الخيارات التالية
و هي تعد الطريقة الكثر إنتشارًا و. كوسيلة للفحصTCP و يقوم هذا الخيار بتحديد حزم ال
هي انها, الميزة الوحيدة لهذه الطريقة. كما أنها السهل أكتشافًا,أستعمال بين برامج الفحص المختلفة
. كبقية الطرق الخرى,ل تحتاج إلى أي صلحيات من المستخدم
v Verbose- +
و يستخدم مرتين.هذا الخيار يقوم بجعل البرنامج بعرض معلومات عن العمليات التي يقوم بها
.لزيادة تأثيره و زيادة المعلومات المخرجة
``````````````````````````````
وهو يستخدم ما يسمىsS TCP SYN stealth port scan- هنا أستعملنا الختيار
, و لكن يعيب هذه الطريقة. وقلة المواقع التي تقوم برصده, يتميز بالسرعة.بالتصال نصف المفتوح
.root انها تستلزم صلحيات الـ
و, و الخدمات العاملة عليها,نلحظ في هذا المثال ان البرنامج قد وضح لنا المنافذ المفتوحة
. أم ل,أذا ماكانت مفلترة باحدى وسائل الحماية
Dedication, this is for you, my dear ShiningBlueStar, thank you for helping through life…