Guida Come inizio il mio percorso da "hacker"? Puoi cominciare da qui!

Stato
Discussione chiusa ad ulteriori risposte.

Gorate

Utente Emerald
13 Novembre 2016
1,384
42
478
529
Ultima modifica da un moderatore:
Perche' Nasce Questa Release:
Questa release nasce con l' intento di dare un punto di partenza comune a tutti i newbie che vogliono addentrarsi nel mondo dell hacking, ma che non sanno da dove partire.

Inizialmente l' idea e' nata poiche' nella sezione hacking newbie si presentano spesso molti utenti con una sola idea chiara: "Voglio diventare un hacker", ma che poi non sanno realmente dove cominciare, quali risorse usare e perche' continuare lo studio di un mondo cosi' bello quanto difficile.

La seguente release, cerca di chiarire i passi fondamentali, specificando di volta in volta anche risorse reperibili online, consigli e trucchetti per reperire materiale online per divenire un piccolo hakcerino oggi, un grande Pentester domani [e' gia', : cominciamo ad usare i termini giusti].


Cosa e' un Hacker:
Partiamo dalle basi: un hacker non e' quel ragazzo rinchiuso dentro la sua cameretta che passa ore ed ore davanti allo schermo per poter fare soldi, ricattare persone o adottare le sue conoscenze cercando di generare introiti illeciti.
Un hacker e' una persona che ama imparare, ama confrontarsi contro se stesso ed altre persone, ama sbagliare per poi riparare, ama ragionare. In un recente studio, la parola hacker e' stata attribuita a colui che "data una scatola riesce ad aprirla in modo diverso da come farebbero molti altri". Proprio questa e' il valore dell' hacker: saper fare qualcosa che altri non sanno fare, pensare fuori dagli schemi e magari anche tentare. Quando invece parliamo di esperti in sicurezza informatica in particolar modo, ci troviamo di fronte ad un Pentester, un professionista che mette la sua conoscenza nelle mani di qualcuno per poter difendere una infrastruttura [o anche attaccarla: il pentester offensivo].
Ovviamente, non esistono solo queste 2 figure, ma ce ne sono molte altre che si differenziano l' un l' altro, e in particolar modo avrete sentito cracker e lamer.
Un cracker e' una persona che adotta spesso la sua conoscenza per generare introiti illegali, e infatti spesso e' denunciato :), mentre il lamer e' qualcuno con scarse capacita' informatiche che effettua attacchi random con chissa' quale obbiettivo; Anche lui e' ben conosciuto dalla postale, state tranquilli.


Da Dove Comincio?? :
Arriviamo ora alla domanda principale che mi ha spinto a creare questa release: "Da dove comincio??", "Come inizio??", "Avete del materiale per newbie??", queste sono le domande principali a cui cerchero' di rispondere in modo esaustivo.

Innanzitutto, la prima cosa che dovete chiedervi e' : "Perche' voglio diventare un 'Hacker' [nella sua forma orientata alla sicurezza informatica] ??"; Se la risposta sara' "voglio hackerare il whatsapp della mia ragazza", oppure "Per entrare nella nasa", bhe' : vi rimando a questa release https://www.inforge.net/forum/resou...cebook-e-spiare-whatsapp-come-posso-fare.948/ , se invece suona simile a questa: "voglio superare i miei limiti/imparare cose nuove", allora potete continuare a leggere questa release ;) .

Spesso la vastita' di vari argomenti porta a far confondere le idee o a rimanere spiazzato, ma come diceva un vecchio saggio, "Cominciamo dalle fondamenta!".

