
Pequeño payload para transferencia vía LOKI: proporciona capacidades de transferencia de archivos bidireccional de alta velocidad mediante Virtual Channel.
Publicado como código abierto por NCC Group Plc - http://www.nccgroup.com/
Desarrollado por Dave Spencer, david [dot] spencer [at] nccgroup [dot] com
http://www.github.com/nccgroup/Sleipnir
Publicado bajo AGPL; consulta LICENSE para más información
Sleipnir es un pequeño ejecutable diseñado para una carga rápida mediante el método de enviar teclas dentro de Loki, de ahí la ausencia de un icono. Sleipnir fue desarrollado para proporcionar transferencias de archivos bidireccionales a un ritmo mucho más rápido que el que podía ofrecer el método de enviar teclas, mediante el uso de canales virtuales. Es necesario crear un canal virtual en el lado del servidor y luego conectarse a él desde el lado del cliente; cualquier dato que pase por estos canales se transfiere a través de la conexión RDP. La función .NET AxMsRdpClient7NotSafeForScripting.SendOnVirtualChannel solo puede enviar datos de cadena de longitud limitada; por esta razón, los archivos se dividen en fragmentos de 1k y se codifican en base64 en un lado, y luego se decodifican en base64 en un flujo en el otro lado.
Sleipnir está diseñado para usarse con Loki (https://github.com/nccgroup/loki) y Fenrir (https://github.com/nccgroup/Fenrir)
Sleipnir consta de un formulario con una barra de progreso y dos botones:
Recibir archivo – configura Sleipnir para escuchar eventos en el canal virtual Loki1
Enviar archivo – permite al usuario seleccionar un archivo en el escritorio RDP para enviarlo de vuelta al cliente.
Para enviar un archivo desde el host local al servidor RDP, el usuario debe hacer clic en el botón Recibir archivo en Sleipnir y luego hacer clic en “Sleipnir” -> “Enviar archivo por canal virtual” dentro de la interfaz de Loki; a continuación, se le pedirá que seleccione un archivo. Sleipnir lee entonces el archivo de 1k en 1k, lo codifica en base64 y lo envía al canal virtual. Un controlador de eventos dentro de Sleipnir detecta la escritura, la decodifica y la escribe en un archivo. El archivo se crea en el mismo directorio en el que se encuentra Sleipnir y conserva su nombre de archivo original. Para enviar un archivo desde el servidor RDP de vuelta al cliente, simplemente haga clic en el botón Enviar archivo, seleccione un archivo y espere a que finalice la transferencia. Con algunos de los archivos más grandes hay un pequeño retraso en la actualización de la barra de progreso, y puede parecer que se ha bloqueado cuando en realidad está funcionando. Aunque debería ser capaz de transferir archivos de cualquier tamaño, solo lo he probado con archivos de hasta 250mb, y los manejó perfectamente (aunque la barra de progreso no se actualizaba; solo hay que esperar al cuadro de mensaje que indica que la transferencia se completó). El rendimiento promedio es de unos 800kb/s.