Domanda Pentesting: vulnerabilità

Stato
Discussione chiusa ad ulteriori risposte.

Dox420

Utente Bronze
9 Novembre 2017
5
2
0
25
Salve a tutti, mi sono affacciato da poco al mondo del pentesting. L'altro giorno stavo smanettando un po' con metaxploit, cercando dal fisso di entrare nel mio portatile con xp. Leggendo varie guide online da quello che ho capito un attacco exploit si svolge grossomodo così:
-scansiono la rete con nmap e individuo il target
-mi "connetto" al target con metaxploit
-cerco le vulnerabilità
-faccio partire l'exploit adatto a una certa vulnerabilità e adesso sono davvero "connesso" al mio target.
Io sono riuscito a creare la mia sessione, l'exploit è partito tutto molto bello. Il punto è che conoscevo a priori il sistema operativo e sapevo a priori di dover far partire la 08_067, credo che sia un esercizio comune per principianti. Ma se non sapessi a priori che macchina è il mio target, come faccio a scegliere l'exploit giusto dalla lista infinita che c'è su metaxploit? Praticamente non ho capito come trovare una vulnerabilità su una macchina o rete, e soprattutto cos'è una vulnerabilità? che pacchetto uso per fare questo tipo di scansioni? ci sono guide che spiegano la teoria di questo "passo" che un hacker dovrebbe compiere prima di exploitare una macchina?

Magari se qualcuno conosce anche qualche libro valido sul pentesting (non dal prezzo esagerato XD) mi sarebbe davvero utile!
Per adesso mi sono posto 2 obbiettivi: come funziona/si piazza un exploit e/o una backdoor (ma ci arriverò più avanti dopo gli exploit), e in generale ambientarmi in metaxploit

Non so se mi sono spiegato, scusate se il gergo tecnico non è preciso ma sono ancora agli inizi

Grazie a tutti, Dox420
 
Un attacco cambia il tipo di svolgimento a seconda della via che si è scelta per provare ad attaccare un target, non affezionarti troppo ad essere su dei binari, imparerai presto che dovrai essere parecchio malleabile per riuscire in un pentest.
Sapere il tipo di attacco da effettuare è una delle parti più difficili, questa fase si chiama Information Gathering ed è la fase in cui cerchi di carpire più informazioni possibili su un determinato sistema, quindi non c'è una legge scritta che ti dica come muoverti per approcciare ad un target (per fortuna, altrimenti se tutte le situazioni fossero uguali sarebbe davvero la fine).
Una vulnerabilità è una falla che puoi sfruttare per riuscire ad ottenere qualcosa che non era intenzione tu ottenessi.
Sto cercando di essere il più conciso possibile ma ci si sarebbe da scrivere ore per farti capire cosa intendo.
Giusto dei piccoli appunti che è importante tu abbia in mente:
Non è sempre necessario l'utilizzo di Metasploit (non Metaxploit ;) ), spesso si può lavorare 'a mano'.
Impara a programmare, scriverti i tuoi tool sarà di vitale importanza, sia per riuscire a capire come funziona un software (tipo Metasploit, altrimenti ti limiteresti ad imparare comandi a memoria) sia perché non per tutte le situazioni avrai un programma pronto e magari anche riuscire a trovare tu stesso delle vulnerabilità ancora non conosciute
 
Ultima modifica:
io sto studiando adesso programmazione di sistema all'università e programmiamo in C su unix. In materia di sicurezza sono digiuno e quello che mi piacerebbe capire e come approcciarmi a questa materia.
Ho fatto un piccolo esame di reti di calcolatori che mi ha aiutato a capire un po' come a grandi linee ci si possa muovere, ma di concreto niente. In ogni caso, mi interessa capire proprio nello specifico cosa sia una vulnerabilità di un sistema; per esempio un mio amico un po' più avanti di me mi ha detto: "ma una vulnerabilità di un sistema può essere la segretaria che ti infila la chiavetta infetta nel pc" e da questo ho capito molte cose, ma a livello di codice, vorrei capire cos'ha fatto Metasploit (ora è giusto grazie XD), quando ho premuto invio su exploit? Cosa devo studiare per capirlo?
Io una vulnerabilità me la immagino tipo... scrivo un programma e un ciclo va in ricorsione infinita se x=42, chi scopre x=42 scopre la "vulnerabilità del mio programma" è giusta come idea?

