Come imparare i test di penetrazione a casa?

47

Sono interessato all'apprendimento di hacking etico o test di penetrazione per dirigermi verso una carriera in quella direzione.

Ho una strong conoscenza di linux e unix, teoria e pratica dei computer di base e conoscenze di programmazione di base (matrici, metodi, loop).

Ho consultato gruyere e webgoat, tuttavia trovo che questi siano troppo avanzati per me. Chiedono di risolvere un problema senza spiegare sufficientemente il problema, perché può essere usato per attaccare e dare esempi.

Ci sono corsi o programmi interattivi, gratis, che posso fare da casa per insegnare a me stesso queste informazioni?

Un bonus darebbe lezioni di programmazione utili in quest'area, ad esempio insegnando JavaScript per dimostrare attacchi e manipolazioni di cookie.

    
posta Cyrus 06.02.2012 - 22:50
fonte

14 risposte

50

Le opzioni gratuite sono poche, ma ci sono tonnellate di video e tutorial su specifici vettori di attacco o prodotti / strumenti. NON ti renderanno un Penetration Tester, ma sono risorse per l'apprendimento gratuito.

Alcune opzioni decenti per iniziare:

Per la pratica, ci sono un certo numero di risorse:

  • Metasploitable VM (e altre macchine virtuali volutamente vulnerabili)
  • DVWA
  • Mutillidae
  • WebGoat
  • Vulnhub
  • hack.me

Esegui delle ricerche su questo sito per altre persone che offrono opinioni sulle risorse di apprendimento gratuite. Ma l'unico modo per imparare è sporcarsi le mani.

Continua a lavorarci e continua a fare domande!

    
risposta data 07.02.2012 - 00:42
fonte
8

Oltre ai link agli strumenti, alle app per le esercitazioni vulnerabili ecc., lo Standard di esecuzione dei test di penetrazione vuole essere lo standard definitivo su come testare approach : link

    
risposta data 07.02.2012 - 08:39
fonte
6

Puoi metterli su una macchina virtuale usando VM Player e giocare.

Linux dannatamente vulnerabile ( link )

De-Ice / Hackerdemia ( link )

Per l'apprendimento vorrei esaminare diverse metodologie di test di penetrazione come il Manuale metodologia di test di sicurezza open source (http://isecom.securenetltd.com/osstmm.en.2.1.pdf). Questi in genere forniscono una lista di cose da verificare. È quindi possibile prendere queste liste di controllo e cercare vari tutorial sul web su come sconfiggere le varie tecnologie.

Uno dei libri migliori che ho letto di recente è stato scrivere strumenti di sicurezza ed exploit ( link ). Copre l'assemblaggio di base, creare shellcode, suggerimenti su come trovare e scrivere buffer overflow, stringhe di formato, attacchi heap e altro. Il libro è un po 'datato e non copre argomenti come ASLR e NX, ma fornisce una solida base con numerosi esempi con grandi spiegazioni.

    
risposta data 07.02.2012 - 06:42
fonte
5

Information Security è un campo molto vasto, costituito da vari sotto-campi: sicurezza dell'infrastruttura, sicurezza delle applicazioni, sicurezza della rete e così via. Dalla tua domanda credo che il campo che ti interessa sia Web Application Security - WebGoat e Gruyeres sono due applicazioni vulnerabili dedicate a insegnare le vulnerabilità più comuni in Web Application Security. Questo è l'unico argomento che menzionano e spiegano.

Secondo la mia onesta opinione, il modo migliore per iniziare nella sicurezza delle applicazioni Web è leggere OWASP top 10 elenco e spiegazioni, quindi continuare a testare le applicazioni Web per le vulnerabilità (ovviamente solo contro le proprie macchine di QA o con il consenso scritto degli amministratori). Come già accennato, la serie Hacme di Fundstone (ora Mcafee) è molto buona, è disponibile in molte lingue (quindi potresti trovare una lingua che conosci) e viene fornita con tutorial dettagliati su come manipolare e interrompere le applicazioni di Hacme.

Per un elenco più completo di applicazioni e macchine virtuali vulnerabili, ti consigliamo di provare il Mercato delle applicazioni vulnerabili

Un altro ottimo modo per imparare, anche se è un po 'vecchio, è passare i MSDN Security Labs che sono gratuiti e insegnano un'ampia varietà di argomenti:

  • Starter kit per sviluppatori: buffer overflow
  • Starter kit per sviluppatori: analisi del codice
  • Starter kit per sviluppatori: difese del compilatore
  • Starter kit per sviluppatori: test Fuzz
  • Starter Kit per sviluppatori: revisione del codice di sicurezza Starter Kit per sviluppatori: vulnerabilità di Injection SQL

Buona fortuna!

    
risposta data 17.04.2013 - 14:21
fonte
3

