giovedì 19 luglio 2018

Windows Quick Tip: Disattivare la compressione degli sfondi del Desktop JPEG

Quando si imposta un'immagine come sfondo del Desktop, Windows (Windows 7, 8 e 10) ne effettua una copia memorizzandola con il nome TranscodedWallpaper nel percorso %AppData%\Microsoft\Windows\Themes.
L'immagine impostata come sfondo viene salvata come file TranscodedWallpaper
FIG 1 - L'immagine impostata come sfondo viene salvata come file TranscodedWallpaper
Nel caso si tratti di un'immagine JPEG, la copia viene compressa con una qualità pari al 85% al fine di ridurne le dimensioni e, di conseguenza, l'impatto sulle prestazioni del computer. Tale processo può incidere negativamente sulla qualità dello sfondo impostato.

Per ovviare a tale comportamento è possibile utilizzare come sfondo immagini PNG (che non subiscono alcuna ulteriore compressione) oppure agire tramite il registro di sistema per impedire a Windows di comprimere gli sfondi in formato JPEG.

Per apportare la modifica al registro di sistema:
  • 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 sulla chiave
    HKEY_CURRENT_USER\Control Panel\Desktop;
  • Creare, se non presente, un valore DWORD (32 bit) e nominarlo JPEGImportQuality;
  • Cliccare due volte sul valore appena creato, impostare in Base l'opzione Decimale quindi, nella casella Dati valore, digitare 100.

    Impedire a Windows di comprimere l'immagine JPEG utilizzata come sfondo agendo tramite il registro di sistema
    FIG 2 - Impedire a Windows di comprimere l'immagine JPEG utilizzata come sfondo agendo tramite il registro di sistema
  • Riavviare il sistema per rendere effettiva la modifica. Dopo aver riavviato il PC le nuove immagini JPEG impostate come sfondo verranno copiate e mostrate alla massima qualità ovvero al 100%.

Dal seguente link è possibile scaricare i file .reg per disabilitare/riabilitare la compressione degli sfondi del Desktop in formato JPEG.
DOWNLOAD




lunedì 9 luglio 2018

Windows 10: Impostare un nuovo percorso per la cartella utenti durante l'installazione del sistema

In alcuni contesti può essere opportuno spostare la cartella Utenti (Users) su una partizione diversa da quella dove risiede il sistema operativo. In questo articolo verrà mostrato come impostare un percorso diverso della cartella Utenti durante l'installazione.
La prima operazione da effettuare consiste nel creare un file di risposte (answer file). Si tratta di un file XML che consente di modificare/personalizzare alcune impostazioni di default dell'installazione di Windows. Il file può essere creato con un comune editor di testo come il Blocco note incluso in Windows l'importante è salvarlo impostando come estensione .XML. Il contenuto del file sarà il seguente
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35"
 language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FolderLocations>
<ProfilesDirectory>D:\Users</ProfilesDirectory>
</FolderLocations>
</component>
</settings>
</unattend>

Il file di risposte può essere scaricato dal seguente link
DOWNLOAD

Alcune impostazioni vanno personalizzate in base al proprio sistema. Ad esempio alla 4ª riga è necessario specificare correttamente l'architettura prescelta: in questo caso è stato indicato amd64 per l'architettura a 64 bit mentre va indicato x86 nel caso di architettura a 32 bit.
Alla 6ª riga viene indicato come ProfilesDirectory il percorso D:\Users. Anche in questo caso bisogna specificare correttamente la partizione del proprio sistema su cui si intende creare la cartella Utenti (potrebbe essere necessario modificare le lettere delle unità in fase di installazione del sistema). Copiare il file XML all'interno di una pendrive USB, collegarla al PC che si sta reinstallando quindi avviare l'installazione di Windows 10 e attendere la copia dei file e il riavvio del sistema.
Avvio installazione Windows 10
FIG 1 - Avvio installazione Windows 10

