sabato 11 marzo 2023

KeyloggerJumper un software opensource per mitigare il rischio che dati sensibili ,quali nome utente e password , vengano catturati da un keylogger basico

 KeyLoggerJumper è un software in release 1.0 alpha  , (https://en.wikipedia.org/wiki/Software_release_life_cycle) sotto la licenza New BSD.

Questo software permette di compilare dei campi di un applicazione web senza passare dallo stream della tastiera , per fare questo usa una tastiera virtuale costruita in windows forms che passa i valori al componente WebView2 che si occupa della navigazione. 

KeyLoggerJumper per il suo funzionamento necessita che sulla macchina dove andrà in esecuzione sia presente il "WebView2 Runtime" , segue il link per scaricare il run time  https://developer.microsoft.com/it-it/microsoft-edge/webview2/#download-section , si tratta di un software di Microsoft completamente gratuito .
In KeyLoggerJumper inseriamo l'indirizzo di un applicazione Asp .Net Core di prova nel textbox nell'area verde ,  premiamo il bottone "Navigate to"



selezioniamo un textbox e mentre abbiamo il focus al suo interno scegliamo Esamina (potete usare un altro browser per trovare l'id dell'elemento che vogliamo valorizzare , basta puntare alla stessa pagina :-) , personalmente come possibili alternative consiglio Chrome e Firefox Developer Edition, nel primo potete selezionare l'elemento cliccando il tasto destro del mouse e selezionando "Ispeziona" ,stessa cosa per Firefox e selezionate Inspect)


 troviamo un campo input con il valore di "id" ad "Input_Email" , valorizziamo con "Input_Email" il textbox a destra della label "Id dell'elemento da valorizzare:"



clicchiamo sul bottone Tastiera si aprirà un form di nome tastiera



 che possiamo utilizzare per scrivere il valore del campo Input_Email ,quando abbiamo scritto il valore da assegnare possiamo cliccare su Assegna

a questo punto il textbox "Valore da assegnare" avrà il valore digitato in tastiera ,clicchiamo sul bottone "Assegna Valore" 

ora il valore è caricato nell'input box email         


ripetiamo il processo per la password:

troviamo l'id del campo password 


clicchiamo su tastiera e scriviamo la password , clicchiamo su assegna:



clicchiamo su "Assegna valore" e valorizziamo il campo password


il procedimento è identico per valorizzare il campo "Input_ConfirmPassword" .

Il punto ""saliente"" del programma è il metodo

private async void AssegnaValore(object sender, EventArgs e)
        {
            try
            {
                string value = this.textBoxValore.Text;
                string t = this.textBoxId.Text;
                string test = await webView21.CoreWebView2.ExecuteScriptAsync("document.getElementById('" + t + "').value='" + value + "';");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

ovvero sfruttiamo la possibilità di eseguire  uno script javascript con il metodo ExecuteScriptAsync in un' istanza di WebView2 , il javascript assegna la proprietà value di un elemento del document che è identificato (l'element) in modo univoco dal metodo getElementById 

qui trovate il progetto https://sourceforge.net/projects/keyloggerjumper/ scritto in C# usando VisualStudio 2022 Community ,  il software non ha un programma di installazione nel senso classico ma prevede che clicchiate semplicemente sul file "KeyLoggerJumper.exe" , il file lo troverete dentro il file zip che contiene l'installazione nel seguente path "\WinFormsWebView\WinFormsWebView\bin\Release\net6.0-windows" , vi consiglio di selezionare l'exe ,tasto destro e selezionate "Invia a " > "Desktop crea collegamento" 

Nota: per ingrandire le immagini potete cliccarci sopra :-)

Crittografia e WCF per passare una password ( od una qualsiasi altra stringa (xml,json, etc.etc.) ) da un applicazione ad un' altra in relativa sicurezza

 Il codice che segue è da considerarsi in alpha e da non utilizzare in un ambiente di produzione , qui potete trovare il  "progetto&quo...