Dimenticavo, grazie per la risposta
 
io sto studiando adesso programmazione di sistema all'università e programmiamo in C su unix. In materia di sicurezza sono digiuno e quello che mi piacerebbe capire e come approcciarmi a questa materia.
Ho fatto un piccolo esame di reti di calcolatori che mi ha aiutato a capire un po' come a grandi linee ci si possa muovere, ma di concreto niente. In ogni caso, mi interessa capire proprio nello specifico cosa sia una vulnerabilità di un sistema; per esempio un mio amico un po' più avanti di me mi ha detto: "ma una vulnerabilità di un sistema può essere la segretaria che ti infila la chiavetta infetta nel pc" e da questo ho capito molte cose, ma a livello di codice, vorrei capire cos'ha fatto Metasploit (ora è giusto grazie XD), quando ho premuto invio su exploit? Cosa devo studiare per capirlo?
Io una vulnerabilità me la immagino tipo... scrivo un programma e un ciclo va in ricorsione infinita se x=42, chi scopre x=42 scopre la "vulnerabilità del mio programma" è giusta come idea?

Dimenticavo, grazie per la risposta

Capisco il tuo problema, vorresti propio "entrare" dentro la logica, hai capito ma non hai capito.
Intanto ricorda, come sto facendo io, impara a programmare, dopo che sai parlare benissimo più linguaggi, puoi ragionare come una macchina e pensare a come muoverti.
Metasploit raccoglie gli exploit esistenti fino ad ora, in vari moduli, ma sappi che usare websploit , sqlmap o cose del genere, sono solo tool pieni di moduli esistenti e già conosciuti.
esempio : mettiamo vuoi hackerare una banca, difficilmente lo farai con i moduli che già esistono, devi trovarli, arrivando a capire come ragionare e da dove iniziare e cosa provare.
Quindi sappi mio caro, che il pentesting è sinonimo di bestemmia, a meno che tu non sia un super genio o un super cattolico ahahah.
 
Salve a tutti, mi sono affacciato da poco al mondo del pentesting. L'altro giorno stavo smanettando un po' con metaxploit, cercando dal fisso di entrare nel mio portatile con xp. Leggendo varie guide online da quello che ho capito un attacco exploit si svolge grossomodo così:
-scansiono la rete con nmap e individuo il target
-mi "connetto" al target con metaxploit
-cerco le vulnerabilità
-faccio partire l'exploit adatto a una certa vulnerabilità e adesso sono davvero "connesso" al mio target.
Io sono riuscito a creare la mia sessione, l'exploit è partito tutto molto bello. Il punto è che conoscevo a priori il sistema operativo e sapevo a priori di dover far partire la 08_067, credo che sia un esercizio comune per principianti. Ma se non sapessi a priori che macchina è il mio target, come faccio a scegliere l'exploit giusto dalla lista infinita che c'è su metaxploit? Praticamente non ho capito come trovare una vulnerabilità su una macchina o rete, e soprattutto cos'è una vulnerabilità? che pacchetto uso per fare questo tipo di scansioni? ci sono guide che spiegano la teoria di questo "passo" che un hacker dovrebbe compiere prima di exploitare una macchina?

Magari se qualcuno conosce anche qualche libro valido sul pentesting (non dal prezzo esagerato XD) mi sarebbe davvero utile!
Per adesso mi sono posto 2 obbiettivi: come funziona/si piazza un exploit e/o una backdoor (ma ci arriverò più avanti dopo gli exploit), e in generale ambientarmi in metaxploit

Non so se mi sono spiegato, scusate se il gergo tecnico non è preciso ma sono ancora agli inizi

Grazie a tutti, Dox420
Un pentester ad esempio potrebbe visualizzare tutto il codice di questa pagina e agire come diceva il signore sopra "a mano"...
Esempio ancora: se ci fai caso nei forum, alcuni ti fanno aggiungere l'avatar tramite URL, ecco, se in quell URL metti un host con dentro uno script PHP che cattura l'ip, puoi delocalizzare la pagina ad esempio, anche se non c'entra è per farti capire che un Python o C , html php java script, vanno conosciuti a dovere.
 
