Este é o comando nc.openbsd que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online Windows ou emulador online MAC OS
PROGRAMA:
NOME
nc - conexões arbitrárias de TCP e UDP e escuta
SINOPSE
nc [-46bCDdhklnrStUuvZz] [-I comprimento] [-i intervalo] [-O comprimento] [-P nome_de_usuario_proxy]
[-p porta_fonte] [-q segundo] [-s fonte] [-T tospalavra-chave] [-V tabela] [-w tempo limite]
[-X protocolo_proxy] [-x endereço_proxy[:porta]] [destino] [porta]
DESCRIÇÃO
A nc (ou netcat) é usado para quase tudo que envolve TCP, UDP,
ou soquetes de domínio UNIX. Ele pode abrir conexões TCP, enviar pacotes UDP, ouvir arbitrariamente
As portas TCP e UDP fazem a varredura de portas e lidam com IPv4 e IPv6. diferente telnet(1) nc
scripts bem e separa as mensagens de erro em erro padrão, em vez de enviá-los para
saída padrão, como telnet(1) faz com alguns.
Os usos comuns incluem:
· proxies TCP simples
· clientes e servidores HTTP baseados em script de shell
· teste de daemon de rede
· um SOCKS ou HTTP ProxyCommand para ssh(1)
· e muito, muito mais
As opções são as seguintes:
-4 Forças nc para usar apenas endereços IPv4.
-6 Forças nc para usar apenas endereços IPv6.
-b Permitir transmissão.
-C Envie CRLF como finalização de linha.
-D Habilite a depuração no soquete.
-d Não tente ler de stdin.
-h Imprime nc ajudar.
-I comprimento
Especifica o tamanho do buffer de recepção TCP.
-i intervalo
Especifica um intervalo de tempo de atraso entre as linhas de texto enviadas e recebidas. Também
causa um atraso entre as conexões com várias portas.
-k Forças nc para ficar ouvindo outra conexão depois que sua conexão atual for
concluído. É um erro usar esta opção sem o -l opção.
-l Usado para especificar isso nc deve ouvir uma conexão de entrada em vez de
iniciar uma conexão com um host remoto. É um erro usar esta opção em
conjunção com o -p, -sou -z opções. Além disso, qualquer tempo limite especificado
com o -w opção são ignoradas.
-n Não faça pesquisas de DNS ou de serviço em nenhum endereço, nome de host ou porta especificado.
-O comprimento
Especifica o tamanho do buffer de envio TCP.
-P nome_de_usuario_proxy
Especifica um nome de usuário para apresentar a um servidor proxy que requer autenticação. Se
nenhum nome de usuário for especificado, a autenticação não será tentada. Proxy
a autenticação só é suportada para proxies HTTP CONNECT no momento.
-p porta_fonte
Especifica a porta de origem nc deve usar, sujeito a restrições de privilégio e
disponibilidade.
-q segundo
após EOF em stdin, aguarde o número especificado de segundos e saia. Se segundo
é negativo, espere para sempre.
-r Especifica que as portas de origem e / ou destino devem ser escolhidas aleatoriamente em vez de
sequencialmente dentro de um intervalo ou na ordem que o sistema os atribui.
-S Ativa a opção de assinatura RFC 2385 TCP MD5.
-s fonte
Especifica o IP da interface que é usada para enviar os pacotes. Para
Soquetes de datagrama de domínio UNIX, especifica o arquivo de soquete temporário local para criar
e use para que os datagramas possam ser recebidos. É um erro usar esta opção em
conjunção com o -l opção.
-T tospalavra-chave
Altere o valor do TOS do IPv4. tospalavra-chave pode ser um de crítico, controle de rede, lowcost,
baixo atraso, controle de rede, Taxa de transferência, confiabilidade, ou um dos pontos de código DiffServ:
ef, af11 ... af43, cs0 ... cs7; ou um número em hexadecimal ou decimal.
-t destaque nc para enviar respostas do RFC 854 NÃO FAZ e NÃO VAI às solicitações do RFC 854 FAZER e VAI.
Isso torna possível usar nc para fazer scripts de sessões telnet.
-U Especifica o uso de soquetes de domínio UNIX.
-u Use UDP em vez da opção padrão de TCP. Para soquetes de domínio UNIX, use um
socket de datagrama em vez de um socket de fluxo. Se um soquete de domínio UNIX for usado, um
soquete de recebimento temporário é criado em / Tmp a menos que -s bandeira é dada.
-V tabela
Defina a tabela de roteamento a ser usada. O padrão é 0.
-v Ter nc dar uma saída mais detalhada.
-w tempo limite
Conexões que não podem ser estabelecidas ou estão ociosas após o tempo limite tempo limite segundos.
A -w bandeira não tem efeito sobre o -l opção, ou seja nc vai ouvir para sempre por um
conexão, com ou sem o -w bandeira. O padrão é sem tempo limite.
-X protocolo_proxy
Solicita que nc deve usar o protocolo especificado ao se comunicar com o servidor proxy.
Os protocolos suportados são “4” (SOCKS v.4), “5” (SOCKS v.5) e “conectar” (HTTPS
proxy). Se o protocolo não for especificado, SOCKS versão 5 será usado.
-x endereço_proxy[:porta]
Solicita que nc deve se conectar a destino usando um proxy em endereço_proxy e
porta. Se porta não for especificado, a porta conhecida para o protocolo proxy é usada
(1080 para SOCKS, 3128 para HTTPS).
-Z Modo DCCP.
-z Especifica que nc deve apenas procurar por daemons de escuta, sem enviar quaisquer dados
para eles. É um erro usar esta opção em conjunto com o -l opção.
destino pode ser um endereço IP numérico ou um nome de host simbólico (a menos que o -n opção
dado). Em geral, um destino deve ser especificado, a menos que o -l opção é fornecida (em
caso em que o host local é usado). Para soquetes de domínio UNIX, um destino é necessário e
é o caminho do soquete para se conectar (ou ouvir se o -l opção é fornecida).
porta pode ser um único inteiro ou um intervalo de portas. Os intervalos estão no formato nn-mm. No
geral, uma porta de destino deve ser especificada, a menos que -U opção é fornecida.
SERVIDOR CLIENTE MODELO
É bastante simples construir um modelo cliente / servidor muito básico usando nc. Em um console,
começo nc ouvindo em uma porta específica para uma conexão. Por exemplo:
$ nc-l 1234
nc agora está escutando na porta 1234 por uma conexão. Em um segundo console (ou um segundo
máquina), conecte-se à máquina e à porta ouvida em:
$nc 127.0.0.1 1234
Agora deve haver uma conexão entre as portas. Qualquer coisa digitada no segundo console
será concatenado ao primeiro e vice-versa. Depois que a conexão for configurada, nc
realmente não se importa qual lado está sendo usado como um 'servidor' e qual lado está sendo usado como
um cliente'. A conexão pode ser encerrada usando um EOF ('^ D').
Não há -c or -e opção neste netcat, mas você ainda pode executar um comando após
conexão sendo estabelecida redirecionando os descritores de arquivo. Seja cauteloso aqui porque
abrir uma porta e permitir que qualquer pessoa conectada execute um comando arbitrário em seu site é PERIGOSO.
Se você realmente precisa fazer isso, aqui está um exemplo:
No lado do 'servidor':
$ rm -f / tmp / f; mkfifo / tmp / f
$ cat / tmp / f | / Bin / sh -i 2> & 1 | nc -l 127.0.0.1 1234> / tmp / f
Do lado do 'cliente':
$ nc host.exemplo.com 1234
$ (prompt de shell de host.example.com)
Ao fazer isso, você cria um fifo em / tmp / fe faz nc escutar na porta 1234 do endereço
127.0.0.1 no lado do 'servidor', quando um 'cliente' estabelece uma conexão com sucesso a esse
porta, / Bin / sh é executado no lado do 'servidor' e o prompt do shell é fornecido para o lado do 'cliente'.
Quando a conexão é encerrada, nc sai também. Usar -k se você quiser continue ouvindo, mas
se o comando sair desta opção não irá reiniciá-lo ou mantê-lo nc correndo. Também não se esqueça de
remova o descritor de arquivo quando não precisar mais dele:
$ rm -f / tmp / f
DADOS TRANSFERÊNCIA
O exemplo da seção anterior pode ser expandido para construir um modelo básico de transferência de dados.
Qualquer informação inserida em uma extremidade da conexão será enviada para a outra extremidade, e
a entrada e a saída podem ser facilmente capturadas para emular a transferência de arquivos.
Comece usando nc para ouvir em uma porta específica, com a saída capturada em um arquivo:
$ nc -l 1234> filename.out
Usando uma segunda máquina, conecte-se ao sistema de escuta nc processo, alimentando-o com o arquivo que deve
ser transferido:
$ nc host.example.com 1234 <filename.in
Depois que o arquivo for transferido, a conexão será fechada automaticamente.
FALANDO TO SERVIDORES
Às vezes, é útil falar com os servidores “manualmente”, em vez de por meio de uma interface de usuário.
Pode ajudar na solução de problemas, quando pode ser necessário verificar quais dados um servidor está
envio em resposta a comandos emitidos pelo cliente. Por exemplo, para recuperar a casa
página de um site:
$ printf "GET / HTTP / 1.0 \ r \ n \ r \ n" | nc host.example.com 80
Observe que isso também exibe os cabeçalhos enviados pelo servidor da web. Eles podem ser filtrados,
usando uma ferramenta como sede(1), se necessário.
Exemplos mais complicados podem ser construídos quando o usuário conhece o formato das solicitações
exigido pelo servidor. Como outro exemplo, um e-mail pode ser enviado a um servidor SMTP
usando:
$ nc [-C] localhost 25 << EOF
HELO host.exemplo.com
MAIL DE:[email protegido]>
RCPT PARA:[email protegido]>
DADOS
Corpo do e-mail.
.
SAIR
EOF
PORT DIGITALIZAÇÃO
Pode ser útil saber quais portas estão abertas e serviços em execução em uma máquina de destino. o
-z bandeira pode ser usada para dizer nc para relatar portas abertas, em vez de iniciar uma conexão.
Normalmenteéútil ligar a saída detalhada para stderr usando esta opção em conjunto
com -v opção.
Por exemplo:
$ nc -zv host.exemplo.com 20-30
Conexão com host.example.com porta 22 [tcp / ssh] bem-sucedida!
Conexão com host.example.com 25 porta [tcp / smtp] bem-sucedida!
O intervalo de portas foi especificado para limitar a pesquisa às portas 20-30 e é verificado por
ordem crescente.
Você também pode especificar uma lista de portas a serem verificadas, por exemplo:
$ nc -zv host.exemplo.com 80 20 22
nc: conexão com host.example.com 80 (tcp) falhou: conexão recusada
nc: conexão com host.example.com 20 (tcp) falhou: conexão recusada
A conexão com a porta host.example.com [tcp / ssh] foi bem-sucedida!
As portas são verificadas de acordo com a ordem dada.
Como alternativa, pode ser útil saber qual software de servidor está sendo executado e quais
versões. Essas informações geralmente estão contidas nos banners de saudação. Em ordem de
recuperá-los, é necessário primeiro fazer uma conexão e, em seguida, interromper a conexão
quando o banner foi recuperado. Isso pode ser feito especificando um pequeno tempo limite
com o -w sinalizar, ou talvez emitindo um comando "QUIT" para o servidor:
$ echo "QUIT" | nc host.example.com 20-30
SSH-1.99-OpenSSH_3.6.1p2
Protocolo incompatível.
220 host.example.com Receptor IMS SMTP Versão 0.84 Pronto
EXEMPLOS
Abra uma conexão TCP para a porta 42 de host.example.com, usando a porta 31337 como a porta de origem,
com um tempo limite de 5 segundos:
$ nc -p 31337 -w 5 host.example.com 42
Abra uma conexão UDP para a porta 53 de host.example.com:
$ nc -u host.exemplo.com 53
Abra uma conexão TCP para a porta 42 de host.example.com usando 10.1.2.3 como o IP para o local
fim da conexão:
$ nc -s 10.1.2.3 host.exemplo.com 42
Crie e ouça em um soquete de stream de domínio UNIX:
$ nc -lU / var / tmp / dsocket
Conecte-se à porta 42 de host.example.com por meio de um proxy HTTP em 10.2.3.4, porta 8080. Este
exemplo também pode ser usado por ssh(1); Veja o Comando Proxy diretiva em ssh_config(5) para
Mais Informações.
$ nc -x10.2.3.4: 8080 -Xconnect host.example.com 42
O mesmo exemplo novamente, desta vez habilitando a autenticação de proxy com o nome de usuário “ruser” se o
o proxy exige:
$ nc -x10.2.3.4: 8080 -Xconnect -Pruser host.example.com 42
Use nc.openbsd online usando serviços onworks.net