COVIL HACKER

, ! .


» COVIL HACKER » Vulnerabilidades de aplicativos da Web » [Tutorial] SÉRIE SHELL REVERSA - O Básico (Parte 3) [Tutorial]


[Tutorial] SÉRIE SHELL REVERSA - O Básico (Parte 3) [Tutorial]

1 2 2

1

SÉRIE SHELL REVERSA - O Básico (Parte 3)
Saudações a todos os membros do HF,
estou apresentando a série reverse shell para todos que desejam aprender sobre o reverse shell em profundidade. Como eu e meu parceiro α¢ já escrevemos um livro - Hands On - Red Team Tactics que tem este capítulo, gostaríamos de expandir o horizonte para que todos possam aprender mais sobre reverse shells com diferentes cenários de casos.

Confira a primeira parte aqui: REVERSE SHELL SERIES - O Básico (Parte 1)
Confira a segunda parte aqui: REVERSE SHELL SERIES - O Básico (Parte 2)

No tutorial anterior, você aprendeu como começar com um shell reverso TCP básico e tudo o que acontece durante o processo de conexão em nível de pacote. Neste tutorial, focaremos no protocolo UDP e na obtenção de shells pelo protocolo de conexão UDP.
Neste tutorial, você aprenderá sobre:
​​[+] Aprendendo sobre o protocolo UDP
[+] Introdução ao shell UDP reverso
[+] Analisando shells reversos UDP usando o Wireshark

Aprendendo sobre o protocolo UDP

copiei descaradamente esta seção de:https://searchnetworking.techtarget.com/...m-Protocol

UDP (User Datagram Protocol) é um protocolo de comunicação usado principalmente para estabelecer conexões de baixa latência e tolerância a perdas entre aplicativos na Internet. Ele acelera as transmissões permitindo a transferência de dados antes que um acordo seja fornecido pela parte receptora. Como resultado, o UDP é benéfico em comunicações sensíveis ao tempo, incluindo voz sobre protocolo de Internet (VoIP), pesquisa de sistema de nome de domínio (DNS) e reprodução de vídeo ou áudio. O UDP é uma alternativa ao Transmission Control Protocol (TCP).

O UDP usa cabeçalhos ao empacotar dados de mensagem para transferência por conexões de rede. Os cabeçalhos UDP contêm um conjunto de parâmetros -- chamados campos -- definidos pelas especificações técnicas do protocolo.

O User Datagram Protocol tem atributos que o tornam benéfico para uso com aplicativos que podem tolerar perda de dados. Por exemplo:
[*] Ele permite que os pacotes sejam descartados e recebidos em uma ordem diferente da que foram transmitidos, tornando-o adequado para aplicações em tempo real onde a latência pode ser uma preocupação.
[*] Ele pode ser usado para protocolos baseados em transações, como DNS ou Network Time Protocol (NTP).
[*] Pode ser usado onde um grande número de clientes está conectado e onde a correção de erros em tempo real não é necessária, como jogos, conferência de voz ou vídeo e streaming de mídia.

Introdução ao shell UDP reverso

Como você já sabe, um protocolo UDP é um protocolo sem conexão, ou seja, não haverá um handshake de três vias ou uma comunicação de pacotes de retransmissão entre o servidor e o cliente. Devido à natureza não confiável deste protocolo, apenas alguns protocolos e serviços de rede selecionados usam o UDP como protocolo base em L4 (consulte a Camada 4 da Camada OSI). No entanto, a natureza não confiável desse protocolo o torna ainda mais rápido e eficiente que o TCP.

Ao falar sobre um shell reverso, o protocolo UDP pode ajudá-lo em situações difíceis em que você está preso a uma verificação de filtragem de saída na rede ou em um ambiente isolado de onde um shell reverso TCP externo está bloqueado. Existem alguns protocolos de rede, como NTP, DNS, DHCP, etc., que usam o protocolo UDP para comunicação. Como esses protocolos são exigidos pela rede para manutenção (SNMP, DHCP, etc.) e consultas (NNP, NTP, etc.), uma organização deve permitir que alguns protocolos baseados em UDP se conectem à rede externa . Usando essa porta de saída, podemos ignorar as restrições de filtragem de saída na rede e obter um shell reverso em nosso servidor.

Vamos entender usando as máquinas de exemplo. Os detalhes das máquinas são os seguintes:
Máquina do Atacante: 192.168.2.19
Servidor de destino: 192.168.2.12

Nota: Como ambas as máquinas estão na mesma rede, não precisamos fazer nenhum teste de saída ou encaminhamento de porta.

Para começar, podemos executar o ncat em nossa máquina invasora para escutar na porta 3131/udp a conexão de entrada da máquina alvo.

Na máquina alvo, vamos executar o comando com a opção -u para habilitar o suporte ao protocolo UDP durante a comunicação com a máquina atacante.

Se tudo correr bem, você verá uma conexão reversa em seu sistema (máquina invasora) com o shell de comando aberto.

Observação: como estamos apenas aprendendo o básico, não há Inspeção Profunda de Pacotes (DPI), firewall de hardware ou qualquer tipo de restrição de protocolo em vigor no momento.

Analisando UDP Reverse Shells usando Wireshark

Agora que você tem uma ideia básica de como obter um shell reverso (cmd.exe) sobre UDP, vamos nos aprofundar no nível do pacote para entender o que realmente aconteceu. Quando o comando for executado na máquina de destino, não haverá nenhum tipo de pacote de pré-conexão para iniciar a conexão. Você verá apenas os pacotes UDP com o banner cmd.exe nele. Sem SYNs, sem ACKs. Apenas dois pacotes com o banner dividido em dois devido ao CRLF.

Ao executar o comando 'whoami' neste shell reverso, você pode ver na captura de tela a seguir um pacote UDP (7 bytes) enviado da máquina invasora para a máquina alvo com o comando.

A saída para o comando executado é então enviada para a máquina atacante pelo alvo em um único pacote UDP (21 bytes)

Referências:
https://searchnetworking.techtarget.com/...m-Protocol
Espero que todos gostem. Em breve postarei uma parte bônus. Fique conectado e fique seguro! Felicidades ✌

0

2


» COVIL HACKER » Vulnerabilidades de aplicativos da Web » [Tutorial] SÉRIE SHELL REVERSA - O Básico (Parte 3) [Tutorial]


|