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 !!!

Proteggersi da scansioni ed intrusioni

SysctlSysctl

Molte volte si pensa che per poter difendere il nostro amato PC da occhi indiscreti ci voglia chissa’ quale software sofisticato , oppure una decennale esperienza nella scrittura di regole con iptables ; certo tutto questo aiuta comunque, ma e’ anche vero che nella maggior parte dei casi il nostro PC non e’ poi cosi’ invitante e non contiene nessun vero segreto che valga la pena, per un hacker ( o x meglio dire chracker ) di perderci del tempo. Quindi molte volte alziamo fortificazioni esagerate, oltre il nostro vero sapere e controllo, senza avere un buon motivo. Si potrebbe invece iniziare a prendere dimestichezza con tutta quella serie di tools che Linux fornisce di base per cominciare a restringere le possibilita’ di accesso agli estranei ed ai curiosi.

Oggi inizieremo da sysctl ossia ” la gestione dei parametri del kernel  ”

Il comando sysctl viene usato per la personalizzazione dei parametri in run-time del kernel che si trovano in /proc/sys.
Per avere uno sguardo dell’output del comando basterà digitare da root:

sysctl -a

Le categorie

                 debug
                 dev
                 fs
                 kernel
                 net
                 vm

Significato
parametri per il debug.
parametri dei dispositivi.
parametri dei filesystem.
parametri generici del kernel.
parametri della rete.
parametri della memoria virtuale.

Praticamente possiamo modificare molti valori riguardanti il sistema,la rete,ecc.

Possiamo cambiare valore ai vari parametri in base alle nostre esigenze, facciamo un esempio.
Vogliamo cambiare valore all’ip forward:

sysctl -a | grep ip_forward

@lorenzo:/etc# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0

Come vediamo il valore è a 0 e noi lo vogliamo mettere a 1:

sysctl -w net.ipv4.ip_forward=”1″

Come possiamo vedere ha preso il valore 1:

@lorenzo:/etc# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0

Ovviamente questa modifica è temporanea infatti dopo un riavvio il valore torna a 0, ma possiamo renderla definitiva andato a editare il file /etc/sysctl.conf (facendo sempre prima un bel backup) mettendo 1 alla voce net.ipv4.ip_forward.

Una volta scritta la regola nel file ed usciti dalla modalita’ scrittura dovremo far rileggere la configurazione dei parametri di questo file tramite il seguente comando:

sysctl -p

Vediamo ora alcuni parametri e scopriamo a cosa servono :

net.ipv4.tcp_syncookies:  Quando abilitato, protegge dagli attacchi SYN FLOOD

net.ipv4.icmp_echo_ignore_broadcasts: Quando abilitato, ignora tutte le richieste ICMP ECHO e TIMESTAMP dirette ad indirizzi broadcast e multi cast proteggendo il server da attacchi SMURF.

net.ipv4.icmp_ignore_bogus_error_responses: Quando abilitato, protegge da errori ICMP maligni

net.ipv4.tcp_keepalive_time: Definisce ogni quanti secondi inviare al client con una connessione keepalive aperta un pacchetto in modo tale da mantenerla aperta.

L’abilitazione dei seguenti paramentri permette di inoltrare il traffico di rete da un’interfaccia ad un’altra agendo come un router:

net.ipv4.ip_forward
net.ipv4.conf.all.send_redirects
net.ipv4.conf.default.send_redirects

net.ipv4.tcp_max_syn_backlog=512   Quando la coda dei segmenti SYN provenienti da un certo host supera il numero stabilito in questo parametro il kernel invece di tenere i dati in arrivo nella coda dei pacchetti SYN in attesa di risposta, invierà un SYN+ACK di risposta.
Si svuota cosi la coda SYN, evitando che diventi troppo grande,

net.ipv4.icmp_echo_ignore_broadcasts = 1  Il kernel ignorerà i ping destinati all’indirizzo di broadcast della rete. Questo può evitare diversi tipi di attacchi DOS.

net.ipv4.ip_conntrack_max=15000  Viene impostato il numero massimo di connessioni che il sistema può gestire. E’ bene dimensionare tale numero in base alle risorse del sistema, per evitare in ogni momento il rischio che la RAM si esaurisca. *** ***Prevenzione attacchi DOS.

net.ipv4.ipfrag_high_tresh=131072

net.ipv4.ipfrag_low_tresh=102400

Queste due opzioni indicano la quantità di RAM massima e minima che deve essere usata nel momento in cui i segmenti TCP vengono riassemblati, per non esaurire la RAM.  ***Prevenzione attacchi DOS.

net.ipv4.ipfrag_time=20 Quest’opzione indica in secondi il tempo che i segmenti TCP devono essere tenuti in memoria

net.ipv4.conf.all.rp_filter=1 Quest’opzione è utile quando un pacchetto arriva in ingresso su un’interfaccia di rete diversa da quella che ci si aspetterebbe secondo le tabelle di routing.  ***Protezione contro attacchi di Spoofing

net.ipv4.tcp_mem = 12288, 16384, 24576
Queste impostazioni istruiscono lo stack TCP su come compostarsi nei riguardi dell’uso della memoria. Indicano al kernel qual’e’ la soglia al di sopra della quale debba iniziare un uso più attento della memoria. Il primo attributo indica il valore per il quale il kernel non si deve preoccupare dell’utilizzo della memoria. Il secondo attributo invece indica la valore per il quale il kernel deve iniziare a forzare la diminuzione dell’uso della memoria. Questo stato si chiama memory pressure mode.
L’ultimo valore indica il valore per il quale il kernel non può piu assegnare pagine di memoria finchè non torna sotto la soglia.

Per l’architettura x86 ad esempio le pagine di memoria sono grandi 4096 byte.
E’ bene dimensionare la configurazione di questa variabile in base alla RAM disponibile sulla propria macchina, per evitare l’esaurimento delle risorse.

Nel prossimo articolo vedremo altri tool ed altri sistemi di protezione integrati , bye !!