تقرير امتحان OSCP
قواعد تقرير امتحان OSCP: الـ proof.txt والـ local.txt مع الـ IP في نفس الـ Screenshot، والخطوات الكاملة، وتسمية الملف والـ 7z، والتسليم في أربعة وعشرين ساعة.
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
أهلاً بيك. في امتحان OSCP، ممكن تاخد كل الأجهزة… وبرضه ما تنجحش. ليه؟ لأن الـ points بتتحسب من التقرير. أي حاجة مش مكتوبة صح… كأنك ما عملتهاش.
التوقيت: الامتحان نفسه حوالي أربعة وعشرين ساعة. وبعده عندك أربعة وعشرين ساعة كمان تكتب وتسلّم التقرير. علشان كده اكتب الـ Notes والـ Screenshots وإنت شغال، مش بعدين.
أهم قاعدة: الـ proof. لكل جهاز، فيه ملف local dot txt و proof dot txt. لازم Screenshot فيه محتوى الملف، والـ IP بتاع الجهاز، في نفس الصورة. يعني cat أو type للملف، وجنبه ip addr أو ipconfig. ومن shell تفاعلي، مش web shell.
والخطوات: خطوات كاملة يقدر المُصَحِّح يكررها، من أول scan لحد الـ proof. أي exploit عدّلت فيه، حط الـ code ووضّح التعديل. ولو استخدمت أداة، اكتب الـ command بالزبط. نعمل checker بسيط على الـ Screenshots بتاعة كل جهاز. نشغّل… جهاز تمام، وجهاز ناقصه الـ IP، وجهاز الـ proof بتاعه من web shell. الاتنين دول ممكن يضيّعوا عليك الـ points بتاعتهم.
osid = "OS-12345"
machines = [
{"ip": "192.168.50.10", "local": True, "proof": True, "shows_ip": True, "shell": "interactive"},
{"ip": "192.168.50.11", "local": True, "proof": True, "shows_ip": False, "shell": "interactive"},
{"ip": "192.168.50.12", "local": True, "proof": False, "shows_ip": True, "shell": "webshell"},
]
for m in machines:
issues = []
if not m["shows_ip"]:
issues.append("IP not in proof screenshot")
if m["shell"] != "interactive":
issues.append("proof must be from an interactive shell")
print(m["ip"], "OK" if not issues else issues)المخرجات
192.168.50.10 OK 192.168.50.11 ['IP not in proof screenshot'] 192.168.50.12 ['proof must be from an interactive shell']
والتسليم: التقرير PDF، اسمه فيه الـ OSID بتاعك. جوّه ملف 7z بنفس الاسم، من غير باسورد. وترفعه على موقع OffSec للرفع، وتتأكد إنه اترفع. والقواعد دي ممكن تتغير، فاقرا الـ OSCP Exam Guide الرسمي قبل الامتحان. دورك: ضيف للـ code سطرين بيطبعوا اسم الـ PDF واسم الـ archive من الـ osid.
اعمل name = f"OSCP-{osid}-Exam-Report" واطبع .pdf و .7z.
الحل: نشغّل…
osid = "OS-12345"
machines = [
{"ip": "192.168.50.10", "local": True, "proof": True, "shows_ip": True, "shell": "interactive"},
{"ip": "192.168.50.11", "local": True, "proof": True, "shows_ip": False, "shell": "interactive"},
{"ip": "192.168.50.12", "local": True, "proof": False, "shows_ip": True, "shell": "webshell"},
]
for m in machines:
issues = []
if not m["shows_ip"]:
issues.append("IP not in proof screenshot")
if m["shell"] != "interactive":
issues.append("proof must be from an interactive shell")
print(m["ip"], "OK" if not issues else issues)
name = f"OSCP-{osid}-Exam-Report"
print("PDF:", name + ".pdf")
print("Archive:", name + ".7z")المخرجات
192.168.50.10 OK 192.168.50.11 ['IP not in proof screenshot'] 192.168.50.12 ['proof must be from an interactive shell'] PDF: OSCP-OS-12345-Exam-Report.pdf Archive: OSCP-OS-12345-Exam-Report.7z
الدرس الجاي والأخير: نجمّع كل اللي اتعلمناه في الكورس، في مراجعة سريعة. يلا بينا.
03 / دروس المسار (21)
- 01ليه التقرير أهم حاجة في الـ Pentest
- 02مين بيقرا التقرير؟
- 03نظام Notes من أول دقيقة
- 04Activity Log: كل حاجة بالوقت
- 05خلّي الـ Terminal يسجّل لوحده
- 06الأدلة: إيه اللي يعتبر دليل؟
- 07سلامة الأدلة: Hash و Chain of Custody
- 08إخفاء البيانات الحساسة (Redaction)
- 09خطوات إعادة التنفيد (Steps to Reproduce)
- 10الـ Impact: الخطر الحقيقي على البيزنس
- 11CVSS: الخطورة برقم
- 12الـ Risk Matrix: الاحتمال في الـ Impact
- 13ترتيب الأولويات والـ Quick Wins
- 14هيكل تقرير اختبار الاختراق
- 15الـ Executive Summary: صفحة للإدارة
- 16كتابة الـ Finding التقني
- 17توصيات الإصلاح اللي تتنفّد فعلاً
- 18خلّي Python يكتب التقرير
- 19المراجعة قبل التسليم والـ Retest
- 20تقرير امتحان OSCPانت هنا
- 21المراجعة النهائية: من الـ Note للتقرير