Allora, ciò che chiedi è abbastanza complicato, purtroppo non ho ancora trovato nessun libro che spieghi a dovere come ragione per trovare un exploit, in ogni caso un exploit non è altro che un programma fatto ad hoc per sfruttare una vulnerabilità all'interno del sistema, prendendo per esempio ciò che ti ha detto il tuo amico faccio queste distinzioni per aiutarti:

Vulnerabilità = Segretaria ritardata
Payload = Pennetta infetta
Exploit = Il tizio che gliela porta e la convince ad inserirla

La vulnerabilità guardata da un punto di vista più informatico è una gestione approssimativa di quelli che di solito sono gli input dell'utente

Il payload è, nel caso di attacchi che portino ad un RCE (Remote Command Execution), il codice maligno (o dimostrativo) che verrà eseguito dall'exploit

L'exploit infine non è altro che quel qualcosa che ti permette di fare cose che di solito non sono permesse di fare, ad esempio una segretaria non dovrebbe infilare nel PC dell'azienda (o quello che vuoi) la pennetta di uno sconosciuto (o se deve farlo quella pennetta non dovrebbe comunque contenere codice maligno)

Ti faccio un esempio di exploit, usando quello più conosciuto, l'SQL Injection:

Emuliamo (velocemente e in modo riassuntivo) un codice php che seleziona tutti i valori di tutti i campi all'interno di una tabella dove un certo campo ha un determinato valore


(poi invio la query al server mysql e do l'input all'utente)

In questo caso come puoi vedere il l'input dell'utente nella richiesta get viene messo tra virgolette ('input')

Poniamo il caso che l'input sia (mi fermo a union select visto che dipende dal caso) e che ti dica di darti tutti i valori per i campi username e password in un'altra tabela, lui lo farà

Ci sono cose un po' più complesse tipo object injection (spesso derivato dagli unserialize dove il contenuto viene trasmesso dagli utenti) ma il principio è quello

Spero di esserti stato quanto più utile possibile (c'è anche exploit-db comunque per vedere un po' di source)
 
Allora, ciò che chiedi è abbastanza complicato, purtroppo non ho ancora trovato nessun libro che spieghi a dovere come ragione per trovare un exploit, in ogni caso un exploit non è altro che un programma fatto ad hoc per sfruttare una vulnerabilità all'interno del sistema, prendendo per esempio ciò che ti ha detto il tuo amico faccio queste distinzioni per aiutarti:

Vulnerabilità = Segretaria ritardata
Payload = Pennetta infetta
Exploit = Il tizio che gliela porta e la convince ad inserirla

La vulnerabilità guardata da un punto di vista più informatico è una gestione approssimativa di quelli che di solito sono gli input dell'utente

Il payload è, nel caso di attacchi che portino ad un RCE (Remote Command Execution), il codice maligno (o dimostrativo) che verrà eseguito dall'exploit

L'exploit infine non è altro che quel qualcosa che ti permette di fare cose che di solito non sono permesse di fare, ad esempio una segretaria non dovrebbe infilare nel PC dell'azienda (o quello che vuoi) la pennetta di uno sconosciuto (o se deve farlo quella pennetta non dovrebbe comunque contenere codice maligno)

Ti faccio un esempio di exploit, usando quello più conosciuto, l'SQL Injection:

Emuliamo (velocemente e in modo riassuntivo) un codice php che seleziona tutti i valori di tutti i campi all'interno di una tabella dove un certo campo ha un determinato valore


(poi invio la query al server mysql e do l'input all'utente)

In questo caso come puoi vedere il l'input dell'utente nella richiesta get viene messo tra virgolette ('input')

Poniamo il caso che l'input sia (mi fermo a union select visto che dipende dal caso) e che ti dica di darti tutti i valori per i campi username e password in un'altra tabela, lui lo farà

Ci sono cose un po' più complesse tipo object injection (spesso derivato dagli unserialize dove il contenuto viene trasmesso dagli utenti) ma il principio è quello

Spero di esserti stato quanto più utile possibile (c'è anche exploit-db comunque per vedere un po' di source)


Grazie mille, mi hai dato molto a cui pensare, soprattutto exploit-db è davvero interessante, leggere il codice, cercare di capire cosa fa, diciamo che posso indirizzare i miei studi verso qualcosa ora, grazie mille, ottimo consiglio!!!
 
Stato
Discussione chiusa ad ulteriori risposte.