
Payload minúsculo para transferência via LOKI - Oferece recursos de transferência de arquivos bidirecional de alta velocidade por Canal Virtual
Lançado como código aberto pela NCC Group Plc - http://www.nccgroup.com/
Desenvolvido por Dave Spencer, david [dot] spencer [at] nccgroup [dot] com
http://www.github.com/nccgroup/Sleipnir
Lançado sob AGPL, consulte LICENSE para mais informações
O Sleipnir é um pequeno executável projetado para upload rápido por meio do método de envio de teclas (send keys) dentro do Loki, daí a ausência de um ícone. O Sleipnir foi desenvolvido para fornecer transferências de arquivos bidirecionais a um ritmo muito mais rápido do que o método de envio de teclas poderia proporcionar, usando canais virtuais. Um canal virtual precisa ser criado no lado do servidor e depois conectado a partir do lado do cliente; quaisquer dados transmitidos por esses canais trafegam por meio da conexão RDP. A função .NET AxMsRdpClient7NotSafeForScripting.SendOnVirtualChannel só consegue enviar dados de string de comprimento limitado; por esse motivo, os arquivos são divididos em blocos de 1k e codificados em base64 de um lado e, em seguida, decodificados de base64 para um fluxo (stream) do outro lado.
O Sleipnir foi projetado para ser usado com o Loki (https://github.com/nccgroup/loki) e o Fenrir (https://github.com/nccgroup/Fenrir)
O Sleipnir consiste em um formulário com uma barra de progresso e dois botões:
Receber Arquivo (Receive File) – coloca o Sleipnir em modo de escuta de eventos no canal virtual Loki1
Enviar Arquivo (Send File) – permite ao usuário selecionar um arquivo na área de trabalho RDP para enviar de volta ao cliente.
Para enviar um arquivo do host local para o servidor RDP, o usuário deve clicar no botão Receber Arquivo no Sleipnir e, em seguida, clicar em “Sleipnir” -> “Enviar Arquivo no Canal Virtual” na interface do Loki; o usuário é então solicitado a selecionar um arquivo. O Sleipnir então lê o arquivo de 1k por vez, codifica em base64 e o envia para o canal virtual. Um manipulador de eventos dentro do Sleipnir detecta a gravação, a decodifica e a escreve em um arquivo. O arquivo é criado no mesmo diretório em que o Sleipnir está localizado e mantém seu nome de arquivo original. Para enviar um arquivo do servidor RDP de volta ao cliente, basta clicar no botão Enviar Arquivo, selecionar um arquivo e aguardar o término da transferência. Com alguns arquivos maiores, há um pequeno atraso na atualização da barra de progresso, e pode parecer que o programa travou quando, na verdade, ele está funcionando. Embora deva ser capaz de transferir arquivos de qualquer tamanho, só testei com arquivos de até 250mb, que ele manipulou perfeitamente bem (embora a barra de progresso não atualizasse; basta aguardar a caixa de mensagem informando que a transferência foi concluída). A taxa de transferência média é de cerca de 800kb/s.