Utilizzando una versione recente di Windows 10, dopo il riavvio verremo accolti da Cortana che guiderà l'utente nella configurazione del sistema. Prima di effettuare qualsiasi operazione, aprire il prompt dei comandi tramite la combinazione SHIFT+F10 ed eseguire il comando diskmgmt.msc per aprire la finestra Gestione disco. Da Gestione disco assegnare la lettera D alla partizione su cui si intende creare la cartella Utenti. Se la lettera è stata già assegnata ad altra unità cliccarci su con il tasto destro del mouse e, dal menu contestuale, selezionare la voce Cambia lettera e percorso di unità per assegnare una lettera diversa tramite l'apposita casella. La stessa operazione va effettuata anche per l'unità su cui andrà creata la cartella Utenti a cui, invece, va assegnata la lettera D liberata precedentemente.
Windows 10, Avvio di Gestione disco
FIG 2 - Windows 10, Avvio di Gestione disco
Dalla finestra Gestione disco prendere nota della lettera dell'unità USB su cui risiede il file di risposte quindi tornare al prompt dei comandi. Accedere alla cartella Sysprep eseguendo il comando
cd Sysprep
e caricare il file di risposte con il comando
sysprep.exe /oobe /reboot /unattended:E:\RelocateUsers.xml
Ovviamente al posto di E: va indicata la lettera assegnata alla pendrive USB contenente il file di risposte.
Sysprep provvederà a caricare il file di risposte, ad applicare le impostazioni e a riavviare il sistema. Dopo il riavvio non resta che proseguire con l'installazione di Windows come di consueto.
Windows 10, Sysprep
FIG 3 - Windows 10, Sysprep
Al termine dell'installazione del sistema operativo la cartella Utenti (Users) verrà creata sulla partizione specificata.




giovedì 5 luglio 2018

PowerShell: Forzare l'esecuzione di uno script con privilegi elevati

Chi crea script PowerShell sa bene che alcune operazioni, per essere portate correttamente a termine, richiedono l'esecuzione con privilegi elevati. Purtroppo non c'è la possibilità di cliccare con il tasto destro del mouse sul file PS1 e selezionare "Esegui come amministratore" dal menu contestuale come avviene ad esempio con i file eseguibili. 
A questa mancanza è possibile sopperire aggiungendo allo script il seguente codice pubblicato sullo Script Center di Microsoft:

function Use-RunAs 
{    
    # Check if script is running as Adminstrator and if not use RunAs 
    # Use Check Switch to check if admin 
     
    param([Switch]$Check) 
     
    $IsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()` 
        ).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator") 
         
    if ($Check) { return $IsAdmin }     
 
    if ($MyInvocation.ScriptName -ne "") 
    {  
        if (-not $IsAdmin)  
        {  
            try 
            {  
                $arg = "-file `"$($MyInvocation.ScriptName)`"" 
                Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList $arg -ErrorAction 'stop'  
            } 
            catch 
            { 
                Write-Warning "Error - Failed to restart script with runas"  
                break               
            } 
            exit # Quit this session of powershell 
        }  
    }  
    else  
    {  
        Write-Warning "Error - Script must be saved as a .ps1 file first"  
        break  
    }  
} 

La function, che va richiamata prima di eseguire altre operazioni, non fa altro che verificare se lo script è stato eseguito in una console con i permessi di amministratore e, in caso contrario, provvede autonomamente a rilanciarlo con i permessi elevati.
Se non è stato fatto il login con un utenza amministrativa verranno richieste le credenziali.
PowerShell, Esecuzione script con privilegi elevati
FIG 1 - PowerShell, Esecuzione script con privilegi elevati

Dal seguente link è possibile scaricare lo script di esempio
DOWNLOAD



giovedì 28 giugno 2018

Convertire una pagina web in PDF

Per convertire una pagina web in PDF è possibile procedere in diversi modi. Un modo semplice che non richiede l'installazione di alcun software è quello di utilizzare il servizio Web2PDF direttamente online.

Dal proprio browser posizionarsi sulla pagina  www.web2pdfconvert.com quindi digitare/incollare nell'apposita casella l'indirizzo della pagina web che si intende convertire in PDF. 

Web2PDF, Convertire una pagina web in PDF
FIG 1 - Web2PDF, Convertire una pagina web in PDF
Cliccando sull'icona della chiave inglese è possibile personalizzare alcune impostazioni. Per avviare la conversione basta cliccare sul pulsante Convert to PDF
Al termine della conversione appariranno i pulsanti per il download del file PDF, il salvataggio su Dropbox o su Google Drive.
Web2PDF, Download file PDF
FIG 2 - Web2PDF, Download file PDF
All'interno del file PDF verranno mantenuti i link ad altre pagine web. Tale processo può essere utilizzato anche per aggirare il proxy aziendale e visualizzare, in modo semplice e senza sforzo, il contenuto di pagine web bloccate.




