OSINT: الموظفين والإيميلات
إزاي تجمع أسماء الموظفين من LinkedIn والموقع، وتعرف شكل الإيميلات بأدوات زي Hunter و theHarvester، وتولّد قايمة إيميلات بـ Python.
نص شرح المعلم والكود الذي كتبه ونتيجة تشغيله، بنفس ترتيب الدرس.
أضعف حلقة في أي شركة غالباً مش الـ server، دي الناس. و OSINT، يعني Open Source Intelligence، هو إنك تجمع معلومات من المصادر العامة، والناس جزء كبير منها.
منين تجيب أسماء الموظفين؟ LinkedIn، وده أهم مصدر: أسماء ووظايف وتكنولوجيا بيشتغلوا عليها. صفحة فريق العمل في موقع الشركة. إعلانات الوظايف، اللي بتكشف الـ systems اللي عندهم. و GitHub، وساعات بتلاقي فيه code أو باسوردات بالغلط.
بعد الأسماء، محتاج تعرف شكل الإيميل: first dot last؟ ولا أول حرف واللقب؟ أدوات زي Hunter dot io بتقولّك الشكل. و theHarvester بيجمع إيميلات وأسماء من مصادر كتير. ومن إيميل واحد حقيقي، تقدر تخمّن الباقي.
ليه الإيميلات مهمة؟ قايمة usernames تجرّب عليها Password Spraying بعدين. و Phishing لو مسموح في الـ scope. وخد بالك: إنت بتجمع معلومات عن شغلهم بس، مش حياتهم الشخصية. عندنا تلات أسماء، وعرفنا من إيميل حقيقي إن الشكل first dot last. function اسمها make email بتحوّل الاسم لإيميل بالشكل ده. ولاحظ إن اللقب لو كلمتين، بنلزقهم في بعض. نشغّل… تلات إيميلات بنفس شكل الشركة.
# Names found on LinkedIn and the company website (fake)
employees = ["Ahmed Hassan", "Sara Mostafa", "Omar El Sayed"]
domain = "example-corp.com"
# From WHOIS and a PDF we saw: [email protected]
fmt = "{first}.{last}"
def make_email(full_name):
parts = full_name.lower().split()
first, last = parts[0], "".join(parts[1:])
return fmt.format(first=first, last=last, f=first[0]) + "@" + domain
for name in employees:
print(f"{name:15} -> {make_email(name)}")المخرجات
Ahmed Hassan -> [email protected] Sara Mostafa -> [email protected] Omar El Sayed -> [email protected]
دورك: افترض إن الشركة بتستخدم أول حرف من الاسم، وبعده اللقب. غيّر الـ fmt علشان يبقى f وبعدها last.
خلّي fmt = "{f}{last}".
الحل: نشغّل… ahassan، و smostafa، و oelsayed.
# Names found on LinkedIn and the company website (fake)
employees = ["Ahmed Hassan", "Sara Mostafa", "Omar El Sayed"]
domain = "example-corp.com"
# From WHOIS and a PDF we saw: [email protected]
fmt = "{f}{last}"
def make_email(full_name):
parts = full_name.lower().split()
first, last = parts[0], "".join(parts[1:])
return fmt.format(first=first, last=last, f=first[0]) + "@" + domain
for name in employees:
print(f"{name:15} -> {make_email(name)}")المخرجات
Ahmed Hassan -> [email protected] Sara Mostafa -> [email protected] Omar El Sayed -> [email protected]
الدرس الجاي: الـ metadata، المعلومات المستخبّية جُوّه الملفات اللي الشركة بتنشرها. يلا بينا.
03 / دروس المسار (22)
- 01يعني إيه جمع معلومات (Recon)؟
- 02سلبي ولا نشط؟ والنطاق القانوني
- 03WHOIS: مين صاحب الـ Domain؟
- 04سجلات DNS: كنز المعلومات
- 05اكتشاف الـ Subdomains
- 06Certificate Transparency: الشهادات بتتكلم
- 07Google Dorking
- 08OSINT: الموظفين والإيميلاتانت هنا
- 09الـ Metadata: أسرار جُوّه الملفات
- 10اكتشاف الأجهزة الشغّالة (Host Discovery)
- 11الـ Port Scanning بيشتغل إزاي؟
- 12Nmap: البداية
- 13أنواع الـ Scan والسرعة في Nmap
- 14كشف الخدمات والإصدارات ونظام التشغيل
- 15NSE Scripts وحفظ النتايج
- 16تعداد الويب: الـ Headers والتكنولوجيا
- 17الـ Directory Brute Force
- 18تعداد SMB
- 19تعداد خدمات تانية: FTP و DNS و SNMP وغيرهم
- 20تنظيم نتايج الـ Recon
- 21أتمتة الـ Recon بـ Python
- 22مراجعة شاملة وخطة Recon