Discussione Percorso Exploit Development

Stato
Discussione chiusa ad ulteriori risposte.
Ci sono diversi team di professionisti che si occupano della ricerca di vulnerabilità su software e persino sistemi operativi, Project Zero per esempio, che fa parte di Google. Non ho mai visto nessuno di questi team qui in Italia ma se riesci a farti notare da uno di questi avrai di sicuro qualche possibilità di farne la tua professione, invece di dedicarti al pentesting che invece ha molto poco di quello che interessa a te, o almeno così mi sembra. Puoi farti notare contribuendo a progetti e iniziative pubbliche, scoprendo vulnerabilità che vengono riconosciute dagli sviluppatori e a cui magari vengono assegnate delle CVE, poi spiegando il tuo processo di scoperta e di exploitation su un blog, e così via.
 
  • Mi piace
Reazioni: 0xbro
Ho scritto una "breve" guida introduttiva per chi volesse muovere i primi passi ed esercitarsi con i primi Buffer Overflow:
 
  • Mi piace
Reazioni: ElectricDreamer
Buongiorno, sono interessata a fare un percorso di apprendimento che mi porterà ad essere un'esperta di exploit development.

Questo è il percorso a cui ho pensato:

  1. C++
  2. PEN-100
  3. PEN-200
  4. PEN-300
  5. EXP-301
  6. EXP-401
Vorrei sapere da voi se è corretto, se devo cambiare qualcosa etc.
In oltre vorrei comprendere quale è il tempo necessario per completarlo.

Per darvi un po' di background:

Laureata in Economia
Qualche esperienza con Python

Grazie in anticipo!
Ciao, per EXP dev ti consiglio l'osed(exp-301) e una quantità considerevole di risorse online e tanti tanti esercizi.
Se ti interessa solo exploit development evita questi:
  • PEN-100
  • PEN-200
  • PEN-300
Personalmente non sono bravo di exp dev, ho cominciato a studiarla anche io qualche mese fa con l'exp 301 (Che tratta 32 bit).
Comunque te lo consiglio, poichè prende anche casi di studio.

L'unica cosa che posso consigliarti è che se ti piace quella branca, concentrati solo su quella, evita di andare sulla parte web, anche perchè (per quello che riguarda me), l'apprendimento è molto lento e sono argomenti abbastanza rognosi e difficili .

