Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

La tecnica del Penetration test. Il lavoro dell’ethical hacker.

Fernando Curzi : 23 Gennaio 2022 21:31

Autore: Fernando Curzi

Data Pubblicazione: 23/01/2022

Il Pentesting è l’insieme di tutte quelle tecniche utilizzate da una figura professionale esperta in sicurezza informatica e delle reti, chiamata anche Pentester, atta ad attuare delle metodologie che sottopongono i sistemi informatici ad alcune prove sulle vulnerabilità.

Attraverso la simulazione di attacchi reali, il pentester è in grado di capire se esistano o meno delle falle che possano esporre i sistemi a potenziali attacchi informatici.

Il pentester come anche l’Ethical hacker o ITadmin è una figura importantissima per le società e per i rispettivi sistemi informatici, porta sempre con sè un arsenale di tool d’attacco, è specialista anche di attività di social engineering che spesso i malintenzionati mettono in atto prima di inviare un attacco informatico, sensibilizzando il personale dell’azienda con periodici seminari sulla tema.

Questi incarichi che gli vengono assegnati sono ben definiti all’interno di un contratto scritto stipulato dalla società committente, che avrà a disposizione un certo periodo di tempo per concludere l’incarico e redigere un report dettagliato sulle vulnerabilità dei sistemi e sulle misure da adottare, report che dovrà essere consegnato all’amministratore di rete e al web master per apportare le relative misure di sicurezza.

Il pentesting si divide in varie fasi: il Footprinting è la prima fase e racchiude tutte quelle attività iniziali, essenziali ad un malintenzionato o, nel nostro caso, a un pentester che gli consente di svolgere in maniera adeguata l’attacco informatico per valutarne i rischi.

L’EC-Council ha certificato le 5 fasi principali di un attacco informatico:

In questo volume ci concentreremo su argomenti che riguardano la prima fase, il “Footprinting”. In esso sono racchiuse tutte quelle attività di ricerca d’informazioni sull’obiettivo da attaccare, utile al pentester per identificare le diverse vie e modalità di penetrazione in una rete o all’interno di un dispositivo connesso. È da considerarsi uno step iniziale importantissimo, perché è solo grazie ad esso che si può dedurre la qualità di un attacco. Inoltre, sempre lo stesso l’EC-Council definisce ben sette passi diversi per la fase del Footprinting. Cercheremo in questo modulo di svolgere le principali, si utilizzeranno alcuni strumenti che fanno parte della cassetta degli attrezzi di un pentester. I passi che seguiremo sui sistemi da testare saranno:
  • raccogliere informazioni o Information Gathering (Ricognizione);
  • determinare i servizi attivi ed enumerare su di essi (Scansione/Enumerazione);
  • determinare il range della rete (Scansione);
  • mappare la rete (Scansione);
  • identificare i dispositivi connessi nella rete (Scansione);
  • determinare il sistema operativo in uso (Scansione);
  • trovare porte aperte ed eventuali punti di accesso (Scansione).

L’information gathering

Un pentester, dopo aver ricevuto un incarico dalla società committente, procederà fin da subito a svolgere questa importantissima prima fase, attraverso canali e tecniche prestabilite che a breve vedremo, cercherà di recuperare quante più informazioni possibili sulla società.

È importante sottolineare che per un’azienda il fatto che un pentester riesca sin da subito a recuperare informazioni sensibili attraverso questi canali talvolta totalmente legali, è sintomo di una crepa nelle vulnerabilità informative dell’azienda.

Un’attività di Footprinting aziendale si suddivide in:

  • indagini attive Active Discovery;
  • indagini passive Passive Discovery.

La differenza sostanziale tra le due sta nel fatto che le prime sono da ritenersi illegali per chi le svolge senza autorizzazione del proprietario dei sistemi in quanto permettono l’interazione con i sistemi informatici mentre le seconde sono del tutto legali anche se non si dispone di autorizzazioni in quanto svolte in rete internet e le info estrapolate sono di dominio pubblico.

Passive Discovery

Sono tutte quelle attività e tecniche rivolte alla ricerca d’informazioni sulla rete bersaglio (informazioni sui dipendenti, dati finanziari, indirizzi ip, topologia della rete ecc) .

