Você pode encontrar outra variante deste programa que não requer função de rede e também compatível com qualquer aplicativo como NetCat, telnet etc ... aqui: https://github.com/darkcodersc/run-as-attached-local
A versão Runasattached (local) é mais estável.
O objetivo da versão em rede era demonstrar comunicação entre processos usando a programação de soquete.
Runasattached é um programa para executar um console como outro usuário e manter um novo console anexado ao console de chamadas. Suporte ao modo de shell reverso (ex: netcat)
Ao contrário dos sistemas baseados no UNIX, no Microsoft Windows, você não pode executar o comando como outro usuário sem gerar um novo processo, em seguida, uma nova janela de console.
Isso é bastante irritante ao fazer testes de penetração, mas não apenas!
Este aplicativo é um "hack" para executar um novo console anexado ao console de chamadores. Este é um método para atingir esse objetivo.
Este método está usando a arquitetura do cliente / servidor para se comunicar entre dois processos. Por padrão, ele criará um servidor local (ouvindo no host e porta aleatória acima de 50 000), mas você pode decidir se conectar de volta a outro endereço/porta (ex: um ouvinte NetCat)
É uma versão beta, está funcionando bem, mas muitas coisas requerem alguma otimização, incluindo:
Networking: Esta é a primeira técnica que me vem à mente por diferentes razões, vou cavar mais sobre uma maneira melhor. A questão principal incorporada está relacionada à desconexão. Se a conexão remota for inesperada (suja) fechada, pode não saber disso, isso é principalmente por causa da maneira como eu projetei como lidei com o stdout/stderr e a rede. Tenho boas idéias para resolver esse problema. Ainda é considerado menor, pode ser irritante.
Argumento Parsing: Vou melhorar a clareza dessa parte.
Mesmo se você não achar útil neste programa, poderá encontrar alguns códigos interessantes: