OSINT — ورشة تطبيقية
تأخذ هدفاً حقيقياً — برنامج bug bounty عمومي — وتفكّكه بشكل سلبي كامل. المُنتَج: بطاقة هدف كاملة، مع خمس نقاط هجوم ذات أولوية مُصنَّفة.
المدة المقدَّرة: من ساعتين إلى 3 ساعات.
المُنتَج: مجلد ~/osint/<cible>/ كامل، مع بطاقة fiche-cible.md من صفحتين في المقدمة.
يجب عليك اختيار برنامج bug bounty عمومي يُصرِّح نطاقه صراحةً بالاستطلاع. لا يُقبل أي هدف آخر. استخدم HackerOne — Open programs أو Bugcrowd — Public programs أو Intigriti. ابقَ سلبياً بشكل صارم: هذه الورشة لا تتضمن أي فحص، ولا أي طلب موجَّه إلى الهدف.
الخطوة 1 — اختيار الهدف (10 دقائق)
افتح قائمة البرامج العمومية. اختر برنامجاً:
- يُصرِّح صراحةً بـ
*.exemple.comضمن نطاقه. - لا يشترط تسجيلاً مسبقاً للاستطلاع السلبي.
- يخص شركة متوسطة الحجم (ليس Google — ضخم جداً، ولا شركة ناشئة من 5 أشخاص — فقيرة جداً في OSINT). شركة SaaS B2B بين 100 و1000 موظف مثالية.
دوّن:
البرنامج المختار : <الاسم>
المنصة : HackerOne / Bugcrowd / Intigriti
رابط البرنامج : ...
النطاق الجذري : cible.com
النطاق المشمول : *.cible.com، cible.io
النطاق المستبعد : blog.cible.com، salesforce.cible.com (SaaS خارجي)
سياسة الإفصاح : إفصاح مسؤول، 90 يوماً
هذه الكتلة تُوضَع في مقدمة ملفك fiche-cible.md. إنها تثبت أنك مصرَّح لك. هذا هو RoE الخاص بك لهذه الورشة.
الخطوة 2 — تحضير المجلد (دقيقتان)
CIBLE=<votre-cible-sans-www> # مثال: acme.io
mkdir -p ~/osint/$CIBLE/{dns,subs,tech,people,leaks,archive}
cd ~/osint/$CIBLE
touch fiche-cible.md
ابدأ fiche-cible.md بكتلة النطاق من الخطوة 1. دون ذلك، لا عذر مقبول إن سألك أحدهم "لماذا كنت تراقب شركتي؟".
الخطوة 3 — DNS وموقف البريد الإلكتروني (10 دقائق)
أعد إنتاج حلقة العرض التوضيحي:
for t in A AAAA MX NS TXT SOA CAA; do
echo "=== $t ==="
dig +short $CIBLE $t
done | tee dns/racine.txt
dig +short _dmarc.$CIBLE TXT | tee dns/dmarc.txt
أجب، في fiche-cible.md، عن هذه الأسئلة:
- هل النطاق خلف CDN؟ أيّ واحد؟
- ما هم مزودو خدمة المراسلة؟
- هل يذكر SPF خدمات SaaS؟ أيّها؟
- هل سياسة DMARC هي
noneأوquarantineأوreject؟ (none = متجه تصيد)
الخطوة 4 — النطاقات الفرعية (20 دقيقة)
ثلاثة مصادر، للتقاطع. سلبية صارمة.
# المصدر 1 — شفافية الشهادات
curl -s "https://crt.sh/?q=%25.$CIBLE&output=json" \
| jq -r '.[].name_value' \
| tr '[:upper:]' '[:lower:]' \
| sed 's/^\*\.//' \
| sort -u > subs/from-crt.txt
# المصدر 2 — subfinder
subfinder -d $CIBLE -silent -all -o subs/from-subfinder.txt
# المصدر 3 — amass سلبي
amass enum -passive -d $CIBLE -o subs/from-amass.txt
# الدمج
cat subs/from-*.txt | sort -u > subs/all-passive.txt
wc -l subs/all-passive.txt
التحليل السلبي (عبر محلّلات عمومية، أبداً عند العميل):
dnsx -l subs/all-passive.txt -a -resp -silent -r 1.1.1.1,8.8.8.8 \
-o subs/resolved.txt
افتح subs/resolved.txt. ارصد:
- عناوين IP خارج CDN (تلك التي لا تبدأ بـ 104.16-31، 172.64-71، 141.101، 173.245 — كتل Cloudflare — أو بكتل Fastly وAkamai وغيرها). هذه العناوين غالباً ما تشير إلى الخادم الحقيقي خلف CDN. هدف ثمين.
- النطاقات الفرعية بكلمات مفتاحية مُنبِّهة:
dev،staging،test،preprod،internal،old،legacy،admin،panel،jenkins،gitlab،sonar،vault،backup،vpn،ssh،rdp.
- عناوين IP خاصة (10.x، 172.16-31.x، 192.168.x) منشورة في DNS عمومي: خطأ تهيئة يجب الإبلاغ عنه.
في fiche-cible.md، اذكر النطاقات الفرعية العشرة الأكثر إثارة للاهتمام مع عنوان IP وملاحظة عن سبب أهميتها.
الخطوة 5 — التقنيات (20 دقيقة)
دون لمس الهدف. استخدم:
- BuiltWith في متصفحك.
- Shodan عبر CLI أو الويب:
# لكل عنوان IP خارج CDN تم تحديده في الخطوة 4:
shodan host <IP> > tech/shodan-<sous-domaine>.txt
- Wappalyzer — انتباه، فعّال. إذا كان RoE ورشتك يقبل light active، يمكنك استخدامه (مجرد فتح صفحة في المتصفح = نقرة HTTP ظاهرة في سجلات الهدف). وإلا، تخلَّ عنه.
دوّن، في tech/synthese.md، لكل هدف تم تحديده:
- الخادم الويب وإصداره.
- إطار العمل التطبيقي إن أمكن تحديده.
- المنافذ المفتوحة التي يراها Shodan (ليس أنت — Shodan فحصها مسبقاً، وأنت فقط تطّلع عليها).
- لافتات الخدمة (SSH، البريد…).
- أخطاء التهيئة الظاهرة: وضع DEBUG، صفحات خطأ تفضح الستاك، ترويسة
Server:مُفرِطة في الإفصاح.
الخطوة 6 — الأشخاص (20 دقيقة)
# البحث عن رسائل بريد + ملفات LinkedIn (عبر Bing)
theHarvester -d $CIBLE -b linkedin,bing,duckduckgo -l 500 \
-f people/harvester.html
أكمل يدوياً على LinkedIn:
- موظفون حاليون بمناصب تقنية (CTO، VP Eng، DevOps، SRE، Sec، IT).
- موظفون سابقون (آخر منصب:
<هدفك>، ذِكرleft in <date>). حساباتهم العمومية على GitHub تحتوي أحياناً على بقايا مفيدة.
جمّع people/personnes.csv:
prenom,nom,titre,email,linkedin,github
الهدف: 15 شخصاً على الأقل تم تحديدهم. لن تهاجم سوى 3 أو 4 منهم لاحقاً، لكن يجب توفير المخزون.
الخطوة 7 — التسريبات (20 دقيقة)
ثلاثة مصادر، بهذا الترتيب:
1. HaveIBeenPwned حسب النطاق (إذا كان لديك مفتاح API، وإلا استخدم واجهة الويب لكل بريد إلكتروني على حدة):
curl -s -H "hibp-api-key: $HIBP_KEY" \
"https://haveibeenpwned.com/api/v3/breacheddomain/$CIBLE" \
| jq . > leaks/hibp.json
2. GitHub Search للهدف ولكل موظف مُدرَج:
https://github.com/search?type=commits&q=%22$CIBLE%22
https://github.com/search?type=code&q=%22$CIBLE%22+password
https://github.com/search?type=code&q=%22$CIBLE%22+AKIA
https://github.com/search?type=code&q=%22$CIBLE%22+secret
النمط AKIA يبحث عن مفاتيح AWS. النمط password يبحث عن... كلمات المرور. لن تجد دائماً شيئاً؛ عندما تجد، يكون ذهباً.
3. Pastebin / Ghostbin / Rentry عبر Google:
site:pastebin.com "$CIBLE"
site:ghostbin.co "$CIBLE"
"$CIBLE" password ext:txt
دوّن في leaks/synthese.md:
- عدد رسائل بريد الهدف المُسرَّبة وفي أي تفريغات.
- كل مفتاح، كل كلمة مرور، كل سرّ عُثر عليه في السنوات الثلاث الأخيرة.
الخطوة 8 — أرشيفات Wayback (10 دقائق)
curl -s "https://web.archive.org/cdx/search/cdx?url=$CIBLE/*&output=json&limit=500" \
| jq -r '.[1:] | .[] | .[2]' \
| sort -u > archive/urls.txt
grep -iE 'admin|backup|debug|swagger|api-doc|test|internal|dev|graphql|env|config|status' archive/urls.txt \
> archive/interessants.txt
wc -l archive/urls.txt archive/interessants.txt
دوّن، في fiche-cible.md، الروابط الخمسة إلى العشرة الأكثر إثارة للاهتمام الموجودة في الأرشيفات — يجب إعادة التحقق منها في الأسبوع 4.
الخطوة 9 — Google Dorks (15 دقيقة)
افتح Google (أو DuckDuckGo، أقل ضجيجاً) ونفّذ على الأقل هذه الطلبات، مع التنويع:
site:$CIBLE inurl:admin
site:$CIBLE inurl:login
site:$CIBLE inurl:.git
site:$CIBLE ext:sql
site:$CIBLE ext:env
site:$CIBLE ext:log
site:$CIBLE ext:bak
site:$CIBLE intitle:"index of"
site:$CIBLE "internal use only"
site:$CIBLE "confidential"
site:$CIBLE "-----BEGIN" # بداية مفاتيح PGP/RSA
site:*.amazonaws.com "$CIBLE" # حاويات S3 المُسمَّاة
site:*.blob.core.windows.net "$CIBLE" # حاويات Azure blob
site:*.digitaloceanspaces.com "$CIBLE"
التقط صورة لأي نتيجة غير تافهة. لا تنقر انطلاقاً من Google (النقر يمر عبر مُعيد توجيه من Google لكنه يصل عند الهدف = فعّال). انسخ والصق الرابط في نافذة curl -I -A "Mozilla/5.0" لاحقاً، في الأسبوع 4، في وضع فعّال مُتحمَّل.
الخطوة 10 — التوحيد (30 دقيقة)
افتح fiche-cible.md واملأ بدقة الأقسام التالية. كل قسم له معايير اكتمال.
# بطاقة الهدف — <CIBLE> (<التاريخ>)
## 0. النطاق والتصريح
[كتلة الخطوة 1، مع رابط البرنامج]
## 1. الأصول المؤكَّدة
- النطاق الجذري + مسجّل النطاقات
- <N> نطاقاً فرعياً تم جمعها (المصادر: crt.sh، subfinder، amass)
- النطاقات الفرعية الأكثر إثارة للاهتمام (5-10، مع IP + ملاحظة)
## 2. العنونة
- الكتل والموردون (Cloudflare، AWS، Azure، GCP، OVH، Vultr…)
- عناوين IP خارج CDN المحدَّدة
## 3. التقنيات
- الواجهة، الخلفية، قاعدة البيانات المحتملة
- الخوادم الويب والإصدارات (عبر Shodan)
- خدمات SaaS المرتبطة (Stripe، Twilio، Sentry، Datadog… المرصودة في SPF أو الترويسات)
## 4. موقف البريد الإلكتروني
- MX
- SPF (قائمة الـ include)
- DMARC (السياسة، المحاذاة)
- هل DKIM موجود؟
## 5. الأشخاص الرئيسيون (>= 15)
- ملف people/personnes.csv مُرفَق
## 6. التسريبات العمومية
- HIBP: <N> حساباً معنياً، التفريغات
- GitHub: أسرار عُثر عليها (حدِّد المستودع، الملف، نوع السر)
- Pastebin / Google: اكتشافات
## 7. خمسة أهداف ذات أولوية (ترتيب تنازلي)
1. <الهدف> — <السبب> — <الجهد المقدَّر للتأكيد>
2. ...
3. ...
4. ...
5. ...
## 8. الخطوة التالية (الوحدة 4)
- خطة المرحلة الفعّالة: أي نطاق فرعي، أي أداة، أي نافذة زمنية.
- نقاط يجب التفاوض عليها في RoE (إذا اكتُشف نطاق فرعي خارج النطاق الأصلي).
شبكة التقييم الذاتي
- برنامج bug bounty ونطاقه مذكوران في مقدمة البطاقة.
- 50 نطاقاً فرعياً على الأقل تم جمعها (استهدف 100+ على هدف عادي).
- التقاطع تم:
crt.sh+subfinder+amass(الثلاثة، لا واحد فقط). - كل عناوين IP مُصنَّفة CDN / غير CDN / خاصة.
- موقف البريد الإلكتروني موثَّق (SPF، DMARC، DKIM).
- 15 شخصاً على الأقل مع بريدهم الإلكتروني المُخمَّن من النمط.
- مصدر تسريب واحد على الأقل تمت استشارته (HIBP أو GitHub Search).
- Wayback Machine تمت استشارتها، أهم الروابط مدوَّنة.
- خمسة أهداف ذات أولوية مُصنَّفة مع تبرير.
- لا أمر واحد لمس الهدف. لا فحص. لا
curlمباشر.
كلها مُحقَّقة؟ بطاقتك جاهزة لتغذية الأسبوع 4.
ما يعيق العملية عموماً
- نطاقات فرعية قليلة: الهدف صغير، أو مختفٍ غالباً خلف CDN يخفي جيداً. اقضِ وقتاً أطول على GitHub وLinkedIn.
- لا وصول إلى Shodan/HIBP: نسخ مجانية متوفرة، أقل ثراءً. أو انتظر نهاية الدورة، يستحق الاشتراك.
- theHarvester يُنتج القليل: LinkedIn يُغلق وصول Bing بانتظام. أنجز الهيكل التنظيمي يدوياً، الأمر يستغرق 30 دقيقة.
- إغراء الفحص: هذا دليل على أنك لم تحفر بما يكفي في المصادر السلبية. عد للبحث.
ما تخرج به من هذه الورشة
- سير عمل قابل للتكرار خلال ساعتين على أي هدف مصرَّح به.
- بطاقة من صفحتين ستكون المرجع لكل الوحدات اللاحقة على هذا الهدف.
- الحدس للتعرف على نطاق فرعي مثير للاهتمام في ثانية واحدة.
- الانضباط بعدم إرسال أي شيء قبل النظر إلى كل شيء.