Penetretion Tester Information Gathering

Information-Gathering

Information-Gathering

Una “nuova” tipologia di specialisti si sta gia’ facendo sempre piu’ strada all’interno delle aziende e delle case dei privati, interessati ad aumentare il loro livello di sicurezza, i Penetration Tester (PT).

Ogni PT deve aver ben chiaro e seguire una serie di attivita’ per raggiungere lo scopo finale.
Le “FASI” del PT sono le seguenti :

  • Information Gathering;
  • Vulnerability Assessment;
  • Exploitation;
  • Privilege Escalation;
  • Maintaining Access;
  • Reporting;

Oggi, in questo primo articolo sul PT inizieremo a spiegare i concetti dell’ Information Gathering.

L’Information Gathering o raccolta delle informazioni permette all’attaccante di acquisire dati utili, dall’architettura della piattaforma, ai servizi offerti, ecc. L’analisi di questi dati porterà alla scelta di come condurre il passo successivo.

Analisi di un caso reale

Ci troviamo ad operare da remoto per verificare il livello di sicurezza di una grande azienda. L’analisi viene svolta, a fronte di un’ accordo con il committente (non dimenticate mai l’importanza di un contratto ben dettagliato e firmato dal committente per evitare future noie legali), da parte del PT. In base alla quantità d’ informazioni disponibili s’ identificano diversi scenari. Questa tipologia di scenario viene definita “Black Box” poiche’ non presuppone alcuna conoscenza dell’infrastruttura oggetto di analisi, tutte le informazioni dovranno quindi essere ricavate prima di iniziare i vari test.

Per diversificarci questa volta ci affideremo non alla solita Kali Linux ma ad un’altro sistema improntato al PT come BackBox Linux, una distribuzione orientata al PT. Il vantaggio derivante dall’uso di uno strumento simile è nell’avere un sistema operativo altrettanto completo di tools, flessibile ed ottimizzato per condurre vari test di sicurezza.

Information Gathering

L’attività di PT inizia come gia’ detto con la raccolta delle informazioni, partendo dall’url del sito aziendale del committente è possibile risalire all’indirizzo IP del server (informazione essenziale per iniziare la nostra analisi):

$ host www.nomesito.it
www.nomesito.it has address 150.xxx.xxx.10

oppure

$ nslookup
set q=any
nomesito.it

o ancora un semplice #whois permette di effettuare delle query al fine di ottenere informazioni riguardo la registrazione del dominio.

$ whois www.nomesito.it

