Índice:
- Etapa 1: como começamos?
- Etapa 2: vamos começar
- Etapa 3: Criação de uma conexão
- Etapa 4: vamos enviar algum conteúdo
- Etapa 5: Vamos ter uma conexão aberta
- Etapa 6: Conclusão
Vídeo: Netcat em Python: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
O que é netcat? A página de manual para netcat diz o seguinte: "o utilitário nc (ou netcat) é usado para quase tudo que envolve soquetes de domínio TCP, UDP ou UNIX. Ele pode abrir conexões TCP, enviar pacotes UDP, ouvir arbitrariamente Portas TCP e UDP, fazem a varredura de portas e lidam com IPv4 e IPv6. Ao contrário de telnet (1), scripts nc muito bem e separa mensagens de erro em erro padrão em vez de enviá-las para a saída padrão, como telnet (1) faz com alguns"
Em essência, o netcat permite que você se conecte a outros servidores usando o protocolo TCP ou UDP. TCP significa Protocolo de Controle de Transmissão e é orientado a conexões. UDP significa Universal Datagram Protocol e não tem conexão. O TCP é comumente usado para aplicativos da Internet, enquanto o UDP é usado para streaming de mídia ou VPNs.
Etapa 1: como começamos?
Acima é como o netcat é chamado. Você pode ver que há dois argumentos no final chamados "destino" e "porta". O destino se refere a um nome de host ou endereço IP do servidor ao qual estamos tentando nos conectar, enquanto a porta se refere à porta do servidor ao qual estamos tentando nos conectar.
Etapa 2: vamos começar
Acima está algum código python inicial. Como você pode ver, queremos processar os argumentos do programa da mesma forma que o utilitário real o faz. O nome do host será o primeiro argumento após o nome do executável, enquanto a porta será o segundo argumento após o nome do executável na linha de comando.
Etapa 3: Criação de uma conexão
Vamos criar uma função netcat que possamos usar. O que estamos basicamente fazendo aqui é criar um soquete e conectar ao servidor usando os parâmetros fornecidos. Para o comando netcat, os parâmetros atuais são o nome do host e a porta do servidor ao qual estamos tentando nos conectar. O socket contém os parâmetros "socket. AF_INET" e "socket. SOCK_STREAM" porque estamos padronizando para uma conexão TCP para este tutorial.
Etapa 4: vamos enviar algum conteúdo
Estendemos nossa função netcat para receber um terceiro parâmetro, "conteúdo". Há muito conteúdo aqui, então vamos dividi-lo por número de linha.
Linha 14-16: enviamos todo o conteúdo pelo soquete, esperamos um pouco e fechamos o soquete para todos os dados de saída para que o soquete saiba que não há mais dados chegando.
Linha 18-26: criamos um buffer para armazenar a resposta do servidor e, enquanto o soquete está recebendo dados, acrescentamos até 1024 bytes de dados ao resultado, desde que haja dados para ler.
Linha 28-29: queremos que essa conexão netcat seja uma conexão única, portanto, declaramos a conexão fechada e, em seguida, fechamos a conexão.
Linha 31: Esta é uma solicitação HTTP padrão. Se você executar o código com os argumentos de linha de comando "google.com" e "80", verá uma resposta HTTP adequada
Etapa 5: Vamos ter uma conexão aberta
O código acima (localizado abaixo do código da seção anterior) simplesmente nos permite executar vários comandos netcat em uma conexão pseudo-aberta. (Na realidade, cada vez que você executa um comando, ele abre e fecha uma nova conexão TCP, portanto, não emula verdadeiramente o comportamento do netcat, estamos simplesmente fazendo isso para fins de aprendizagem). Vamos dividir isso linha por linha também:
Linha 31: Queremos ler comandos indefinidamente para manter a "interatividade"
Linha 32: Este é o nosso buffer que armazenará o conteúdo da nossa solicitação
Linha 36-45: Leremos no buffer até lermos uma linha vazia
Linha 48: simplesmente chamamos nossa função netcat com o nome do host, a porta e o conteúdo recém-criado (que está devidamente codificado)
Linha 50: se o conteúdo do nosso buffer contiver "Connection: Close" (indicando que queremos encerrar a conexão), simplesmente sairemos do loop
Etapa 6: Conclusão
No final deste tutorial, você deve ter uma implementação mínima de netcat funcional. Vou deixar como um exercício para o usuário implementar recursos como:
1. apoiar outros protocolos
2. corrigir o código para não fechar a conexão todas as vezes
3. adicionar sinalizadores que o netcat já possui para modificar o comportamento
Recomendado:
Sincronizando pastas com Python: 5 etapas
Sincronizando Pastas com Python: Este instrutível mostrará como manter duas pastas (e todas as pastas dentro delas) em sincronia para que uma seja uma cópia direta da outra. Ideal para backup de trabalho localmente, para um servidor de nuvem / rede ou uma unidade USB. Nenhuma experiência com programação é n
Jogo Python Tic Tac Toe: 4 etapas
Jogo Python Tic Tac Toe: jogo python tic tac toe este jogo é feito em python que é uma linguagem de computador eu usei um editor python chamado: pycharm você também pode usar o editor de código python normal também
Atendente Automático Com Python No Google Colab: 5 etapas
Atendente Automático Com Python No Google Colab: Olá pessoal! Tudo bem? Meu nome é Guilherme, Nesse projeto nós vamos aprender como criar um ChatBot usando uma Linguagem de programação Python e o Google Colab! Sou aluno da https://orbe.ai/ - Escola de Inteligência Artificial Infinita e esse projeto
Netcat Fun !: 5 etapas
Netcat Fun !: Este instrutivo mostra como criar um backdoor em um computador com netcat! Mostrarei duas maneiras de fazer isso, com e sem meu arquivo em lote que o automatiza para você. Este instrutível já assume que você já obteve permissão de root
Mais diversão com o Netcat !!: 4 etapas
Mais diversão com o Netcat !!: Agora, se você ainda não leu o guia da fita adesiva para backdoors do Netcat, leia-o e venha aqui. Este Instructable descreve os comandos básicos do netcat e como usá-los. Ele também aborda alguns comandos de lote básicos