I dati rilevati non provengono da interazioni dirette con i sistemi informatici e per la loro natura non sono rilevate dai firewall, IPS (intrusion prevention system) o dagli IDS (Intrusion Detection System). Sono da ritenersi LEGALI perché le informazioni sono reperite dal web pubblico.

Tra queste attività rientrano:

  • Google dorks;
  • Osint;
  • DNS lookup enumeration: (DNS resolving, reverse DNS lookup, DNS Enumeration, DNS history);
  • Altri metodi di ricerca ip;
  • Whois lookup.

Active Discovery

Vi rientrano tutte quelle attività rivolte alla ricerca d’informazioni sulla rete bersaglio. I dati recuperati provengono da interazioni dirette con i sistemi informatici. Queste attività sono rilevate dai firewall, IDS e IPS e sono da considerarsi ILLEGALI; pertanto si è autorizzato a eseguirle solo mediante contratto con la società che commissionerà il tecnico per l’incarico.

Rientrano tra queste:

  • Ping sweep (in realtà anche se trattasi di interazione, il ping è considerato un test di connessione e pertanto non risulta essere necessaria un autorizzazione).
  • Port scanning
  • Banner Grabbing
  • Network scanning
  • Vulnerability scanning

Iniziamo a vedere le attività di passive discovery utilizzando la rete pubblica per recuperare quante più informazioni possibili su un ipotetica azienda da testare.

FootPrinting – Google hacking database

Le Google Dorks sono query implementate da Google in modo da permettere di sfruttare alcune potenzialità aggiuntive del motore di ricerca. In certe situazioni, nell’attività di un pentester, la ricerca d’informazioni attraverso l’utilizzo di queste speciali keywords è da ritenersi utile ed efficace. L’uso delle Dorks è legato ad un linguaggio tecnico ben preciso e richiede un minimo di conoscenza della struttura delle Serp di Google, che viene illustrata di seguito:

Procediamo con alcune Dorks attraverso la home di Google, inserite nel campo di ricerca le seguenti combinazioni di Dorks, altre raccolte dal Google Hacking Database le trovate a questo link: https://exploit-db.com/google-hacking-database Questo è uno strumento affascinante che mette a disposizione Google, ma come vedremo nei capitoli successivi, un pentester per le sue indagini avrà bisogno di strumenti più avanzati. Prima di proseguire vorrei che vi sia chiaro come sono strutturati i livelli di un classico dominio web di seguito alcuni esempi:
www.sitoweb.com www = Host 3° Liv.sitoweb = Domain 2° Liv.com = Top level domain (TLD) 1° Liv. (COM, NET, ORG, IT, EU..) www.blog.sitoweb.com www = Host 4°Liv blog = Subdomain 3° Liv.sitoweb = Domain 2° Liv.com = TLD 1° Liv.

I domini possono arrivare ad avere anche livelli superiori ma l’importante è comprendere che ad ogni livello corrisponde una zona riferita ovviamente al web server di appartenenza.

OSINT FRAMEWORK – Osr-framework

Osint, (Open Source Intelligence), è quel tipo di attività rivolta alla raccolta d’informazioni di natura pubblica, utilizzato principalmente nel campo del giornalismo, nelle cyber investigazioni e nello spionaggio industriale.

Un’attività di Osint si basa su informazioni ricavate dalla rete internet, maggiormente dai social network, siti web e dagli archivi storici online. Per agevolare questo tipo di ricerca sono nati anche dei software grafici, tra i migliori troviamo Maltego che si può trovare preinstallato su Kali linux e permette, attraverso l’installazione di alcuni moduli esterni, di compiere delle ricerche incrociate ed è in grado di strutturare delle mappe di rete e di contatti.

In Kali Linux troviamo anche dei Framework molto efficienti e gestibili da riga di comando, il cui scopo è scandagliare la rete filtrando i dati in base alla richiesta effettuata. Per questo test utilizzerò un tool da riga di comando senza interfaccia grafica, in realtà è un framework molto pratico si chiama Osr-framework.

