المراجعة النهائية: من الـ Note للتقرير

جارٍ التحميل…

01 / ملخص الدرس

المراجعة النهائية: من الـ Note للتقرير

نجمّع الكورس كله في مثال واحد: Note بالوقت، ودليل بالـ Hash، وإخفاء البيانات، وسطر Finding في التقرير، وبعدين اللي جاي في المسار.

02 / شرح الدرس مكتوبًا

نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.

أهلاً بيك في آخر درس. النهاردة هنمشي بـ Finding واحد، من أول ما لقيناه، لحد ما بقى سطر في التقرير.

الرحلة كلها: Note بالوقت بالـ UTC، وإنت شغال. دليل، وعليه Hash يِتْبِت إنه سليم. Redaction للبيانات الحساسة. الـ Impact والـ CVSS والـ Risk. وفي الآخر Finding كامل بتوصية إصلاح، وتقرير بيتراجع قبل ما يتبعت. نشوف ده كله في code واحد: الـ Note، والدليل والـ Hash بتاعه، والباسورد متخفي، وسطر الجدول في التقرير. نشغّل… كل مرحلة من الكورس، في سطر.

main.py
import hashlib
from datetime import datetime, timezone

# 1) Note with time
t = datetime(2025, 3, 10, 14, 22, tzinfo=timezone.utc).strftime("%Y-%m-%d %H:%M UTC")
note = f"[{t}] sqlmap on /login.php -> users table dumped"

# 2) Evidence with hash
evidence = b"admin:5f4dcc3b5aa765d61d8327deb882cf99"
digest = hashlib.sha256(evidence).hexdigest()[:16]

# 3) Redaction
shown = evidence.decode().split(":")[0] + ":" + "*" * 8

# 4) Finding line for the report
finding = {"id": "F-01", "title": "SQL Injection in login form",
           "severity": "Critical", "cvss": 9.8, "fix": "Use prepared statements"}

print(note)
print(f"evidence: {shown} (sha256 {digest}...)")
print(f"| {finding['id']} | {finding['title']} | {finding['severity']} | {finding['cvss']} |")

المخرجات

[2025-03-10 14:22 UTC] sqlmap on /login.php -> users table dumped
evidence: admin:******** (sha256 f9718794c0c56fa7...)
| F-01 | SQL Injection in login form | Critical | 9.8 |

وافتكر أهم خمس قواعد: اكتب وإنت شغال. مفيش Finding من غير دليل. اكتب للقارئ، مش لنفسك. التوصية لازم تكون محددة وتتنفّد. وراجع قبل ما تبعت. دورك الأخير: ضيف سطر بيطبع توصية الإصلاح بتاعة الـ Finding.

تمرين

اطبع finding["fix"] بعد سطر الجدول.

الحل: نشغّل…

main.py
import hashlib
from datetime import datetime, timezone

# 1) Note with time
t = datetime(2025, 3, 10, 14, 22, tzinfo=timezone.utc).strftime("%Y-%m-%d %H:%M UTC")
note = f"[{t}] sqlmap on /login.php -> users table dumped"

# 2) Evidence with hash
evidence = b"admin:5f4dcc3b5aa765d61d8327deb882cf99"
digest = hashlib.sha256(evidence).hexdigest()[:16]

# 3) Redaction
shown = evidence.decode().split(":")[0] + ":" + "*" * 8

# 4) Finding line for the report
finding = {"id": "F-01", "title": "SQL Injection in login form",
           "severity": "Critical", "cvss": 9.8, "fix": "Use prepared statements"}

print(note)
print(f"evidence: {shown} (sha256 {digest}...)")
print(f"| {finding['id']} | {finding['title']} | {finding['severity']} | {finding['cvss']} |")
print("Remediation:", finding["fix"])

المخرجات

[2025-03-10 14:22 UTC] sqlmap on /login.php -> users table dumped
evidence: admin:******** (sha256 f9718794c0c56fa7...)
| F-01 | SQL Injection in login form | Critical | 9.8 |
Remediation: Use prepared statements

ومن هنا، كل حاجة هتعملها في الـ Track هتتكتب بالطريقة دي. الكورس الجاي: جمع المعلومات… الاستطلاع السلبي والنشط، واكتشاف الأجهزة والـ services. وكل حاجة هتلاقيها، هتكتبها في الـ Notes بتاعتك من أول دقيقة. يلا بينا.

03 / دروس المسار (21)
  1. 01ليه التقرير أهم حاجة في الـ Pentest
  2. 02مين بيقرا التقرير؟
  3. 03نظام Notes من أول دقيقة
  4. 04Activity Log: كل حاجة بالوقت
  5. 05خلّي الـ Terminal يسجّل لوحده
  6. 06الأدلة: إيه اللي يعتبر دليل؟
  7. 07سلامة الأدلة: Hash و Chain of Custody
  8. 08إخفاء البيانات الحساسة (Redaction)
  9. 09خطوات إعادة التنفيد (Steps to Reproduce)
  10. 10الـ Impact: الخطر الحقيقي على البيزنس
  11. 11CVSS: الخطورة برقم
  12. 12الـ Risk Matrix: الاحتمال في الـ Impact
  13. 13ترتيب الأولويات والـ Quick Wins
  14. 14هيكل تقرير اختبار الاختراق
  15. 15الـ Executive Summary: صفحة للإدارة
  16. 16كتابة الـ Finding التقني
  17. 17توصيات الإصلاح اللي تتنفّد فعلاً
  18. 18خلّي Python يكتب التقرير
  19. 19المراجعة قبل التسليم والـ Retest
  20. 20تقرير امتحان OSCP
  21. 21المراجعة النهائية: من الـ Note للتقريرانت هنا