Quale exploit e quale carico utile usare?

0

Sto imparando i test di penetrazione. Ho letto la guida Metasploit Unleashed sulla sicurezza offensiva. Ho appreso le nozioni fondamentali su Metasploit e l'uso di msfconsole.

Dopo la ricognizione e la scansione del mio obiettivo, ho abbastanza informazioni da passare alla fase successiva.

Alcune informazioni che ho sono porte aperte con relativi servizi in esecuzione, nomi dei servizi, versioni del servizio, sistema operativo del dispositivo, firewall utilizzati, ecc.)

Ho lanciato msfconsole.

Dovrei trovare l'exploit e il carico utile corretti, in base alle informazioni raccolte per ottenere l'accesso. Ma non capisco il modo di iniziare tutto questo.

Supponendo che il mio obiettivo abbia 20 porte aperte, voglio testare la vulnerabilità utilizzando un payload exploit che non richiede l'interazione dell'utente. Le possibilità di utilizzo di exploit e payload ora sono ridotte, ma sono troppe. Cercare e testare tutti gli exploit e i payload per ogni porta non va bene! Quindi, se non conosco la vulnerabilità del target, come posso procedere?

Vorrei essere consapevole di quello che faccio e non provare senza capire. L'exploit remoto è solo un esempio. Voglio conoscere il concetto alla base della scelta di un exploit. Perché uso l'exploit A e non B prima di controllare se l'exploit A e B funziona sulla destinazione?

    
posta Davide Quarantiello 11.05.2018 - 16:22
fonte

2 risposte

3

È bello vedere che stai cercando di capire quali exploit e payload scegliere e, soprattutto, PERCHÉ. Questo è il modo di farlo. Questo ti farà risparmiare molto tempo a medio / lungo termine e ti aiuterà a diventare un pentester molto migliore.

I should find the correct exploit and payload, based on the information collected to gain access. But I don't understand the way to start all of this.

Di solito, il carico utile è la parte facile. Dipende principalmente da ciò che stai cercando di ottenere sul sistema della vittima (ottieni una shell, installa una backdoor in modo da poterti collegare in seguito, esegui il servizio / app, ecc), ma anche sul ridotto insieme di opzioni disponibili per l'exploit particolare finirai per scegliere.

Assuming that my target has 20 ports open, I want to test the vulnerability using an exploit payload that do not require user interaction. The possibilities of which exploit and payloads to use are now reduced, but are too many. Searching and testing all exploit and payloads for each ports isn't good! So, if i don't know the vulnerability of the target, how do I proceed?

Per scegliere l'exploit giusto, la maggior parte delle volte dovrai fare delle ricerche. A volte un po ', a volte molto. Certo, vuoi fare questo processo nel modo più efficiente possibile per risparmiare tempo (questa sembra essere la tua domanda principale).

Negli scenari di vita reale, un host di solito ha solo un paio di porte aperte, forse alcuni, ma difficilmente ne troverai uno con un numero di porte aperte grande come 20. Questo restringe la ricerca un po '. Per la coppia di porte aperte che si trovano aperte, è necessario identificare il software (inclusa la versione) in esecuzione su ognuna e quindi provare a identificare potenziali vulnerabilità per questo software (vedere la nota [1] sotto). Se il tuo obiettivo è quello di ottenere semplicemente l'accesso al sistema, vorrai andare per il "frutto basso appeso" - una frase popolare nella comunità di sicurezza (vedi [2] sotto). Ciò significa che prima guarderai i servizi che hanno maggiori possibilità di essere vulnerabili. Ad esempio, HTTP è in genere uno dei primi servizi da esaminare, poiché le applicazioni Web in generale hanno molte più probabilità di presentare vulnerabilità rispetto ad altri tipi di software. Un server MySQL / SQL si troverebbe da qualche parte nel mezzo dell'elenco, mentre uno SSH sarebbe di solito l'ultimo (supponendo che sia in esecuzione una versione recente). Ma per prendere queste decisioni, devi prima identificare tutti i servizi / versioni.

A volte gli obiettivi più semplici non dipendono strettamente dal tipo di servizio stesso, ma da quanto mal configurato / mantenuto può essere. Gli esempi utilizzano credenziali vuote, predefinite o facilmente indovinate, con evidenti problemi di SQL injection, mancano patch di sicurezza critiche, ecc. La maggior parte di questi si applicano a diversi tipi di software / servizi.

Lì non c'è molta teoria dettagliata sul "frutto basso appeso". L'esperienza pratica che guadagni negli anni fa una grande differenza. Ho trovato un'immagine utile al link che vale la pena condividere:

SinoticomeHTTP/80,HTTPS/443eSMB/445hannoilpiùaltonumerodivulnerabilitàelevateecritiche,eancheunagrandepercentuale(55-90%)diquelleutilizzabili.D'altraparte,ancheseSSHhaungrannumerodivulnerabilitàalte/critiche,soloil3%diquesteèeffettivamentesfruttabile.

[1]Laricercadivulnerabilitàinunospecificosoftwareèunpo'discienzainsé.Disolito,cominciosemplicementeacercaresuGoogleilsoftwareelaversionecombinaticonleparolevulnerabilitàe/oexploit.Spessotrovoilgooglingmoltopiùvelocerispettoall'utilizzodialtristrumenti,maovviamenteusoancheglialtristrumenti:funzionericercainMetaSploitFramework,www.exploit-db.comeilsuosearchsploitstrumentoinclusoinKali, link , sito Web specifico del fornitore di software (annunci di sicurezza), ecc.

[2] A volte vorrete provare ad identificare e sfruttare ogni singola vulnerabilità sul sistema di destinazione, e non solo quella che vi consentirà di accedere. Ciò è particolarmente vero per alcuni importanti impegni, dal momento che il cliente desidera rendere il proprio sistema o la rete il più sicuro possibile, quindi è molto importante per loro ottenere un rapporto che elenca tutte le vulnerabilità rilevate, i diversi modi in cui sono stati sfruttati (o potrebbero potenzialmente essere sfruttato), i passaggi di riparazione, ecc. Se ne includi uno solo, il cliente può correggerlo ma potrebbe ancora avere molti altri problemi di sicurezza che potrebbero compromettere il sistema o la rete.

    
risposta data 13.05.2018 - 04:57
fonte
3

Hai ragione nel dire che gli exploit che si lanciano alla cieca su una macchina non sono la strada giusta da percorrere.

Invece, dovresti usare tutti i dati che hai raccolto per vedere se una di quelle cose ha delle vulnerabilità. Ad esempio, hai i nomi e le versioni dei servizi. Cercare (in Metasploit o in qualsiasi altro database di vulnerabilità) se tale versione del servizio presenta una vulnerabilità nota. È così che restringi le tue scelte.

    
risposta data 11.05.2018 - 16:34
fonte

Leggi altre domande sui tag