Procediamo alla sua installazione:

  • Andate su Kali-attacker e aprite il terminale, dai repository ufficiali di Kali Linux installate “git” con il comando: $ apt-get install git, (il software distribuito git serve per installare tool e software da github una delle principali piattaforme di software condiviso);
  • Clonate il pacchetto d’installazione con il comando $ git clone ci ritroveremo nella directory la cartella scompattata;
  • Accedete da terminale all’interno della cartella appena scaricata e con il comando $pip2 install osrframework && pip2 install osrframework –upgrade allineate le dipendenze di python.

Terminata l’installazione delle dipendenze, possiamo iniziare a usare il framework, vi mostrerò i comandi principali per svolgere qualche indagine passiva:

root@kali:-/osrframework# osrf –help

$ osrf –help evoca l’help dei comandi di osrf, nel riquadro verde di seguito ho evidenziato i principali.

root@kali:-# osrf searchfy –q “mario rossi”

$ osrf searchfy –q serve per inviare delle query in base alle parole chiave che si immettono nella richiesta scandagliando contemporaneamente più piattaforme social: nel nostro caso ho inserito un nome di persona (Mario Rossi) di seguito il result;

root@kali:-/osrframework# osrf usufy –n mario84 -p facebook instagram

$ osrf usufy –n, serve a ricercare info in base al nickname o alias sulle piattaforme specificate nei parametri;

root@kali:-/osrframework# osrf mailfy –n [email protected] $ osrf mailfy –n, serve a ricercare info sugli account email;
root@kali:-/osrframework# osrf –n phonefy +39

$ osrf –n phonefy, serve per ricercare informazioni su un numero di telefono.

Di seguito cito alcuni software e motori di ricerca che svolgono egregiamente il loro lavoro in ambito di investigazioni osint aziendale, particolare enfasi vorrei rivolgerla al sito https://osintframework.com, un raccoglitore di applicativi e archivi online, suddivisi per categoria dedicati alle attività delle cyber investigazioni.

Alcuni software per poter iniziare a prendere dimestichezza con le analisi OSINT:

  • Foca: Software grafico per ricavare informazioni da siti web, permette l’estrapolazione di metadati contenuti all’interno di file che espone pubblicamente un sito web.
  • Maltego: Software grafico preinstallato sulle versioni di Kali Linux utile per il rilevamento di dati su persone, aziende e reti, recuperate da fonti pubbliche. Permette di strutturare le informazioni raccolte attraverso mappature grafiche.
  • Website-Watcher: Software grafico per verificare gli aggiornamenti e cambiamenti di pagine web
  • Web data extractor: Software grafico per ricavare informazioni da siti web, permette di estrarre dati da pagine web come: codice html, immagini, testo ecc.
  • Httrack Website copier: Software grafico per ricavare informazioni da siti web, permette di copiare ricorsivamente tutte le cartelle di un sito web da remoto in una cartella locale, organizzando l’organigramma del file system del sito originale
  • Firebug: Estensione preinstallata del browser in particolare di Mozilla Firefox, permette il debug, la modifica e il monitoraggio di tutti gli aspetti di una pagina web, come il codice css, js, html. Per attivarlo tasto destro del mouse sulla pagina web e analizza o ispeziona codice sorgente.

Motori di ricerca e software OSINT

  • Shodan: https://shodan.io Motore di ricerca per i dispositivi collegati alla rete internet, i dispositivi sono suddivisi in base alla loro categoria, rileva qualsiasi apparato connesso alla rete non protetto in maniera adeguata.
  • Bing vs Google: https://bvsg.org Comparazione delle ricerche delle keywords con algoritmo Bing e Google
  • Advangle: https://advangle.com Altro sistema di comparazione ricerche incrociate con possibilità di settare le query doorks
  • Reportlinker: https://reportlinker.com Motore di ricerca per informazioni sulle società, enti pubblici ecc.
  • Corporationwiki: https://corporationwiki.com Altro motore di ricerca per informazioni sulle società, enti pubblici ecc.
  • Crunchbase: https://crunchbase.com Altro motore di ricerca per informazioni sulle società, enti pubblici ecc.
  • Gibiru: https://gibiru.com Motore di ricerca con proprio algoritmo
  • Swisscows: https://swisscows.ch Altro Motore di ricerca con proprio algoritmo
  • Netcraft: https://netcraft.com Motore di analisi sui domini e ricerca informazioni.

Il DNS Lookup

