OSINT — Πρακτικό εργαστήριο
Παίρνετε έναν πραγματικό στόχο — ένα δημόσιο πρόγραμμα bug bounty — και τον αποδομείτε σε πλήρη παθητική λειτουργία. Παραδοτέο: ένα πλήρες φύλλο στόχου, με πέντε ταξινομημένα σημεία επίθεσης προτεραιότητας.
Διάρκεια: 2 έως 3 ώρες.
Παραδοτέο: ένας πλήρης φάκελος ~/osint/<στόχος>/, με φύλλο fiche-cible.md 2 σελίδων στην κεφαλή.
Πρέπει να επιλέξετε ένα δημόσιο πρόγραμμα bug bounty του οποίου το scope επιτρέπει ρητά την αναγνώριση. Κανένας άλλος στόχος δεν είναι αποδεκτός. Χρησιμοποιήστε το HackerOne — Open programs, το Bugcrowd — Public programs ή το Intigriti. Μείνετε αυστηρά παθητικοί: αυτό το εργαστήριο δεν περιλαμβάνει καμία σάρωση, κανένα αίτημα προς τον στόχο.
Βήμα 1 — Επιλογή του στόχου (10 λεπτά)
Ανοίξτε τη λίστα δημόσιων προγραμμάτων. Επιλέξτε ένα πρόγραμμα που:
- Επιτρέπει ρητά το
*.exemple.comστο scope του. - Δεν απαιτεί προηγούμενη εγγραφή για την παθητική αναγνώριση.
- Αφορά μια εταιρεία μεσαίου μεγέθους (όχι Google — υπερβολικά τεράστια, ούτε μια startup 5 ατόμων — υπερβολικά φτωχή σε OSINT). Μια SaaS B2B με 100 έως 1000 υπαλλήλους είναι ιδανική.
Σημειώστε:
Επιλεγμένο πρόγραμμα: <όνομα>
Πλατφόρμα: HackerOne / Bugcrowd / Intigriti
URL προγράμματος: ...
Ριζικός τομέας: cible.com
Scope in: *.cible.com, cible.io
Scope out: blog.cible.com, salesforce.cible.com (SaaS τρίτων)
Πολιτική αποκάλυψης: υπεύθυνη αποκάλυψη, 90 ημέρες
Αυτό το μπλοκ πηγαίνει στην κεφαλή του αρχείου fiche-cible.md σας. Αποδεικνύει ότι είστε εξουσιοδοτημένος/η. Είναι το RoE σας για αυτό το εργαστήριο.
Βήμα 2 — Προετοιμασία του φακέλου (2 λεπτά)
CIBLE=<ο-στόχος-σας-χωρίς-www> # π.χ.: acme.io
mkdir -p ~/osint/$CIBLE/{dns,subs,tech,people,leaks,archive}
cd ~/osint/$CIBLE
touch fiche-cible.md
Ξεκινήστε το fiche-cible.md με το μπλοκ scope του βήματος 1. Χωρίς αυτό, καμία έγκυρη δικαιολογία αν κάποιος σας ρωτήσει «γιατί κοιτούσες την εταιρεία μου;».
Βήμα 3 — DNS και στάση email (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 = φορέας phishing)
Βήμα 4 — Υποτομείς (20 λεπτά)
Τρεις πηγές, προς διασταύρωση. Αυστηρά παθητικές.
# Πηγή 1 — Certificate Transparency
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
Παθητική ανάλυση (μέσω δημόσιων resolvers, ποτέ στον πελάτη):
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 — τα blocks Cloudflare — ή από αυτά του Fastly, Akamai, κ.λπ.). Αυτές οι IP δείχνουν συχνά τον πραγματικό διακομιστή πίσω από το 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, καταγράψτε τους 10 πιο ενδιαφέροντες υποτομείς με την IP τους και μια σημείωση για το τι τους κάνει ενδιαφέροντες.
Βήμα 5 — Τεχνολογίες (20 λεπτά)
Χωρίς να αγγίξετε τον στόχο. Χρησιμοποιήστε:
- BuiltWith στον περιηγητή σας.
- Shodan σε CLI ή web:
# Για κάθε IP εκτός CDN εντοπισμένη στο βήμα 4:
shodan host <IP> > tech/shodan-<sous-domaine>.txt
- Wappalyzer — προσοχή, ενεργητικό. Αν το RoE του εργαστηρίου σας δέχεται light active, μπορείτε να το χρησιμοποιήσετε (ένα απλό άνοιγμα σελίδας στον περιηγητή = ένα ορατό HTTP hit στα logs του στόχου). Διαφορετικά, παραλείψτε το.
Σημειώστε, στο tech/synthese.md, για κάθε εντοπισμένο στόχο:
- Διακομιστή web και έκδοση.
- Εφαρμογικό framework αν είναι αναγνωρίσιμο.
- Ανοιχτές θύρες που είδε το Shodan (όχι εσείς — το Shodan τις έχει ήδη σαρώσει, εσείς τις συμβουλεύεστε).
- Banners υπηρεσιών (SSH, mail…).
- Ορατά λάθη ρύθμισης: λειτουργία DEBUG, σελίδες σφαλμάτων που προδίδουν το stack, header
Server:υπερβολικά φλύαρο.
Βήμα 6 — Πρόσωπα (20 λεπτά)
# Ψάχνει emails + προφίλ LinkedIn (μέσω Bing)
theHarvester -d $CIBLE -b linkedin,bing,duckduckgo -l 500 \
-f people/harvester.html
Συμπληρώστε με το χέρι στο LinkedIn:
- Υπάλληλοι σε ενεργή θέση με τεχνικούς τίτλους (CTO, VP Eng, DevOps, SRE, Sec, IT).
- Πρώην υπάλληλοι (τελευταία θέση:
<votre-cible>, αναφοράleft in <date>). Τα δημόσια GitHub τους περιέχουν μερικές φορές κατάλοιπα.
Ενοποιήστε στο people/personnes.csv:
prenom,nom,titre,email,linkedin,github
Στόχος: τουλάχιστον 15 άτομα εντοπισμένα. Θα επιτεθείτε μόνο σε 3 ή 4 αργότερα, αλλά χρειάζεται η δεξαμενή.
Βήμα 7 — Διαρροές (20 λεπτά)
Τρεις πηγές, με αυτή τη σειρά:
1. HaveIBeenPwned ανά τομέα (αν έχετε κλειδί API, διαφορετικά χρησιμοποιήστε τη διεπαφή web ανά μεμονωμένο email):
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:
- Αριθμό email του στόχου που διέρρευσαν και σε ποια dumps.
- Κάθε κλειδί, κάθε κωδικό πρόσβασης, κάθε μυστικό που βρέθηκε τα τελευταία 3 χρόνια.
Βήμα 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, τα 5 έως 10 πιο ενδιαφέροντα URL που βρέθηκαν στα αρχεία — προς επανεπικύρωση στην εβδομάδα 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" # ονομασμένα buckets S3
site:*.blob.core.windows.net "$CIBLE" # blobs Azure
site:*.digitaloceanspaces.com "$CIBLE"
Κρατήστε screenshot κάθε μη τετριμμένου αποτελέσματος. Μην κάνετε κλικ από το Google (το κλικ περνά από redirector του Google αλλά καταλήγει στον στόχο = ενεργητικό). Αντιγράψτε-επικολλήστε το URL σε ένα παράθυρο curl -I -A "Mozilla/5.0" αργότερα, στην εβδομάδα 4, σε αναλαμβανόμενη ενεργητική φάση.
Βήμα 10 — Ενοποίηση (30 λεπτά)
Ανοίξτε το fiche-cible.md και συμπληρώστε αυστηρά τις παρακάτω ενότητες. Κάθε ενότητα έχει κριτήρια πληρότητας.
# Φύλλο στόχου — <CIBLE> (<ημερομηνία>)
## 0. Εύρος και εξουσιοδότηση
[το μπλοκ του βήματος 1, με το URL του προγράμματος]
## 1. Επιβεβαιωμένα assets
- Ριζικός τομέας + registrar
- <N> υποτομείς συλλεγμένοι (πηγές: crt.sh, subfinder, amass)
- Πιο ενδιαφέροντες υποτομείς (5-10, με IP + σημείωση)
## 2. Διευθυνσιοδότηση
- Blocks και πάροχοι (Cloudflare, AWS, Azure, GCP, OVH, Vultr…)
- Εντοπισμένες IP εκτός CDN
## 3. Τεχνολογίες
- Front, backend, πιθανή βάση δεδομένων
- Διακομιστές web και εκδόσεις (μέσω Shodan)
- Συνδεδεμένα SaaS (Stripe, Twilio, Sentry, Datadog… ορατά σε SPF ή headers)
## 4. Στάση email
- MX
- SPF (λίστα include)
- DMARC (πολιτική, ευθυγράμμιση)
- DKIM παρόν;
## 5. Βασικά πρόσωπα (>= 15)
- Συνημμένο αρχείο people/personnes.csv
## 6. Δημόσιες διαρροές
- HIBP: <N> λογαριασμοί εμπλεκόμενοι, dumps
- GitHub: βρεθέντα μυστικά (καθορίστε repository, αρχείο, τύπο μυστικού)
- Pastebin / Google: ευρήματα
## 7. Πέντε προτεραιότητες στόχοι (φθίνουσα σειρά)
1. <στόχος> — <λόγος> — <εκτιμώμενη προσπάθεια επιβεβαίωσης>
2. ...
3. ...
4. ...
5. ...
## 8. Επόμενο βήμα (ενότητα 4)
- Σχέδιο της ενεργητικής φάσης: ποιος υποτομέας, ποιο εργαλείο, ποιο παράθυρο.
- Σημεία προς διαπραγμάτευση στο RoE (αν βρέθηκε υποτομέας εκτός αρχικού εύρους).
Πλέγμα αυτοαξιολόγησης
- Το πρόγραμμα bug bounty και το scope του αναφέρονται στην κεφαλή του φύλλου.
- Τουλάχιστον 50 υποτομείς συλλεγμένοι (στόχος 100+ σε κανονικό στόχο).
- Διασταύρωση:
crt.sh+subfinder+amass(και οι 3, όχι απλώς ένα). - Όλες οι IP ταξινομημένες σε CDN / μη-CDN / ιδιωτική.
- Στάση email τεκμηριωμένη (SPF, DMARC, DKIM).
- Τουλάχιστον 15 άτομα με το email τους εικασμένο από το πρότυπο.
- Τουλάχιστον μία πηγή διαρροής ελεγμένη (HIBP ή GitHub Search).
- Wayback Machine ελεγμένη, top URL σημειωμένα.
- Πέντε προτεραιότητες στόχοι ταξινομημένοι με αιτιολόγηση.
- Καμία εντολή δεν άγγιξε τον στόχο. Καμία σάρωση. Κανένα άμεσο
curl.
Όλα σημειωμένα; Το φύλλο σας είναι έτοιμο να τροφοδοτήσει την εβδομάδα 4.
Τι μπλοκάρει συνήθως
- Λίγοι υποτομείς: ο στόχος είναι μικρός, ή κυρίως πίσω από CDN που κρύβει καλά. Αφιερώστε περισσότερο χρόνο σε GitHub και LinkedIn.
- Καμία πρόσβαση σε Shodan/HIBP: διαθέσιμες δωρεάν εκδόσεις, λιγότερο πλούσιες. Ή περιμένετε το τέλος του μαθήματος, αξίζει τη συνδρομή.
- Το theHarvester αποδίδει λίγα: το LinkedIn κλείνει τακτικά την πρόσβαση Bing. Φτιάξτε το οργανόγραμμα με το χέρι, είναι 30 λεπτά.
- Πειρασμός να σαρώσετε: είναι το σημάδι ότι δεν έχετε σκάψει αρκετά τις παθητικές πηγές. Επιστρέψτε να ψάξετε.
Τι κρατάτε από αυτό το εργαστήριο
- Ένα αναπαραγώγιμο workflow σε 2 ώρες σε οποιονδήποτε εξουσιοδοτημένο στόχο.
- Ένα φύλλο 2 σελίδων που θα είναι η αναφορά για όλες τις επόμενες ενότητες σε αυτόν τον στόχο.
- Το ένστικτο να αναγνωρίζετε έναν ενδιαφέροντα υποτομέα σε ένα δευτερόλεπτο.
- Την πειθαρχία να μη στέλνετε τίποτα πριν έχετε κοιτάξει τα πάντα.