it-swarm.dev

Come imparare i test di penetrazione a casa?

Sono interessato a imparare l'hacking etico o i test di penetrazione per andare verso una carriera in quella direzione.

Ho una forte conoscenza di Linux e Unix, teoria e pratica informatica di base e conoscenze di programmazione di base (array, metodi, loop).

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

Esistono corsi o programmi interattivi, gratuiti, che posso fare da casa per insegnare a me stesso queste informazioni?

Un vantaggio sarebbe dare lezioni di programmazione utili in questo settore, ad esempio insegnando JavaScript per dimostrare attacchi e manipolazioni di cookie.

48
Cyrus

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 tester di penetrazione, ma sono risorse di apprendimento gratuite.

Alcune opzioni decenti per iniziare:

Per la pratica, ci sono una serie di risorse:

  • Metasploitable VM (e altre VM appositamente vulnerabili)
  • DVWA
  • Mutillidae
  • WebGoat
  • Vulnhub
  • hack.me

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

Continua a lavorarci e continua a fare domande!

51
schroeder

Oltre ai collegamenti a strumenti, app di pratica vulnerabili ecc., Lo Standard di esecuzione dei test di penetrazione mira a essere lo standard definitivo su come affrontare test: - http://www.pentest-standard.org/index.php/Main_Page

8
Rory Alsop

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