La ricerca in rete dell’indirizzo IP dei dispositivi in una rete bersaglio è una delle operazioni preliminari per un pentester. Per il suo intento utilizza tutti i canali dell’Information gathering messi a sua disposizione. Spiegare cosa vuol dire DNS Lookup significa riprendere il discorso sui DNS Server sui quali grava come abbiamo visto il doveroso compito di tradurre un dominio in un indirizzo IP.

Tecnicamente un’associazione Dominio ???? IP si chiama Record: questo, in particolare, è di tipo “A”, ma ci sono moltissime tipologie di record, che potete visionare al seguente link:

https://it.m.wikipedia.org/wiki/Tipi_di_record_DNS

Per la nostra attività si richiede la conoscenza dei record principali:

Il DNS Lookup è un sistema di verifica incrociata dei record, utile per scoprire l’indirizzo IP reale di dispositivo, pc, router, ecc. (nel nostro caso, di un server).

Conoscere l’indirizzo IP significa anche sapere dove quella macchina risiede. La nostra ricerca, la maggior parte delle volte, non è così naturale, poichè l’indirizzo IP del server non si rivela quello reale … cosa troviamo al suo porto? Troveremo indirizzi IP di altri server i cosiddetti Reverse-Proxy che interferiranno tra noi (client) e il nostro obiettivo (web server), mascherando le informazioni del server ufficiale, pertanto, anche l’indirizzo IP reale.

Questo fattore di “depistaggio” può creare non pochi problemi alla nostra attività d’indagine poiché il nostro lavoro non sarà allineato con le informazioni reali sul nostro target. Il problema è risolvibile con l’utilizzo di alcuni tool. Il DNS Lookup rimane un metodo efficace e non invasivo: a differenza del ping e port scanning di Nmap, è una tecnica totalmente legale.

Abbiamo accennato al discorso del mascheramento ovvero come l’IP reale di un server può essere occultato da parte di altri server immagine che “hostano” in rete il proprio indirizzo IP. Questa sostituzione avviene grazie ai Reverse Proxy.

Le web application utilizzano alcuni Reverse Proxy Server, uno tra questi è Cloudflare. Cloudflare è molto popolare per la sua semplicità di utilizzo e per la sua versione gratuita che lo rende appetibile nel mondo web hosting. Tra le sue funzioni principali troviamo:

  • intermediazione: quando da un client arriva una richiesta a un server, Cloudflare controlla se il visitatore è affidabile e solo dopo aver verificato preleva i contenuti (html, css, js) dalla cache e li restituisce al visitatore, evitando anche un inutile sovraccarico di richieste http direttamente al web server principale;
  • protezione: Cloudflare di dafault non permette di visualizzare l’indirizzo IP del server appartenente al dominio principale. Per quanto riguarda invece i record dei sottodomini, esiste di fondo un problema dovuto alla natura dei server proxy che, se ricordate, non possono gestire protocolli al di fuori di http e https: i sottodomini del server principale non sono protetti, pertanto, hosteranno l’indirizzo IP del server principale, ciò accade perché Cloudflare non riesce a gestire automaticamente tutti i protocolli eccetto HTTP e HTTPS. Questo è un fattore di debolezza per l’attività di DNS lookup che può essere sfruttato da un malintenzionato per trovare l’indirizzo IP del server principale nonostante si trovi sotto protezione Cloudflare. Un web master dovrà all’occorrenza configurare dal pannello di configurazione di Cloudflare tutti i sottodomini del dominio in modo da farli puntare al server di Cloudflare.

Come abbiamo visto Cloudflare non è infallibile: tra le sue debolezze ritroviamo l’impossibilità di gestire appunto in maniera automatica tutti i record che puntano al dominio principale (per esempio, i record MX dei server-mail o di altri sottodomini del tipo “ftp.sito.com”).

Cloudflare permette di impostare questi parametri aggiuntivi dal suo pannello di controllo in modo che tutti i record, anche quelli dei sottodomini configurati, puntino al proxy server di Cloudflare e non al dominio principale che equivale all’indirizzo IP del server principale. Molto spesso questi parametri vengono tralasciati dal web master o dagli utenti amatoriali ed è in queste piccole cose che il nostro lavoro fa la differenza. Il DNS lookup si ramifica in tre attività, vediamole da vicino:

  1. DNS Resolving Enumerazione e risoluzione Dominio ???? IP
  2. Reverse DNS Lookup Enumerazione IP ???? Dominio
  3. DNS Enumeration Enumerazione Dominio/IP ???? Sottodomini;