Il mondo dell' hacking in generale, e' legato alla telematica, e alla rete, poiche' e' proprio questo l' ambiente dove si sviluppano attacchi e difese in continua evoluzione, e conoscere bene il campo di battaglia, e' fondamentale per vittoria!
La prima cosa che dovete fare, e' capire bene come funziona la rete, e per fare cio' , gia' abbiamo varie cosette da imparare [di seguito ti propongo le parole chiave piu' importanti, che poi ti aiuteranno a creearti una base minima del networking]:
innanzitutto, approfondisci il modello iso/osi [che per intenderci e' uno standard internazionale per le reti di calcolatori], comprendi la differenza tra server e client, tra host e porta, tra udp e tcp, impara cosa e' il protocollo tcp/ip, cosa un ip [internet address], cosa un mac, cosa un proxy, cosa una vpn, impara almeno le porte e i servizi di default che vi girano sulle porte piu' importanti]:
Markdown (tipo Github):
Porta | Servizio
----- | --------
1/tcp | TCP Multiplexor
2/tcp | compressnet Management Utility
3/tcp | compressnet Compression Process
7/udp | Echo Protocol
8/udp | Bif Protocol
9/udp | Discard Protocol
13/tcp | Daytime Protocol
17/tcp | Quote of the Day
19/udp | Chargen Protocol
20/tcp | FTP - Il file transfer protocol - data
21/tcp | FTP - Il file transfer protocol - control
22/tcp | SSH - Secure login, file transfer (scp, sftp) e port forwarding
23/tcp | Telnet insecure text communications
25/tcp | SMTP - Simple Mail Transfer Protocol (E-mail)
53/udp | DNS - Domain Name System
67/udp | BOOTP Bootstrap Protocol (Server) e DHCP Dynamic Host Configuration Protocol (Server)
68/udp | BOOTP Bootstrap Protocol (Client) e DHCP Dynamic Host Configuration Protocol (Client)
69/udp | TFTP Trivial File Transfer Protocol
79/tcp | finger Finger
80/tcp | HTTP HyperText Transfer Protocol (WWW)
104/tcp | DICOM - Digital Imaging and Communications in Medicine
110/tcp | POP3 Post Office Protocol (E-mail)
119/tcp | NNTP usato dai newsgroups usenet
137/udp | NetBIOS Name Service
138/udp | NetBIOS Datagram Service
139/tcp | NetBIOS Session Service
143/tcp | IMAP4 Internet Message Access Protocol (E-mail)
161/udp    | SNMP Simple Network Management Protocol (Agent)
162/udp    | SNMP Simple Network Management Protocol (Manager)
389/tcp    | LDAP
411/tcp    | Direct Connect Usato per gli hub della suddetta rete
443/tcp    | HTTPS usato per il trasferimento sicuro di pagine web
445/tcp | Microsoft-DS (Active Directory, share di Windows, Sasser-worm)
445/udp | Microsoft-DS SMB file sharing
465/tcp | SMTP-Simple Mail Transfer Protocol (E-mail) su SSL
514/udp | SysLog usato per il system logging
554/udp | RTSP per lo streaming live
563/tcp    | NNTP Network News Transfer Protocol (newsgroup Usenet) su SSL
587/tcp    | e-mail message submission (SMTP)
631/udp    | IPP / CUPS Common Unix printing system (Il server di stampa sui sistemi operativi UNIX/Linux)
636/tcp    | LDAP su SSL
993/tcp    | IMAP4 Internet Message Access Protocol (E-mail) su SSL
995/tcp    | POP3 Post Office Protocol (E-mail) su SSL
1080/tcp | SOCKS Proxy
1194/udp | OpenVPN
1433/tcp | Microsoft-SQL-Server
2049/udp | Network File System
3128/tcp | HTTP usato dalle web cache e porta di default per Squid cache
3306/tcp | MySQL Database system
3389/tcp | Desktop Remoto di Windows e Microsoft Terminal Server (RDP)
5432/tcp | PostgreSQL Database system
6667/tcp | IRC, Internet Relay Chat
8000/tcp | iRDMI. Spesso usato per sbaglio al posto della porta 8080. Anche utilizzata per la gestione di pyLoad.
8080/tcp | HTTP Alternate (http-alt) o WWW caching service (web cache). Usato spesso quando un secondo server web opera sulla stessa macchina, come server proxy e di caching, o per far girare un server web come utente non di root. Si veda anche la porta 80. Tomcat usa di default questa porta.
9050/tcp | TOR, porta di default per il socks5
9150/tcp | TOR, porta secondaria per il socks5
[naturalmente non e' importante impararle tutte, ma almeno le piu' importanti che possono essere utili da conoscere, come http, ssh,ftp,smtp e i netbios [che ritroverete spesso negli scan di subrange]]; Oltre a questo, vedete anche cosa e' un datagram, differenza tra richiesta e risposta, cosa la cache, cosa un cookie, cosa una sessione, cosa un subrange, inoltre dai un' occhiata anche al modello cidr, alla differenza fra router, hub e switch e lan/wan/man, cosa e' il WWW, cosa e' una rete peer-to-peer, cosa end-to-end [quella che sua whatsapp], cosa ssl/tls, cosa il payload e cose l header di un pacchetto web.

Come anticipato, inseriro' anche delle risorse molto interessanti:
[parte degli argomenti viene rispiegato in vari modi: anche questo e' un modo per capire meglio se non si capisce senza cercare di ammattirsi sulla stessa risorsa].

PS: L' inglese e' d' obbligo .......... potete anche usare google translate per studiarvi e leggervi le risorse come volete, ma vi accorgerete che prima o poi lo dovrete studiare bene poiche' tutta la documentazione specifica, e' scritta in inglese.

Inoltre, poiche' internet sara' il vostro campo di battaglia, dovrete cercare di essere il piu' anonimi possibili per evitare di essere scoperti e di lasciare tracce, quindi oltre ad usare il solito tor o proxy/vpn, dovete sapere anche qualche cosina in piu' ; Trovate molto materiale:
Sappiate inoltre che TOR non e' "solo" un browser, ma innanzitutto un servizio,infatti, potete essere anonimi anche usando privoxy,socat o altri tools che usano il servizio per "torrificare" tutta la vostra connessione, rendendo cosi' anonimi anche eventuali scan di sicurezza, attacchi ed exploit o semplici injection.
Se volete raggiungere il massimo dell anonimato, vi consiglio di scaricarvi una delle seguenti distro e utilizarle come piattaforma di attacco anonimo poiche' sono incentrate esclusivamente sull anonimato [cosa che magari kali linux non e' ...]:
  • Whonix [che reputo la migliore]: e' formato da 2 macchine virtuali, una workstation, da dove navigare e un gateway, che torrifica tutta la connessione. Usando solamente il gateway in combinazione con un altra vm [ad esempio kali linux], non dovrete scaricare i tools di attacco sulla workstation [come dovreste fare con altre distro], ma basta usare la rete interna che la stessa whonix gateway genera. [vedi piu' info su cio' che ti dico qui: https://www.whonix.org/ e qui: https://scottlinux.com/2015/09/01/use-kali-linux-through-tor-with-whonix-gateway/ ]
  • Tails [ottima distro anche questa]: piu' incentrata sulla navigazione e parte pratica di cio' che si puo' fare unendo crittografia e TOR. Per lanciare attacchi da qui bisogna obbligatoriamente scaricare i tools di attacco, e questa e' la cosa negativa per quanto riguarda gli attacchi, che invece whonix risolve usando il gateway. [vedi piu' ino qui: https://tails.boum.org/index.it.html]
Ce ne sarebbero di distro, ma poiche' molti preferiscono non usare la virtualizzazione di distro [magari perche' hanno poca performance o perche' non devono attaccare chissa' chi], vi indicizzo anche qualche tool che magari puo' farvi comodo in semplici scan:
  • privoxy
  • socat
  • proxychains
  • proxyfier

Dopo aver imparato le basi fondamentali, avete 2 opzioni:
imparare un linguaggio di programmazione per poter creare da se' i propri tools ed exploit [divertente, istruttivo, ma anche arduo e richiede tempo], oppure usare una distro linux [come kali linux, parrot os, ecc....], che offrono centinaia-migliaia di tools per hacking che da una parte fanno sembrare tutto piu' roseo [in effetti e' piu' semplice dare 3 righe su msfconsole, che imparare a creare una backdoor da se]; Quest' ultima opzione e' pero' da una parte dannosa, poiche', se non si sa' cosa realmente succede quando si esegue un determinato comando, e perche' cio' avviene, e' inutile usare dei tools prefabbricati che non insegnano nulla e anzi ci potrebbero cacciare nei guai ...........

Quindi i tools prefabbricati sono il male assoluto ?

Ovviamente, l' uso di tools prefabbricati non e' da escludere: se sono stati inseriti e se hanno una fama importante, un motivo ci sara' , e sicuramente non saremo mai capaci di creare qualcosa come nmap [che ad esempio esiste dal '98 ......], ma dico di usarli con prudenza, e capendo cosa accade dietro i vari comandi che vengono impartiti, ad esempio, molti fanno una scansione no-ping con nmap, ma pochi sanno perche' realmente sia utile e come sfruttarla al meglio. Imparando a programmare invece, saprete cose succede dietro un tool, capirete perche' con metasploit vi ritrovate tutto d' un tratto all interno del pc vittima, o cosa accade quando si digita un comando su sqlmap e ci vengono ritornate tutte le info sul db [ad esempio andando a sbirciare nel db informations_schema di mysql].
Per chi volesse usare tools prefabbricati, si documenti su cosa fanno e come, dopodiche' siete liberi di usare i tools piu' potenti che montano le distro, ma almeno saprete cosa accade e perche' .

