الـ Metadata: أسرار جُوّه الملفات

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

01 / ملخص الدرس

الـ Metadata: أسرار جُوّه الملفات

إيه هي الـ metadata في ملفات PDF و Office والصور، وإيه اللي بتكشفه (usernames وإصدارات software)، وأدوات زي exiftool، وتطلّعها من PDF بـ Python.

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

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

في درس Google Dorking طلّعنا ملفات PDF منشورة على موقع الشركة. الملفات دي فيها حاجة أغلب الناس ما بتشوفهاش: الـ metadata.

الـ metadata يعني بيانات عن البيانات. في ملفات PDF و Word: اسم الكاتب، والبرنامج اللي اتعمل بيه، وتاريخ الإنشاء. وفي الصور: نوع الكاميرا، وساعات مكان التصوير بالـ GPS.

ده بيفيد في إيه؟ اسم الكاتب غالباً هو الـ username بتاعه على الـ domain. إصدار البرنامج أو الـ Windows بيقولّك الشركة بتستخدم إيه، ولو قديم يبقى فيه ثَغَرات معروفة. والأداة الأشهر اسمها exiftool. ملف PDF من جُوّه فيه جزء اسمه Info، شكله زي اللي قدامك. نستخدم regular expression تدوّر على slash، وبعدها اسم، وبعدها قيمة بين parentheses، ونحوّل النتيجة لـ dictionary. نشغّل… الكاتب ahmed dot hassan، وده غالباً الـ username بتاعه. والملف اتعمل بـ Word ألفين وستاشر على Windows عشرة.

main.py
import re

# The start of a real PDF keeps an "Info" dictionary like this one
pdf = b"""%PDF-1.4
1 0 obj
<< /Title (Q3 Sales Report)
   /Author (ahmed.hassan)
   /Creator (Microsoft Word 2016)
   /Producer (Windows 10 Pro)
   /CreationDate (D:20240312094500) >>
endobj
"""

meta = dict(re.findall(rb"/(\w+) \(([^)]*)\)", pdf))

for key, value in meta.items():
    print(f"{key.decode():13} {value.decode()}")

المخرجات

Title         Q3 Sales Report
Author        ahmed.hassan
Creator       Microsoft Word 2016
Producer      Windows 10 Pro
CreationDate  D:20240312094500

دورك: اطبع بس الحاجتين المهمين للـ Pentester: الـ Author والـ Creator، وقبل كل واحد كلمة interesting.

تمرين

لِف على [b"Author", b"Creator"] واطبع meta .decode().

الحل: نشغّل…

main.py
import re

# The start of a real PDF keeps an "Info" dictionary like this one
pdf = b"""%PDF-1.4
1 0 obj
<< /Title (Q3 Sales Report)
   /Author (ahmed.hassan)
   /Creator (Microsoft Word 2016)
   /Producer (Windows 10 Pro)
   /CreationDate (D:20240312094500) >>
endobj
"""

meta = dict(re.findall(rb"/(\w+) \(([^)]*)\)", pdf))

for key, value in meta.items():
    print(f"{key.decode():13} {value.decode()}")

for key in [b"Author", b"Creator"]:
    print("interesting:", meta[key].decode())

المخرجات

Title         Q3 Sales Report
Author        ahmed.hassan
Creator       Microsoft Word 2016
Producer      Windows 10 Pro
CreationDate  D:20240312094500
interesting: ahmed.hassan
interesting: Microsoft Word 2016

كده خلّصنا الجمع السلبي. الدرس الجاي هنبدأ الجمع النشط: إزاي تعرف أنهي أجهزة شغّالة على الشبكة. يلا بينا.

03 / دروس المسار (22)
  1. 01يعني إيه جمع معلومات (Recon)؟
  2. 02سلبي ولا نشط؟ والنطاق القانوني
  3. 03WHOIS: مين صاحب الـ Domain؟
  4. 04سجلات DNS: كنز المعلومات
  5. 05اكتشاف الـ Subdomains
  6. 06Certificate Transparency: الشهادات بتتكلم
  7. 07Google Dorking
  8. 08OSINT: الموظفين والإيميلات
  9. 09الـ Metadata: أسرار جُوّه الملفاتانت هنا
  10. 10اكتشاف الأجهزة الشغّالة (Host Discovery)
  11. 11الـ Port Scanning بيشتغل إزاي؟
  12. 12Nmap: البداية
  13. 13أنواع الـ Scan والسرعة في Nmap
  14. 14كشف الخدمات والإصدارات ونظام التشغيل
  15. 15NSE Scripts وحفظ النتايج
  16. 16تعداد الويب: الـ Headers والتكنولوجيا
  17. 17الـ Directory Brute Force
  18. 18تعداد SMB
  19. 19تعداد خدمات تانية: FTP و DNS و SNMP وغيرهم
  20. 20تنظيم نتايج الـ Recon
  21. 21أتمتة الـ Recon بـ Python
  22. 22مراجعة شاملة وخطة Recon