* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* 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)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
**LM** está habilitado apenas no **Windows XP e no servidor 2003** (os hashes LM podem ser quebrados). O hash LM AAD3B435B51404EEAAD3B435B51404EE significa que o LM não está sendo usado (é o hash LM de uma string vazia).
Por padrão, o **Kerberos** é **usado**, portanto, o NTLM só será usado se **não houver nenhum Active Directory configurado**, o **Domínio não existir**, o **Kerberos não estiver funcionando** (configuração incorreta) ou o **cliente** que tenta se conectar usando o IP em vez de um nome de host válido.
Execute _secpol.msc_ -> Políticas locais -> Opções de segurança -> Segurança de rede: Nível de autenticação do LAN Manager. Existem 6 níveis (de 0 a 5).
4. O cliente **criptografa** o **desafio** usando o hash da senha como chave e o envia como resposta
5. O **servidor envia** para o **controlador de domínio** o **nome do domínio, o nome de usuário, o desafio e a resposta**. Se não houver um Active Directory configurado ou o nome do domínio for o nome do servidor, as credenciais são **verificadas localmente**.
O **servidor** e o **controlador de domínio** são capazes de criar um **Canal Seguro** via servidor **Netlogon**, pois o controlador de domínio conhece a senha do servidor (ela está dentro do banco de dados **NTDS.DIT**).
A autenticação é como a mencionada **anteriormente, mas** o **servidor** conhece o **hash do usuário** que tenta autenticar-se dentro do arquivo **SAM**. Portanto, em vez de perguntar ao controlador de domínio, o **servidor verificará por si mesmo** se o usuário pode autenticar-se.
O **hash NT (16 bytes)** é dividido em **3 partes de 7 bytes cada** (7B + 7B + (2B+0x00\*5)): a **última parte é preenchida com zeros**. Em seguida, o **desafio** é **cifrado separadamente** com cada parte e os bytes cifrados resultantes são **unidos**. Total: 8B + 8B + 8B = 24 bytes.
* Dado o **mesmo desafio**, a **resposta** será a **mesma**. Portanto, você pode fornecer como **desafio** à vítima a string "**1122334455667788**" e atacar a resposta usando **tabelas arco-íris pré-computadas**.
Atualmente, está se tornando menos comum encontrar ambientes com Delegação Irrestrita configurada, mas isso não significa que você não possa **abusar de um serviço de Spooler de Impressão** configurado.
Você pode abusar de algumas credenciais/sessões que já possui no AD para **solicitar que a impressora se autentique** em algum **host sob seu controle**. Em seguida, usando `metasploit auxiliary/server/capture/smb` ou `responder`, você pode **definir o desafio de autenticação como 1122334455667788**, capturar a tentativa de autenticação e, se ela for feita usando **NTLMv1**, você poderá **quebrá-la**.\
Se você estiver usando o `responder`, pode tentar **usar a flag `--lm`** para tentar **rebaixar** a **autenticação**.\
Observe que, para essa técnica, a autenticação deve ser feita usando NTLMv1 (NTLMv2 não é válido).
Lembre-se de que a impressora usará a conta de computador durante a autenticação, e as contas de computador usam senhas **longas e aleatórias** que você **provavelmente não conseguirá quebrar** usando dicionários comuns. Mas a autenticação **NTLMv1** usa DES ([mais informações aqui](./#ntlmv1-challenge)), então, usando alguns serviços especialmente dedicados a quebrar DES, você poderá quebrá-la (você pode usar [https://crack.sh/](https://crack.sh), por exemplo).
### Ataque NTLMv1 com hashcat
O NTLMv1 também pode ser quebrado com a ferramenta NTLMv1 Multi Tool [https://github.com/evilmog/ntlmv1-multi](https://github.com/evilmog/ntlmv1-multi), que formata as mensagens NTLMv1 de uma maneira que pode ser quebrada com o hashcat.
O NTLM (NT LAN Manager) é um protocolo de autenticação utilizado pelo Windows para autenticar usuários e permitir o acesso a recursos de rede. No entanto, o NTLM possui algumas vulnerabilidades que podem ser exploradas por hackers para obter acesso não autorizado.
Este guia aborda algumas técnicas de fortalecimento do NTLM que podem ser implementadas para aumentar a segurança do sistema Windows.
## Desabilitar o NTLMv1
O NTLMv1 é uma versão mais antiga do protocolo NTLM e é considerado inseguro devido às suas vulnerabilidades conhecidas. Recomenda-se desabilitar o NTLMv1 e permitir apenas o uso do NTLMv2, que é mais seguro.
Para desabilitar o NTLMv1, siga as etapas abaixo:
1. Abra o Editor de Política de Grupo digitando "gpedit.msc" no menu Iniciar.
2. Navegue até "Configuração do Computador" > "Configurações do Windows" > "Configurações de Segurança" > "Políticas Locais" > "Opções de Segurança".
3. Localize a política "Network security: LAN Manager authentication level" e clique duas vezes nela.
4. Selecione a opção "Enviar NTLMv2 response only" e clique em "OK".
## Configurar restrições de autenticação NTLM
Além de desabilitar o NTLMv1, é possível configurar restrições adicionais para fortalecer a autenticação NTLM. Essas restrições podem ajudar a mitigar ataques de força bruta e outros tipos de ataques.
Para configurar restrições de autenticação NTLM, siga as etapas abaixo:
1. Abra o Editor de Política de Grupo digitando "gpedit.msc" no menu Iniciar.
2. Navegue até "Configuração do Computador" > "Configurações do Windows" > "Configurações de Segurança" > "Políticas Locais" > "Opções de Segurança".
3. Localize a política "Network security: Restrict NTLM: Incoming NTLM traffic" e clique duas vezes nela.
4. Selecione a opção "Deny all accounts" e clique em "OK".
5. Localize a política "Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers" e clique duas vezes nela.
6. Selecione a opção "Deny all accounts" e clique em "OK".
Essas configurações ajudarão a restringir o uso do NTLM e fortalecer a segurança do sistema Windows contra ataques de autenticação.
## Conclusão
Implementar técnicas de fortalecimento do NTLM é essencial para proteger o sistema Windows contra ataques de autenticação. Desabilitar o NTLMv1 e configurar restrições de autenticação NTLM são medidas eficazes para aumentar a segurança do sistema e mitigar possíveis vulnerabilidades.
```
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
```
Execute o hashcat (distribuído é melhor através de uma ferramenta como hashtopolis), pois caso contrário, isso levará vários dias.
```
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
```
Neste caso, sabemos que a senha é password, então vamos trapacear para fins de demonstração:
NTLM (NT LAN Manager) is an authentication protocol used in Windows operating systems. It has been widely used in the past, but it is now considered outdated and insecure. This document provides guidance on hardening NTLM to improve the security of Windows systems.
## Disable NTLMv1
NTLMv1 is the older version of the NTLM protocol and is known to have security vulnerabilities. It is recommended to disable NTLMv1 and use NTLMv2 or Kerberos instead.
To disable NTLMv1, follow these steps:
1. Open the Group Policy Editor by typing `gpedit.msc` in the Run dialog box.
2. Navigate to `Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options`.
3. Locate the policy named `Network security: LAN Manager authentication level` and double-click on it.
4. Select the option `Send NTLMv2 response only. Refuse LM & NTLM` and click OK.
5. Restart the computer for the changes to take effect.
## Enable NTLMv2
NTLMv2 is an improved version of the NTLM protocol that provides stronger security. It is recommended to enable NTLMv2 and disable NTLMv1.
To enable NTLMv2, follow these steps:
1. Open the Group Policy Editor by typing `gpedit.msc` in the Run dialog box.
2. Navigate to `Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options`.
3. Locate the policy named `Network security: LAN Manager authentication level` and double-click on it.
4. Select the option `Send NTLMv2 response only. Refuse LM & NTLM` and click OK.
5. Restart the computer for the changes to take effect.
## Disable NTLMv2 Session Security
NTLMv2 Session Security is an extension of NTLMv2 that provides additional security features. However, it is vulnerable to certain attacks and is not recommended for use.
To disable NTLMv2 Session Security, follow these steps:
By following the steps outlined in this document, you can harden NTLM and improve the security of your Windows systems. It is important to keep your systems up to date and follow best practices for authentication protocols to protect against potential security vulnerabilities.
O seguinte é o conteúdo de um livro de hacking sobre técnicas de hacking. O seguinte conteúdo é do arquivo windows-hardening/ntlm/README.md. Traduza o texto em inglês relevante para o português e retorne a tradução mantendo exatamente a mesma sintaxe markdown e html. Não traduza coisas como código, nomes de técnicas de hacking, palavras de hacking, nomes de plataformas de nuvem/SaaS (como Workspace, aws, gcp...), a palavra 'leak', pentesting e tags markdown. Também não adicione nada além da tradução e da sintaxe markdown.
**A primeira resposta** é criada cifrando usando **HMAC\_MD5** a **string** composta pelo **cliente e o domínio** e usando como **chave** o **hash MD4** do **hash NT**. Em seguida, o **resultado** será usado como **chave** para cifrar usando **HMAC\_MD5** o **desafio**. Para isso, **um desafio do cliente de 8 bytes será adicionado**. Total: 24 B.
Se você tiver um **pcap que capturou um processo de autenticação bem-sucedido**, você pode seguir este guia para obter o domínio, nome de usuário, desafio e resposta e tentar quebrar a senha: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://research.801labs.org/cracking-an-ntlmv2-hash/)
Você precisa usar uma **ferramenta** que irá **realizar** a **autenticação NTLM usando** esse **hash**, **ou** você pode criar um novo **sessionlogon** e **injetar** esse **hash** dentro do **LSASS**, para que quando qualquer **autenticação NTLM seja realizada**, esse **hash será usado**. A última opção é o que o mimikatz faz.
Isso lançará um processo que pertencerá aos usuários que iniciaram o mimikatz, mas internamente no LSASS, as credenciais salvas são aquelas dentro dos parâmetros do mimikatz. Em seguida, você pode acessar recursos de rede como se fosse esse usuário (semelhante ao truque `runas /netonly`, mas você não precisa saber a senha em texto simples).
* **atexec.exe** (Nesse caso, você precisa especificar um comando, cmd.exe e powershell.exe não são válidos para obter um shell interativo)`C:\AD\MyTools\atexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local 'whoami'`
O comando `Invoke-WMIExec` é uma ferramenta poderosa que permite a execução remota de comandos em sistemas Windows usando o protocolo WMI (Windows Management Instrumentation). Essa técnica é particularmente útil durante testes de penetração, pois permite que um invasor execute comandos em um sistema remoto sem a necessidade de autenticação explícita.
Neste exemplo, o comando `net user` será executado no sistema com o endereço IP `192.168.0.100`, usando as credenciais do usuário `Administrator` com a senha `P@ssw0rd`. O resultado do comando será exibido no console.
> **Observação**: O uso indevido dessa técnica pode ser ilegal e violar a privacidade e a segurança de sistemas e redes. Certifique-se de obter a devida autorização antes de realizar qualquer teste de penetração.
O comando `Invoke-SMBClient` é uma ferramenta poderosa que permite interagir com o protocolo SMB (Server Message Block) em sistemas Windows. Ele pode ser usado para realizar várias operações, como autenticação, listagem de compartilhamentos, transferência de arquivos e execução remota de comandos.
O comando `Invoke-SMBEnum` é uma ferramenta poderosa que pode ser usada para enumerar informações sobre um servidor SMB (Server Message Block) em um ambiente Windows. Ele pode ser usado para identificar vulnerabilidades e configurações inseguras que podem ser exploradas por um invasor.
-`Target`: O endereço IP do servidor SMB que será enumerado.
-`Port` (opcional): A porta na qual o servidor SMB está escutando. O valor padrão é 445.
-`Credential` (opcional): As credenciais de autenticação a serem usadas para se conectar ao servidor SMB. Se não forem fornecidas, serão usadas as credenciais do usuário atual.
-`Verbose` (opcional): Exibe informações detalhadas durante a execução do comando.
O `Invoke-SMBEnum` realiza uma série de etapas para enumerar informações sobre o servidor SMB alvo. Ele verifica se o servidor SMB está acessível, identifica o sistema operacional do servidor, lista os compartilhamentos disponíveis, obtém informações sobre os usuários e grupos do domínio, e verifica se há configurações de segurança inadequadas, como a autenticação NTLMv1 habilitada.
##### Resultados
O `Invoke-SMBEnum` retorna uma série de informações sobre o servidor SMB alvo, incluindo o sistema operacional, os compartilhamentos disponíveis, os usuários e grupos do domínio, e quaisquer configurações de segurança inadequadas encontradas.
##### Considerações de segurança
É importante lembrar que o `Invoke-SMBEnum` é uma ferramenta de teste de penetração e deve ser usado apenas em ambientes controlados e com permissão adequada. O uso indevido dessa ferramenta pode ser ilegal e violar a privacidade e a segurança de terceiros.
Esta função é uma **combinação de todas as outras**. Você pode passar **vários hosts**, **excluir** alguns e **selecionar** a **opção** que deseja usar (_SMBExec, WMIExec, SMBClient, SMBEnum_). Se você selecionar **qualquer** um dos **SMBExec** e **WMIExec**, mas **não** fornecer nenhum parâmetro _**Command**_, ele apenas irá **verificar** se você tem **permissões suficientes**.
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* 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)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).