Troviamo già preinstallati in Kali linux alcuni tool: DNSenum, DNSrecon, Subbrute e Websploit. Per il nostro test utilizzerò un sito web campione che fa uso di Cloudflare (per maggiore sicurezza ne oscurerò gli indirizzi IP).

DNS resolving

Aprite il terminale su Kali-attacker, lanciate il comando del tool dnsenum che vi permette di enumerare i record di un hostname,

root@kali:-# dnsenum –dnsserver 8.8.8.8 -enum host******.iti parametri che inserirete sono:
  • $ dnsserver vi permette di impostare un DNS server da utilizzare dal quale eseguire la richiesta, in questo caso ho impostato i DNS di Google 8.8.8.8
  • $ enum vi permette di stabilire il tipo di enumerazione dizionario/ricerca Google sull’hostname da testare. Il risultato sarà: avremo due record del tipo: “A” con indirizzo IP 104.24.108.*** e 104.24.109.***
Saranno associati al dominio host****.it, in realtà non corrisponderanno all’indirizzo IP del server del dominio principale, ma agli indirizzi IP del proxy di Cloudflare, se provate a fare copia e incolla di uno dei due indirizzi nel browser, vi restituirà un messaggio che vi avvisa che il sito è protetto da Cloudflare:

Ora, procedete con il secondo tool DNSrecon: esso vi permetterà di eseguire il reverse DNS lookup su uno dei record, copiate il record MX trovato nella precedente sessione di Dnsenum:

MX” associato all’ip 149.3.146.***Da questa tipologia di record sono inviate e ricevute le email. Questo indirizzo punta a quello del server ufficiale del dominio, ma non è detto che identifichi il range corretto: in effetti, questo indirizzo IP 149.3.146.*** restituisce una pagina di errore.

Reverse DNS Lookup

A questo punto non vi resta che aprire una seconda scheda del terminale e avviare il comando $ dnsrecon dando in pasto un range d’indirizzi IP, partendo da quello al quale punta il record di tipo “MX”;

root@kali:-# dnsrecon -r 149.3.146.***/24

