in questa sezione ci soffermeremo sul concetto di ingegneria sociale e in particolar modo ci soffermeremo sulla figura dell'ingegnere sociale Cosa significa ingegneria sociale ingegneria sociale significa utilizzare il proprio ascendente e le capacità di Persuasione e facciamo attenzione al termine Persuasione perché lo ritroveremo molte volte in questo corso al fine di ingannare gli altri e manovrarli convincendoli che l'ingegnere sociale è quello che non è di conseguenza l'ingegnere sociale può usare le persone per ottenere informazioni con o senso l'ausilio di strumenti tecnologici e questo e questo paragrafo introduttivo possiamo ricondurlo a Kevin meetniche che vedremo poi successivamente Chi è tuttavia già fin da ora possiamo affermare che quest'ultimo questa persona ha avuto un ruolo fondamentale nello sviluppo dell'ingegneria sociale andiamo avanti e la questione si può riassumere nei seguenti termini non importa quanto le difese tecniche della tua organizzazione siano ineccepibili se non presti attenzione al fattore umano ogni tentativo nel lungo termine sarà inutile quindi Qui iniziano a emergere alcuni aspetti chiave e critici relativamente all'ingegneria sociale il primo di questi è il fattore umano quindi l'ingegnere sociale in qualche modo si scontrerà con questo fattore umano e successivamente possiamo ottenere informazioni con o senza l'ausilio di strumenti tecnologici proprio perché appunto ci stiamo concentrando sul fattore umano volendo citare nuovamente meetnic si possono investire milioni di dollari per i propri software per l'hardware delle proprie macchine e per i dispositivi di sicurezza all'avanguardia Ma se c'è anche un solo ma se c'è anche solo un unico dipendente della nostra azienda che può essere manipolato con un attacco di ingegneria sociale tutti i soldi investiti saranno inutili e qui ci soffermiamo ancora una volta sul ruolo fondamentale che ha che ha il fattore umano all'interno di un'organizzazione e specificamente all'interno della del contesto di sicurezza informatica qui il concetto che emerge che non è il fattore umano non è strettamente dipendente legato alla tecnologia hardware e software utilizzata all'interno dell'azienda per proteggerla sono due contesti totalmente slegati e indipendenti visto che abbiamo già citato diverse volte Kevin mitnick cerchiamo adesso di capire chi è questa persona e perché appunto ha avuto un ruolo così importante Kevin David mitnik detto detto Condor è un programmatore Faker cracker e imprenditore statunitense che si è distinto per le sue notevoli capacità nel Social Engineering ingegneria sociale avendo eseguito alcune tra le più ardite incursioni Nei computer del governo degli Stati Uniti poi ancora è stato catturato è stato condannato a svariati anni di carcere il suo arresto il suo trattamento in prigione hanno sollevato ampie controversie dal 2000 che amministratore delegato dell'azienda di consulenza e Sicurezza Informatica chiamata mitnik Security Consulting quindi lui è stato uno dei primi che ha approfondito e applicato l'ingegneria sociale quindi l'abilità di manipolare le persone in un contesto informatico e ovviamente la cosa poi ha avuto vari risvolti Come possiamo come stiamo leggendo e adesso attualmente è amministratore delegato di questa società di sicurezza e qui vediamo la fotografia di kevin-it e quindi in questo breve video introduttivo il concetto che Deve emergere che l’ingegnere sociale più In generale l'ingegneria sociale non si sofferma su una specifica tecnologia hardware software ma sul fattore umano e sull'arte di manipolare attraverso specifiche leve psicologiche le persone Affinché queste persone Compiano azioni che altrimenti non avrebbero mai compiuto cerchiamo adesso di definire meglio la figura dell'ingegnere sociale l'ingegnere sociale possiamo definirlo in un certo senso come uno psicologo con specializzazione in informatica oppure se preferiamo come un informatico con specializzazione in psicologia Psicologia perché Perché al fine di compromettere il fattore umano bisogna utilizzare particolari leve psicologiche e Informatica al fine di compromettere la parte tecnica ovviamente ci potrà essere una predominanza della parte tecnica rispetto all'utilizzo di leve psicologiche o viceversa un grande utilizzo della psicologia e della manipolazione e delle conoscenze tecniche differenti Tuttavia l’ingegnere sociale Appunto e solitamente viene emerge all'interno dei contesti informatici telematici di conseguenza ci sarà sempre una componente tecnica unita comunque a una conoscenza una buona conoscenza della parte psicologica nello specifico l'ingegnere sociale utilizza particolari leve psicologiche e poi saranno oggetto di questo corso al fine di demolire ogni barriera mentale tra lui e la vi per scelta e quindi qui introduciamo un concetto molto critico e molto importante per l'ingegnere sociale ovvero il concetto di fiducia l'obiettivo finale è ottenere la fiducia di quest'ultima al fine di ottenere le informazioni rilevanti relativamente alla finalità dell'attacco qui altri un altro concetto importante è quello di informazioni quindi lo scopo finale sarà sempre in qualche modo avere l'accesso a questa informazione solo che l'ingegnere sociale accede a queste informazioni sfruttando una componente psicologica e una certa abilità tecnica più o meno sviluppata e per riuscire a sfruttare al meglio la componente psicologica bisogna che si ottenga la fiducia della vittima andiamo avanti l'azienda di turno può implementare tutti i più efficaci questi meccanismi di sicurezza e quelli classici sono firewall antivirus sistemi antintrusione eccetera ma se l'ingegnere sociale riuscirà ad ingannare la sua vittima non serviranno a niente e qui ci soffermiamo su questo punto perché non è importante quanto l'azienda abbia misure di sicurezza hardware e software implementate Il problema è che se sfruttando la psicologia riusciamo a manipolare la vittima probabilmente questi meccanismi di sicurezza non funzionano perché questi meccanismi di sicurezza hanno senso quando ragioniamo in un'ottica attaccante esterno che cerca di accedere all'interno dell'azienda sfruttando la parte la componente tecnica l'abilità tecnica in questo caso invece stiamo bypassando la componente tecnica utilizzando invece la componente psicologica ed è per questo che l'ingegnere sociale riuscirà Se riuscirà ad ingranare la vittima in questi termini tutte queste misure di sicurezza non serviranno a niente e poi appunto c'è un altro grosso problema che attualmente pochissime aziende investono Nella formazione dei dipendenti Cosa si intende per formazione Cosa si intende con formare un dipendente ad esempio corsi specifici di security awareness quindi di consapevolezza della sicurezza all'interno di un'azienda aggiornamenti sulle ultime minacce in ambito Cyber Security simulazione ad hoc per testare l'efficacia del training tutti strumenti che aiutano a non farsi ingannare da un eventuale attaccante che sfrutta le leve psicologiche quindi l'ingegneria sociale e questa è l'unico modo per riuscire a contrastare questa abilità questa componente psicologica Ripeto la parte tecnica quindi misure di sicurezza software e hardware non sono sufficienti non sono assolutamente sufficienti È l'unico modo è puntare sulla formazione dei dipendenti e come appena detto Le possibilità sono molte rafforziamo ancora il concetto il social Engineering non richiede log lavora con ogni piattaforma software o sistema operativo usa strumenti a disposizione di chiunque o estremamente economici supera qualsiasi sistema di esse ancora una volta Kevin mitnick che appunto rafforza il concetto che abbiamo appena detto perché è non è importante la componente tecnica quindi piattaforma software sistema operativo o quant'altro perché non agisce sulla sfera tecnica ma sulla parte psicologica la Sicurezza Informatica facendo riferimento alla componente offensiva si può suddividere in due differenti tipologie da una parte abbiamo gli Attack rivolti all'architettura in informatica e dall'altra parte abbiamo gli Attack rivolti alle persone e questo ha senso proprio perché stiamo ancora una volta facendo riferimento da una parte alla componente tecnica quindi le architetture informatiche e dall'altra parte la componente psicologica quindi il fattore umano le persone adesso la domanda è quali sono i vantaggi di un attacco Rivolto alle persone anziché sistemi cioè perché io dovrei dedicarmi più alle persone La psicologia al fatto Romano piuttosto che a cercare di trovare vulnerabilità all'interno di un sistema hardware software che sia Beh alcune delle motivazioni sono innanzitutto i costi di esecuzione bassi perché accedere e voler bypassare la componente tecnico hardware richiede comunque costi molto alti di esecuzione poi rischio di esecuzione basso perché comunque sfruttando leve psicologiche non andiamo a macchiare in maniera indelebile quello che è il contesto di riferimento cosa che invece magari accade quando lavoriamo sulla parte tecnica perché comunque lasciamo delle tracce dei log o quant'altro quindi il rischio è più basso non richiede competenze tecniche avanzate questo è un altro motivo come dicevo in uno dei primi video l'ingegnere sociale ha sicuramente una qualche base tecnica conoscenza tecnica ma tuttavia ha una buona ottima conoscenza della componente psicologica quindi non è vero che non sono richieste competenze informatiche perché comunque servono anche quelle ma tuttavia abbiamo forse una predominanza della parte psicologica lascia poche tracce per i motivi che abbiamo appena detto e non dipende da alcuna tecnologia specifica altro fattore importante ogni volta che noi vogliamo attaccare un bersaglio sulla parte tecnica o software sulla parte Scusate software o hardware quindi su sistemi Dobbiamo comprendere a fondo quella specifica tecnologia dobbiamo studiarla capirla bene e questo richiede appunto un costo di esecuzione più alto anche un rischio più alto eccetera invece in ingegneria sociale non dipende da alcuna tecnologia specifica Tuttavia effettuare un attacco di ingegneria sociale richiede un'attenta fase di studio della vittima del contesto di riferimento e di una scrupolosa preparazione dell'attaccante che non deve trascurare alcun dettaglio quindi non è vero che però un attacco di ingegneria sociale non richiede studio che si possa attuare immediatamente può richiedere giorni anche mesi di studio relativamente ad un certo soggetto e all'ingegnere sociale è richiesta infatti una notevole capacità di osservazione e di analisi dei comportamenti umani e qui Facciamo riferimento alle quelle famose leve psicologiche che poi andremo ad introdurre nei successivi video quando si vogliono risolvere delle sfide CTF in generale è necessario seguire una metodologia ovvero un insieme di passi che da un punto a ci permettono di arrivare a un punto B che possiamo identificarlo come la conclusione la risoluzione della nostra sfida CTF la metodologia che possiamo adottare e che solitamente viene utilizzata in questo tipo di Sfide e la seguente si parte da una fase di scansione successivamente abbiamo le numerazioni explotion Privilege escalation e opzionale perché non è sempre detto che sia necessaria si procede con la fase di post explotion adesso Ovviamente questi termini vi sembreranno oscuri non Chiari perché appunto ancora non le abbiamo spiegati e li spiegheremo nel movimento di queste elezioni però questo per farvi comprendere che la metodologia che si segue non è casuale ma appunto Ha un inizio e una fine e questi che vedete sono i passi che dovremo eseguire successivamente possiamo in un certo senso stimare la complessità dei passi che andremo poi a effettuare nella pratica le fasi sono le stesse quelle osservate già nella nella tavola precedente e sono la scansione numerazione explotion Privilege escalation post esplodition e associati associato a questa ad ognuna di queste fasi abbiamo il livello di difficoltà solitamente possiamo affermare che la fase di scansione di numerazione non è particolarmente complessa se si seguiamo degli step ben precisi la fase di explotion può avere una certa complessità la fase di Privilege escalation è solitamente complessa non banale e poi la fase di post exploration anche questa può presentare delle difficoltà tendenzialmente Ovviamente questa è una stima perché possiamo incontrare una macchina che richiede una fase di numerazione più complicata più lunga e possiamo trovare una macchina che invece ha un ha un privilegio escalation molto rapido e molto semplice quindi non è che questa stima vuole essere un qualcosa che è sempre valido però Tuttavia ci dà un'idea E poi ovviamente dobbiamo fare una distinzione in base al sistema operativo quasi sempre ci troveremo ad operare su sistemi operativi di tipo Windows e di tipo Linux le fasi come sempre non cambiano e poi abbiamo però delle differenze in base se stiamo agendo su una macchina Windows o Linux tendenzialmente scansione numerazione sono più o meno si procede per entrambe nello stesso modo Salvo alcune differenze la fase di explotion e privilegio escalation invece è senza dubbio molto differente iniziamo adesso ad esaminare lo schema architetturale sul quale ci troveremo ad operare Come si può osservare in questa tavola abbiamo principalmente due differenti scenari a sinistra abbiamo internet e a destra abbiamo la rete interna del Bersaglio definita rete ma potrebbe anche essere un singolo OSS Dipende dall'esercizio che stiamo svolgendo iniziamo ad esaminare la parte a sinistra la parte internet come si osserva abbiamo Innanzitutto una macchina attaccante la nostra macchina attaccante che potrebbe avere come sistema operativo ad esempio Kali Linux o comunque qualsiasi altro sistema operativo quindi questa è la nostra macchina Noi ci troviamo da questa parte poi se ci spostiamo verso la destra Abbiamo la macchina bersaglio che quella che potete osservare qui Questa è la macchina bersaglio la quale si esporrà quasi sicuramente con un indirizzo IP pubblico ovviamente ci sarà un router un firewall nel mezzo ma per il momento questo non è rilevante quindi ci sarà questo indirizzo IP pubblico al quale noi macchina attaccante ci dovremo andare a connettere dovremo puntare a questo indirizzo Poi vedremo bene Successivamente in che termini a destra invece abbiamo la parte della rete bersaglio la macchina bersaglio naturalmente avrà l'indirizzo IP pubblico quando si esporrà verso l'esterno e avrà l'indirizzo IP privato quando si esporrà dalla parte interna poi questa macchina bersaglio potrebbe eventualmente essere connessa ad una sotto rete interna o a più sotto reti interne e noi attraverso delle successive tecniche di post explotion definite ad esempio una di queste si definisce P voting ma per adesso non ce ne preoccupiamo ci permetteranno di arrivare e ex prioritare se richiesto se necessario anche queste macchine però possiamo anche affermare che nelle sfide CTF classiche ci troveremo semplicemente a exploitare attaccare e tra virgolette conquistare solo la macchina vittima non ci dovremo preoccupare di effettuare azioni di pivoting che ci permettono di arrivare alla rete interna Ecco questo è lo scenario sul quale ci troveremo quasi sempre ad operare iniziamo adesso a parlare del processo di risoluzione CTF in maniera molto molto semplificata per il momento però così da comprendere in generale Qual è il modus operandi Allora sulla sinistra possiamo osservare le fasi e le fasi sono sempre le stesse abbiamo la scansione abbiamo le numerazioni abbiamo l'explotion nella privilegio escalation ho tolto ho tolto rimosso Per il momento la post explotion perché per il momento Consideriamo che non ci sia Allora cosa succede nella fase di scansione la fase di scansione mi servirà per identificare quali sono le porte e servizi presenti all'interno della macchina bersaglio o meglio questo mi permetterà di definire Quale sarà la mia potenziale superficie di attacco successivamente abbiamo le numerazioni dove devo indagare su quei servizi che sono riuscito a rilevare nella fase precedente e questo già vi fa comprendere come sono interconnesse tutte le fasi se io salto la fase di scansione non posso certo effettuare la fase di enumerazione perché avrò una superficie di attacco potenzialmente nulla quindi è importante effettuare la scansione trovare porte e servizi indagare sui servizi Cosa vuol dire indagare sui servizi Beh vuol dire cercare di scoprire quante più informazioni possibili su quel servizio significa strizzare Praticamente il servizio affinché quest'ultimo ci fornisca tutta una serie di informazioni utili poi queste informazioni ci saranno utili Perché Perché nella fase di explotion andrò a sfruttare una vulnerabilità in quel servizio su cui avevo indagato nella fase precedente nella fase di enumerazione questo per evidenziare ancora una volta come sono interconnessi ovviamente la una vulnerabilità nel servizio o una o su più servizi perché non è detto che la vulnerabilità sia presente solo su un servizio può essere su più servizi e molto spesso non esiste un solo unico modo per risolvere una macchina CTF Ma le possibilità sono molteplici a questo punto la fase di explotion cosa mi dà solitamente mi restituisce una Shell non privilegiata Praticamente ho finito il 50% del lavoro sono riuscito a ottenere una Shell quindi in qualche modo sono all'interno della macchina bersaglio tuttavia non ho ancora completato il mio lavoro perché una Shell non privilegiata ovvero che non ha tutti i privilegi per poter eseguire azioni è molto limitata non mi permetterà di affermare di aver risolto al 100% la mia CTF ed è qui che entra infatti in gioco la fase di Privilege escalation in cui sfruttando delle misconfiguration delle vulnerabilità locali perché ripeto siamo già all'interno della macchina Tant'è vero si parla di local Privilege escalation proprio perché siamo già all'interno della macchina grazie alla fase di explitation abbiamo ottenuto una Shell non privilegiata perciò sfruttando queste misconfiguration o vulnerabilità locali ottengo una Shell privilegiata ecco quando ottengo questa Shell privilegiata il mio lavoro è finito Ho praticamente i piedi il pieno controllo della macchina o i piani poteri all'interno di questa macchina non importa che sia macchina Windows o Linux posso effettuare qualsiasi operazione solitamente quindi la sfida termina Quindi queste qui sono le fasi ripeto tutte interconnesse tra di loro e queste qui e questa sono le attività che in linea generale dovremo svolgere non è sempre vero ci possono essere delle varianti ci possono essere delle cose un po' diverse ma tendenzialmente il processo di risoluzione è questo con White Shark possiamo specificare un determinato protocollo ed esaminare così i pacchetti di rete che sono presenti che permettono proprio lo scambio di comunicazione su quel determinato protocollo facendo riferimento al modello isosi che praticamente è un modello concettuale formato da sette livelli che ci permette di capire in ogni momento all'interno di quale di quale flusso di scambio di pacchetti Ci troviamo all'interno di un certo contesto di rete i livelli che compongono questo modello sono come dicevo 7 sono il modello fisico Il modello data rete trasporto sessione presentazione e applicazione Quindi adesso iniziamo a fare una breve analisi basata proprio su l'esaminare i vari protocolli che agiscono in questi livelli di questo modello In questa immagine ad esempio possiamo vedere che a livello che ad esempio tra il livello data il livello rete abbiamo il protocollo ARP cos'è il protocollo Archi il protocollo ARP e quel protocollo che ci permette la risoluzione di un indirizzo IP nel relativo Mac address e viceversa Vediamo adesso il funzionamento se io scrivo ARP protocol ARP protocol vado su immagini apriamo pure la prima immagine e adesso commentiamola come si può osservare Qui abbiamo tre macchine macchina 1 9 2 1 6 8 52 1 522 e 523 tutte appartenenti alla stessa sottorete e ognuna con il proprio indirizzo fisico il cosiddetto Mac address ora cosa succede ci sarà una di queste macchine che effettua un Harper in questo ovvero chiede in Questo specifico caso Chi è 192 168 52.2 e cosa succede invia questa richiesta in broadcast dal momento che questo PC vuole comunicare con questa altro Quindi il primo vuole comunicare col secondo ma non sa chi è il secondo cioè non sa che esattamente questo allora cosa fa manda la richiesta un broadcat in broadcast a tutti quindi la manda al secondo la manda al terzo e da questa freccia si può vedere che la manda anche a tutti gli altri qualora ce ne fossero altri potrebbero essere 5 10 1000 la manderebbe a tutti a un certo punto cosa succede Praticamente ci sarà uno di questi PC tutti gli altri scarteranno il pacchetto tranne uno che dirà Guarda sono io Ciao Un 91752.1 quindi riferito saluta quello il pc che ha inviato L'arte di queste e gli dice Guarda sono io e gli dà il proprio indirizzo Mac a questo punto il primo pc può comunicare all'interno di questo segmento locale con il pc2 Ricordiamoci sempre che il protocollo ARP entra in gioco in contesti locali non in contesti remoti Quindi a questo punto quindi appunto tutti gli altri hanno scartato questo artrì queste tranne colui che si è sentito chiamato in causa e che ha risposto con un hard reply Adesso vediamo se riusciamo a simulare lo stesso procedimento all'interno di utilizzando quindi wireshark per cui intanto riduciamo icona avviamo quindi wireshark Allora la prima cosa che adesso dobbiamo fare è ripulire la cache la cosiddetta ARP cache del nostro PC Perché cosa succede ogni volta che ci viene comunicata un Harper reply Quindi ogni volta che noi riceviamo una risposta come in questo caso questo PC Memorizza all'interno del della sua memoria appunto nell'arpe che esce il risultato di questa associazione Ad esempio in questo caso nella sua Arpa che esce ci sarà che 1-9216852 e 2 corrisponde a questo Mac address il proprio Infatti il protocollo ARP poi fa proprio questo questo meccanismo Quindi quello che dobbiamo fare noi è ripulirla altrimenti non possiamo vedere il protocollo ARP in azione per cui apriamo quindi una finestra Dos in modalità amministritor quindi CMD destro Run administrator e dobbiamo digitare questo comando netsh interface il P d'elite ARP Cash Questo è il comando che dobbiamo dare invio adesso digitiamo ARP meno a per vedere cosa c'è nella all'interno di questa della memoria ARP di questo PC ovviamente abbiamo più interfacce che sono quelle Poi appunto relative a tutti gli adattatori che è successo Ecco qui che sono quelle relative agli adattatori di rete che noi abbiamo cioè sono esattamente questi quindi noi visualizziamo qui esattamente questi A noi interessa nello specifico il 4 abbiamo detto quindi lo cerchiamo ed è questo qui l'ultimo 19 2 1 6 8 163.1 possiamo verificarlo cliccando con il tasto destro proprietà internet protocol 1 9 2 1 6 8 163.1 e come si può vedere non c'è niente in Cash abbiamo cancellato tutto per cui adesso siamo pronti a vedere questo meccanismo in azione Quindi abbiamo Adesso noi che siamo siamo questo OST che vogliamo comunicare con la macchina Kali Linux ci troviamo praticamente in questa situazione in cui noi qui siamo Lost Windows che vogliamo comunicare con questa macchina Kali Linux cosa succede praticamente dobbiamo Innanzitutto avviare questa comunicazione Come possiamo farlo banalmente lanciando il comando Ping che genera del traffico e che quindi necessita della risoluzione ARP per cui prima di far questo però Mettiamoci in ascolto un web Shark quindi andiamo sull'icona a forma di ingranaggio selezioniamo il virtualbox osvalline network 4 Start usiamo il sistema di filtraggio già spiegato in precedenza filtrando per protocollo Art così da vedere solo la risoluzione ARP e da non vedere gli altri pacchetti che ci potrebbero confondere e disturbare bene A questo punto scriviamo Ping 192168163.20 che in questo caso sarebbe questo OST qui Se vogliamo rapportare tutta questa immagine in questo momento Lost Windows non conosce il Mac address di questa uno non aveva 68 16320 quindi mi aspetto che parta la risoluzione ARP Noi siamo in ascolto Vediamo se effettivamente è così digitiamo quindi invio invio ok E come si può osservare succede esattamente quello che abbiamo visto in questa immagine spostiamola sotto succede che il nostro PC Source ovvero noi se noi andiamo qua ma non c'è bisogno possiamo anche intanto vederlo solo qui questi qui Siamo noi che abbiamo mandato una richiesta un Arpe riquest in broadcast Come si può osservare destination broadcast a tutti in questo momento in questo caso l'unico PC presente su quella rete la ma è al pc calli Linux però avremo comunque inviato a tutti esattamente quello che succede qui lo invia in broadcast a tutti sono queste linee queste rosse come si può osservare a tutte e abbiamo anche l'info che ci spiega quanto quanto detto che ci dice Chi è 19217320 chiede 191 68 163.1 ovvero l'adattatore di rete nello specifico cioè noi gli Host e quello che otteniamo è l'arpe reply da questa macchina 1 921 68 16320 is et e questo è il Mac address ovvero ci sta rispondendo dandoci il suo mercatos Cioè la macchina Kali Linux ci ha risposto con il suo Mac address che possiamo anche verificare Thor Eccolo qui questo è il Mac address Come si può osservares080027 FB eccetera che esattamente questo tutti gli altri hanno scartato il pacchetto tranne lui possiamo vederla anche qui Se doppio clic sul pacchetto e qui possiamo vedere i dettagli qui possiamo vedere alcune informazioni sul frame poi andiamo sulla parte Ethernet vediamo che il destination è fff ovvero broadcast il sorgente in questo caso è il nostro adattatore di rete 19268 163.1 Cioè esattamente quello che abbiamo visto prima questo qui questo che è il sorgente quello che invia è un Harper di queste Come possiamo vedere ad essere solution protocol quindi ARP requiquest scendere Eccolo qui piadress 1,2168 1631 target address 19216816320 risposta doppio click stesso modo andiamo a vedere la parte non frame Ma la parte Ethernet destination è il PC Anzi andiamo a vederlo qui ad essere risolution reply il sender in questo caso sarà la macchina a Kali Linux che comunica il suo Mac address Al target Eccolo qui il mercato che viene comunicato Quindi questo è il funzionamento del protocollo ARP e abbiamo visto come si effettua con WeChat un'analisi di questo tipo procediamo adesso all'analisi del protocollo tcp che si colloca a livello trasporto del modello isosi come il protocollo udp che abbiamo visto nel precedente video Qual è la maggiore differenza tra i due protocolli che praticamente il protocollo tcp instaura prima di comunicare vuole esser sicuro che dall'altra parte ci sia qualcuno pronto a ricevere la comunicazione di conseguenza effettua il cosiddetto treeway and shake sarebbe letteralmente tradotto stretta di mano a tre vie perché avviene in tre passaggi una volta che effettua e viene effettuato questo chiamiamolo controllo preliminare così per garantire che poi effettivamente si possa comunicare fatto questo a parte poi la comunicazione quella regolare invece il protocollo di P non lo fa non fa non quindi non garantisce il la il fatto che la comunicazione va da sempre a buon fine Infatti il protocollo di P solitamente si effettuano e si utilizza in quei casi in in cui non è importante che in quei casi in che Supponendo che si perda un pacchetto non è così rilevante pensiamo allo streaming video ad esempio anche se si perde un pacchetto poco male però è molto più veloce performante invece il protocollo tcp è più lento proprio perché deve effettuare questo controllo preliminare e quindi viene utilizzato in quei casi in cui abbiamo vogliamo essere abbastanza sicuri che la comunicazione avvenga correttamente vogliamo essere più vogliamo essere garantiti diciamo così detto questo andiamo a vedere subito un'immagine di questo Protocollo di questo treeway and shake cosa succede la macchina che vuole inviare la comunicazione Invia un pacchetto di tipo sin la macchina che riceve le che la macchina destinatario Invia un pacchetto sinack dicendo Quindi sì ok sono pronta Ci sono la macchina Clint gli dice Ok perfetto risponde con un Hack e poi parte la comunicazione e bidirezionale tra client e server quindi questo è quello che viene chiamato threeway proprio perché abbiamo sin si Nat Hack ovvero uno scambio di pacchetti in su tre in tre tempi differenti si insinata h e poi parte Ripeto la comunicazione quella standard quella regolare ora possiamo anche andare a vedere la struttura di un pacchetto di questo tipo quindi andiamo Qui scriviamo tcp packet immagini andiamo a vedere la chiamiamo ad esempio possiamo aprire Vediamo se ne troviamo una abbastanza significativa di immagini questa qui come sempre anche il protocollo tcp si appoggia su l'IP Tanto è vero che spesso si parla di protocollo tcp perché il tcp non Potrebbe esistere senza il protocollo IP Abbiamo sempre bisogno di un indirizzamento logico delle macchine perché se non abbiamo l’indirizzamento Logico Non possiamo poi lavorare a livello trasporto ovvero inserire le porte di conseguenza è molto importante questo punto senza protocollo IP non Potrebbe esistere né protocollo tcp né protocollo udp Ha sempre bisogno di questo in questo caso poi abbiamo varie cose abbiamo il Source porte destination porte oltre a questa abbiamo i Flag tcp Flag che sono quelli che appunto permettono di impostare questi Flag aggiuntivi all'interno di un pacchetto Quali sono i Flag tcp ad esempio quelli che abbiamo visto nella precedente immagine si in Hack sono due Flag del protocollo tcp Ce ne sono altri Basta scrivere infatti su Google tcp Flag vediamo tutti i Flag che compongono il la struttura del pacchetto tcp Eccoli qui ad esempio Questi sono i Flag è un'immagine abbiamo urgent acnologiement Push reset Sì insomma ne abbiamo diversi che poi vedremo successivamente quando introdurremo il concetto di scansione di una rete in ogni caso nel treeway and shake per instaurare la connessione che utilizziamo solo sin e Hack Quindi adesso andiamo a vedere nella pratica questo meccanismo Come possiamo fare possiamo fare in verità in diversi modi ovvero tutti quei protocolli che utilizzano il tcp possono essere presi ad esempio Quindi ad esempio abbiamo hotel.net che lo utilizza però quello che adesso facciamo una cosa leggermente differente utilizziamo il software che abbiamo scaricato in precedenza che è Zen Map Zen Map è l'interfaccia grafica del famoso tool and Map cosa fa È Macron tool di scansione della rete quindi permette di scansionare la rete al fine di determinare quali servizi sono in ascolto su una certa macchina vedremo meglio dopo questo concetto quello che ci interessa adesso capire che con henn map Quindi con zem up si può effettuare anche la cosiddetta Connect Scan tcp Connect Scan Cos'è una Connect Scan è praticamente una scansione completa ovvero in cui viene completato il Tree handshake e si instaura la comunicazione adesso dal momento che vogliamo dare un occhio a questo protocollo al protocollo tcp utilizziamo quindi questo tipo di scansione il comando che dobbiamo dare per effettuare la Connect Scan non possiamo utilizzarla qui tra le opzioni perché non è presente dobbiamo scrivere la manualmente ma è molto semplice la sintassi meno St questo è la Questa è la sintassi per la Connect Scan e poi dobbiamo specificare l'ost in questo caso andiamo a vedere l'indirizzo IP di questa macchina xconfig Ah l'abbiamo già lanciato è 192 175.6 Vediamo se effettivamente non è cambiato Ok uno Aveva 885.6 quindi effettuiamo la scansione verso questa macchina Innanzitutto verifichiamo che sia raggiungibile facciamo un ping dovrebbe essere raggiungibile perché c'è un adattatore presente perché la 185 andiamo a vedere è relativo relativa all'adattatore 2 l'adattatore 2 ci dobbiamo chiedere presente sul Lost andiamo a vedere se è presente sull'oste Mi immagino che lo sia l'adattatore 2 Eccolo qua Ed è relativo immagino alla rete 185 verifichiamolo perfetto 1 non aveva 68185.1 mi aspetto quindi di poterla raggiungere verifichiamolo con il comando Ping Ping 192168185.1 e scusate punto verso 185.6 perfetto e raggiungibile quindi ci aspettiamo di poter effettuare la scansione con zammap il requisito e che ci sia sempre raggiungibilità tra due macchine per poterne effettuare una scansione se la macchina non è raggiungibile non possiamo effettuare la scansione questo non vuol dire che dobbiamo verificarlo con il comando Ping perché il comando Ping potrebbe essere volutamente disabilitato quindi però dobbiamo sempre in qualche modo avere la comunicazione Quindi anche se il ping disabilitato è necessario che però tutti gli tutti i vari router diciamo così all'interno del percorso siano ci portino effettivamente verso la destinazione da noi evoluta se non c'è raggiungibilità non possiamo effettuare certo non possiamo certo effettuare una scansione della rete fatta questa premessa adesso scriviamo quindi 192.168.185 .6 e lanciamo Quindi no scritto male ho messo troppi punti 185.6 adesso lanciamo questa scansione però prima non dimentichiamoci di metterci in ascolto con web Shark quindi White Shark quindi ecco qua White Shark invio questa volta sempre di h0 mettiamo tcp siamo in ascolto protocollo tcp facciamo quindi partire la scansione scan Ok mi sembra che già arrivino diversi pacchetti qui adesso vediamo tutto il traffico di tipo tcp che sta arrivando sulla macchina nello specifico abbiamo dei pacchetti di reset Adesso vediamo se riusciamo a completare questa scansione Ok la scansione è terminata ci dice che l'Oste up e tutte le porte sono filtrate quindi praticamente in questo momento Cioè non abbiamo non siamo riusciti a completare il tribway and shake Perché tutte le porte risultano filtrate però poco male perché intanto noi possiamo comunque fare un'analisi e vediamo che stiamo utilizzando oltre al protocollo IP Anche il protocollo tcp su tutte le porte quindi lui è partito sulla porta ad esempio ha iniziato sulla porta ha iniziato in questo caso l'ha fatto sulla porta 199 possiamo prenderne un altro ad esempio questo qui E immagino che ci sia un'altra porta 256 non sono in ordine quindi scorriamo ne apriamo un altro protocollo sempre tcp porta in questo caso 111 e la parte del possiamo vedere anche il flag che è stato impostato Flag sin cioè Noi praticamente stiamo effettuando esattamente questo lui ha mandato un sin e poi purtroppo non ha ricevuto un sinacke Perché tutte le porte sono filtrate sono chiuse quindi non possiamo instaurare la non possiamo instaurare la connessione tcp possiamo provare a fare un'altra cosa vediamo se funziona proviamo a connetterci se c'è sul web server della macchina Kali quindi http però Mettiamoci nuovamente in ascolto quindi reset ci mettiamo in ascolto di CP Anzi su protocollo http che è basato sul protocollo tcp E proviamo a digitare http due punti slash slash192168185.6 Ok la connessione non è non c'è un web server praticamente attivo A questo punto possiamo fare una cosa quello che possiamo fare è attivare al volo un web server quindi andiamo sulla macchina Kali apriamo il terminal una nuova finestra facciamo Questo esercizio così da comprendere bene il concetto e digitiamo quindi questo comando Python la senta si è meno m se non ricordo male meno m simple http server dobbiamo specificare una porta ad esempio la 8000 Vediamo se funziona Ho scritto male mi sembra simple http server invio adesso ci dovrebbe essere questo server in ascolto sulla porta 8000 torniamo su Zen Map aggiungiamo come di effettuare la scansione Però sulla porta 8000 quindi potrà possiamo farlo potremmo lanciarla nuovamente Ma mettiamo solo la porta 8000 detto questo Mettiamoci nuovamente in ascolto con web Shark siamo effettivamente in ascolto riavviamo per sicurezza lanciamo la scansione ok dissippi perché non me lo trovo ovviamente Eccolo qua Perfetto Ho finalmente siamo riusciti a vedere il lo scambio a tre vie completo Come si può osservare adesso abbiamo pacchetto sin sinack Hack poi ovviamente viene resettato il tutto perché è il Map poi Resetta la connessione Cioè adesso ha effettuato la Connect Scan visto che abbiamo risposta tanto È vero ci dice che la porta è aperta Questa volta la porta risulta aperta e poi Resetta la connessione Questo è quello che fanno Normalmente le mappe e qui andiamo a vedere adesso Se clicco sul pacchetto mi vedrò questa volta il protocollo tcp come porta di destinazione questa volta abbiamo proprio la porta 8000 che quella su cui abbiamo deciso di mettere in ascolto ricordo il nostro web server al volo questo qui Eccolo qua servine e tra l'altro poi ci restituisce dei dati perché ha visto che qualcuno si è connesso quindi ci dà queste informazioni Però sulla porta 8000 Quindi abbiamo visto anche abbiamo analizzato il protocollo tcp ripeto caratteristica importante è questo tri-way and shake Sins Hack in questa sezione parleremo di schepi Scapi è un modulo Python per la manipolazione dei pacchetti di rete opera sia a livello 2 che a livello 3 e permette di effettuare delle manipolazioni molto complesse noi finora ci siamo serviti di altri moduli ad esempio il modulo socket che comunque ci permette di effettuare delle operazioni delle di creare comunque dei programmi piuttosto articolati Tuttavia schepi e molto conosciuto nell'ambito delle reti proprio perché da una parte molto semplice ma dall'altra parte ha delle grandissime potenzialità il primo la prima operazione da svolgere è l'installazione del modulo Quindi nel caso si utilizzi pisciare si va su File si va su settings Project Project Interpreter clicchiamo sul più digitiamo schepi e Installiamo il pacchetto quindi schepi Install package Philip Biondi è l'autore di questo di questo pacchetto installato correttamente clicchiamo con ok altra possibilità se lavoriamo direttamente dalla dall'ascelle in questo caso io sto utilizzando una distribuzione Cali Linux dovrebbe essere già installato di default per verificarlo digito schepi invio Attendiamo qualche secondo così da visualizzare se è presente in questo caso è presente Quindi contro il d e usciamo Nel caso non fosse presente gli step di installazione più rapidi sono installare Innanzitutto il Python in Staller quindi Pip Python Install package quindi su APT Install Python 3 meno Pip qui cambiamo il layout della tastiera italiano meno Pip in cui facendo così Installiamo il Python in Staller una volta installato questo il comando successivo da lanciare sarà di Install schepi meno Python 3 e quindi Installiamo il modulo per verificare ripeto basta digitare schepi e si può vedere se è presente o meno adesso nel prossimo video quindi iniziamo a lavorare con con questo strumento adesso iniziamo Quindi a prendere confidenza con questo strumento la prima operazione da effettuare è accedere su skypi quindi digitando schepi e qui si apre il pront di scheping e possiamo iniziare quindi a lanciare alcuni comandi il primo comando che vorrei mostrarvi è Send Send per è un metodo Che permette l'invio di un pacchetto ovviamente esistono altri metodi che permettono l'invio di un pacchetto Questo è il primo metodo che possiamo adesso esaminare e poi lo spiegheremo Comunque nel dettaglio Quindi adesso lanciamo subito l'invio di un pacchetto Questa è la sintassi Send quindi Send e qui come parametro dobbiamo specificare che cosa vogliamo fare in questo caso noi vogliamo mandare inviare un pacchetto di tipo icmp quindi banalmente il stiamo utilizzando vogliamo simulare il comando Ping quindi e inviando un CMP ecoree queste icmp eco reply nello specifico noi adesso invieremo un pacchetto icmp verso una destinazione in questo caso come destinazione possiamo anche mettere banalmente localhost poi specificheremo altre destinazioni un'altra un altro aspetto interessante di schepi E che praticamente si basa sul concetto di layering di praticamente fusione tra livelli del modello isosi Mi spiego meglio per inviare un pacchetto di tipo xmp abbiamo bisogno di effettuare un layer Ring anche con il livello IP perché il livello IP è quello che permette di gestire livello IP intendo livello rete perché a livello rete che utilizziamo il protocollo IP che permette di gestire l'indirizzo mentologico del dei nostri pacchetti quindi non possiamo utilizzare solo il protocollo CMP dobbiamo per forza utilizzare la combinazione del livello del la combinazione del protocollo IP insieme a quello icmp Quindi praticamente dobbiamo fare riferimento a livello 3 livello rete del modello isosi e questa è normale ogni volta che si parla di indirizzi IP stiamo facendo comunque riferimento a livello 3 per cui iniziamo a utilizzare l'oggetto IP dove dovremo specificare una destinazione di St sarà uguale ad esempio a localhost Quindi 127.0.01 adesso abbiamo detto che una volta quindi in questo con questo con questa sintassi stiamo praticamente utilizzando il protocollo ep specificando questa destinazione adesso dobbiamo però inviare un pacchetto di tipo icmp quindi Slash e adesso andiamo a utilizzare l'oggetto icmp quindi icmp possiamo anche qui specificare come argomento delle opzioni legate al protocollo icmp come il Type e quant'altro per adesso le Vedremo Poi dopo non ci interessa mettiamo ad esempio un payload mettiamo delle informazioni quindi slash ad esempio Ciao mondo e questo è il comando completo metodo Send che prende in ingresso varie cose tra cui i protocolli di utilizzo in questo caso IP e CMP noi vogliamo inviare un pacchetto di tipo xmp in cui mettiamo il peload Ciao mondo e per farlo dobbiamo utilizzare il protocollo IP che ci permette di gestire l'indirizzamento logico delle macchine e di specificare quindi una destinazione adesso lo inviamo e vediamo se intanto la sintassi è corretta quindi invio E infatti come risposta otteniamo sent One pucket inviato un pacchetto possiamo anche verificare se in effetti è così quindi ad esempio utilizziamo wish Shark Scusate si potrebbe utilizzare anche tcp Dump ma adesso per visualizzarlo in maniera più immediata utilizziamo Wash Shark quindi Attendiamo qualche secondo e quello che faremo adesso è inviare un nuovo pacchetto Questa volta mettendoci in ascolto con White Shark quindi noi come destinazione Specifichiamo 127 00001 quindi localhost per cui ci dobbiamo mettere in ascolto su questa interfaccia quindi look back questa qui selezioniamo questa clicchiamo su start Adesso siamo in ascolto possiamo anche specificare il protocollo i CMP non c'è molto traffico su questa interfaccia Quindi potremmo anche non specificarlo Come si vede non ci sono pacchetti in arrivo Tuttavia Specifichiamo il CMP adesso lanciamo nuovamente il comando e vediamo se riusciamo a intercettare la risposta con Wash Shark quindi lancio il comando e come si può osservare la risposta è stata immediatamente intercettata Source 127 001 destination 127 001 protocollo icmp vediamo nel formato più vediamolo più grande Innanzitutto notare Ciao mondo cioè notare che noi in questo pacchetto di tipo icmp abbiamo iniettato un payload il payload Ciao mondo esattamente quello che volevamo poi altro aspetto da nuotare e il fatto che abbiamo questo layer internet protocol version 4 Questo è il riferimento a layer IP ed è in effetti corretto perché noi qui abbiamo utilizzato il livello IP quindi è giusto che visualizziamo questo Però poi noi a noi Ci è servito il protocollo IP per inviare un pacchetto di tipo icmp ed è qui che ne abbiamo la riprova chiudo e qui abbiamo l'internet contro il message protocol e abbiamo abbiamo inviato una richiesta un eco di queste pacchetto di protocolli CMP nello specifico Type 8 e i coriquest Poi vedremo i vari Type che sono presenti Tuttavia in questo esercizio per vedere subito come si procede per l'invio di un pacchetto adesso iniziamo ad effettuare qualche piccola manipolazione sul pacchetto xmp che abbiamo in precedenza inviato questo è quanto abbiamo inviato in precedenza ripeto Send ci permette l'invio IP per fare riferimento all'indirizzamento logico e CMP per generare un pacchetto di tipo CMP Ciao mondo e il payload adesso quello che possiamo fare è specificare il Type icmp quindi Innanzitutto andiamo a vedere cos'è il Type del protocollo CMP quindi Scriviamo i CMP Type quindi Attendiamo che carichi Ok internet control message protocol e vediamo se qui ci Visualizza anche i Type Eccoli qui questi qui sono praticamente è il tipo che specifica il tipo di pacchetto xmpp vediamolo anche graficamente che forse si vede meglio quindi andiamo su immagini è un po' lenta la connessione e qui possiamo osservare i Type ad esempio Type 0 icore Play testi Type 3 destination Richard noi prima abbiamo inviato 8 ovvero Ecco qui queste Adesso proviamo ad esempio a utilizzare il Type 3 destinations quindi a simulare la creazione di un pacchetto di questo tipo quindi torniamo sulla nostra macchina virtuale e digitiamo Send come sempre utilizzo questa volta Specifichiamo quindi Innanzitutto protocollo IP per gestire l'indirizzo mentologico e Specifichiamo una Source quindi SRC per specificare Source qui mettiamo l'indirizzo IP sorgente ad esempio noi anzi utilizziamo un indirizzo IP che non esiste per vedere proprio come possiamo effettuare delle manipolazioni sul pacchetto quindi 192.168.1.10 Specifichiamo come destination sempre localhost così siamo in grado di andare a vedere la risposta sulla l'interfaccia look quindi 127.01 combinato con che cosa con il livello con il protocollo xmpp icmp due punti questa volta specificando nel tipo abbiamo detto Type 3 quindi Type uguale a 3 e lasciamo sempre il payload quindi slash ad esempio come stai quindi riepiloghiamo utilizziamo l'oggetto IP che ci permette di gestire l'indirizzo IP sorgente indirizzo IP destinatario e combinato con il protocollo ecm.p quello che vogliamo inviare un pacchetto di tipo cmp3 ovvero destination unrageball in cui inseriamo comunque sempre un payload Mettiamoci adesso quindi in ascolto nuovamente filtrare sempre per il CMP è corretto invio il pacchetto adesso pacchetto inviato Come si può osservare è stato subito intercettato apriamolo E ovviamente abbiamo qui ci evidenza che comunque è un pacchetto wetshark rileva che questo pacchetto è qualcosa che ha qualcosa di strano e giustamente però abbiamo tutto ciò che ci serve abbiamo il livello IP perché non l'abbiamo specificato Infatti come osserviamo abbiamo che la surs è quella che noi le abbiamo messo la destination è 127 001 e poi nello specifico entrando nel merito del protocollo icmp abbiamo che abbiamo inviato un pacchetto di tipo Type 3 destination un ridgeball adesso è necessario necessario fare un passo ulteriore e sfruttare uno dei punti di forza di schepi Ovvero la possibilità di inviare e ricevere messaggi nel negli esempi precedenti abbiamo utilizzato il metodo Send il metodo Send ci permette di inviare il pacchetto ma non di ricevere delle risposte e in effetti questo in contesti di analisi del traffico di rete a poco senso perché comunque ci aspettiamo che se ci aspettiamo dato un certo messaggio inviato di avere una qualche risposta altrimenti il traffico sarebbe unidirezionale E allora introduciamo tre metodi messi a disposizione da schepi i metodi sono SR che sta per Sandu receiver questa funzione Infatti si utilizza per inviare e ricevere pacchetti di livello 3 quindi con SR con questo metodo Noi inviamo e riceviamo a livello 3 del mondo modello isosi abbiamo poi scendere Seve One ovvero questa funzione ritorna un solo pacchetto di risposta relativamente ad un pacchetto di livello 3 inviato Quindi se non vogliamo ricevere molti pacchetti di risposta ma ci interessa prendere il primo ed esaminare quello utilizzeremo la funzione sendressive 1 ed è una funzione effettivamente molto utile che anche nei nostri esempi successivamente utilizzeremo abbiamo poi srp Ovvero la funzione di scendere sive però applicata ai pacchetti di livello 2 quindi non parliamo di siamo a livello di protocollo ARP mccadress e quant'altro quindi siamo un livello più basso Non siamo ancora a livello di indirizzamento logico adesso quindi proviamo ad inviare un pacchetto di tipo icmp utilizzando appunto uno di questi metodi messi a disposizione Come si osserva Allora abbiamo avviato la macchina Windows che ci servirà come macchina a destinazione Quindi settiamo il tutto e quello che dobbiamo fare è Innanzitutto ottenere l'indirizzo IP di questa macchina quindi CMD digitiamo il comando IP config indirizzo IP è 1 9 2 1 6 8 146 128 Quindi adesso andremo a andremo a utilizzare il metodo sr1 ovvero sandressive One ovvero vogliamo ottenere un solo pacchetto di risposta quindi semplicemente definiamo Innanzitutto una variabile pacchetto CMP ad esempio pacchetto icmt che sarà uguale a che cosa a sendere sive One di che cosa Beh innanzitutto noi vogliamo inviare un pacchetto di tipo xmp sappiamo che per inviare un pacchetto di tipo icmp abbiamo bisogno del protocollo IP di conseguenza digitiamo che Specifichiamo IP aperta chiusa e qui mettiamo una destinazione possiamo specificare anche il Source mettiamo adesso la destinazione come destinazione mettiamo la nostra macchina Windows quindi destination di SD sarà uguale a cosa 1192.168.146.128 ovviamente dobbiamo unificare il livello xmpp Quindi il CMP aperta chiusa senza specificare il Type Questa volta mi mandiamo un icmp ecori queste e se la macchina Windows è gli è consentito ricevere i pacchetti di tipo icmp ci aspettiamo che ci dia un CMP Eco reply quindi noi utilizzando il metodo sr1 cercheremo di catturare proprio questa risposta per farlo possiamo sempre utilizzare White Shark ci mettiamo questa volta ci mettiamo questa volta in ascolto sulla eth-0 non più sulla loop back Quindi cambiamo l'interfaccia di rete e spostiamoci start filtriamo per i CMP perché lavoriamo sempre con questo tipo di pacchetto per il momento e premiamo eseguire invio ok Come si può leggere già dalla risposta ci dice finito di inviare un pacchetto ha ricevuto due pacchetti got One answer e ho preso una risposta proprio perché stiamo utilizzando il metodo sr1 e lui ha preso un pacchetto di risposta Adesso noi lo andremo a esaminare qui quindi stop Qui abbiamo diversi pacchetti ma quello che interessa a noi sono questi due Quindi questi non ci interessano li possiamo anche momentaneamente ignorare così non ci confondono e come possiamo osservare abbiamo questo pacchetto qui che è il pacchetto che abbiamo inviato noi i CMP Ecco questo è un pacchetto di tipo icmp eco riquest da 1,91 68 146 142 che siamo noi alla macchina Windows la macchina Windows A questo punto ci ha risposto con un pacchetto di tipo Eco reply che noi abbiamo siamo riusciti a catturare anche con schepi in questa seconda parte del corso parleremo dell'external patest Cosa si intende con questo termine si intende l'esecuzione di un penetration testing in una posizione esterna rispetto alla rete cliente e qui ci sono alcune precisazioni da fare Innanzitutto penetration testing lo abbiamo già visto cosa si intende con questo termine ovvero l'atto autorizzato di accedere ad una rete bersaglio al fine di riuscire a identificarne le vulnerabilità e i punti di accesso così su da effettuare successivamente i remediation step che metteranno tale rete al sicuro questa è l'idea generale del penetration testing in questo caso si parla di external ovvero cambia il punto di vista ci troviamo in una posizione esterna rispetto alla rete del cliente praticamente non abbiamo nessuna interazione con la rete del cliente e ci troviamo riguardo all'esterno e questo ovviamente lo differenzia rispetto all'interno Al pain test dove invece il penetration tester si trova all'interno della rete del cliente quindi qui è importante capire che il punto di vista del pentester ovvero colui che effettua il penetration test sarà completamente differente e la conoscenza visibilità della rete sarà anch'essa differente Ovviamente se parliamo di interna al pentest io avrò molti più elementi conosciuti all'interno delle Infrastrutture viceversa se mi trovo in una all'interno dell'exter la mia conoscenza della rete sarà ridotta ovviamente entrambi i test sono importanti Ma si prefiggono degli scopi leggermente differenti noi in questa seconda parte del corso Ci focalizzeremo appunto solo sulla parte esterna facendo riferimento alla tipologia di pente test abbiamo che quest'ultimo si può può appartenere appartenere a tre differenti categorie Black Box PT white box greybox Allora queste categorie In cosa si differenziano si differenziano per la visibilità che il pentester ha sulle infrastruttura del cliente nel black nel black box PT Black sta appunto per nero scatola nera black box nel senso che il pentester ha pochissimi dettagli sulla rete del cliente praticamente non ha niente solo il nome ovviamente dell'organizzazione del sito web e da lì sarà compito del pentester riuscire a trovare eventuali punti di accesso e accedere alla rete subito sotto la categoria Black Box abbiamo la Gray box Grey grigio Nel senso che abbiamo selezioniamo solo alcuni dettagli della rete del cliente quindi il cliente ci fornisce alcune informazioni che per lui e per noi sono rilevanti tuttavia non ci fornirà qualsiasi dettaglio della rete Invece questo è quello che succede nella categoria web box Dove appunto white Nel senso bianco il pentester ha moltissime informazioni sulle infrastrutture del cliente e quindi ritornando alle external patest Noi ci troviamo nella categoria black box Cioè possiamo dire che l'external pem test rientra all'interno della categoria Black Box dove il pentester non possiede alcuna informazione sulla rete bersaglio ad eccezione come stavo giusto dicendo prima del nome dell'azienda o del sito web aziendale principale Torneremo poi su questo punto perché il sito web principale è sicuramente un'informazione È un'informazione necessaria Ma noi poi partendo proprio dal sito web aziendale andremo alla ricerca dei vari di tutta una serie di sottodomini e eseguiremo così il processo di enumerazione dei sottodominio Ma questo lo vedremo successivamente adesso in questo video quello che ci interessa comprendere E cos'è l'external patest E soprattutto come cambia il punto di vista del pentester rispetto alle altre categorie all'interno Al pain test oppure facendo riferimento alla tipologia di pentest Black Box white box greybox nell'exter Ci troviamo all'interno della categoria Black Box definito Cosa si intende con external patest adesso parliamo dell'approccio da utilizzare l'approccio Che utilizzeremo per eseguire un external patest sarà sostanzialmente differente da quello utilizzato durante un interna al pentest perché in linea generale la rete dall'esterno sarà maggiormente protetta rispetto ai meccanismi di difesa interni naturalmente ci sono delle eccezioni ma linea di massima è così e questo è un principio molto importante che farà cambiare variare il nostro approccio rispetto all'esecuzione di un interna Al pain test perché all'interno di un all'interno della rete del cliente si può presupporre ragionevolmente che i meccanismi di difesa quindi le i vari sistemi dispositivi di protezione sono in qualche modo minori rispetto alle protezioni invece esterne e questo è il motivo che ci spingerà ad utilizzare un approccio differente Ne consegue che durante un external patest le probabilità di accedere alla rete sfruttando una vulnerabilità nota quindi utilizzando i relativi exploit sono drasticamente ridotte rispetto all'interno al pente test Altro punto importante quindi noi non punteremo diciamo non focalizzeremo tutti i nostri sforzi cercando di trovare una vulnerabilità sfruttabile e poi utilizzando l'exploit accedere alla rete interna proprio perché è molto più difficile Può succedere ci sono delle eccezioni però ci dobbiamo focalizzare anche su altri aspetti e questo non vuol dire solo su questi aspetti ma anche su questi quali ricerca di informazione tramite tecniche osint losint nell'external penetration testing è fondamentale proprio perché ci permette di chitarre di ottenere tutta una serie di informazioni che ci possono facilitare tantissimo Poi il compito di accedere in qualche modo alla rete bersaglio quindi l'osint è nell'external Open test che riveste un ruolo fondamentale piuttosto che nell'interno al patest dove invece non è così rilevante e poi altri due punti fondamentali le analisi dei portali web e delle applicazioni web proprio per il motivo che abbiamo detto dal momento che accedere alla rete sfruttando una vulnerabilità presenti in un protocollo di rete classico diciamo standard e molto difficile e invece molto più probabile nell'interno del pente test se pensiamo solo ad esempio il protocollo smb a tutta la struttura all'interno di una rete bersaglio invece nella parte esterna le barricate i muri di difesa sono molto più forti Allora noi dobbiamo spostare il nostro approccio il punto di vista ecco perché l'approccio differente e ci dobbiamo focalizzare su questi aspetti tecniche osi portali web applicazioni web però attenzione Ciò non toglie che le analisi delle vulnerabilità sia sui protocolli di rete che lato Web Application dovrà essere comunque eseguita quindi non vuol dire che io comunque non Eseguo neanche un vulnerabilità Assessment oppure ignoro totalmente l'analisi sui protocolli di rete dovrò comunque analizzarli però ci dobbiamo focalizzare anche su questi aspetti passo 8.3 in questo passo si effettueranno dei Semplici attacchi sempre in un contesto di rete locale nello specifico nello specifico abbiamo due differenti passi passo 83.1 macs booking il tool che useremo è technitium Mac address Changer ovvero il Mac booting si intende il fatto di cambiare il proprio Mac address della propria scheda di rete a piacimento così da riuscire a sembrare un altro dispositivo all'interno della rete e non quello invece che dovremmo essere realmente con il nostro Mac address originale per cui adesso andremo a vedere un video in cui effettueremo questa simulazione per poi successivamente passare al all'altra tipologia di attacco per cui quello che faremo è connettersi alla macchina Windows e nello specifico utilizzeremo la macchina Windows 7 dovremo scaricare il tool chiamato technitium Mac address Changer direttamente da Google Quindi lo digitiamo su Google e clicchiamo sul primo link successivamente cliccheremo su download Now e lo installeremo io come si può osservare l'ho già scaricato e installato questo qui è il tool quello che faremo adesso è verificare come il nostro Mac address attuale poi lanciare il tool e successivamente ri verificare quello cambiato Per fare ciò utilizzeremo zem up il tool di scansione della rete che abbiamo già utilizzato in precedenza per cui lo avviamo selezioniamo come profilo il ping Scan il ping Scan è un tipo di scansione che ci fornisce se in contesti locali anche il Mac address della macchina andiamo a prendere l'indirizzo IP di questa macchina quindi Start CMD IP config E questa macchina indirizzo non lo vedo uno s856102 per cui andiamo a effettuare il ping Scan 1 9 2.16856.102 clicchiamo su scan la scansione dovrebbe partire ok E come si può osservare ci restituisce il Mac address di questa macchina Adesso andiamo ad avviare il tool Come amministratore Yes e come si può osservare ci viene restituito anche sul sul tool il Mac address attuale 00800 27 B1 BB 74 Come si può osservare è lo stesso adesso abbiamo la possibilità di inserire noi un Mac address che al nostro piacimento oppure generarne uno casualmente un Random Mc cadress scegliamo questa opzione quindi clicchiamo su Random Mac address ci viene proposto Questo Mac address lasciamo pure la spunta su automaticamente Riavvia tutta la rete così da farlo acquisire velocemente e clicchiamo su Change Now adesso in fase di cambiamento e come si può osservare il Mac address è stato cambiato con successo abbiamo poi la possibilità di ripristinare quello originale Quindi adesso questo è il Mac address cambiato Active mccadress andiamo a vedere se è così quindi Innanzitutto Attendiamo qualche secondo che scompaia questa questa [Musica] icona con l'ingranaggio che gira Attendiamo qualche secondo così che si il dhcp server riesco a fornire nuovamente l'indirizzo IP a questa macchina perché Ricordiamoci che su questa macchina Abbiamo l'esecuzione un dhcp server che viene fornito dalla da ora col virtualbox praticamente dall'adattatore virtuale infatti se noi adesso digitiamo i pic confing probabilmente non abbiamo ancora indirizzo vediamo uno se 9 quindi ancora non c'è stato assegnato alcun indirizzo IP valido per cui dobbiamo attendere qualche secondo Vediamo se adesso ci siamo lanciamolo più volte Ci vuole sempre qualche secondo non è non è proprio immediata come cosa Eccolo qua 191 68 56 109 Quindi questa volta andiamo a modificare mettiamo 109 lanciamo nuovamente la scansione il ping Scan e vediamo il Mac address Come si può osservare il Mac address è questo qui ccf3 A5 022f40 che è esattamente questo qui ccf3 a 5022f40 quindi stiamo ci stiamo presentando sulla rete con un altro Mac address e abbiamo quindi realizzato il matchpooting a questo punto Poi se vogliamo ripristinare la situazione originaria semplicemente clicchiamo su restare original clicchiamo qui il Mac ADS originale è stato ripristinato questo qua e infatti adesso l'original corrisponde con quella attivo dobbiamo attendere ancora che venga ripristinato il tutto per cui Attendiamo qualche secondo come si può osservare adesso non abbiamo alcun indirizzo ci vuole più tempo perché appunto lo stiamo utilizzando il dhcp server se avessimo voluto velocizzare il tutto bastava impostare gli indirizzi IP statici e non sfruttare il dhcp server che in questo caso ci rallenta Tuttavia è questione di pochi secondi al massimo un minuto 2 quindi possiamo attendere ovviamente il macbooting si può effettuare anche con su macchine Linux in questo caso è molto comodo su macchine Windows perché abbiamo un tool grafico che ci permette di realizzare con un click questo tipo di chiamiamolo attacco Quindi ovviamente il puffing e poi si utilizza insieme ad altre tecniche che più avanzate per riuscire a effettuare attacchi più complessi Allora adesso qui si è ristabilizzato clicchiamo su digitiamo Scusate i pit comfig e a breve dovremmo riottenere l'indirizzo Ok uno lo vedono 68 56 102 quindi rimettiamo il 102 clicchiamo su scan e vediamo se ritorna il Mac ad essere originale Ok 00800 27 V1 che è esattamente il Mac address originale per cui terminiamo qui questa simulazione adesso siamo giunti al passo 8.32 di hcp star version Attack il tool che useremo e irsinia praticamente sfruttiamo il passo precedente ovvero il fatto di aver compreso Che cos'è un expofing per mostrare brevemente Come si realizza questa questo tipo di attacco sempre parlando di contesti locali in questo in questo tipo di attacco quello che faremo è mandare tutta una serie di richieste di hcp al all'attuale di hcp server ovvero quello legittimo così che quest'ultimo termini tutto il Range di indirizzi IP che può assegnare alle macchine così facendo Praticamente realizziamo una sorta di attacco Denis of service al dhcp server così che un attaccante possa poi eventualmente introdurre un rog di hcp server ovvero un dhcp server falso che dia a Segni l'indirizzo IP appartenenti alla rete dell'attaccante così che poi l'attaccante possa successivamente effettuare lo sniffing del traffico il tool che si utilizza in questi casi è appunto irsinia lo possiamo utilizzare anche nella sua versione grafica digitando dal terminal gli ersinia meno G meno G Nel senso che serve l'opzione melodia via l'interfaccia grafica quindi basta digitare Irsina meno g e automaticamente ci appare l'interfaccia grafica questo tool permette di eseguire tutta una serie di attacchi sempre in contesti locali tra cui se noi andiamo su dhcp Come si osserva abbiamo la possibilità di lanciare questo tipo di attacco ovvero clicchiamo su Lancia attacco e qui dobbiamo specificare quello che vogliamo fare nel nostro caso manderemo di Discovery packet che praticamente non sono altro che non sono altro che una serie di richieste che praticamente vanno ad esaurire Il pool di indirizzi IP che può assegnare il dhcp server come riescono a fare questo Praticamente irsinia va a cambiare il Mac address a ogni richiesta eseguendo quello che abbiamo visto prima ovvero il Mac spoofing quindi due attacchi in un certo senso sono col sono collegati quindi cliccando su Ok lui andrà a mandare poi tutta una serie di richieste e per ognuna delle delle richieste cambierà il il Mac address a questo punto dopo un po' di tempo ovviamente il dhcp legittimo non sarà più in grado di accettare altre richieste avendo terminato il Range di indirizzi IP e a questo punto l'attaccante introdurrà un suo dhcp server così da riuscire ad alterare Praticamente il normale flusso di rete e far sì che tutto il traffico venga deviato verso la rete appunto del dell'attaccante così si realizza questo tipo di attacco