فحص بصلاحيات ومن غيرها
الفرق بين الـ unauthenticated والـ authenticated scanning: ليه الفحص بصلاحيات بيشوف أكتر بكتير، إمتى تستخدم كل واحد، وتطلّع الثغرات اللي بس بتبان من جُوّه بـ Python.
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
كل الأدوات اللي فاتت فحصت الهدف من بره، يعني زي مهاجم من غير حساب. ده اسمه unauthenticated scan. بس فيه طريقة تانية بتوريك أكتر بكتير: الفحص بصلاحيات.
إيه الفرق؟ unauthenticated: الأداة بتبص على الخدمات من بره بس، زي مهاجم لسه ما دخلش. authenticated: بتدّي الأداة حساب على الجهاز، SSH على Linux أو حساب على Windows، فتدخل جُوّه وتبص على التفاصيل.
ليه الفحص بصلاحيات بيشوف أكتر؟ من جُوّه الأداة بتقدر تقرا: الإصدارات الدقيقة لكل package متنصّب. الـ patches الناقصة. الإعدادات الغلط. حاجات كتير ما بتظهرش خالص من بره، فالفحص بصلاحيات بيلاقي ثغرات أضعافها.
إمتى تستخدم إيه؟ unauthenticated: لما تحب تشوف الهدف بعين المهاجم من بره. authenticated: لما العميل عايز جرد كامل للثغرات، وده الأشمل. خد بالك: الحساب اللي العميل بيديهولك حسّاس، استعمله في الفحص بس، واحفَظه كويس. هنا نفس الجهاز اتفحص مرتين: مرة من غير حساب، ومرة بحساب SSH. كل نتيجة هي set من أسماء الـ packages اللي الأداة شافتها، وبنطبع عدد كل واحدة. نشغّل… من غير حساب اتنين بس، وبحساب خمسة.
# Same host scanned twice: without login, then with SSH credentials.
unauth = {"OpenSSH 8.9p1", "Apache 2.4.49"}
auth = {"OpenSSH 8.9p1", "Apache 2.4.49", "sudo 1.8.31", "polkit 0.105", "openssl 1.1.1f"}
print("without login:", len(unauth), "findings")
print("with login: ", len(auth), "findings")المخرجات
without login: 2 findings with login: 5 findings
دورك: طلّع الثغرات اللي بس بانت بعد ما دخلنا بحساب. ده الفرق بين الـ set بتاع الـ auth والـ set بتاع الـ unauth، واطبعه مترتّب.
only_inside = auth - unauth وبعدين اطبع sorted(only_inside)
الحل: نشغّل… تلات packages ما كانتش بتبان من بره خالص.
# Same host scanned twice: without login, then with SSH credentials.
unauth = {"OpenSSH 8.9p1", "Apache 2.4.49"}
auth = {"OpenSSH 8.9p1", "Apache 2.4.49", "sudo 1.8.31", "polkit 0.105", "openssl 1.1.1f"}
print("without login:", len(unauth), "findings")
print("with login: ", len(auth), "findings")
only_inside = auth - unauth
print("only seen with login:", sorted(only_inside))المخرجات
without login: 2 findings with login: 5 findings only seen with login: ['openssl 1.1.1f', 'polkit 0.105', 'sudo 1.8.31']
كده خلّصنا أدوات الفحص. بس الأدوات دي بتطلّع نتايج كتير، كلها لازم تتراجع. والجزء الجاي هو أهم جزء في الكورس: تحليل النتايج. يلا بينا.
03 / دروس المسار (16)
- 01يعني إيه ثغرة؟ ومن الـ Recon للـ Vulnerabilities
- 02CVE و CWE: أسماء الثغرات
- 03الخطورة: CVSS و EPSS و KEV
- 04البحث في NVD
- 05Exploit-DB و searchsploit
- 06GitHub و Metasploit
- 07الفحص بـ Nmap NSE
- 08الفحص بـ Nuclei
- 09الفحص بـ Nikto
- 10الفحص بـ OpenVAS
- 11فحص بصلاحيات ومن غيرهاانت هنا
- 12تجميع وتنظيم النتايج
- 13False Positives والتأكد اليدوي
- 14ترتيب الأولويات
- 15أتمتة الفحص بـ Python
- 16مراجعة شاملة