<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
Encontre vulnerabilidades que são mais importantes para que você possa corrigi-las mais rapidamente. O Intruder rastreia sua superfície de ataque, executa varreduras proativas de ameaças, encontra problemas em toda a sua pilha tecnológica, desde APIs até aplicativos da web e sistemas em nuvem. [**Experimente gratuitamente**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) hoje.
IPsec é a tecnologia mais comumente usada tanto para soluções de VPN empresarial de gateway para gateway (LAN para LAN) quanto de host para gateway (acesso remoto).
**IKE é um tipo de ISAKMP** (Internet Security Association Key Management Protocol) implementação, que é um framework para autenticação e troca de chaves. O IKE estabelece a associação de segurança (SA) entre dois pontos finais por meio de um processo de três fases:
* **Fase 1:** Estabelece um canal seguro entre 2 pontos finais usando uma Chave Pré-Compartilhada (PSK) ou certificados. Pode usar o modo principal (3 pares de mensagens) ou **modo agressivo**.
* **Fase 2:** Negocia os parâmetros para a segurança dos dados usando ESP e AH. Pode usar um algoritmo diferente do usado na fase 1 (Perfect Forward Secrecy (PFS)).
A configuração do IPSec pode ser preparada para aceitar apenas uma ou algumas transformações. Uma transformação é uma combinação de valores. **Cada transformação** contém um número de atributos como DES ou 3DES como o algoritmo de **criptografia**, SHA ou MD5 como o algoritmo de **integridade**, uma chave pré-compartilhada como o tipo de **autenticação**, Diffie-Hellman 1 ou 2 como o algoritmo de **distribuição de chaves** e 28800 segundos como o **tempo de vida**.
Então, a primeira coisa que você tem que fazer é **encontrar uma transformação válida**, para que o servidor possa se comunicar com você. Para fazer isso, você pode usar a ferramenta **ike-scan**. Por padrão, o Ike-scan funciona no modo principal e envia um pacote para o gateway com um cabeçalho ISAKMP e uma única proposta com **oito transformações dentro dela**.
Como você pode ver na resposta anterior, há um campo chamado **AUTH** com o valor **PSK**. Isso significa que a vpn está configurada usando uma chave pré-compartilhada (e isso é realmente bom para um pentester).\
* _**1 returned handshake; 0 returned notify:**_ Isso significa que o **alvo está configurado para IPsec e está disposto a realizar a negociação IKE, e uma ou mais das transformações que você propôs são aceitáveis** (uma transformação válida será mostrada na saída).
* _0 returned handshake; 1 returned notify:_ Os gateways VPN respondem com uma mensagem de notificação quando **nenhuma das transformações é aceitável** (embora alguns gateways não o façam, nesse caso, uma análise adicional e uma proposta revisada devem ser tentadas).
Então, neste caso, já temos uma transformação válida, mas se você estiver no 3º caso, então você precisa **forçar um pouco para encontrar uma transformação válida:**
Se a tentativa de força bruta não funcionou, talvez o servidor esteja respondendo sem apertos de mão, mesmo para transformações válidas. Nesse caso, você poderia tentar a mesma abordagem de força bruta, mas usando o modo agressivo:
A Cisco recomenda evitar especialmente os grupos DH 1 e 2. Os autores do artigo descrevem como é provável que **estados-nação possam descriptografar sessões IPsec negociadas usando grupos fracos via pré-computação de log discreto**. Os centenas de milhões de dólares gastos realizando pré-computação são amortizados por meio da descriptografia em tempo real de qualquer sessão usando um grupo fraco (1.024 bits ou menor).
Então, você pode usar o ike-scan para tentar **descobrir o fornecedor** do dispositivo. A ferramenta envia uma proposta inicial e para de retransmitir. Em seguida, ela **analisa** a **diferença de tempo** entre as **mensagens recebidas** do servidor e o padrão de resposta correspondente, o pentester pode identificar com sucesso o fornecedor do gateway VPN. Além disso, alguns servidores VPN usarão o **carga útil de ID do fornecedor (VID)** opcional com o IKE.
Para poder capturar o hash, você precisa de uma transformação válida que suporte o modo Aggressive e o ID correto (nome do grupo). Provavelmente você não saberá o nome do grupo válido, então terá que fazer força bruta.\
Se **nenhum hash for retornado**, então provavelmente este método de força bruta funcionará. **Se algum hash for retornado, isso significa que um hash falso será enviado de volta para um ID falso, então este método não será confiável** para forçar o ID. Por exemplo, um hash falso poderia ser retornado (isso acontece em versões modernas):
Se você descobriu uma transformação específica, adicione-a no comando ike-scan. E se você descobriu várias transformações, sinta-se à vontade para adicionar um novo loop para tentar todas elas (você deve tentar todas até que uma delas funcione corretamente).
Você pode usar o [dicionário do ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) ou [o do seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) de nomes de grupos comuns para forçá-los:
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) também utiliza o **ike-scan** para fazer força bruta em possíveis nomes de grupo. Ele segue seu próprio método para **encontrar um ID válido com base na saída do ike-scan**.
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) é uma ferramenta que pode ser usada para **fazer força bruta em IDs também**. Esta ferramenta irá **tentar explorar diferentes vulnerabilidades** que poderiam ser usadas para **distinguir entre um ID válido e um não válido** (pode haver falsos positivos e falsos negativos, por isso prefiro usar o método do ike-scan se possível).
* O **primeiro método** é fazer força bruta nos nomes de grupo **pesquisando** as informações de **Detecção de Pares Inativos DPD** dos sistemas Cisco (essas informações são apenas respondidas pelo servidor se o nome do grupo estiver correto).
* O **segundo método** disponível é **verificar o número de respostas enviadas para cada tentativa** porque às vezes mais pacotes são enviados quando o ID correto é usado.
* O **terceiro método** consiste em **procurar por "INFORMAÇÃO DE ID INVÁLIDO" em resposta a um ID incorreto**.
* Por fim, se o servidor não responder a nada às verificações, o **ikeforce** tentará fazer força bruta no servidor e verificar se, quando o ID correto é enviado, o servidor responde com algum pacote.\
Obviamente, o objetivo de fazer força bruta no ID é obter o **PSK** quando você tem um ID válido. Em seguida, com o **ID** e o **PSK**, você terá que fazer força bruta no XAUTH (se estiver habilitado).
Se você descobriu uma transformação específica, adicione-a no comando do ikeforce. E se você descobriu várias transformações, sinta-se à vontade para adicionar um novo loop para tentar todas elas (você deve tentar todas até que uma delas funcione corretamente).
Também é possível obter nomes de usuário válidos ao capturar a conexão entre o cliente VPN e o servidor, já que o primeiro pacote do modo agressivo contendo o ID do cliente é enviado em texto claro (do livro **Network Security Assessment: Know Your Network**)
Por fim, se você encontrou uma **transformação válida** e o **nome do grupo** e se o **modo agressivo for permitido**, então você pode facilmente obter o hash que pode ser quebrado:
Você pode usar **psk-crack**, **john** (usando [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py)) e **hashcat** para **quebrar** o hash:
A maioria das implementações usa **modo agressivo IKE com um PSK para realizar autenticação em grupo**, e **XAUTH para fornecer autenticação adicional do usuário** (via Microsoft Active Directory, RADIUS, ou similar). Dentro do **IKEv2**, **EAP substitui o XAUTH** para autenticar usuários.
Assim, você pode capturar os dados do login usando o _fiked_ e ver se há algum nome de usuário padrão (Você precisa redirecionar o tráfego IKE para o `fiked` para sniffing, o que pode ser feito com a ajuda de ARP spoofing, [mais informações](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). O Fiked atuará como um ponto final VPN e capturará as credenciais XAuth:
Também, usando IPSec tente fazer um ataque de MitM e bloquear todo o tráfego para a porta 500, se o túnel IPSec não puder ser estabelecido, talvez o tráfego seja enviado em texto claro.
Para forçar a **XAUTH** (quando você conhece um nome de grupo válido **id** e o **psk**), você pode usar um nome de usuário ou uma lista de nomes de usuários e uma lista de senhas:
No Kali, o **VPNC** é utilizado para estabelecer túneis IPsec. Os **perfis** devem estar localizados no diretório `/etc/vpnc/`. Você pode iniciar esses perfis usando o comando _**vpnc**_.
Os comandos e configurações a seguir ilustram o processo de configuração de uma conexão VPN com o VPNC:
Encontre vulnerabilidades que mais importam para que você possa corrigi-las mais rapidamente. O Intruder rastreia sua superfície de ataque, executa varreduras proativas de ameaças, encontra problemas em toda a sua pilha tecnológica, desde APIs até aplicativos da web e sistemas em nuvem. [**Experimente gratuitamente**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) hoje.
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).