NetCat

De Biblioteca Unix

Conteúdo

Netcat

Sobre

O Netcat é um serviço para leitura e escrita de conexões de rede utilizando TCP ou UDP. É possível utilizado de forma simples como um serviço de rede em scripts e suas funcionalidades internas permitem as mais variadas combinações de operações.

Ambiente

O ambiente que utilizaremos é o seguinte:

  • Servidor de Origem</strong>: 192.168.1.1
  • Servidor de Destino</strong>: 192.168.1.2
  • Partição a ser copiada do servidor de Origem: /dev/sda1
  • No servidor de destino poderíamos ter tando um arquivo quanto um disco como destino, vamos usar um arquivo

Onde:

 SERVIDOR_ORIGEM (/dev/sda1) ==> SERVIDOR_DESTINO (/mnt/arquivo.img)


Debian Squeeze 6.0

Instalando os Pacotes Necessários

A instalação do NetCat é simples, basta baixar o seu pacote:

# apt-get install netcat

com isso o comando nc estará disponível no sistema.

Copiando um disco pela rede

Esta prática é muito utilizada para análise forense, pois precisamos analisar os dados do disco de um computador sem "contaminar" as evidências. Por isso copiamos o disco antes de realizamos as atividades forenses nele.

O primeiro passo é executar o comando abaixo no servidor Destino:

# nc -p 2000 -l | dd of=/mnt/arquivo.img

este comando vai fazer com que o servidor de Destino escute (-l) na porta 2000 (-p) e a saída deve ser enviada para o comando dd, que vai escrever de fato no arquivo. No servidor de Origem, depois de já termos o comando executando no servidor de Destino, temos que executar o comando que vai enviar de fato os dados do disco:

# cat /dev/sda1 | nc 192.168.1.1 -p 2000

Pronto, o comando cat vai enviar todos os dados para o comando nc que irá enviar a saída para o servidor de Destino.

Esta é a forma mais rápida, porém menos eficiente, o ideal é utilizar comandos como Gzip e Bzip2 para comprimir e enviar somente o necessário pela rede.

Otimizando a cópia com compressão

Para otimizar os comandos anteriores poderíamos utilizar o Gzip da seguinte forma, começando novamente pelo servidor Destino:

# nc -p 2000 -l | gzip -d | dd of=/mnt/arquivo.img bs=16M

e no servidor de Origem:

# gzip -c /dev/sda1 | nc 192.168.1.1 -p 2000

que agora vai comprimir antes de enviar e depois descomprimir no destino, eu prefiro usar o Gzip ao Bzip2, pois o primeiro tem uma boa taxa de compressão e consome menos recursos. Só para esclarecer, neste segundo exemplo o parâmetro bs foi utilizado para aproveitar melhor o esquema de cache do disco e isso reduz o tempo de cópia de grandes discos violentamente.


--Brivaldo 11h18min de 21 de julho de 2011 (AMT)

Ferramentas pessoais