Per iniziare ti consiglio:
- SLAE di pentester academy (Assembly x86)
- SLAE per x64
(o puoi partire direttamente a studiare 64 bit, perchè ovviamente devi imparare a leggere l'assembly)
-OSED (EXP 301)


Corsi che consigliano quando sei ad un livello più avanzato:


Premetto che purtroppo. nel mercato del lavoro non troverai quasi niente in italia.

Per non parlare del fatto che queste sono competenze che non acquisisci neanche all' università, sono tutte cose che ti devi imparare da te, ed ho visto che per le poche posizioni di lavoro per questo tipo di mansione, cercano gente con certificati validi, insomma che sia già imparata...

Per non parlare delle ore di studio e soldi che dovrai investire in queste cose, quindi prima di farci un lavoro, purtroppo non ci vorrà poco tempo.

Ovviamente devi anche esercitarti sul reverse eng, imparare a fare analisi statica(es IDA) e dinamica del binario(WINdgb).
Detto questo ti auguro buona fortuna, perchè mi è sempre interessata questa parte e spero nei prossimi anni di impararla bene, purtroppo per motivi di mercato io mi buttai anche io dalla parte del PT,WEB,AD.

E guardo sempre annunci di lavoro per ricerca anche all'estero, ma è molto difficile.

Ti auguro buona fortuna!
 
  • Incredibile
Reazioni: 0xbro

maldev

Utente Iron
13 Marzo 2022
5
2
3
3
Buongiorno, sono interessata a fare un percorso di apprendimento che mi porterà ad essere un'esperta di exploit development.

Questo è il percorso a cui ho pensato:

  1. C++
  2. PEN-100
  3. PEN-200
  4. PEN-300
  5. EXP-301
  6. EXP-401
Vorrei sapere da voi se è corretto, se devo cambiare qualcosa etc.
In oltre vorrei comprendere quale è il tempo necessario per completarlo.

Per darvi un po' di background:

Laureata in Economia
Qualche esperienza con Python

Grazie in anticipo!
 
Benvenuta, taggo qui @0xbro che ha la OSCP e saprà dirti di più sulle certificazioni e i relativi tempi. Per quanto riguarda exploit development sto imparando per altre vie e da quello che ho sentito dire la EXP-401 è molto difficile in quanto devi già saperne molto al di fuori da quello e altri corsi, e questo ci sta perché hai scelto forse uno degli argomenti più complessi del settore, a mio parere anche tra i più soddisfacenti.
 
Benvenuta, taggo qui @0xbro che ha la OSCP e saprà dirti di più sulle certificazioni e i relativi tempi. Per quanto riguarda exploit development sto imparando per altre vie e da quello che ho sentito dire la EXP-401 è molto difficile in quanto devi già saperne molto al di fuori da quello e altri corsi, e questo ci sta perché hai scelto forse uno degli argomenti più complessi del settore, a mio parere anche tra i più soddisfacenti.
Grazie mille!
Trovo molto soddisfacente scoprire la soluzione di un problema complesso! Come opportunità lavorative, è possibile entrare in questo settore anche senza una laurea in informatica?
 
Benvenuta, taggo qui @0xbro che ha la OSCP e saprà dirti di più sulle certificazioni e i relativi tempi. Per quanto riguarda exploit development sto imparando per altre vie e da quello che ho sentito dire la EXP-401 è molto difficile in quanto devi già saperne molto al di fuori da quello e altri corsi, e questo ci sta perché hai scelto forse uno degli argomenti più complessi del settore, a mio parere anche tra i più soddisfacenti.

Ciao! Personalmente non so molto di binary exploitation ma mi è capitato di fare qualcosa (robe comunque abbastanza entry level).

Parto con una premessa: non so quanta richiesta di mercato ci sia per un argomento così tanto di nicchia. So che ci sono aziende che comprano 0-day tipo zerodium e simili, ma non so quanto ci sia effettivamente mercato per i programmi più di ordine generale (forse bug bounty?).

PEN-100 e PEN-200 sono certificazioni di carattere generale (a dire il vero la PEN-100 è solo un corso, non è nemmeno una certificazione), dove si vede un po' di tutto. Ottime per chi vuole studiare penetration tests su varie piattaforme e target, forse un po' meno per chi vuole fare SOLO binary (il mio consiglio è comunque quello di prenderle, soprattutto la PEN-200 e la rispettiva OSCP perchè ti dà una quasi garanzia sul mercato). La PEN-200 introduce le basi della binary exploitation, ma nulla di complesso (classico stack-based buffer overflow su macchine x86 senza protezioni). La PEN-300 non c'entra nulla con la binary, è il proseguo della PEN-200 e si incentra principalmente su macchine Windows, Active Directory, letaral movement nella rete ed evasion da antivirus e minacce del genere... Se ti interessa la binary, questa è una certificazione che non ti serve, la puoi sempre riprendere successivamente.

EXP-301 e EXP-401 sono, ovviamente, ottime per quanto riguarda il tuo interesse. La EXP-301 ha un livello intermediate, per superarla serve sicuramente esperienza e impegno, ma nonostante tutto non ha bisogno di pre-requisiti. Da quel che leggo non servono pre-requisiti, il corso introduce tutte le tecniche dalla più basilare, ma ovviamente avere avuto già un'esperienza come la OSCP aiuta molto (sia a livello di conoscenza, sia a livello di esame - sai già cosa aspettarti.).
La EXP-401 è indubbiamente la più interessante e utile, è quella che davvero ti introduce al mondo "reale" della binary exploitation. Non so dirti molto perchè non conosco nessuno che la abbia, ma sicuramente è una certificazione molto complessa e avanzata.

A livello di tempistiche, senza avere conoscenze pregresse di alcun genere, credo che ci vogliano almeno almeno 2 anni per preparare bene la OSCP (PEN-200), da lì magari un altro anno per preparare la OSED (EXP-301) e poi un altro anno per la EXP-401, ma non ne sono sicuro. Io ho preso la OSCP l'altro anno con 2 anni di esperienza nel settore e altri 2 anni da autodidatta, e non ho avuto grossi problemi. Credo però che almeno 2 anni ci vogliano come minimo, sia di studio ma soprattutto di tanta pratica.

PS: approfondire da subito il C++ non credo serva, io inizierei giusto con le basi del C per poi approfondirlo una volta che te lo ritrovi davvero davanti. Rischi altrimenti di perdere un sacco di tempo su cose che non ti capiterà di vedere prima di un paio d'anni
 
Ciao! Personalmente non so molto di binary exploitation ma mi è capitato di fare qualcosa (robe comunque abbastanza entry level).

Parto con una premessa: non so quanta richiesta di mercato ci sia per un argomento così tanto di nicchia. So che ci sono aziende che comprano 0-day tipo zerodium e simili, ma non so quanto ci sia effettivamente mercato per i programmi più di ordine generale (forse bug bounty?).

PEN-100 e PEN-200 sono certificazioni di carattere generale (a dire il vero la PEN-100 è solo un corso, non è nemmeno una certificazione), dove si vede un po' di tutto. Ottime per chi vuole studiare penetration tests su varie piattaforme e target, forse un po' meno per chi vuole fare SOLO binary (il mio consiglio è comunque quello di prenderle, soprattutto la PEN-200 e la rispettiva OSCP perchè ti dà una quasi garanzia sul mercato). La PEN-200 introduce le basi della binary exploitation, ma nulla di complesso (classico stack-based buffer overflow su macchine x86 senza protezioni). La PEN-300 non c'entra nulla con la binary, è il proseguo della PEN-200 e si incentra principalmente su macchine Windows, Active Directory, letaral movement nella rete ed evasion da antivirus e minacce del genere... Se ti interessa la binary, questa è una certificazione che non ti serve, la puoi sempre riprendere successivamente.

EXP-301 e EXP-401 sono, ovviamente, ottime per quanto riguarda il tuo interesse. La EXP-301 ha un livello intermediate, per superarla serve sicuramente esperienza e impegno, ma nonostante tutto non ha bisogno di pre-requisiti. Da quel che leggo non servono pre-requisiti, il corso introduce tutte le tecniche dalla più basilare, ma ovviamente avere avuto già un'esperienza come la OSCP aiuta molto (sia a livello di conoscenza, sia a livello di esame - sai già cosa aspettarti.).
La EXP-401 è indubbiamente la più interessante e utile, è quella che davvero ti introduce al mondo "reale" della binary exploitation. Non so dirti molto perchè non conosco nessuno che la abbia, ma sicuramente è una certificazione molto complessa e avanzata.

A livello di tempistiche, senza avere conoscenze pregresse di alcun genere, credo che ci vogliano almeno almeno 2 anni per preparare bene la OSCP (PEN-200), da lì magari un altro anno per preparare la OSED (EXP-301) e poi un altro anno per la EXP-401, ma non ne sono sicuro. Io ho preso la OSCP l'altro anno con 2 anni di esperienza nel settore e altri 2 anni da autodidatta, e non ho avuto grossi problemi. Credo però che almeno 2 anni ci vogliano come minimo, sia di studio ma soprattutto di tanta pratica.

PS: approfondire da subito il C++ non credo serva, io inizierei giusto con le basi del C per poi approfondirlo una volta che te lo ritrovi davvero davanti. Rischi altrimenti di perdere un sacco di tempo su cose che non ti capiterà di vedere prima di un paio d'anni
Grazie mille! Quindi in termini di job market mi consiglieresti di puntare su un generale pentesting e magari lavorare come side project sull'exploit development?
 
Ultima modifica:
Grazie mille! Quindi in termini di job market mi consiglieresti di puntare su un generale pentesting e magari lavorare come side project sull'exploit development?
Secondo me sì, ma sinceramente non conosco molto bene il mercato estero, per cui può essere che come lavoro negli USA non sia così raro. In italia non c'è molta richiesta, anzi è praticamente nulla, per cui se vuoi lavorare nel settore ma rimanere con clienti italiani/aziende italiane, la figura di penetration tester è quella ideale (soprattutto con conoscenze lato web, dato che la maggior parte degli assessment si svolge contro web application).

All'estero vedo che c'è richiesta anche di Reverse Engineer (che non sono proprio come chi fa binary, ma per certi versi hanno anche tratti simili): https://www.indeed.com/q-Binary-Reverse-Engineer-jobs.html?vjk=3bac242a548aa6e6

PS: @JunkCoder te forse ne sai più di me su quanto riguarda la richiesta di figure professionali in ambito reverse
 
Secondo me sì, ma sinceramente non conosco molto bene il mercato estero, per cui può essere che come lavora negli USA non sia così raro. In italia non c'è molta richiesta, anzi è praticamente nulla, per cui se vuoi lavorare nel settore ma rimanere con clienti italiani/aziende italiane, la figura di penetration tester è quella ideale (soprattutto con conoscenze lato web, dato che la maggior parte degli assessment si svolge contro web application).

All'estero vedo che c'è richiesta anche di Reverse Engineer (che non sono proprio come chi fa binary, ma per certi versi hanno anche tratti simili): https://www.indeed.com/q-Binary-Reverse-Engineer-jobs.html?vjk=3bac242a548aa6e6

PS: @JunkCoder te forse ne sai più di me su quanto riguarda la richiesta di figure professionali in ambito reverse
Perfetto, cercherò di andare più a fondo! Come lingue sto su inglese, francese e sto imparando il cinese. Vedremo un po'
 
Secondo me sì, ma sinceramente non conosco molto bene il mercato estero, per cui può essere che come lavora negli USA non sia così raro. In italia non c'è molta richiesta, anzi è praticamente nulla, per cui se vuoi lavorare nel settore ma rimanere con clienti italiani/aziende italiane, la figura di penetration tester è quella ideale (soprattutto con conoscenze lato web, dato che la maggior parte degli assessment si svolge contro web application).

All'estero vedo che c'è richiesta anche di Reverse Engineer (che non sono proprio come chi fa binary, ma per certi versi hanno anche tratti simili): https://www.indeed.com/q-Binary-Reverse-Engineer-jobs.html?vjk=3bac242a548aa6e6

PS: @JunkCoder te forse ne sai più di me su quanto riguarda la richiesta di figure professionali in ambito reverse

In Italia a livello di reversing c'è poca domanda ma è in linea con l'offerta, all'estero c'è molta più richiesta scoperta. Inoltre per fare exploit development, in particolare binary exploitation, sono necessarie conoscenze di reverse engineering.
 
Stato
Discussione chiusa ad ulteriori risposte.