Ovviamente questi sono soltanto alcuni esempi, di tool da riga di comando ne esistono diversi (#dig, #dnsenum …) ma non e’ possibile citarli tutti, ognuno potra’ cercarsi il preferito.

Ottenuta questa informazione ci serviremo di un’ulteriore tool Maltego, è un tool sviluppato dalla società Paterva, che offre la possibilità di raccogliere informazioni tramite la consultazione di dati pubblicamente accessibili e raggrupparle,  in formato grafico. Tramite questo strumento si è in grado di raccogliere informazioni da:

  • Siti web
  • Comunicazioni web (social network, wiki, blog, …)
  • Dati pubblici (conferenze stampa, rapporti dei governi, dati demografici, …)
  • Osservazioni dirette (dati geolocalizzati, conversazioni radio, foto satellitari, …)
  • Professionisti ed accademici (simposi, conferenze, pubblicazioni scientifiche, associazioni professionali, …)

Viene utilizzata un’architettura client/server per la raccolta dei dati e per determinare le relazioni fra di essi.

Un’ulteriore ed interessantissimo tool e’ TheHarvester

TheHarvester  è utilizzato per raccogliere info su domini, indirizzi email e documenti con metadata inerenti il target della nostra ricerca. Harvester si basa su un suo algoritmo di ricerca in grado di interrogare i maggiori motori di ricerca conosciuti, facendo sì che l’attaccante non visiti direttamente il target. Dunque il target sarà ignaro delle nostre attività.
Un piccolo esempio potrebbe essere questo qui sotto ma ricordatevi di leggere sempre gli “help” per poter conoscere tutte le opzioni che si possono utilizzare.

theharvester -d miosito.it -l 500 -b all

Ultimo tool di questo articolo, non certo per importanza o per potenza sara’ Dmitry.

Dmitry (Deepmagic Information Gathering Tool), questo tool  è un whois potentissimo che lavora esclusivamente da riga di comando , è scritto in C e ha la capacità di darci su di un determinato host , tantissime informazioni , tutte raccolte ed estratte in base alle nostre richieste , effettuate tramite l’inserimento in Shell di alcune opzioni (leggete sempre l’help).

dmitry -winsepffb -o miosito.txt www.miosito.it

…come detto questo e’ solo un esempio in cui sono state unite insieme diverse opzioni ed il risultato verra’ salvato in un file .txt.

Per tutto il resto non resta che fare tanta tanta pratica……a presto !!!

PENETRATION TEST

Penetration Test

Penetration Test

 

Oggi giorno tutto e’ e sara’ sempre piu’ connesso o interconnesso in rete, dalle nostre vite sociali, ai dati aziendali fino all’ultima frontiera rappresentata dall’Internet delle Cose IoT, che è un neologismo riferito all’estensione di Internet al mondo degli oggetti e dei luoghi concreti.

Tutto questo scambio continuo di dati (foto, login, codici…) richiede che le aziende incaricate di mantenere al sicuro i nostri dati piu’ importanti debbano essere sempre preparati dal pericolo sempre maggiore di un’intrusione, in effetti il comportamento non sarebbe diverso da una squadra di vigili del fuoco che si allenano costantemente simulando ogni tipologia di situazione cosi da sapere sempre cosa fare, come risolvere e se possibile come prevenire un disastro.

Una delle metodologie a cui dovrebbero affidarsi i team di sicurezza interni, o tramite specifiche consulenze, sono i cosidetti PENETRATION TEST.
Che cosa s’intende quando si usa questo termine? Il penetration test è la metodologia di valutazione della sicurezza di un sistema o di una rete. L’analisi comprende più fasi ed ha come obiettivo evidenziare le debolezze della piattaforma fornendo il maggior numero di informazioni sulle vulnerabilità che ne hanno permesso l’accesso non autorizzato. L’analisi è condotta dal punto di vista di un potenziale attaccante e consiste nello sfruttamento delle vulnerabilità rilevate al fine di ottenere più informazioni possibili per accedere in modo fraudolento al sistema. Un pen-test dunque consiste nel testare la sicurezza di un sistema cercando di violarlo sottoponendolo ad una grande varietà di attacchi informatici e non. L’obiettivo è quello di individuare eventuali vulnerabilità sfruttabili da terzi per ottenere accessi non autorizzati ai servizi e ai sistemi analizzati.

Oltre ai problemi di sicurezza, devono essere rilevati, quali possibili punti deboli, i problemi relativi alla configurazione, il cosidetto “tuning“, che incidono sulla robustezza e le performance del sistema, e gli errori di progettazione della rete. Non a caso, a volte una cattiva configurazione è più pericolosa di un bug.

Questa e’ una lista sintetica che descrive cio che un pen-tet cerca d’individuare:

  • bug, vulnerabilità e security hole nel software presente;
  • punti deboli nella progettazione della rete;
  • punti deboli di firewall e router;
  • punti deboli negli script dei web-server;
  • errori nella configurazione dei principali servizi in esecuzione;
  • problemi relativi l’accesso fisico alle macchine.

Una volta portato a termine il test, tutti i problemi di sicurezza rilevati vengono presentati al cliente o alla propria direzione informatica assieme ad una valutazione del loro impatto nel sistema e nello scenario del business aziendale, fornendo inoltre una soluzione tecnica o proposta di migrazione e mitigazione del sistema.

Il penetration test ci fornisce quindi una stima chiara sulle capacità di difesa e del livello di penetrazione raggiunto nei confronti di problematiche quali:

  • vulnerabilità interne al sistema;
  • vulnerabilità esterna al sistema;
  • difetti sicurezza fisica

Quali sono le modalita’ in cui i Penetration Tester svolgono il loro ruolo ??
I processi di penetration test possono essere effettuati in diverse modalità. La differenza consiste sulla quantità e qualità delle informazioni disponibili a coloro che devono effettuare l’analisi riguardo ai sistemi analizzati. I processi di analisi che vengono condotti in un penetration test hanno diversi tempi di azione in cui vengono alternate fasi manuali e fasi automatiche. Vengono acquisite inizialmente le informazioni principali sull’architettura della piattaforma e sui servizi offerti. Dall’analisi di questi dati deriva la scelta di come condurre il passo successivo, consistente in una enumerazione dei principali errori e problemi. Subentrano cosi nell’equazione i Penetration Tools che, uniti all’esperienza manuale dell’analista permettono quindi di evidenziare tutte le possibili vulnerabilità, incluse quelle più recenti e, a volte, alcune ancora non di pubblico dominio. I problemi riscontrati sono quindi manualmente verificati.

L’attività si considera conclusa una volta portata a termine la reportistica composta dal report di analisi sommaria dedicato al management o executive summary, contenente l’analisi dell’impatto di rischio di quanto riscontrato e tempistiche per l’azione di rientro o mitigazione delle problematiche riscontrate, e dal report tecnico, contenente l’analisi dettagliata dei problemi e la soluzione tecnica.

Va aggiunto per maggiore chiarezza che il penetration test va effettuato su sistemi esposti su Internet e comunque sulle piattaforme sensibili collegate a grosse reti, testando le vulnerabilita’ sia con attacchi esterni alla rete che con attacchi dall’interno della stessa e, possibilmente gia prima prima che esse entrino nella fase di completo esercizio.
Possiamo distinguere vari livelli tecnici dei test, piu’ a grandi linee si possono delineare tre grandi categorie:

  • livello basso: questo è il test che in genere fanno i tool di auditing automatici, a la Nessus per intenderci. Si controlla solo se ci sono servizi in esecuzione con vulnerabilità note, in genere vengono rilevate solo grosse falle e misconfigurazioni macroscopiche.
  • livello medio: oltre a controllare i servizi in esecuzione, viene testata la rete, i firewall, i router, etc…, e si fa spesso ricorso anche a tecniche di social engineering.
  • livello alto: qui siamo a livelli paranoici, si può arrivare a controllare i sorgenti (se disponibili) dei programmi alla ricerca di nuove vulnerabilità (quindi meglio optare per software open source e li dove e’ possibile per far sviluppare internamente cio di cui si ha bisogno), o ad esercitare la tecnica denominata del trashing detto anche information diving, che è la pratica di risalire ad informazioni riservate attraverso il setacciamento dei rifiuti della vittima, come resoconti, bollette, corrispondenza. Una delle tecniche preferite dal famoso Kevin Mitnick.

Mettendo insieme tutte queste metodologie ed informazioni possiamo darvi un piccolo scenario di cio che viene eseguito, a grandi linee, durante un’attacco:

  • Ricognizione di base: informazioni dal sito, informazioni sul dominio e sull’amministratore. A volte basta visitare il sito per raccogliere importanti notizie sul software presente sul server, spesso infatti in fondo all’home page i webmaster inseriscono notizie sul sistema operativo, webserver, etc…., come ad esempio trovare indicazioni come queste “Powered by Apache, Linux Inside…” , mettono a rischio i sistemi.
  • Ricostruzione della struttura interna della rete
  • Raccolta Info:Una volta identificata la struttura della rete e il numero di macchine bisogna raccogliere il maggior numero di informazioni su ognuna di esse. Quindi occorre ricercare i servizi in esecuzione, identificare i sistemi operativi, la versione dei servizi, il tipo di processore, i nomi utente (standard e non), le risorse condivise, etc.
  • Tracciamento vulnerabilita‘: dopo aver determinato i tipi di servizi attivi sull’host bersaglio si deve tracciare una mappa delle vulnerabilità, e occorre ricercare (o scrivere) gli exploit applicabili contro i servizi bersaglio.
  • Analisi della topologia della rete.
  • Applicazione degli exploit.
  • Verifica della possibilità di sniffing e tentativi di DoS & DDoS.
  • Test su router e firewall.
  • Pulizia delle tracce dell’attacco.
  • Stesura del report.

Al termine degli attacchi e della valutazione dei log raccolti un sistema potra’ dirsi vulnerabile se è possibile:

  • accedere a risorse interne;
  • leggere e modificare file riservati;
  • controllare il traffico in entrata e/o uscita;
  • eseguire programmi senza averne i permessi;
  • accedere alla macchina con i permessi di amministratore (root) da parte di utenti non privilegiati;
  • controllare la configurazione della rete e dei servizi.

Punti critici:
cerchiamo ora di evidenziare i lati negativi del preparare un pen-test che purtroppo e’ un po come fare i lavori di casa mentre voi ci abitate dentro……
I punti critici da prendere in considerazioni sono: trattamento dei dati raccolti, salvaguardia dei sistemi e dei dati, riservatezza riguardo le vulnerabilità emerse durante il pen-test. Durante il penetration test potrebbero verificarsi dei disagi dovuti al lavoro del tester, si potrebbero avere perdite o danni ai dati o ancora una momentanea perdita di accessibilità. Ad esempio una macchina dedicata all’e-commerce potrebbe rimanere inaccessibile a causa di una simulazione di un DoS, con conseguenze economiche dirette. O ancora, una azienda che fornisce servizi a terzi, potrebbe vedere i propri servizi interrotti con evidente disagio per i clienti.
Prima di cominciare il test bisogna concordare quale livello di rischio il committente è disposto a correre, invitandolo anche a fare un backup dei dati prima di effettuare il pen-test. Bisogna prevedere tali evenienze in fase di stipula del contratto, declinando per quanto possibile le responsabilità e garantendo però, allo stesso tempo, adeguate misure per il recupero del sistema.

Per ultimare questa carellata sul valore di un Pen-test aggiungo che il suo valore è strettamente legato alle capacità del tester, dunque affidiamoci soltanto a persone preparate che possono dimostrare esperienza pratica svolta su clienti tracciabili; inoltre esso perde di validità non appena si apportano modifiche (anche minime) alla configurazione di una macchina interessata al test, quindi è consigliabile eseguire un pen-test poco prima di mettere in produzione la rete. Inoltre anche lasciando inalterate le macchine testate, il pen-test dovrebbe essere ripetuto periodicamente, poichè oggi giorno vengono trovate quotidianamente nuove vulnerabilità e nuovi exploit.

PenMode2 penetration testing

penmode2-logoHo recentemente parlato in un articolo inerente Kali Linux (ex BackTrack) di sistemi di penetration testing; oggi in questo nuovo articolo parleremo di PenMode 2. Questo prodotto e’  l’ ultima versione di un tool per la sicurezza informatica pensato appositamente per Kali Linux, (distribuzione Debian based). I suoi autori sono i membri del PH#OS Team e sono riusciti a sviluppare un ottimo ed efficiente software, che può essere usato sia a livello professionale che a livello amatoriale, ed ha come suo punto di forza proprio quello di aggregare una serie di tool essenziali per eseguire le varie operazioni di pentesting.

Il tool è suddiviso in 3 sezioni, che possiamo riassumere in:

  • Information Gathering: usato per l’acquisizione di informazioni quali, la tipologia di Server, le porte aperte, domini, email ecc
  • Web Scanner: per effettuare scansioni complete del target tramite tool appositi
  • CMS: usato per effettuare analisi e pentesting mirati per determinati CMS quali WordPress, Joomla e Typo3

C’è inoltre un’ulteriore funzionalita’ davvero niente male, si chiama Anon Surf ; si tratta di uno script che lavora direttamente sulle tabelle di  iptables per garantire che ogni comunicazione debba passare attraverso TOR cosi’ da diventare anonima. Oltre a tutto ciò sono presenti anche molti altri tool davvero interessanti e vari.
PenMode 2 è inoltre dotato di un’interfaccia grafica basata sulle librerie penmode_logoGTK in modo da adattarsi al tema grafico impostato sul sistema.

Passiamo ora all’INSTALLAZIONE

  • scarichiamo i pacchetti .deb necessari (gtkd.deb & penmode.deb)dalla seguente pagina (https://github.com/Pinperepette/Penmode2), troverete i pacchetti sia per 32 e 64 bit
  • installiamo i pacchetti con il seguente comando:
    dpkg -i gtkd.deb penmode.deb

    i pacchetti in questione possono richiedere diverse dipendenze da soddisfare e, nel qual caso l’installazione non finisse nel modo piu’ corretto converra’utilizzare il comando

    apt-get -f install
  • Per avviarlo potete andare su menù -> Auditing -> Miscellaneous -> PenMode o tramite terminale digitando penmode

Ecco inoltre un video introduttivo che potra’ essere di aiuto LINK

Kali Linux l’erede di BackTrack

kali_linuxBackTrack è una delle migliori distro (basata su Ubuntu) dedicate alla sicurezza informatica. Ci si possono trovare una serie di tool preinstallati e configurati per eseguire dell’ottimo penetration testing. Dagli stessi sviluppatori di BackTrack nasce un nuovo progetto: Kali Linux. Questa distribuzione (stavolta è basata su Debian) e’ stata resa disponibile anche su device mobili con processori ARM (ChromeBook, SS808, Odroid U2, Raspberry ecc…).

Kali Linux viene rilasciata con ambiente desktop Gnome e con la possibilità di avere, certe applicazioni preinstallate (in modalita’ minimal) per PC con processori x86 32/64 bit, oppure nella vesione con XFCE.

Per tutti coloro che preferiscono la lettura passo passo, posso suggerire questo ottimo link al “tutorial_book” ; per coloro che invece hanno poco tempo, un video introduttivo potra’ comunque essere di aiuto “video“.

Se siete interessati a testare la distro ma non volete scaricare la iso , oggi potete provare direttamente sul vostro PC una versione minimal ma funzionante di Kali Linux ; vi bastera’ scaricare il seguente script :

sudo wget http://sourceforge.net/projects/kaais/files/kaaisv3.sh

dargli i permessi necessari all’esecuzione

chmod +x kaaisv3.sh

e lanciare lo script

sudo ./kaaisv3.sh

    Kali  Applications  Automatic  Installation  Script
       Team: en0xCr3w                  Code: rawstring

 [ MAIN MENU ]
 [ Option ] [ Description ]
        1)    Text Editors
        2)    FTP/Torrent Applications
        3)    Chat Applications
        4)    Image Editors
        5)    Archive Handlers
        6)    Audio Applications
        7)    Browser/Web Plugins
        8)    Hacking Tools
        9)    Other Applications
       10)    Default Applications (Update)
       11)    Other Operations
       12)    Usefull Links
      ------------------------

...divertitevi...!