domenica 24 giugno 2018

Linux: Nascondere l'output di un comando all'interno della Shell

Per nascondere l'output di un comando all'interno della Shell è possibile redirezionarlo verso /dev/null. Nei sistemi operativi Unix-like /dev/null (null device, ovvero dispositivo nullo) non è altro che un file virtuale, non presente su memoria di massa, che scarta, non memorizzando, tutti i dati che gli vengono inviati. Proprio per tale caratteristica /dev/null viene soprannominato bit bucket (cestino per bit).



La sintassi è molto semplice e fa uso dell'operatore > per la redirezione dell'output:
comando > /dev/null
Il comando sopra indicato permette di ignorare il flusso standard output (stdout) inviandolo a /dev/null.

Per nascondere l'output del comando compreso gli errori si utilizza
comando &> /dev/null
In questo modo viene ignorato sia il flusso stdout (standard output) che quello stderr (standard error).

Linux, redirezione dell'output
FIG 1 - Linux, redirezione dell'output




martedì 19 giugno 2018

Kali Linux: Installare PowerShell su Kali Linux

Le distribuzioni Linux consentono di specificare più repository per l'installazione dei pacchetti. Tra i numerosi repository disponibili online c'è anche uno messo a disposizione da Microsoft che include PowerShell. Il repository di Microsoft è pensato per gli utenti Debian ma si adatta perfettamente anche a Kali Linux.

In questo articolo verrà mostrato, passo passo, come installare PowerShell in Kali Linux.

La prima operazione da effettuare consiste nel preparare il terreno installando/aggiornando le dipendenze. Dalla finestra terminale di Kali Linux eseguire il comando
apt update && apt -y install curl gnupg apt-transport-https
Aggiornamento delle dipendenze del pacchetto PowerShel
FIG 1 - Aggiornamento delle dipendenze del pacchetto PowerShell
Il passo successivo consiste nell'aggiungere la chiave GPG del repository in modo che APT rilevi la firma dei pacchetti. Sempre dalla finestra terminale eseguire
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Aggiungere la chiave GPG del repository Microsoft
FIG 2 - Aggiungere la chiave GPG del repository Microsoft

A questo punto il repository Microsoft va aggiunto all'elenco delle risorse in /etc/apt/sources.list.d/ con il comando
echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" > /etc/apt/sources.list.d/powershell.list 
Aggiungere il repository Microsoft all'elenco delle risorse
FIG 3 - Aggiungere il repository Microsoft all'elenco delle risorse
Aggiornare l'elenco dei pacchetti con il comando
apt update
Aggiornare l'elenco dei pacchetti
FIG 4 - Aggiornare l'elenco dei pacchetti
Installare il pacchetto libcurl3 
apt -y install libcurl3
Installazione pacchetto libcurl3
FIG 5 - Installazione pacchetto libcurl3
Procedere all'installazione del pacchetto PowerShell eseguendo
apt -y install powershell
Installazione pacchetto PowerShell
FIG 6 - Installazione pacchetto PowerShell
Al termine dell'installazione del pacchetto, avviare PowerShell con
pwsh
Nel caso in cui appaia il messaggio "FailFast: The terminfo database is invalid.", come mostrato in FIG 7, è probabile che la variabile d'ambiente TERM sia settata su xterm-256color.


Avvio PowerShell tramite pwsh
FIG 7 - Avvio PowerShell tramite pwsh
Per verificare il valore della variabile d'ambiente TERM digitare, da terminale, il seguente comando
printenv TERM
Visualizzazione valore variabile d'ambiente TERM
FIG 8 - Visualizzazione valore variabile d'ambiente TERM
In questo caso PowerShell può essere avviato da terminale digitando ed eseguendo
TERM=xterm pwsh
FIG 9 - Avvio PowerShell tramite TERM=xterm pwsh
Da PowerShell eseguire
Update-Help
per aggiornare tutti i file di help scaricandoli da Microsoft.
Aggiornamento dei file di Help di PowerShell
FIG 10 - Aggiornamento dei file di Help di PowerShell
L'installazione di PowerShell in Kali Linux è completa. Possiamo testare il funzionamento eseguendo un cmdlet PowerShell.
 Esecuzione cmdlet PowerShell