Alcune risorse molto utili riguardano di certo i tools piu' usati e fondamentali:
Per cercare altre risorse, avete piu' opzioni: innanzitutto, se cercate file pdf [quindi di una certa lunghezza e scritti per bene], cercate su google seguendo questo schema "<nome tool> type: pdf", mentre se cercate materiale didattico pratico "<nome tool> tutorial", o ancora, se cercate del materiale generale su un attacco/tool o distro, cercate "<nome generico>", cosi' avrete piu' risultati e modi per confrontare cio' che leggerete.

Che OS usare ??

Se volete evitare di installare distro pesanti con centinaia di tools che non utilizzerete mai se non che un paio di volte in tutta la vita, e' meglio che vi installiate una distro normale, leggera e usabile, che non sia troppo complicata da usare e sopra vi ci installate tutti i tools che vi servono, infatti gran parte delle distro sono solamente orientate al loro uso specializzato, ma non a quello quotidiano. Se invece non volete proprio usare altri OS diversi da quelli che avete sempre usato [e che sapete quindi utilizzare e maneggiare meglio], potete tenerlo tranquillamente [va bene anche windows per intenderci [naturalmente i dovuti strumenti]]. In caso vogliate provare una distro, ma volete evitare di fare dual boot, che alcuni componenti e driver non siano compatibili, o semplicemente se volete provarla senza combattere con installazioni, grub ecc..., usate un software di virtualizzazione come VirtualBox o VMWare. Se proverete distro linux, sicuramente potrete virtualizzarle in live, evitando cosi' di creare nuovi dischi, proprio perche' molte distro permettono questa opzione veramente comoda [anche con persistenza dati].

