Visualizzazione post con etichetta DOS. Mostra tutti i post
Visualizzazione post con etichetta DOS. Mostra tutti i post

lunedì 13 febbraio 2017

Windows Quick Tip: Creare unità virtuali con SUBST

In alcuni contesti può essere utile definire delle unità virtuali (virtual drives): unità disco che non esistono fisicamente ma costituiti da porzioni di RAM oppure da un particolare percorso/cartella del disco fisico. L'unità virtuale può, ad esempio, essere utilizzata per abbreviare un percorso molto lungo oppure per ingannare alcuni software che tentano di accedere ad un'unità disco non più presente nel sistema.

In questo articolo vedremo come creare un'unità virtuale utilizzando il comando SUBST

Il comando SUBST fu introdotto a partire dalla release 3.1 del MS-DOS ed è presente anche nelle versioni più recenti di Windows.

La sintassi del comando è molto semplice. Lanciando il comando senza alcun parametro:
SUBST
verranno elencate tutte le unità virtuali già definite complete di lettere di unità e path.


Subst, elenco unità virtuali definite
FIG 1 - Subst, elenco unità virtuali definite


Creare un'unità virtuale

Per creare una nuova unità virtuale è necessario passare al comando SUBST la lettera dell'unità, comprensivo dei due punti, e il percorso da assegnarle racchiuso tra apici (soprattutto in caso in cui nel percorso siano presenti spazi).
Ad es.
SUBST X: "C:\Temp"
Subst, creazione unità virtuale
FIG 2 - Subst, creazione unità virtuale
Le unità virtuali create in questo modo vengono mantenute fino alla disconnessione dell'utenza. Al successivo logon è necessario procedere nuovamente alla loro creazione.

Sulle unità virtuali definite tramite SUBST non è possibile utilizzare alcuni comandi come: CHKDSKDISKCOMPDISKCOPYFORMAT, LABELRECOVER.


Eliminare un'unità virtuale

Per eliminare un'unità virtuale basta far seguire al comando la lettera dell'unità virtuale con i due punti e il parametro /D
Ad es.
SUBST X: /D
Subst, eliminazione di un'unità virtuale
FIG 3 - Subst, eliminazione di un'unità virtuale


Assegnare un'etichetta all'unità virtuale

Per assegnare all'unità virtuale un'etichetta personalizzata è necessario procedere tramite il registro di sistema.

  • Avviare l'editor del registro di sistema (WIN+R e digitare regedit seguito da invio); 
  • posizionarsi su
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\
    quindi creare una nuova chiave nominandola con la lettera dell'unità virtuale a cui si intende assegnare l'etichetta. All'interno della nuova chiave creare una sottochiave e rinominarla in DefaultLabel. Al valore stringa (Predefinito) presente in quest'ultima assegnare l'etichetta da dare all'unità.
    Ad es. nel caso dell'unità virtuale X il percorso sarà 
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\X\DefaultLabel

    Assegnare l'etichetta ad un unità virtuale
    FIG 4 - Assegnare l'etichetta ad un unità virtuale



Rendere permanenti le unità virtuali

Per rendere permanente un'unità virtuale (senza l'utilizzo di tool di terze parti) e ritrovarla anche dopo il riavvio del sistema è possibile utilizzare uno dei seguenti metodi.

Metodo 1
Creare un file Batch con i comandi per la creazione dell'unità virtuale e inserirlo in esecuzione automatica. Ad es.
@ECHO off
SUBST X: C:\Temp


Metodo 2
Inserire il comando SUBST per la creazione di unità virtuali direttamente all'interno della chiave di registro RUN.  Il modo più semplice è quello di creare un file .reg con all'interno le stringhe per creare il nuovo valore all'interno della chiave RUN.

Se si intende creare l'unità virtuale per tutti gli utenti che accedono al sistema il contenuto del file .reg sarà simile al seguente:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Unità virtuale X"="SUBST X: d:\\Temp"

Se, invece, si intende creare l'unità virtuale solo per l'utente corrente allora il contenuto del file .reg sarà 
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Unità virtuale X"="SUBST X: d:\\Temp"


Metodo 3
Anche in questo metodo prevede di agire tramite il registro di sistema ma questa volta l'unità virtuale verrà specificata all'interno della chiave DOS Devices. Il contenuto di un'eventuale file .reg avrà un aspetto simile al seguente
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"X:"="\\??\\C:\\Temp"




mercoledì 17 giugno 2015

Kali Linux: Attacco DoS tramite SlowHTTPTest

In questo articolo illustrerò come utilizzare il tool SlowHTTPTest per testare il proprio server sugli attacchi DoS (Denial of Service).  SlowHTTPTest è un tool altamente personalizzabile utilizzato per simulare attacchi DoS. Il tool è presente per numerose piattaforme Linux, OSX e Cygwin (un ambiente Unix-like a riga di comando per sistemi operativi Microsoft Windows) e implementa i più comuni attacchi DoS utilizzando una banda minima come slowloris, Slow HTTP POST, Slow Read attack, Apache Range Header attack.
Di seguito utilizzerò Kali Linux, una distribuzione Linux, basata su Debian GNU/Linux, pensata per l’informatica forense e spesso utilizzata per Penetration Testing, Ethical Hacking e per test relativi alla sicurezza della rete.

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.

Per installare SlowHTTPTest in Kali Linux basta utilizzare apt-get
apt-get install slowhttptest

Installazione slowhttptest
FIG 1 - Installazione slowhttptest

Di seguito riporto alcuni esempi di attacchi eseguiti tramite SlowHTTPTest


