Skip to main content

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 σελίδων που θα είναι η αναφορά για όλες τις επόμενες ενότητες σε αυτόν τον στόχο.
  • Το ένστικτο να αναγνωρίζετε έναν ενδιαφέροντα υποτομέα σε ένα δευτερόλεπτο.
  • Την πειθαρχία να μη στέλνετε τίποτα πριν έχετε κοιτάξει τα πάντα.