FIG 11 - Esecuzione cmdlet PowerShell





venerdì 8 giugno 2018

Kali Linux: Eseguire la scansione delle vulnerabilità delle applicazioni web con WMAP

Originariamente sviluppato a partire dal tool SQLMap, WMAP è un potente strumento che consente di verificare eventuali vulnerabilità di applicazioni web tramite il Framework Metasploit.
Si tratta di uno scanner di vulnerabilità di applicazioni web integrato in Metasploit. In questo articolo verranno mostrati i passi da seguire per verificare la presenza di eventuali vulnerabilità di un server web. A tale scopo verrà utilizzata la distribuzione Kali Linux che integra tutti gli strumenti necessari.

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.


Prima di procedere è consigliabile aggiornare tutti i pacchetti installati in Kali Linux alle versioni più recenti lanciando i seguenti 2 comandi da terminale
sudo apt-get update
sudo apt-get upgrade

WMAP utilizza il database PostgreSQL di Metasploit per memorizzare i risultati della scansione pertanto, prima di avviarlo, è necessario attivare/verificare la connessione al database. 
Avviare il servizio postgresql tramite il seguente comando da terminale
sudo service postgresql start
quindi inizializzare il database eseguendo il comando
sudo msfdb init
Avvio del servizio PostgreSQL e inizializzazione del database
FIG 1 - Avvio del servizio PostgreSQL e inizializzazione del database
Terminata l'inizializzazione del database, avviare la console Metasploit eseguendo
sudo msfconsole
Avvio della console Metasploit Framework
FIG 2 - Avvio della console Metasploit Framework
All'interno della console Metasploit Framework caricare il plugin WMAP digitando
load wmap
Caricamento del plugin WMAP nella console Metasploit Framework
FIG 3 - Caricamento del plugin WMAP nella console Metasploit Framework
Per poter effettuare la scansione delle vulnerabilità è necessario, tramite wmap_sites e lo switch -a, definire il sito da verificare specificandone l'URL/IP
Ad esempio, supponendo che il server web da verificare abbia indirizzo 192.168.0.10 si utilizza il comando
wmap_sites -a http://192.168.0.10


Definizione siti con wmap_sites
FIG 4 - Definizione siti con wmap_sites
E' possibile specificare più siti. Per visualizzare l'elenco dei siti definiti si utilizza il comando
wmap_sites -l
Visualizzare l'elenco dei siti definiti
FIG 5 - Visualizzare l'elenco dei siti definiti
A questo punto bisogna impostare il sito web come target utilizzando lo switch -t con l'URL/IP o lo switch -d con l'ID. L'ID è quello visualizzato dall'output del comando wmap_sites -l come visibile in FIG 5.
Ad es:
wmap_targets -t http://192.168.0.10
wmap_targets -d 0
oppure, per testare un particolare URL del sito
wmap_targets -t http://192.168.0.10/administrator/index.php


Definizione target con wmap_targets
FIG 6 - Definizione target con wmap_targets

Anche con wmap_targets è possibile utilizzare lo switch -l per visualizzare l'elenco dei target definiti
wmap_targets -l

Eseguire il comando 
wmap_run -t
per visualizzare/predisporre l'elenco dei moduli che verranno utilizzati per la scansione del sistema target definito.
Visualizzare i moduli abilitati con wmap_run
FIG 6 - Visualizzare i moduli abilitati con wmap_run
Per lanciare la scansione del sistema target, eseguire il comando
wmap_run -e
La scansione completa del sistema potrebbe impiegare diverso tempo quindi pazientate.
Esecuzione scansione del sistema target
FIG 7 - Esecuzione scansione del sistema target
Al termine della scansione utilizzare il seguente comando da terminale per visualizzare l'elenco delle vulnerabilità riscontrate
vulns
Visualizzare l'elenco delle vulnerabilità riscontrate
FIG 8 - Visualizzare l'elenco delle vulnerabilità riscontrate
Le vulnerabilità individuate saranno evidenziate tramite l'identificatore CVE (Common Vulnerabilities and Exposures). Per verificare la disponibilità di eventuali exploit basterà effettuare una ricerca su google o su www.exploit-db.com.