Slow message body mode
slowhttptest -c 1000 -B -i 110 -r 200 -s 8192 -t FAKEVERB -u https://myserver/loginform.html -x 10 -p 3
se vogliamo che i risultati vengano salvati in un file e in modalità grafica
slowhttptest -c 1000 -B -g -o body_result -i 110 -r 200 -s 8192 -t FAKEVERB -u https://myserver/loginform.html -x 10 -p 3


SlowHTTPTest slow message body mode
FIG 2 - SlowHTTPTest slow message body mode

slowloris mode
slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://myserver/index.html -x 24 -p 3
per i risultati in modalità grafica
slowhttptest -c 1000 -H -g -o header_result -i 10 -r 200 -t GET -u https://myserver/index.html -x 24 -p 3


Slow read mode passando per un proxy
slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://someserver/somebigresource -p 5 -l 350 -e x.x.x.x:8080
x.x.x.x:8080 è il proxy (con relativa porta) da cui si intende passare


Utilizzando l'opzione -g i risultati vengono generati in formato CSV e HTML. All'interno del file HTML è contenuta anche una rappresentazione grafica del test (basata su Google Chart tool). Un esempio delle statistiche in formato HTML è riportato nella seguente figura.
SlowHTTPTest opzione -g
FIG 3 - SlowHTTPTest opzione -g
I dati contenuti all'interno del file CSV possono essere utilizzati per generare un grafico con un tool di proprio gradimento (come Ms Excel, Google Docs ecc). 

L'ultimo messaggio visualizzato è quello della condizione di uscita dal test che potrebbe essere uno dei seguenti:

Hit test time limitRaggiunto il limite di tempo specificato tramite l'opzione -l
No open connections leftIl peer ha chiuso tutte le connessioni
Cannot establish connectionNessuna connessione stabilita entro i primi N secondi del test (dove N equivale a 10 secondi se non specificato diversamente tramite l'opzione -i). Questo può verificarsi se l'host non è raggiungibile oppure spento.
Connection refusedLa connessione è stata rifiutata dal destinatario. In questi casi possiamo provare ad utilizzare un proxy.
Cancelled by userAnnullato premendo CTRL+C 
Unexpected errorErrore inatteso.


In tabella le opzioni accettate da SlowHTTPTest

-a Per specificare il valore iniziale per il test range header
-b Specifica il numero di bytes per il test range header
-c Permette di specificare il numero di connessioni (fino a 65539)
-dPermette di indirizzare tutto il traffico attraverso un proxy e relativa porta. Ad es. -d proxy:port
-ePermette di indirizzare solo il traffico dei probe attraverso un server proxy. Ad es. -e proxy:port
-H, B, R o XSpecifica il tipo di slow down: -H per la sezione header, -B per la sezione Body del messaggio. -R abilita il range test, -X abilita il test slow read 
-gPermette di generare statistiche in formato CSV e HTML
-i Permette di specificare ogni quanti secondi inviare dati per ciascuna connessione.
-k Per il test di slow read permette di specificare quante volte ripetere la richiesta nella stessa connessione (se il server supporta HTTP pipelining).
-l Per specificare la durata, in secondi, del test
-n Per specificare l'intervallo, in secondi, tra le operazioni di lettura dal buffer in ricezione
-o Specifica un file di output (incluso di path). Utilizzato insieme all'opzione -g
-p Tempo di attesa (espresso in secondi) di una risposta HTTP su connessione probe dopo il quale il server è considerato non raggiungibile
-r Connection rate. Numero di connessioni per secondo
-s Valore in byte del Content-Length header, se l'opzione -B è definita
-t Permette di specificare un verb personalizzato
-u Per specificare URL target del test (nello stesso formato utilizzato dai browser)
-v Verbosity. Specifica il livello di dettaglio del log (valori da 0 a 4). 
-wInizio del range, espresso in byte, da cui la dimensione della finestra visualizzata viene prelevata.
-x massima lunghezza, in byte, dei dati
-yfine del range, espresso in byte, da cui la dimensione della finestra visualizzata viene prelevata.
-z Byte da leggere dal buffer in ricezione con una singola operazione di lettura

lunedì 8 giugno 2015

Windows Quick Tip: Elenco stampabile dei processi attivi

Per visualizzare i processi in esecuzione su un computer dotato di Windows basta eseguire, ad es. tramite la combinazione di tasti CTRL+SHIFT+ESC, Gestione Attività (Task Manager nei sistemi Windows XP e antecedenti)  e selezionare la scheda Processi (In Windows 8 e 8.1 è possibile selezionare la scheda Dettagli). Purtroppo il tool non permette facilmente di salvare l'elenco o di stamparlo. Per questo tipo di operazione possiamo affidarci al Prompt dei comandi o alla console avanzata PowerShell.


Gestione attività
FIG 1 - Gestione Attività

Prompt dei comandi
  • Avviare il prompt dei comandi: WIN+R e digitare cmd seguito da invio. 
  • Digitare il seguente comando seguito da invio per visualizzare l'elenco dei processi in esecuzione
    tasklist
  • Se i processi attivi sono numerosi e vogliamo visualizzarli in più pagine, il comando da eseguire è
    tasklist |more
  • Se intendiamo salvare l'elenco dei processi all'interno degli appunti (clipboard)
    tasklist |clip
  • Se, invece, vogliamo salvare l'output del comando in un file di testo
    tasklist > c:\processi.txt 

    in questo modo l'elenco dei processi in esecuzioni sarà salvato nel file processi.txt presente in c:\ e possiamo stamparlo facilmente.

PowerShell
  • Avviare PowerShell: WIN+R e digitare powershell seguito da invio
  • Per visualizzare l'elenco dei processi digitare il seguente comando e premere invio per eseguirlo 
    get-process
  • Per dirottare l'output del comando in un file di testo possiamo eseguire il comando
    get-process |out-file "c:\processi.txt"