Se volessi imparare un linguaggio?? Quale scelgo ??
Se volete intraprenedere questa decisione, sappiate che la strada sara' veramente ardua, ma portera' molto piu' beneficio e soddisfazione creare la tua prima backdoor da zero e codandola, piuttosto che digitare msfvenom -p windows/payloads/reverse_tcp -f exe LHOST=localhost LPORT=4444 come fanno molti altri .........
Ora, la scelta varia in base a vari fattori, e qui te ne ripropongo alcuni importanti:
  • Quale branca dell' hacking preferisci [per vedere le vari suddivisioni passa avanti e poi ritorna qui ;)] ?
  • Avresti anche altri obbiettivi imparando un linguaggio?? [es: se ho il sogno di creare applicativi desktop, questo e' un buon inizio per mettere mano su un manuale, ma considera che sara' meglio uno per un linguaggio macchina piuttosto che web ...... cosi' come se voglio creare un sito web, cerchero' di imparare un linguaggio web e non per applicativi desktop/mobile .....]
  • Preferisci semplice e potente, o difficile ma propedeutico e imbattibile??
  • Come te la cavi in inglese? e in matematica logica?
  • Quanto tempo hai a disposizione ?
Ora, spesso quando si pensa all' hacking, i 2 linguaggi piu' indicati sono C/C++ e Python:
il primo e' potente, difficile e un po' ostico [a causa della teoria dei puntatori, che pero' non sono cosi' difficili alla fine], ma anche propedeutico [in C si combatte con la gestione della memoria ......] e piu' low level rispetto a Py [quindi lavora molto piu' vicino all' hardware], mentre Python e' molto piu' semplice [la sua sintassi sembra quasi inglese parlato], e' comunque potente e spesso adottato per creare tools poiche' pieno di librerie di ogni genere, oltre che molto piu' veloce.
A questi 2 si aggiunge in terza fila anche C#, semplice da imparare [un po' piu' ostico di Py, ma molto meno di C], che pero' e' terzo a causa del controllo che hanno altri processi e applicazioni, oltre che e' nato inizialmente solo per Windows, e molti Linux users, non usano il framework .NET, mentre con Py e C, il problema multipiattaforma non viene toccato.
Ora, nulla vi vieta di imparare un altro linguaggio [soprattutto quando andrete avanti, ne imparerete molti altri], ma per cominciare questi 2 sono i piu' consigliati;
Importante ricordare che C e C++ sono linguaggi compilati, che offrono quindi maggiore velocita' e sono spesso adottato per lavorare a basso livello, mentre Python e' un linguaggio interpretato, quindi leggermente piu' lento e che lavora ad un livello nettamente superiore: in C bisogna combattere con la gestione della memoria, mentre in Py, non lo si deve fare...
Una cosa importante da considerare, e' inoltre la propria consocenza dell inglese: di materiale C in italiano si trova poco, e spesso mal spiegato [almeno che non prendiamo i massimi autori di manuali ....], e le librerie non sono moltissime, mentre Py offre una marea infinita di risorse in italiano, librerie per ogni cosa [pure per il web development se vi interessa: Django], e richiede meno tempo per essere imparato in primis e in secondo luogo anche per scrivere un programma:
un hello world in C :
C:
#include <stdio.h>

int main(void){
    printf("%s", "Hello World");
    return 0;
}
, mentre un hello world in Py:
Python:
def main():
    print("Hello World")

if __name__ == "__main__":
    main()
.

Ora, le risorse:
Per C un ottimo manuale [che spiega anche le fondamenta di un calcolatore], e' "Manuale C di Pellegrino Principe", ma ce ne sono anche altri, come "C Deitel & Deitel" o https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html [trovate altri mnauali [anche in pdf] digitando "C manuals pdf"]. Poi, alcuni siti utili, possono essere http://www.learn-c.org/ e https://www.sololearn.com/Course/CPlusPlus/ [per c++], poi ovviamente potete trovare video guide ecc. su youtube, ma le sconsiglio poiche' un manuale e' scritto da veri competenti, un canale youtube puo' farlo anche un neonato ......