La maggior parte dei suggerimenti qui indicano alcune grandi risorse e idee. Raccomando di utilizzare VirtualBox per il tuo ambiente di test VM. Inoltre, se disponi dei fondi di riserva, ottieni un abbonamento TechNet in modo da poter creare un sacco di caselle di prova. Credo che CERT o un'altra organizzazione pubblichi anche alcune immagini VM basate su Windows che è possibile scaricare, ma non ricordo per certo chi lo fa o dove trovarle.

Sebbene preferisca e raccomandi VirtualBox per l'esecuzione di VM, è opportuno notare che il test funziona meglio quando tutte le VM sono in esecuzione sulla stessa piattaforma di virtualizzazione. Quindi, se stai cercando di hackerare i sistemi in esecuzione su VMWare Player, dovresti anche avere il tuo sistema di attacco in VMWare Player.

    
risposta data 07.02.2012 - 17:37
fonte
2

Per aggiungere un pò alla eccellente (+1) risposta di schroeder.

I

link sono interessanti; è un paio di macchine virtuali con sfide da scalare in qualche modo. Nebula insegna come passare da un account normale a root in ambienti imperfetti - molte delle soluzioni sono trucchi standard (non fidatevi delle variabili ambientali o eseguire eval sull'input dell'utente o fare ipotesi che l'eseguibile verrà eseguito come suggerito) .

Protostar / fusion sono più avanzati (ad es. buffer overflow).

Consiglia inoltre di leggere WAHH (non è gratuito, ma è economico) e Programmazione sicura in Linux / Unix .

    
risposta data 07.02.2012 - 17:07
fonte
1

Scarica varie applicazioni PHP nel periodo iniziale ospitali sul tuo server locale e poi prova a trovare le vulnerabilità in questo utilizzando 2 diverse metadologie a seconda di cosa desideri

  1. Metodologia di test OWASP - link 2.WATC - link

Se non hai molta conoscenza sulla pentesting manuale, esegui acunetix e nessus contro l'applicazione ospitata su localhost, guarda i risultati generati da loro e poi prova a sfruttarli manualmente usando la suite BURP. Ciò ti darà una spinta e sicurezza.

Quindi scegli una di queste metodologie.

Una volta che sei esperto in questa metodologia, prova a creare la tua lista di controllo e ad aggiungere nuovi casi di test ogni volta che trovi.

Una volta che fai tutto questo vai per il programma di bug bounty.

BUGCROWD è un programma di bug bug molto noto e qui puoi trovare l'elenco dei fornitori su cui puoi fare pentest. link

Ecco come dovrebbe essere l'intero processo.

    
risposta data 04.04.2014 - 23:50
fonte
1

Non ho letto tutte le risposte, ma per conoscere i test di penetrazione e per farlo gratuitamente, puoi provare questo set di tutorial di irongeek.com qui: link

Queste sono le istruzioni per scaricare un'applicazione web volutamente vulnerabile chiamata mutillidae che puoi usare per esercitarti su pen-testing. L'applicazione, mutillidae, ha suggerimenti che è possibile abilitare per imparare da. Se si dispone di una sorta di server LAMP, è sufficiente trascinare la cartella nella cartella www del server e accedervi sul proprio indirizzo di loopback locale, 127.0.0.1. Devi anche creare alcune tabelle di database nel server MySQL, anche se questo strumento di test della penna potrebbe essere più avanzato per te al momento. Il popolamento dei tavoli non è poi così difficile. Né sta creando il database necessario. : D

Sarebbe fantastico poter girare su una macchina virtuale con Kali Linux o Ubuntu. Soprattutto se la tua macchina ha abbastanza RAM e potenza della CPU.

Da questo puoi apprendere qualsiasi tipo di cose come SQL Injection, Cross Site Scripting e altri tipi di attacchi su cui puoi educarti per essere in grado di difendersi attraverso pratiche di codifica sicure, ecc.

    
risposta data 16.04.2014 - 01:46
fonte
0

Prima di tutto dovresti considerare quale tipo o area di pentesting ti piacerebbe iniziare. Ad esempio, potresti iniziare a cercare vulnerabilità nei web (OWASP, CTF), puoi iniziare a cercare porte aperte e analizzare quali servizi sono in esecuzione (cercare informazioni sugli exploit per la versione corrente), ecc.

Raccomando il primo. Innanzitutto perché è più facile da capire, in secondo luogo perché è più comune trovare una vulnerabilità in un sito Web errato rispetto a un sistema e in terzo luogo perché ci sono molti materiali sull'argomento e sfide gratuite dove è possibile testare le proprie conoscenze (CTF)

    
risposta data 11.02.2013 - 16:28
fonte
0

Anche se non sono un esperto, ho passato un bel po 'di tempo con Hacme Bank di Foundstone (ho pensato che sarebbe stato bello aggiungere anche questo).

    
risposta data 11.02.2013 - 17:48
fonte
0

Vuoi iniziare dalle basi? Vai a 0:57

Quasi tutti gli exploit esistono perché sfruttiamo l'architettura di Von Neumann. Ogni volta che puoi trattare i dati come codice, hai un vettore di attacco. Non importa quale sia l'architettura, quale sia la piattaforma, quale sia lo stack tecnologico ... le moderne applicazioni web attraversano più contesti: HTML / Javascript nel browser. (Vettore d'attacco!)

Sfruttamento significa che stai ottenendo il tuo obiettivo di eseguire il tuo codice. Questo è il punto dietro SQL injection, XSS, shellcode - su tutto! Se vuoi imparare a essere un pentecoste ... prendi il "Toolkit Open Source di Pentester". (Esistono versioni gratuite legalmente ottenibili.)

Le conferenze di Defcon sono disponibili liberamente e sono tra le migliori lezioni generali che abbia mai seguito. Ma più di ogni altra cosa: devi sporcarti le mani. Hai citato webgoat. Hai installato Tamperdata su firefox? Hai installato wireshark? L'hacking consiste nell'avere il maggior numero di strumenti possibile nella raccolta dei dati in modo da sapere cosa sta succedendo. Questo video parla molto del monitoraggio ... di tutto ...

link

    
risposta data 05.04.2014 - 00:51
fonte
0

Vorrei aggiungere i miei due centesimi al piatto. Penso di rivedere alcuni dei video di sicurezza di Tom Scott su Computerphile e il suo canale è un ottimo modo per iniziare. Sono tecnicamente solidi e spiegano i concetti in modo molto chiaro. Seguendo questo, lascia che la curiosità ti guidi.

Prova a installare nmap e scopri cosa puoi scoprire, ad esempio i server di Amazon. Cerca cose su SQL Injection. Che ne pensi di SHA-1 o MD5 Freestart? Quanto costerebbe? Domande come queste possono guidarti più a fondo nel campo della sicurezza delle informazioni.

Tieni questo in mente per: Devi conoscere le cose che stai cercando di proteggere o hackerare; ad esempio, devi conoscere TCP per hackerare le reti e allo stesso modo JS per i siti web.

L'offerta di risposta di Jeff è di alcuni spunti, anche se in maniera laterale. Prova ad impostare il tuo server Amazon AWS e ad eseguire DDoS utilizzando diversi tipi di strumenti, ad esempio.

Potresti anche testare le tue abilità di hacker (legalmente) su siti Web reali e guadagnare un po 'di soldi sui programmi di bug bug di sicurezza. Hackerone offre una directory di tali programmi.

    
risposta data 13.07.2016 - 23:25
fonte
-1

Per la sicurezza delle app Web che potresti voler provare

Potrei essere di parte, ma è l'unico laboratorio virtuale gratuito sull'argomento;)

    
risposta data 11.02.2013 - 15:18
fonte
-3

Il modo migliore per imparare è farlo. Non ti sto suggerendo nulla di illegale, ma vedi se riesci a ottenere un concerto di pen-test. Trova una piccola impresa locale e fallo pro-bono. Trova una chiesa e offri i tuoi servizi a loro. Solo alcuni suggerimenti se segui questo percorso:

  • Falli eseguire il backup prima di fare qualsiasi cosa!
  • Iniziare appena facendo ricognizioni passive e attive.

So che la scansione delle porte non è necessariamente il fascino del test delle penne, ma è un buon punto di partenza.

Risposta modificata

Aggiornamento della mia risposta da così tanti downvotes. Io sostengo che il modo migliore per imparare è quello di fare, ma STRONG affermare che non dovresti mai hackerare nessuna compagnia senza un esplicito consenso scritto da parte del proprietario, e anche allora, dovresti coinvolgere un avvocato (IMO ). Anche nei punti seguenti, se non sai cosa stai facendo, puoi fare qualcosa. È meglio imparare da soli. Così,

Don't hack. Stay in school. Don't do drugs.

Ora che la dichiarazione di non responsabilità è terminata:

Ho iniziato a controllare alcuni strumenti con Kali Linux (precedentemente backtrack), e ci sono molti ottimi strumenti lì. Quello su cui sto lavorando ora è DVWA (dannosa vulnerabilità web application), che ha un livello di sicurezza personalizzabile per provare a cimentarti con attacchi CSFR, XSS, Brute Force, iniezioni SQL, esecuzione shell remota, ecc. ci sono altre risorse come questa, una ricerca su google lo rivelerà. Pensa, "cosa voglio pwn?" se la risposta è sistemi, reti o applicazioni, includila nella tua ricerca.

Altre risorse in più:

risposta data 07.02.2012 - 06:01
fonte

Leggi altre domande sui tag