Damn Vulnerable Linux ( http://sourceforge.jp/projects/sfnet_virtualhacking/downloads/os/dvl/DVL_1.5_Infectious_Disease.iso/ )

De-Ice/Hackerdemia ( http://forums.heorot.net/ )

Per l'apprendimento vorrei esaminare diverse metodologie di test di penetrazione come il Manuale di metodologia dei test di sicurezza open source (http://isecom.securenetltd.com/osstmm.en.2.1.pdf). Questi di solito danno un elenco di cose da controllare. È 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 e exploit ( http://www.Amazon.com/Writing-Security-Tools-Exploits-Foster/dp/159749997/ref=sr_1_1?ie = UTF8 & qid = 1.328.592,753 mila & sr = 8-1 ). Copre l'Assemblea di base, la creazione di shellcode, suggerimenti su come trovare e scrivere buffer overflow, formattare stringhe, attacchi di heap e altro. Il libro è un po 'datato e non tratta cose come ASLR e NX, ma fornisce una solida base con numerosi esempi con grandi spiegazioni.

6
Dylan

La sicurezza delle informazioni è un campo molto ampio, costituito da vari sottocampi: sicurezza dell'infrastruttura, sicurezza delle applicazioni, sicurezza della rete e così via. Dalla tua domanda credo che il campo che ti interessa sia la sicurezza delle applicazioni Web: WebGoat e Gruyeres sono due applicazioni vulnerabili dedicate a insegnare le vulnerabilità più comuni nella sicurezza delle applicazioni Web. Questo è l'unico argomento che citano e spiegano.

A mio avviso onesto, il modo migliore per iniziare nella sicurezza delle applicazioni Web è leggere l'elenco OWASP top 1 e le spiegazioni, quindi continuare a testare le vulnerabilità delle applicazioni Web (ovviamente solo contro i propri computer QA o con il consenso scritto degli amministratori). Come accennato, la serie Fundstone (ora McAfee) Hacme è molto buona, è disponibile in molte lingue (quindi potresti trovare una lingua che conosci) e include tutorial dettagliati su come manipolare e rompere le applicazioni Hacme.

Per un elenco più completo di applicazioni vulnerabili e macchine virtuali, ti consigliamo di provare Vulnerable Applications Market

Un altro ottimo modo per imparare, sebbene sia un po 'vecchio, è quello di passare MSDN Security Labs che sono gratuiti e insegnano un'ampia varietà di materie:

  • Starter kit per sviluppatori: buffer overflow
  • Starter kit per sviluppatori: analisi del codice
  • Starter kit per sviluppatori: difese del compilatore
  • Starter kit per sviluppatori: Fuzz Testing
  • Starter kit per sviluppatori: revisione del codice di sicurezza Starter kit per sviluppatori: vulnerabilità nell'iniezione di SQL

In bocca al lupo!

5
Boaz Tirosh

La maggior parte dei suggerimenti qui indicano grandi risorse e idee. Ti consiglio di utilizzare VirtualBox per il tuo VM. Inoltre, se hai i fondi di riserva, ottieni un Abbonamento TechNet in modo da poter costruire un sacco di caselle di prova. Credo che CERT o un'altra organizzazione pubblicano anche alcune immagini basate su Windows VM che è possibile scaricare, ma non ricordo per certo chi lo fa o dove trovare loro.

Anche se preferisco e raccomando VirtualBox per l'esecuzione di macchine virtuali, va notato che i test funzionano meglio quando tutte le macchine virtuali sono in esecuzione sulla stessa piattaforma di virtualizzazione. Quindi, se stai cercando di hackerare i sistemi in esecuzione in VMWare Player, dovresti anche avere il tuo sistema di attacco in VMWare Player.

3
Iszi

Per aggiungere un po 'alla risposta eccellente (+1) di schroeder.

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

Protostar/fusione sono più avanzati (ad es. Buffer overflow).

Consiglio anche di leggere WAHH (non è gratuito; ma è economico) e Programmazione sicura in Linux/Unix .

2
dr jimbob

Non ho letto tutte le risposte, ma per conoscere i test di penetrazione e farlo gratuitamente, puoi provare questo set di tutorial di irongeek.com qui: http: // www. irongeek.com/i.php?page=videos/web-application-pen-testing-tutorials-with-mutillidae

Queste sono le istruzioni per il download di un'applicazione Web intenzionalmente vulnerabile chiamata mutillidae che è possibile utilizzare per esercitarsi nel test con la penna. L'applicazione, mutillidae, ha suggerimenti che puoi abilitare per imparare. Se hai una sorta di server LAMP, puoi semplicemente rilasciare la cartella nella cartella www del tuo server e accedervi sul tuo indirizzo di loopback locale, 127.0.0.1. Devi anche creare alcune tabelle di database nel server MySQL, quindi questo strumento di test di 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 eseguirlo su una macchina virtuale con Kali Linux o Ubuntu. Soprattutto, se la tua macchina ha abbastanza RAM e potenza della CPU.

Puoi imparare ogni sorta di cose da questo, come SQL Injection, Cross Site Scripting e altri tipi di attacchi su cui puoi educare te stesso per essere in grado di difenderti attraverso pratiche di codifica sicure, ecc.

1
user_loser

Scarica varie PHP nel periodo iniziale Ospitali sul tuo server locale e poi prova a trovare le vulnerabilità utilizzando 2 diverse metdologie, a seconda di ciò che ti piace

  1. Metodologia di test OWASP - https://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf 2.WATC - http://projects.webappsec.org/f/ WASC-TC-v1_0.pdf

Se non hai molte conoscenze sul pentesting manuale, esegui acunetix e nessus sull'applicazione ospitata su localhost per vedere i risultati generati da loro e poi prova a sfruttarli manualmente usando la suite BURP. Questo ti darà slancio e sicurezza.

Quindi scegli una di queste metodologie.

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

Una volta fatto tutto questo, vai al programma di ricompensa dei bug.

BUGCROWD è un programma di ricompensa di bug molto famoso e qui puoi trovare l'elenco dei fornitori su cui puoi fare il pentest. https://bugcrowd.com/list-of-bug-bounty-programs

Ecco come dovrebbe andare l'intero processo.

1
FrOgY

Vuoi iniziare dalle basi? Vai a 0:57

Quasi tutto lo sfruttamento esiste perché sfruttiamo l'architettura di Von Neumann. Ogni volta che puoi eventualmente 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. (Attacco vettoriale!)

Lo sfruttamento significa che stai ottenendo il tuo obiettivo per eseguire il tuo codice. Questo è il punto dietro iniezione SQL, XSS, shellcodes - su tutto! Se vuoi imparare ad essere un pentester ... ottieni il "Toolkit Open-Source del Pentester". (Esistono versioni gratuite legalmente ottenibili.)

Le lezioni di Defcon sono disponibili gratuitamente e sono alcune delle migliori classi complessive che io abbia mai preso. Ma più di ogni altra cosa: devi sporcarti le mani. Hai menzionato webgoat. Hai installato Tamperdata su Firefox? Hai installato WireShark? L'hacking consiste nel disporre di quanti più strumenti possibile per raccogliere dati in modo da sapere cosa sta succedendo. Questo video parla molto del monitoraggio ... tutto ...

https://www.youtube.com/watch?v=Jwot7S6NmLE

0
avgvstvs

Vorrei aggiungere i miei due centesimi al piatto. Penso che rivedere alcuni dei video sulla sicurezza di Tom Scott su Computerphile e il suo canale sia un ottimo modo per iniziare. Sono tecnicamente validi e spiegano i concetti in modo molto chiaro. Successivamente, lasciati guidare dalla curiosità.

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

Tienilo a mente per: Devi conoscere le cose che stai cercando di proteggere o hackerare; ad esempio, è necessario conoscere TCP per hackerare le reti e allo stesso modo JS per i siti Web.


La risposta di Jeff offre alcune intuizioni, anche se in modo trasversale. Prova a configurare il tuo server Amazon AWS e DDoS usando ad esempio diversi tipi di strumenti.

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

0

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

Raccomando il primo. In primo luogo perché è più facile da capire, in secondo luogo perché è più comune trovare una vulnerabilità in una rete codificata male che in un sistema, e in terzo luogo perché ci sono molti materiali sull'argomento e sfide gratuite in cui è possibile testare le proprie conoscenze (CTF)

0
eez0

Anche se non sono un esperto, ho trascorso parecchio tempo con la Hacme Bank di Foundstone (ho pensato che sarebbe stato bello aggiungere anche questo).

0
Lex