Per Python invece, potete scegliere fra molti piu' manuali [anche italiano]: "Drive in Python Ita", "Python per principianti", "Python Programming Language" , inoltre vedete anche il manuale di riferimento: http://docs.python.it/paper-a4/ref.pdf .
La documentazione anche e' piena di tutorials, librerie e altro ancora: https://docs.python.org/3/ . Se scegliete Py, avrete inoltre la possibilita' di leggervi il manuale "Python for Networking" [anche translato in ita], che spiega per bene come usare le librerie Py per interagire con la rete e con internet [ottimo per capire come sfruttare il networking anche nell hacking].

Sempre scegliendo Py potrete avere accesso anche a molti altri manuali che trattano nello specifico di hacking usando Python, qui vi cito solamente i nomi, ma vi assicuro che basta cercare su internet seguendo lo schema "<nome libro> type: pdf" e "<nome libro> pdf" per trovarli in pdf e scaricarli facilmente.
I libri e manuali in questione sono i seguenti [gran parte e' stata anche tradotta in italiano, ma come dicevo .....l inglese e' d obbligo]:
  • Python for Hacker di Justin Seitz [anche pubblicato come "Python BlackHat"] [per chi non conoscesse l autore, vi dico solo che ha lavorato per governi e aziende di ogni genere, e che ha contribuito allo sviluppo di OSINT [trattato nel suo sito a cui consiglio di dare un' occhiata: https://register.automatingosint.com/ ]]
  • Learning Penetration Testing Python di Christopher Duffy [penso solo in inglese ma ottimo anche lui e di facile comprensione]
  • Python e l arte dell Hacking [in italiano, molto breve, ma spiega per bene i fondamenti dei socket, e la creazione di un semplice keylogger]
  • Hacking Secret Ciphers with Python [manuale completissimo che tratta la crittografia, pratico e teorico, si parte dal Cifrario di Cesare fino ad arrivare alle moderne tecniche usate negli standard internazionali come AES, il tutto spiegando come comportarsi di volta in volta con i moduli di Py che permettono di fare cio' ]
  • Violent Python Cookbook [tradotto in italiano] [tratta dai test di penetrazione, fino ad exploit e antivirus [AV] evasion]
Se invece optate per C, trovate comunque guide specifiche sull Hacking, e mi sento sicuramente di consigliarvi:
  • The Art of Exploitation di Jon Erickson [trovate anche tradotto in lingua come "L arte dell Hacking"][lo reperite facilmente in rete in lingua, con un po' di impegno anche in italiano]
Libri che trattano invece di Hacking in particolare sono:
  • Hacking For Dummies
  • "Giovani hacker crescono: guida pratica ai test di penetrazione ed anti-intrusione" di Peter Kim [ringrazio @Symon_RS per avermelo fatto notare]
  • Rtfm: Red Team Field Manual
  • Hacker 7.0
  • Hacking Foundamentals
  • The Hacker Guide
Questi sono tutti i manuali che conosco che penso possano essere facilmente reperibili, se avete altri titoli di libri inerenti, o avete semplicemente altre risorse, fatemelo sapere nei commenti o nelle discussioni :)

Cio'detto, imparare uno non significa eliminare l altro, ma al massimo posticiparlo, quindi potete scegliere come volete e come pensate sia meglio per voi ;)

Le Branchie dell' Hacking: what and which ??

L' hacking si suddivide in varie sottocategorie, un po' come i pesci: esistono spigole, calamari e squali.
Nell' hacking, troviamo principalmente 2 tipologie di attacchi:
  1. Attacchi Web [effettuati su siti web, db e server]
  2. Attacchi PC [effettuati su pc di altri]
Ora, gli attacchi web sono tutti quegli attacchi che colpiscono siti web e server, e che in generale, vedono partecipi webshell, cdn, e injection di codice o di comandi. In generale, le basi corrispondono a:
  • buona conoscenza di html,sql e js [che portano a saper analizzare il codice di un sito ed eseguire xss, html injection e sql injection]
  • conoscere anche xml e php e' sicuramente un vantaggio [che portano a saper creare una webshell, una reverse shell, saper effettuare xml injection e php injection]
  • conoscere i maggiori cms e framework usati nella creazione di siti web [porta a saper sfruttare falle come wordpress|joomla exploits, ma anche a capire meglio come funziona il web]
  • conoscere bene le basi sull architettura richiesta/risposta [cosa e' un header, cosa un cookie, cosa una sessione, cosa un id, cosa una chiave di ricerca], e gli headers principali: se ad esempio trovate nella response del sito un header "Server", cio' vi puo' essere utile per conoscere versione php, macchina usata e db [per esempio].
Risorse:
Per html, e' inutile starvi a linkare materiale: ne trovate moltissimo cercando semplicemente su internet, inoltre e' molto semplice, ed e' un linguaggio di markup, quindi e' solo memoria ........... comunque per ogni argomento, date un occhiata ai corsi w3school, che offrono una panoramica completa e abbastanza approfondita sulla programmazione web.
Per js, vi consiglio di dare un occhiata alle funzioni principali, e in particolare guardate questi:
  • sintassi principale
  • librerie: xmlhttprequest, document, window, navigator [utili per effettuare xss e piccole injection client side].
Per PHP, studiatevi il linguaggio se volete, poi ovviamente, potete vedere queste guide su come creare una webshell semplicissima, e come injectarle: https://www.inforge.net/forum/resources/webshell-come-injectarle-manualmente.14666/, https://www.inforge.net/forum/resources/webshell-alle-basi-del-web-exploiting.14656/
Per SQL, imparare il linguaggio sara' facile, inoltre sql injection e' solo codice sql utilizzato per bene, quindi bisogna solo consocerlo e si capira' il perche' avviene e come.
Prima di affrontare lo studio di SQL, e' preferibile studiarsi anche la logica di Boole, che offre un importante spunto per comprendere appieno sia le operazioni di un calcolatore, sia le condizioni booleane usate in tutti i linguaggi e in particolar modo per le condizioni di selezione delle tabelle del DB.Si consigliano i corsi w3school, ma anche:
Per imparare un po' di headers, e avere una lista sempre pronta a spiegare cosa sono e cosa fanno, sallvatevi questo link completissimo: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers .

Un attacco web si suddivide in client-side [che colpisce l' utente finale che visualizza il sito], e server-side [che colpisce il server e quindi il suo contenuto, come db, pagine ecc...].
Una volta imparate le basi fondamentali [vale a dire quelle poche librerie di js, html e magari sql], potrete gia' testare in completa autonomia, e capendo cosa realmente accade e perche' un sito e' vuln piuttosto che un altro.
Gli attacchi che bisogna conoscere a tutti i costi sono:

Nel server-side:
Nel client-side:
Ora, ecco alcuni siti dove cercare per trovare cio' che si desidera:

Passando invece al PC Hacking, questa branca e' piu' tranquilla, ma e' comunque piena di cose da imparare.
Innanzitutto, le conoscenze fondamentali sono:
In questo caso, bisogna sicuramente conoscere i concetti di backdoor, reverse shell, socket, i vari tipi di malware che esistono [
Markdown (tipo Github):
Malware | What he does
------- | ------------
Backdoor | Crea una semplice connessione fra 2 terminali (vittima e server)
Reverse Shell | Crea una connessione reversa fra 2 terminali (server e vittima)
Ransomware | Cripta tutti i file della vittima e richiede un pagamento in bitcoin
Worm | Malware che si diffonde a gran velocita'
Virus | Programma che si autoreplica con lo scopo di infettare piu' sistemi possibili (spesso li dannegia)
Trojan Horse | Malware che infetta una vittima e cerca di carpire informazioni utili, come immagini,dati,credenziali ecc...., usati anche nello spionaggio
Spyware | Simile al Trojan, ma senza controllo remoto possibile: e' un ascoltatore minaccioso che carpisce solamente info e dati senza eseguire comandi
Adware | Malware usato per generare introiti illeciti attraverso la visualizzazione continua di pubblicita', siti web e altro
Keylogger | Spyware che memorizza solamente i tasti premuti
Rootkit-Bootkit | Malware che si insediano all interno del boot sector (difficili da rimuovere)
Rogues-Scareware | Falsi malware che spingono l utente "infettato" a comprare programmi specifici per liberarsi del problema
Metamorphic Malware | Malware che cambia in base al sistema infettato
Malicious Extension or Plugin | Estensioni malevole per programmi o browser che hanno il compito di infettare il sistema con il vero agent
], ma anche un po' di crittografia non farebbe male [vedi https://www.tutorialspoint.com/cryptography/index.htm, https://www.thegeekstuff.com/2012/07/cryptography-basics/, http://www.vssut.ac.in/lecture_notes/lecture1428550736.pdf, http://bucket.daz.cat/9780133354690.pdf].

Gli attacchi e le tecniche indispensabili da conoscere:
Altre risorse utili le troverete sicuramente qui: https://www.exploit-db.com/docs/

La crittografia e' inoltre importante sia per creare ransomware, sia perche' tutte le info che poi si raccolgono, i comandi, o anche le richieste web, devono avvenire nel modo piu' segreto al fine di garantire ottime possibilita' di non essere scoperti [vedetevi quel libro nella sezione dei libri per hacking di python ..... e' ottimo].


Dove Posso Allenarmi ?
Questa e' una domanda molto saggia, infatti non puoi sicuramente cominciare ad infiltrarti in db e siti, o in pc altrui senza il permesso ....... passeresti molti guai [vediti la normativa italiana sui reati informatici: https://www.inforge.net/forum/resources/doc-legge-italiana-e-hacking.946/, https://www.inforge.net/forum/resources/teoria-normativa-italiana-riguardo-crimini-informatici.950/].
Fortunatamente, molti altri si sono posti queste domande, e quindi hanno creato vari siti e applicazioni che puoi usare per allenarti in totale legalita' :
Per il web hacking, dai un occhiata a metasploitable, pentesterlab,dvwa,mutillidae e bwapp.
Mentre per il pc hacking, puoi creare una semplice macchina virtualizzata e provare ad exploitarla, altrimenti, puoi sempre dare un occhiata a metasploitable, damn vulnerable linux e vulnhub.com, che raccoglie centinaia di macchine vulnerabili in base a gradi di difficolta' e tecniche.
Per una lista completa: https://www.amanhardikar.com/mindmaps/Practice.html .

E se trovo una vulnerabilita' ?
Nel caso tu riesca a trovare una vulnerabilita' in un sito importante o di riferimento nella comunita' nazionale/internazionale, prima di rendere partecipe chiunque altro al di fuori di voi, segnalatela subito !! Sappiate infatti che spesso sono gli stessi team di sicurezza che gestiscono siti e progetti, ad offrire una ricompensa monetaria e/o un regalino, per e vostre segnalazioni,
Ovviamente ci sono regole ferree da seguire:
  • Non rivelare a nessun altro la vuln, prima che questa sia stata patchata
  • Se il programma di bounty e' privato, non menzionarlo in alcun modi
Cio'detto, potete trovare maggiori info in queste 2 discussioni presenti nel forum:
E' inoltre gentile concessione dell' utente @driverfury la guida https://www.inforge.net/forum/threa...-rapidamente-ed-efficacemente-testato.521342/ , che ritengo interessante poiche' basata sulla sua esperienza personale, dunque qualcosa ben piu' prezioso del "cosa", poiche' e' il "come" affrontare lo studio di questo mondo speciale :)

Note Finali:
Oramai siamo giunti al dessert, ma penso di avervi fornito abbastanza risorse per tenervi impegnati per qualche mesetto :)
Spero di esservi stato utile e soprattutto di aver contribuito in qualche modo a farvi crescere intellettualmente e sgrammaticalmente [perdonate certi orrori ....].
Credo inoltre che questa guida possa essere ottima per tutti quelli che cominciano, e che rivolgono in massa la stessa domanda. Se avete consigli, errori da segnalare o semplicemente qualche cosa da aggiungere, fornitemela e saro' felice di inserirla [nel limite del possibile].


Chiedo inoltre a @Stefano Novelli , o qualche moderatore di dirmi se le risorse che ho postato rispettano le regole di Inforge, e in caso negativo provvedero' a rimuovere la risorsa in questione.

Malgrado non rilasci aggiornamenti della release, quest' ultima e' costantemente aggiornata attraverso il tasto "modifica", percio' , ogni tanto ripassate :)
 
Ottima guida, spero che i principianti o le persone che vogliono intraprendere questa strada adesso hanno capito cosa vuol dire il termine "hacker"
 
  • Mi piace
Reazioni: Anonim15
Sono felice che ci sia una cosa del genere su inforge, speriamo che la sezione hacking non verrà più intasata con newbies che non sanno dove sbattere la testa
 
Aggiunti titoli dei libri piu' conosciuti per Hacking con Python; Aggiunte anche alcune risorse nella parte inerente il PC Hacking.
Se conoscete altri libri che trattano di py e hacking, fatemelo sapere !!
 
Ottima risorsa, è un documento che credo possa veramente essere d'aiuto all'orientamento di un newbie. Le uniche 2 cosine che mi sento di aggiungere sono il fatto che python non è più veloce di C/C++ essendo interpretato e che verrebbe comodo imparare l'algebra booleana prima del SQL, per il resto ottimo lavoro.
 
Ottima risorsa, è un documento che credo possa veramente essere d'aiuto all'orientamento di un newbie. Le uniche 2 cosine che mi sento di aggiungere sono il fatto che python non è più veloce di C/C++ essendo interpretato e che verrebbe comodo imparare l'algebra booleana prima del SQL, per il resto ottimo lavoro.
Aggiungo subito :)
 
  • Mi piace
Reazioni: Symon_RS
Ultima modifica:
Carissimo per sbaglio ti ho detto una cavolata, volevo dire l'algebra RELAZIONALE e non quella booleana hahahaha, scusami è la stanchezza... anche se alla fine per comprendere l'algebra relazionale serve a sua volta anche l'algebra booleana dai.
No, non e' sbagliato: l' algebra booleana si basa sul true e false, e sugli operatori logici, che sono adottati sia dai vari linguaggi [vedi
C:
_Bool
,
Python:
OR AND NOT
nei linguaggi], ma e' anche importante capirla poiche' la selezione dei dati da una tabella speso avviene usando un
SQL:
WHERE [statement]
, che di fatto non fa' altro che sfruttare una condizione logica per ritornare dei risultati attesi dall utente/applicativo che interroga il db stesso.

Anche il libro "L'arte dell'hacking" di Jon Erickson, non è male per iniziare, o perlomeno io sto iniziando con quello.
Provvedo ad aggiungerlo immediatamente ;)
 
ciao, non so se hai abbandonato o no questo favoloso progetto, come faccio/amo a sapere se apporti modifiche alla guida?
 
Ultima modifica:
ciao, non so se hai abbandonato o no questo favoloso progetto, come faccio/amo a sapere se apporti modifiche alla guida?
Ciao,
per evitare casini con gli aggiornamenti di release [mi successe che una si autoelimino' ......e allora preferisco evitare di fare casini inutili], modifico semplicemente il contenuto come se fosse un post, tramite l' opzione modifica.
Non so' quindi se sia possibile seguire l' aggiornamento costante di una release, sai dirmi se e' fattibile @Stefano Novelli ??

Ad ogni modo,la release e' in continua modifica, e ad ogni nuova risorsa che mi sembri utile, aggiungo il link e qualche pezzetto in piu' : nella vita mai nulla e' completo ;)

EDIT:
dovresti avere la funzione per comunicare aggiornamenti ;)
Non la trovo @Stefano Novelli :boh:
 
Ciao,
per evitare casini con gli aggiornamenti di release [mi successe che una si autoelimino' ......e allora preferisco evitare di fare casini inutili], modifico semplicemente il contenuto come se fosse un post, tramite l' opzione modifica.
Non so' quindi se sia possibile seguire l' aggiornamento costante di una release, sai dirmi se e' fattibile @Stefano Novelli ??

Ad ogni modo,la release e' in continua modifica, e ad ogni nuova risorsa che mi sembri utile, aggiungo il link e qualche pezzetto in piu' : nella vita mai nulla e' completo ;)
dovresti avere la funzione per comunicare aggiornamenti ;)
 
Ciao, per evitare casini con gli aggiornamenti di release [mi successe che una si autoelimino' ......e allora preferisco evitare di fare casini inutili], modifico semplicemente il contenuto come se fosse un post, tramite l' opzione modifica. Non so' quindi se sia possibile seguire l' aggiornamento costante di una release, sai dirmi se e' fattibile @Stefano Novelli ?? Ad ogni modo,la release e' in continua modifica, e ad ogni nuova risorsa che mi sembri utile, aggiungo il link e qualche pezzetto in piu' : nella vita mai nulla e' completo ;) EDIT: Non la trovo @Stefano Novelli :boh:[/QUOTE]"]

Ok capito, grazie mille!
 
Nulla, sempre un piacere :)

Che ne pensi della release che ho aggiunto ? [quella sulle botnet]
Veramente interessante e facile da capire, ho apprezzato particolarmente come l'hai impostata strutturalmente e graficamente 10/10 :rulzz:

Domanda ma per caso tu modifichi ogni volta la guida? non rilasci aggiornamenti? perché ho notato che non l'hai mai aggiornata e uno spulciando vede che è una guida mai aggiornata pensa che sia stata abbandonata o magari pensa di averne già tratto dei benefici [Ma in realtà è stata aggiornata (aka modificata) più e più volte] e si perde le cose nuove....
 
  • Mi piace
Reazioni: 0xbro
Veramente interessante e facile da capire, ho apprezzato particolarmente come l'hai impostata strutturalmente e graficamente 10/10 :rulzz:

Domanda ma per caso tu modifichi ogni volta la guida? non rilasci aggiornamenti? perché ho notato che non l'hai mai aggiornata e uno spulciando vede che è una guida mai aggiornata pensa che sia stata abbandonata o magari pensa di averne già tratto dei benefici [Ma in realtà è stata aggiornata (aka modificata) più e più volte] e si perde le cose nuove....
Si, lo faccio per evitare di perdere allegati che inserisco e modifiche anziane che poi rileggendo mi possono piacere o meno, perche' quando le aggiornavo nel modo normale, mi dava molti grattacapi [forse legati proprio al mio modo di fare], mentre penso sia meglio creare tutto un pezzo unico in cui poter "forgiare" antico e nuovo in modo da renderlo piu' completo
 
  • Mi piace
Reazioni: Nootka.
Stato
Discussione chiusa ad ulteriori risposte.