Controlando um PC via comandos tcp / udp necat / socat

2

Eu quero configurar um PC com necat ou socat para executar um script quando digo ao servidor para fazer isso.

Eu tenho um aplicativo antigo cappable para enviar uma mensagem simples UDP preferida.

A mensagem é armazenada em uma lista de reprodução.

exemplo

Digamosqueeuqueiraenviarumamensagemparaabrirumamacro/scriptparaoPCqueestáexecutandoonetcat/socat

"C:\Users\xxx\Desktop\script.bat"   

o servidor precisa escutar em uma porta. e executar o programa quando o comando for recebido

como eu faço isso? Não sei como começar, não encontrei nada na internet.

PS. por favor, não se importe com segurança ou confiabilidade do UDP; é uma coisa de LAN, e eu não preciso do servidor para me dizer nada.

    
por Mihai Popescu 01.08.2016 / 20:07

1 resposta

3

Este é um uso clássico de netcat . Mas isso é unix.SE então minha resposta será completamente em unix.

Nota: netcat tem nomes diferentes em diferentes distros:

  • netcat : alias para nc em algumas distros
  • nc : GNU netcat no linux ou BSD netcat no * BSD
  • ncat : Nmap netcat, consistente na maioria dos sistemas

As opções entre diferentes versões de netcat variam, indicarei onde diferentes versões podem se comportar de maneira diferente. Além disso, eu recomendo strongmente instalar a versão nmap do netcat ( ncat ) já que suas opções de linha de comando são consistentes em sistemas diferentes.

Eu usarei ncat como o nome do netcat por meio da resposta.

TCP

Para usar o TCP para controlar uma máquina através de netcat você tem duas opções: usando um pipe nomeado (que funciona com todas as versões do netcat) e usando -e (que existe somente na versão linux, ou mais exatamente , -e on * BSD faz algo completamente diferente).

No lado do servidor , você precisa executar:

mkfifo pinkie
ncat -kl 0.0.0.0 4096 <pinkie | /bin/sh >pinkie

Onde: 0.0.0.0 é o espaço reservado para "todas as interfaces", use um IP específico para limitá-lo a uma interface específica; -l é escutar e -k manter-se aberto (para não terminar após uma única conexão).

Outra opção (no linux / ncat) é usar:

ncat -kl 0.0.0.0 4096 -e /bin/sh

Para alcançar o mesmo resultado.

No lado do cliente , você pode usar seu aplicativo ou simplesmente executar:

ncat <server ip> 4096

E você está no controle do shell no servidor e pode enviar comandos.

UDP

O UDP é semelhante, mas tem algumas limitações. Você não pode usar -k para o protocolo UDP sem -e , portanto, você precisa usar o linux / ncat para obter um soquete reutilizável.

No lado do servidor você faz:

ncat -ukl 0.0.0.0 4096 -e /bin/sh

E no lado do cliente (ou no seu aplicativo):

ncat -u <server ip> 4096

E mais uma vez você tem um shell funcional.

    
por 02.08.2016 / 00:49

Tags