lunedì 23 settembre 2019

PowerShell: Creare una GUI per uno script PowerShell

Gli script PowerShell vengono generalmente creati ed eseguiti all'interno di un'interfaccia a riga di comando e anche i risultati vengono visualizzati all'interno della finestra CLI (Command Line Interface). Ciò ne scoraggia l'utilizzo da parte degli utenti comuni. Tuttavia, PowerShell è un potente strumento di automazione e consente l'utilizzo di una varietà di oggetti .NET Framework. Per creare una semplice interfaccia grafica per gli script PowerShell basta utilizzare l'API .NET.

In quest'articolo verrà mostrato come creare un semplice Form. Prima di iniziare assicurarsi che la versione di PowerShell installata sul proprio sistema sia 3.0 o superiore. Per farlo basta eseguire $PSVersionTable.PSVersion da una finestra PowerShell per visualizzare un'output come quello mostrato in FIG 1. Se la variabile non esiste allora probabilmente si tratta della versione 1.0

Versioni di PowerShell:
  • Versione 1.0: distribuita nel 2006 come download opzionale. Obsoleta
  • Versione 2.0: distribuita nel 2009 come parte di Windows 7/Windows Server 2008. L'unica versione che supporta Windows XP e Windows Server 2003.
  • Versione 3.0: distribuita nel 2012 come parte di Windows 8/Windows Server 2012. Sono state completate le caratteristiche principali del linguaggio ed è stato riprogettato l'editor ISE.
  • Versione 4.0: distribuita nel 2013 come parte di Windows 8.1/Windows Server 2012R2. Aggiunto DSC (Desired State Configuration).
  • Versione 5.0: distribuita nel 2016 come parte di Windows 10. In tale versione sono state introdotte numerose funzionalità ed estensioni.
  • Versione 5.1: distribuita nel 2017 come parte di Windows 10 Anniversary Update\Windows Server 2016.

PowerShell, visualizzare la versione installata nel sistema
FIG 1 - PowerShell, visualizzare la versione installata nel sistema
Il blocco di codice per creare un semplice Form è il seguente:

Add-Type -assembly System.Windows.Forms
$form = New-Object System.Windows.Forms.Form
$form.Text ='La mia finestra in PowerShell'
$form.Width = 400
$form.Height = 200
$form.AutoSize = $true
$form.ShowDialog()

Per la creazione del Form viene utilizzata la classe System.Windows.Forms di .NET. Per caricare tale classe all'interno dello script PowerShell si utilizza tale codice:
Add-Type -assembly System.Windows.Forms

Nell'istruzione successiva 
$form = New-Object System.Windows.Forms.Form
viene avviata una nuova istanza della classe System.Windows.Forms.Form di .NET Framework che genera una finestra vuota (Form o modulo) in cui è possibile iniziare ad aggiungere controlli.

Successivamente viene impostato un titolo per la finestra attraverso la proprietà Text, quindi vengono impostate le dimensioni (larghezza e altezza) tramite le proprietà Width e Height
$form.Text ='La mia finestra in PowerShell'
$form.Width = 400
$form.Height = 200

Per fare in modo che il Form si ridimensioni automaticamente in base al suo contenuto viene utilizzata la proprietà AutoSize.
$form.AutoSize = $true

L'ultima istruzione 
$form.ShowDialog()
non fa altro che richiamare il metodo ShowDialog per visualizzare a video il Form.

Per creare lo script basta copiare il blocco di codice sopra indicato all'interno di un editor di testo (come ad es. Blocco Note) e salvare il file con estensione .ps1 (ad es. Form1.ps1). Per eseguirlo da PowerShell digitare il nome del file .ps1 comprensivo del percorso (ad es. c:\Users\glubrano\desktop\Form1.ps1). Il risultato sarà quello mostrato in FIG 2.

Dal seguente link è possibile scaricare il file contenente il blocco di codice.
DOWNLOAD Form1.ps1
Form in PowerShell
FIG 2 - Form in PowerShell



Il Form così creato serve a ben poco. Possiamo aggiungere altri elementi come un etichette (label), una casella combinata (combobox) e un pulsante (button). Quello che andremo a costruire nelle prossime righe è uno script PowerShell che permette di selezionare, all'interno della combobox, una specifica cartella e, cliccando sul pulsante, visualizzarne la data dell'ultima modifica.

Iniziamo ad inserire un etichetta. Per farlo basta aggiungere il seguente blocco di codice prima dell'ultima istruzione $form.ShowDialog().

$Label1 = New-Object System.Windows.Forms.Label
$Label1.Text = "Directory:"
$Label1.Location  = New-Object System.Drawing.Point(5,10)
$Label1.AutoSize = $true
$form.Controls.Add($Label1)

Con la prima istruzione viene creata una nuova istanza della classe System.Windows.Forms.Label che genera l'etichetta. Successivamente viene specificato il testo che l'etichetta andrà a visualizzare quindi, tramite System.Drawing.Point(5,10) andiamo a specificare la posizione, all'interno del Form, in cui verrà visualizzata l'etichetta. Anche in questo caso viene impostata la proprietà AutoSize in modo che le dimensioni dell'elemento si adeguano in base al contenuto. 
L'ultima istruzione 
$form.Controls.Add($Label1)
aggiunge l'etichetta al form precedentemente creato.


Il passo successivo consiste nell'inserire una casella combinata accanto all'etichetta. Aggiungiamo il seguente blocco di codice al nostro file .PS1 (assicurandoci che l'ultima istruzione sia sempre $form.ShowDialog()) .

$ComboBox1 = New-Object System.Windows.Forms.ComboBox
$ComboBox1.Width = 150
$Folders = get-childitem -dir | Select Name
Foreach ($Folder in $Folders){
 $ComboBox1.Items.Add($Folder.Name);
}
$ComboBox1.Location  = New-Object System.Drawing.Point(60,10)
$form.Controls.Add($ComboBox1)

In questo blocco gran parte delle istruzioni sono analoghe a quanto visto per i blocchi precedenti. Con l'istruzione
$Folders = get-childitem -dir | Select Name
andiamo ad assegnare alla variabile $Folders l'elenco delle directory presenti nel path da cui stiamo richiamando lo script. Il ciclo ForEach non fa altro che estrarre il nome delle directory e inserirle all'interno della combobox.


Il blocco successivo provvede ad inserire all'interno del Form due etichette: Label2 e Label3. Quest'ultima mostrerà la data dell'ultima modifica della cartella selezionata quando si clicca sul pulsante presente alla destra della combobox.

$Label2 = New-Object System.Windows.Forms.Label
$Label2.Text = "Data modifica:"
$Label2.Location  = New-Object System.Drawing.Point(5,40)
$Label2.AutoSize = $true
$form.Controls.Add($Label2)

$Label3 = New-Object System.Windows.Forms.Label
$Label3.Text = ""
$Label3.Location  = New-Object System.Drawing.Point(90,40)
$Label3.AutoSize = $true
$form.Controls.Add($Label3)

Blocco codice relativo al pulsante. 

$Button1 = New-Object System.Windows.Forms.Button
$Button1.Location = New-Object System.Drawing.Point(220,10)
$Button1.Size = New-Object System.Drawing.Size(150,20)
$Button1.Text = "Visualizza data modifica"
$form.Controls.Add($Button1)

Anche questi 2 blocchi vanno inseriti prima dell'istruzione $form.ShowDialog(). Nel blocco relativo al pulsante troviamo l'istruzione 
$Button1.Size = New-Object System.Drawing.Size(120,20)
che consente di specificare la dimensione dell'elemento.

Adesso non resta che inserire un'ultimo blocco in cui andiamo ad aggiungere un evento relativo al click sul pulsante. 

$Button1.Add_Click(
 {
  $Label3.Text =  (get-item  $ComboBox1.selectedItem).LastWriteTime 
 }
)

L'istruzione
$Label3.Text =  (get-item  $ComboBox1.selectedItem).LastWriteTime 
rileva la data di modifica della directory selezionata all'interno della combobox e la visualizza attraverso la Label3.

L'intero script può essere scaricato dal seguente link
DOWNLOAD Form2.ps1

Eseguendo lo script, l'output sarà simile a quello mostrato in FIG 3.
PowerShell, Visualizzare la data di modifica di una data cartella attraverso il Form
FIG 3 - PowerShell, Visualizzare la data di modifica di una data cartella attraverso il Form


In modo analogo possono essere inseriti ulteriori elementi all'interno del Form come:
- CheckBox
- ChekedListBox
- ContextMenu
- DateTimePicker
- GroupBox
- HScrollBar
- ListBox
- ListView
- Menu
- PictureBox
- ProgressBar
- RadioButton
- TabControl
- TextBox
- TrackBar
- TreeView
- VScrollBar


Per creare in maniera semplice Form accattivanti per script in PowerShell, è possibile usare l'editor online https://poshgui.com/Editor. Tale editor, attraverso una semplice interfaccia grafica, consente di progettare/realizzare una GUI per i propri script PowerShell anche a chi è poco pratico e scaricare il codice sorgente.
POSHGUI, Editor online GUI PowerShell
FIG 4 - POSHGUI, Editor online GUI PowerShell





venerdì 20 settembre 2019

Linux: Monitorare i processi in real time utilizzando l'utility Watch

Lavorando in ambiente Linux da terminale qualche volta può essere necessario eseguire un comando ripetutamente. In Linux tale operazione è resa possibile dall'utility watch.

Possiamo utilizzare tale utility per eseguire ripetutamente il comando ps e visualizzare, in tempo reale, informazioni relative ai processi in esecuzione. Per raggiungere tale scopo basta digitare il seguente comando da terminale

watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'


Linux, Monitoring in tempo reale dei processi in esecuzione
FIG 1 - Linux, Monitoring in tempo reale dei processi in esecuzione


giovedì 19 settembre 2019

MS Outlook: Modificare la cartella di default suggerita nel salvataggio degli allegati

Quando si tenta di salvare gli allegati contenuti all'interno di un'email, MS Outlook propone una cartella di default. Durante il salvataggio è possibile selezionare un percorso diverso e MS Outlook proporrà l'ultimo percorso utilizzato per i salvataggi successivi finché non verrà riavviato. 
MS Outlook, Salva tutti gli allegati
FIG 1 - MS Outlook, Salva tutti gli allegati


Per modificare il path di default suggerito da MS Outlook durante il salvataggio degli allegati:
  • Premere la combinazione di tasti WIN+R per aprire la finestra di dialogo Esegui e digitare regedit seguito da invio per avviare l'editor del registro di sistema;
  • Posizionarsi su 
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\xx.0\Outlook\Options 

    Al posto di xx va indicata la versione di Office installata ad es. 

    Per Outlook 2016 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Options 

    Per Outlook 2013 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Outlook\Options 

    Per Outlook 2010 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\14.0\Outlook\Options 

    Per Outlook 2007 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\12.0\Outlook\Options 

    Per Outlook 2003 - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Outlook\Options 
  • Creare, se non presente, un nuovo valore di tipo Stringa e rinominarlo in DefaultPath;
  • Eseguire un doppio click sul valore appena creato e, nella casella Dati valore, digitare il percorso in cui si intende salvare gli allegati di MS Outlook.
  • Riavviare il client di posta per rendere effettive la modifica.
MS Outlook, Modifica path di default salvataggio degli allegati
FIG 2 - MS Outlook, Modifica path di default salvataggio degli allegati


Se il path non è impostato MS Outlook utilizzerà quello di default impostato in MS Word. In alcune versioni, a causa di un bug, Outlook 2016 potrebbe suggerire come percorso C:\windows\system32.



Modificare il percorso suggerito dalle applicazioni Office per l'apertura/salvataggio di documenti

Per modificare il percorso che le applicazioni del pacchetto MS Office utilizzano per aprire e salvare i file e MS Outlook per inserire allegati:
  • Avviare MS Word o MS Excel;
  • Dal menu File selezionare Opzioni;
  • Selezionare la sezione Salvataggio;
  • Digitare, nella casella Percorso file locale predefinito, il percorso desiderato quindi cliccare su OK per salvare la modifica.

MS Word, Percorso file locale predefinito
FIG 3 - MS Word, Percorso file locale predefinito







mercoledì 18 settembre 2019

Linux: Divertirsi con la shell bash

Avviare la finestra terminale, incollare ed eseguire il seguente codice per vedere il cursore rimbalzare nella finestra e scrivere il manuale bash.

man bash | sed 's/./&\n/g' | awk -v mx=$COLUMNS -v my=$LINES 'BEGIN{x=y=e=f=1}{if(x==mx||!x){e*=-1};if(y==my||!y){f*=-1};x+=e;y+=f;printf "\033[%s;%sH%s",y,x,$1;for (a=0;a<400000;a++){}}' 


Linux, divertirsi con la shell bash
FIG 1 - Linux, divertirsi con la shell bash




martedì 17 settembre 2019

Kali Linux: Introduzione a HPing3

HPing3 è un assemblatore/analizzatore di pacchetti TCP/IP a riga di comando. Oltre a supportare i protocolli TCP, UDP, ICMP e RAW-IP dispone di molte altre caratteristiche come la modalità traceroute e la possibilità di inviare file attraverso un canale "nascosto". Si tratta di un tool molto versatile che consente un controllo accurato su ogni flag del pacchetto.

Viene utilizzato per diversi scopi e contesti tra cui:
- Scansione avanzata porte:
- Test di firewall;
- Test di rete con l'utilizzo di diversi protocolli;
- Path MTU discovery
- Traceroute avanzato;
- Individuazione sistema operativo remoto (OS FingerPrinting);
- Individuazione tempo di attività di un sistema remoto;
- Controllo stack TCP/IP


HPing3 è già incluso in Kali Linux. Per visualizzare le opzioni e le modalità messe a disposizione del tool basta lanciare il seguente comando da terminale
hping3 -h 
usage: hping3 host [options]
  -h  --help      show this help
  -v  --version   show version
  -c  --count     packet count
  -i  --interval  wait (uX for X microseconds, for example -i u1000)
      --fast      alias for -i u10000 (10 packets for second)
      --faster    alias for -i u1000 (100 packets for second)
      --flood    sent packets as fast as possible. Don't show replies.
  -n  --numeric   numeric output
  -q  --quiet     quiet
  -I  --interface interface name (otherwise default routing interface)
  -V  --verbose   verbose mode
  -D  --debug     debugging info
  -z  --bind      bind ctrl+z to ttl           (default to dst port)
  -Z  --unbind    unbind ctrl+z
      --beep      beep for every matching packet received
Mode
  default mode     TCP
  -0  --rawip      RAW IP mode
  -1  --icmp       ICMP mode
  -2  --udp        UDP mode
  -8  --scan       SCAN mode.
                   Example: hping --scan 1-30,70-90 -S www.target.host
  -9  --listen     listen mode
IP
  -a  --spoof      spoof source address
  --rand-dest      random destionation address mode. see the man.
  --rand-source    random source address mode. see the man.
  -t  --ttl        ttl (default 64)
  -N  --id         id (default random)
  -W  --winid      use win* id byte ordering
  -r  --rel        relativize id field          (to estimate host traffic)
  -f  --frag       split packets in more frag.  (may pass weak acl)
  -x  --morefrag   set more fragments flag
  -y  --dontfrag   set don't fragment flag
  -g  --fragoff    set the fragment offset
  -m  --mtu        set virtual mtu, implies --frag if packet size > mtu
  -o  --tos        type of service (default 0x00), try --tos help
  -G  --rroute     includes RECORD_ROUTE option and display the route buffer
  --lsrr           loose source routing and record route
  --ssrr           strict source routing and record route
  -H  --ipproto    set the IP protocol field, only in RAW IP mode
ICMP
  -C  --icmptype   icmp type (default echo request)
  -K  --icmpcode   icmp code (default 0)
      --force-icmp send all icmp types (default send only supported types)
      --icmp-gw    set gateway address for ICMP redirect (default 0.0.0.0)
      --icmp-ts    Alias for --icmp --icmptype 13 (ICMP timestamp)
      --icmp-addr  Alias for --icmp --icmptype 17 (ICMP address subnet mask)
      --icmp-help  display help for others icmp options
UDP/TCP
  -s  --baseport   base source port             (default random)
  -p  --destport   [+][+] destination port(default 0) ctrl+z inc/dec
  -k  --keep       keep still source port
  -w  --win        winsize (default 64)
  -O  --tcpoff     set fake tcp data offset     (instead of tcphdrlen / 4)
  -Q  --seqnum     shows only tcp sequence number
  -b  --badcksum   (try to) send packets with a bad IP checksum
                   many systems will fix the IP checksum sending the packet
                   so you'll get bad UDP/TCP checksum instead.
  -M  --setseq     set TCP sequence number
  -L  --setack     set TCP ack
  -F  --fin        set FIN flag
  -S  --syn        set SYN flag
  -R  --rst        set RST flag
  -P  --push       set PUSH flag
  -A  --ack        set ACK flag
  -U  --urg        set URG flag
  -X  --xmas       set X unused flag (0x40)
  -Y  --ymas       set Y unused flag (0x80)
  --tcpexitcode    use last tcp->th_flags as exit code
  --tcp-mss        enable the TCP MSS option with the given value
  --tcp-timestamp  enable the TCP timestamp option to guess the HZ/uptime
Common
  -d  --data       data size                    (default is 0)
  -E  --file       data from file
  -e  --sign       add 'signature'
  -j  --dump       dump packets in hex
  -J  --print      dump printable characters
  -B  --safe       enable 'safe' protocol
  -u  --end        tell you when --file reached EOF and prevent rewind
  -T  --traceroute traceroute mode              (implies --bind and --ttl 1)
  --tr-stop        Exit when receive the first not ICMP in traceroute mode
  --tr-keep-ttl    Keep the source TTL fixed, useful to monitor just one hop
  --tr-no-rtt     Don't calculate/show RTT information in traceroute mode
ARS packet description (new, unstable)
  --apd-send       Send the packet described with APD (see docs/APD.txt)




Per visualizzare il manuale eseguire il comando
man hping3

Il protocollo di rete TCP (Transmission Control Protocol) fa parte del livello di trasporto e si occupa del controllo della trasmissione tra mittente e destinatario rendendola affidabile. La procedura utilizzata per instaurare in modo affidabile una connessione TCP tra due host è chiamata three-way handshake. Il nome deriva dalla necessità di scambiare tre messaggi tra il mittente e il destinatario al fine di stabilire una connessione affidabile.
  • Nel primo messaggio il client (mittente) invia un pacchetto TCP con flag SYN al server (destinatario) sulla porta dove si ritiene quest'ultimo in ascolto;
  • Se sulla porta in questione il server è realmente in ascolto, risponderà con un pacchetto con i flag SYN e ACK attivi (SYN/ACK);
  • Il client confermerà l'avvenuta connessione inviando al server un pacchetto con il flag ACK attivo.

TCP, Three-way Handshake
FIG 1 - TCP, Three-way Handshake

Tramite hping3 è possibile simulare il three-way handshake utilizzando un comando come il seguente 
hping3 -S -p 80 -c 1 server
-S indica l'invio di un pacchetto SYN.
-p Consente di specificare la porta di destinazione del pacchetto. In questo caso è stata specificata la porta 80 generalmente utilizzata nei server web.
-c Permette di specificare quanti pacchetti inviare. Nel comando sopra indicato viene inviato un solo pacchetto.
server Al suo posto va indicato l'indirizzo IP del server o il suo nome.
HPing3, Avvio three-way handshake tramite pacchetto SYN
FIG 2 - HPing3, Avvio three-way handshake tramite pacchetto SYN

Dalla risposta del server (FIG 2) possiamo recuperare informazioni utili:
  • flag=SA indica che i flag TCP sono attivi e il server ci ha risposto con SYN/ACK (la seconda fase della procedura three-way handshake).
  • TTL=64 Il campo TTL (Time To Live), della dimensione di un byte, fa parte del header IP ed è un meccanismo che determina il tempo di vita di un pacchetto. Quando un pacchetto viene inviato, tale campo viene valorizzato con un valore compreso tra 1 e 255. Ad ogni salto (router che il pacchetto attraversa) il valore TTL viene decrementato di una unità. Quanto il valore TTL diventa 0, il pacchetto viene cancellato e al mittente viene inviato un pacchetto ICMP di avviso del tipo Time Exceeded. Generalmente gli apparati di rete assegnano a TTL il valore 255, i sistemi GNU/Linux (e anche molti altri sistemi *nix) assegnano il valore 64 mentre i sistemi Windows valorizzano tale campo a 128.

Il tool HPing3 è molto versatile e di seguito vengono mostrati alcuni degli utilizzi più comuni.


Trasferire file tramite HPing3

Per trasferire un file tramite HPing3 è necessario che sia il mittente che il destinatario dispongano del tool installato.
Sulla postazione del destinatario è necessario indicare a HPing3 di rimanere in ascolto. Tale operazione si esegue lanciando il seguente comando da terminale
hping3 --listen 192.168.1.11 -I eth0 --sign IDMSG1
--listen indica che la postazione è in ascolto. L'IP da passare al parametro è quello della postazione locale che deve rimanere in ascolto (destinatario).
--sign permette di specificare una firma per il messaggio. 

Sulla postazione del mittente è possibile inviare il file tramite il comando
hping3 192.168.1.11 --icmp --sign IDMSG1 -d 100 -c 1 --file file.txt
L'indirizzo IP passato a HPing3 è quello del destinatario.
La firma passata a --sign deve essere uguale a quella definita sulla postazione del destinatario.
L'opzione -d indica la dimensione dei dati.
All'opzione --file va passato il nome del file da inviare.



Test ICMP

Il seguente comando esegue un normale ping verso la destinazione specificata
hping3 -1 google.com
HPing3, invio pacchetto ICMP (ping)
FIG 3 - HPing3, invio pacchetto ICMP (ping)



Traceroute tramite ICMP

HPing3 consente di eseguire un traceroute verso un target specifico utilizzando pacchetti ICMP e incrementando ogni volta di 1 il valore TTL. L'output del comando è simile a quello fornito da utility come tracert (in ambiente Windows) o traceroute (in ambiente Linux). L'opzione -V imposta un output dettagliato.
hping3 --traceroute -V -1 google.com

Il traceroute può essere eseguito anche verso una specifica porta.
hping3 --traceroute -V -S -p 80  google.com





Verifica porta tramite l'invio di un pacchetto Syn

Il comando è analogo a quello visto all'inizio di tale articolo
hping3 -V -S -p 80 server
Possiamo anche indicare, tramite l'opzione -s, la porta locale da cui far eseguire la scansione
hping3 -V -S -p 80 -s 4060 server



Chiudere la comunicazione tramite un pacchetto FIN

In una connessione TCP un pacchetto con flag FIN attivo viene utilizzato per avviare la routine di chiusura della connessione. Tramite il seguente comando e l'opzione -F è possibile inviare tale pacchetto ad un destinatario. Se non viene ricevuta alcuna risposta la porta è aperta. Nel caso di Firewall generalmente si riceve un pacchetto con i flag RST+ACK che indica la porta chiusa.
hping3 -c 1 -V -p 80 -s 4060 -F server


Xmas Scan

Con Xmas Scan viene impostato il numero di sequenza TCP a 0 e vengono attivati i flag URGPSH FIN all'interno del pacchetto. Se la porta TCP del destinatario è chiusa viene inviato un pacchetto TCP RST in risposta. Se la porta è aperta, il destinatario scarta il pacchetto TCP Xmas e non invia alcuna risposta.
hping3 -c 1 -V -p 80 -s 4060 -M 0 -UPF server



ACK Scan

Questo tipo di scansione può essere utilizzata per verificare la raggiungibilità di un dispositivo in rete quando il ping è bloccato. Nel caso la porta sia aperta si dovrebbe ricevere in risposta un pacchetto RST.
hping3 -c 1 -V -p 80 -s 4060 -A server


Null Scan

Con questo tipo di scansione viene impostato il numero sequenziale a 0 e nessun flag è attivo all'interno del pacchetto. Il pacchetto inviato prende il nome di TCP NULL. Se la porta TCP del destinatario è chiusa si riceve in risposta il pacchetto TCP RST. Se la porta è aperta il pacchetto TCP NULL viene scartato e non viene inviata alcuna risposta.
hping3 -c 1 -V -p 80 -s 4060 -Y server



Smurf Attack

Si tratta di un tipo di attacco DoS (denial-of-service). Il sistema destinatario viene inondato di messaggi ping inviati tramite uno spoofed broadcast.
hping3 -1 --flood -a IP_VITTIMA INDIRIZZO_BROADCAST


DOS Land Attack

Anche in questo caso siamo di fronte ad un attacco di tipo DoS. Si invia un numero elevato di pacchetti di una certa dimensione nel minor tempo possibile e con il flag SYN attivo.
hping3 -V -c 1000000 -d 120 -S -w 64 -p 445 -s 445 --flood --rand-source IP_VITTIMA
--flood: invia i pacchetti il più velocemente possibile e senza attendere una risposta.
--rand-source: permette di inviare pacchetti che sembrano provenire da IP diversi. Generalmente utilizzata per mettere in difficoltà i firewall.
-V  Verbose.
-c --count: numero di pacchetti da inviare.
-d --data: dimensione dei dati.
-S --syn: imposta il flag SYN attivo.
-w --win: winsize (default 64).
-p --destport: porta di destinazione.
-s --baseport: porta da cui viene inviato il pacchetto (default random).





martedì 20 agosto 2019

MS Word Quick Tip: Modificare la dimensione dei caratteri da tastiera

In MS Word per incrementare/ridurre la dimensione dei caratteri senza staccare le mani dalla tastiera è possibile utilizzare le seguenti combinazioni di tasti:

CTRL+SHIFT+>
Per incrementare la dimensione dei caratteri.


CTRL+<
Per ridurre la dimensione dei caratteri.

MS Word, dimensione carattere
FIG 1 - MS Word, dimensione carattere


Sulle tastiere con layout US i segni di maggiore (>) e minore (<) occupano tasti diversi pertanto le combinazioni per incrementare e ridurre la dimensione dei caratteri sono rispettivamente
CTRL+SHIFT+> CTRL+SHIFT+<






lunedì 12 agosto 2019

Individuare l'indirizzo IP di uno smartphone tramite IPLogger

Per individuare l'indirizzo IP e altre informazioni di uno smartphone (o di altri dispositivi) di una persona esistono diversi metodi, uno di questi prevede l'utilizzo del Web Tool IPLogger.
Si tratta di un sito Web che permette di generare un link di tracciamento da inviare alla vittima:
  • Accedere alla pagina https://iplogger.org;
  • Cliccare su URL & Image Shortener;
    IPLogger, URL & Image Shortener
    FIG 1 - IPLogger, URL & Image Shortener
  • Nell'apposita casella digitare l'indirizzo di una pagina web a cui la vittima verrà reindirizzata quando clicca sul link (ad es. https://giovannilubrano.blogspot.com) e cliccare sul pulsante Shorten;
    IPLogger, Link Shorten
    FIG 2 - IPLogger, Link Shorten
  • A questo punto ci troveremo dinanzi alla schermata mostrata in FIG 3 con i seguenti campi
    - Your IPLogger link for collecting statistics
    E' la riga contenente il link da inviare alla vittima (ad es. tramite WhatsApp).
    - You may edit target redirection URL
    E' la pagina a cui la vittima verrà reindirizzata quando clicca sul link.
    - Select a domain name that will be used in your IPLogger link
    Consente di modificare il dominio del link in modo da renderlo meno riconoscibile.
    - Your IPLogger link for displaying 100 IPs without recording data into database
    Visualizza l'elenco degli IP delle ultime 100 visite.
    - Link for viewing statistics
    Link per visualizzare informazioni sul dispositivo della vittima (IP, device, sistema operativo, browser, ecc).
    - IPLogger ID (Required for accessing logger statistics!!!)
    ID per la visualizzazione delle statistiche.
    IPLogger, Information
    FIG 3 - IPLogger, Information
  • Colleghiamoci alla pagina indicata nel campo Link for viewing statistics. Quando la vittima cliccherà sul collegamento verranno visualizzate informazioni sul dispositivo come l'indirizzo IP, il provider, posizione (approssimativa), Sistema Operativo, tipo e nome dispositivo, tipo di browser e versione, ecc.

    IPLogger, Logged IP
    FIG 4 - IPLogger, Logged IP

Per camuffare ulteriormente il link da inviare alla vittima è possibile "accorciarlo" ulteriormente attraverso altri servizi come bitly.com.



ATTENZIONE:
Danneggiare 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.