
Payload minimale per il trasferimento via LOKI - Fornisce funzionalità di trasferimento file bidirezionale ad alta velocità tramite Virtual Channel
Rilasciato come open source da NCC Group Plc - http://www.nccgroup.com/
Sviluppato da Dave Spencer, david [dot] spencer [at] nccgroup [dot] com
http://www.github.com/nccgroup/Sleipnir
Rilasciato sotto AGPL, vedi LICENSE per maggiori informazioni
Sleipnir è un piccolo eseguibile progettato per un rapido caricamento tramite il metodo send keys all'interno di Loki, da qui la mancanza di un'icona. Sleipnir è stato sviluppato per fornire trasferimenti di file bidirezionali a una velocità molto maggiore rispetto a quanto potesse offrire il metodo send keys, utilizzando canali virtuali. Un canale virtuale deve essere creato sul lato server e poi connesso dal lato client; qualsiasi dato passato attraverso questi canali viaggia tramite la connessione RDP. La funzione .NET AxMsRdpClient7NotSafeForScripting.SendOnVirtualChannel può inviare solo dati stringa di lunghezza limitata; per questo motivo i file vengono suddivisi in blocchi da 1k e codificati in base64 su un lato, quindi decodificati in uno stream sull'altro lato.
Sleipnir è progettato per essere utilizzato con Loki (https://github.com/nccgroup/loki) e Fenrir (https://github.com/nccgroup/Fenrir)
Sleipnir consiste in un modulo con una barra di avanzamento e due pulsanti:
Receive File – imposta Sleipnir in ascolto di eventi sul canale virtuale Loki1
Send File – consente all'utente di selezionare un file sul desktop RDP da inviare di nuovo al client.
Per inviare un file dall'host locale al server RDP, l'utente deve fare clic sul pulsante Receive File in Sleipnir e poi fare clic su “Sleipnir” -> “Send File On Virtual Channel” all'interno dell'interfaccia di Loki; a questo punto all'utente viene chiesto di selezionare un file. Sleipnir legge quindi il file 1k alla volta, lo codifica in base64 e lo invia al canale virtuale. Un event handler all'interno di Sleipnir rileva la scrittura, la decodifica e la scrive su un file. Il file viene creato nella stessa directory in cui si trova Sleipnir e mantiene il suo nome originale. Per inviare un file dal server RDP di nuovo al client è sufficiente fare clic sul pulsante Send File, selezionare un file e attendere la fine del trasferimento. Con alcuni file più grandi c'è un piccolo ritardo nell'aggiornamento della barra di avanzamento e può sembrare che si sia bloccato quando in realtà sta funzionando. Sebbene dovrebbe essere in grado di trasferire file di qualsiasi dimensione, ho testato solo file fino a 250mb, che ha gestito perfettamente (anche se la barra di avanzamento non si aggiornava; bisogna solo attendere il messaggio che indica che il trasferimento è avvenuto correttamente). La velocità media è di circa 800kb/s.