Il parametro –r indica che sarà eseguito un reverse DNS lookup sul range d’indirizzi specificato (il parametro richiede necessariamente l’inserimento di una Netmask che la si può indicare anche con la notazione CIDR: /24;

Il risultato sarà un’enumerazione di tipo “PTR” sugli indirizzi IP specificati nel range che avete richiesto. Scorrendo la lista troverete l’associazione Hostname????IP desiderata.
Host****.it ???? 149.3.146.***

DNS enumeration

A volte ci potremo imbattere in domini molto più protetti o semplicemente configurati a dovere. In questo caso entrano in soccorso altri due tool Subbrute e Websploit, particolarmente utili per enumerare sui sottodomini più popolari dei siti web.

Da terminale con il comando $ git clone lanciate l’installazione di subbrute e al termine fate accesso alla sua cartella d’installazione con il comando $ cd subbrute

root@kali:-# git clone https://github.com/TheRook/subbrute.gitroot@kali:-# cd subbrute

avviate il file subbrute.py dando come parametro un dominio da enumerare, vi sarà restituita una lista di sottodomini da testare;

root@kali /subbrute:-#/python subbrute.py

dall’help del tool $ –help si possono analizzare i vari parametri da inserire per assegnare dei threads ed evitare di eseguire enumerazioni infinite o semplicemente salvare l’enumerazione in un file.txt;

root@kali:-# websploit

avviate websploit con il comando $ websploit, è un tool dalle molteplici funzioni: tra le tante, la funzione enumerazione sui sottodomini che risultano scoperti dalla protezione di Cloudflare;

root@kali:-# wsf > use web/cloudflare_resolverroot@kali:-# wsf: Cloudflare Resolver > set target

con il comando $use potete caricare il modulo web/cloudflare_resolver e con $ set target potete assegnare un dominio bersaglio;

root@kali:-# wsf: Cloudflare Resolver > run

con il comando $ run avviate l’enumerazione,

il risultato sarà una lista dei sottodomini protetti e non protetti da Cloudflare, quelli protetti avranno il relativo indirizzo IP oscurato, mentre quelli non protetti saranno visibili in chiaro.

Avete appena svolto alcune attività non banali di passive discovery su un sito web non configurato in maniera sicura: il tempo, la dedizione e l’esperienza vi porteranno a sfruttare tutte le potenzialità di questi strumenti d’indagine.

Per saperne di più

Per approfondire in modo esaustivo tutti gli argomenti trattati in questo articolo posso suggerire il mio libro in vendita su amazon a 9,99 euro Hackerpunk 1 vol. “Profiling”

Hackerpunk vol.1 “Profiling”: Manuale interattivo di Ethical Hacking e Sicurezza informaticatica

in questo primo percorso di sicurezza informatica con concetti di ethical hacking vi guiderò in un corso di informatica avanzata che parte da livello 2 come giusto che sia quando si parla di questa tipologia di corsi. Nel spiegare concetti di ethical hacking si danno spesso per scontato le basi del network importantissime per comprendere questi argomenti, io ho cercato ugualmente di racchiuderli all’interno dell’opera editoriale e ho scelto amazon kindle per condividere con voi tutta la mia esperienza nel campo, facilitando oltremodo la comprensione, mediante l’utilizzo della tecnologia Qr. Per lo scopo ho pensato di collegare i capitoli del manuale con i videotutorial sul mio canale gratuito youtube che d’altronde è in continuo aggiornamento. Vi basterà scaricare dallo store una semplice applicazione android/ios sul vostro smartphone e quando richiesto scansionare il codice Qr di fine capitolo, per essere reindirizzati subito dopo sul videotutorial di riferimento, estendendo la comprensione degli argomenti con la pratica ma anche con la grafica, attraverso le presentazioni animate. Hackerpunk è un corso interattivo totalmente legale, verranno trattati argomenti etici e altamente professionali che fanno parte della vita lavorativa di figure come quella del pentester o dell’Itadmin aziendale. L’ ethical hacking è ancora da molti considerato inconsapevolmente come pirateria perché utilizza conoscenze informatiche per violare o far crashare i sistemi, purtroppo non è così anzi è il contrario, tutte queste tecniche vengono utilizzate legalmente sotto contratto per aumentare il grado di sicurezza di questi sistemi benché ci sia l’autorizzazione del proprietario del sistema, in effetti l’ ethical hacker è una figura lavorativa ben inquadrata nel campo IT (information technology). Hackerpunk è rivolto a coloro che vorranno raffinare le proprie conoscenze nel campo della sicurezza informatica o chi vorrà iniziare a farne parte, in questo volume tratteremo i concetti base del network, entreremo nelle modalità di anonimato digitale e vedremo le prime fasi del pentesting, affrontando gia’ da subito la fase della ricerca di informazioni sugli obbiettivi da testare. Essa coincide con la prima fase del pentesting chiamata “Information gathering”. Nonostante la mole di argomenti da trattare non verranno tralasciate le sessioni pratiche grazie ai laboratori di kali linux che svolgeremo in ambito virtuale. La playlist youtube “#Navigare in incognito” è associata al primo volume.

La collana editoriale si comporrà in totale di 3 volumi:

Lasciate un like sul mio canale youtube, iscrivetevi per essere sempre aggiornati sulle novità delle Playlist.

sito web: https://hackerpunk.it

contatti: u[email protected]

@instagram https://www.instagram.com/hackerpunk2019/@linkedin https://www.linkedin.com/mwlite/in/fernandoc-364ab419a@facebook https://www.facebook.com/hackerpunk192021@youtube https://www.youtube.com/channel/UCiAAq1h_ehRaw3gi09zlRoQ

Mi chiamo Fernando Curzi ho 37 anni, sono un analista certificato in Cybersecurity, laureato in ing. Informatica e sviluppatore di applicazioni web.

Fernando Curzi
Ingegnere informatico, pentester certificato, cybersecurity analyst, web developer e freelancer collaborator di RHC. Autore dell’e-book Hackerpunk.