Translated ['network-services-pentesting/pentesting-smb.md'] to fr

This commit is contained in:
Translator 2023-11-05 15:39:08 +00:00
parent a9aa7cb347
commit cae0d0ee97

View file

@ -20,9 +20,9 @@
```
## Port 445
Alors que le port 139 est techniquement connu sous le nom de "NBT sur IP", le port 445 est "SMB sur IP". **SMB** signifie "Server Message Blocks". Server Message Block, dans le langage moderne, est également connu sous le nom de **Common Internet File System**. Le système fonctionne comme un protocole réseau de couche application principalement utilisé pour offrir un accès partagé aux fichiers, aux imprimantes, aux ports série et à d'autres types de communications entre les nœuds d'un réseau.
Alors que le port 139 est techniquement connu sous le nom de "NBT sur IP", le port 445 est "SMB sur IP". **SMB** signifie "Server Message Blocks". Server Message Block, dans le langage moderne, est également connu sous le nom de **Common Internet File System**. Le système fonctionne comme un protocole réseau de couche application principalement utilisé pour offrir un accès partagé à des fichiers, des imprimantes, des ports série et d'autres types de communications entre les nœuds d'un réseau.
Par exemple, sur Windows, SMB peut s'exécuter directement sur TCP/IP sans avoir besoin de NetBIOS sur TCP/IP. Comme vous l'avez souligné, cela utilisera le port 445. Sur d'autres systèmes, vous trouverez des services et des applications utilisant le port 139. Cela signifie que SMB fonctionne avec NetBIOS sur TCP/IP\*\*.\*\* (extrait d'[ici](https://www.thewindowsclub.com/smb-port-what-is-port-445-port-139-used-for))
Par exemple, sur Windows, SMB peut s'exécuter directement sur TCP/IP sans avoir besoin de NetBIOS sur TCP/IP. Cela utilisera, comme vous l'avez souligné, le port 445. Sur d'autres systèmes, vous trouverez des services et des applications utilisant le port 139. Cela signifie que SMB fonctionne avec NetBIOS sur TCP/IP\*\*.\*\* (extrait d'[ici](https://www.thewindowsclub.com/smb-port-what-is-port-445-port-139-used-for))
```
445/tcp open microsoft-ds Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
```
@ -37,7 +37,7 @@ Un serveur SMB peut fournir **des parties arbitraires de son système de fichier
Extrait du livre _**Network Security Assessment 3rd edition**_
Avec une session anonyme nulle, vous pouvez accéder au partage IPC$ et interagir avec les services exposés via des pipes nommés. L'utilitaire enum4linux dans Kali Linux est particulièrement utile ; avec lui, vous pouvez obtenir les informations suivantes :
Avec une session anonyme nulle, vous pouvez accéder au partage IPC$ et interagir avec les services exposés via des pipes nommés. L'utilitaire enum4linux dans Kali Linux est particulièrement utile ; avec celui-ci, vous pouvez obtenir les informations suivantes :
* Informations sur le système d'exploitation
* Détails du domaine parent
@ -47,7 +47,7 @@ Avec une session anonyme nulle, vous pouvez accéder au partage IPC$ et interagi
## Qu'est-ce que NTLM
Si vous ne savez pas ce qu'est NTLM ou si vous voulez savoir comment cela fonctionne et comment en abuser, vous trouverez très intéressante cette page sur **NTLM** où est expliqué **comment fonctionne ce protocole et comment en tirer parti** :
Si vous ne savez pas ce qu'est NTLM ou si vous souhaitez savoir comment cela fonctionne et comment en abuser, vous trouverez très intéressante cette page sur **NTLM** où est expliqué **comment fonctionne ce protocole et comment en tirer parti** :
{% content-ref url="../windows-hardening/ntlm/" %}
[ntlm](../windows-hardening/ntlm/)
@ -99,31 +99,23 @@ Pour rechercher des exploits sur Exploit-DB, vous pouvez visiter leur site web
### **Metasploit Framework**
Metasploit Framework is a powerful penetration testing tool that includes a vast collection of exploits, payloads, and auxiliary modules. It provides a comprehensive platform for testing the security of network systems and applications.
Metasploit Framework is a powerful penetration testing tool that includes a vast collection of exploits, payloads, and auxiliary modules. It provides a command-line interface and a graphical user interface (GUI) for performing various penetration testing tasks.
Metasploit Framework est un puissant outil de test de pénétration qui comprend une vaste collection d'exploits, de charges utiles et de modules auxiliaires. Il offre une plateforme complète pour tester la sécurité des systèmes et des applications réseau.
Le framework Metasploit est un puissant outil de test de pénétration qui comprend une vaste collection d'exploits, de charges utiles et de modules auxiliaires. Il offre une interface en ligne de commande et une interface utilisateur graphique (GUI) pour effectuer diverses tâches de test de pénétration.
To search for exploits using Metasploit Framework, you can use the `search` command followed by your keywords. This will search the Metasploit database for exploits that match your search criteria.
To search for exploits in Metasploit Framework, you can use the `search` command followed by your keywords. This will display a list of exploits that match your search criteria. You can then use the `use` command to select a specific exploit and the `show options` command to view and configure the required options for the selected exploit.
Pour rechercher des exploits à l'aide de Metasploit Framework, vous pouvez utiliser la commande `search` suivie de vos mots-clés. Cela permettra de rechercher dans la base de données de Metasploit les exploits correspondant à vos critères de recherche.
```plaintext
msf > search <keywords>
```
The search results will display the exploits that match your search criteria, along with relevant details such as the vulnerability description, affected software versions, and the exploit module name.
Les résultats de la recherche afficheront les exploits correspondant à vos critères de recherche, ainsi que des détails pertinents tels que la description de la vulnérabilité, les versions du logiciel concernées et le nom du module d'exploit.
Pour rechercher des exploits dans Metasploit Framework, vous pouvez utiliser la commande `search` suivie de vos mots-clés. Cela affichera une liste d'exploits correspondant à vos critères de recherche. Vous pouvez ensuite utiliser la commande `use` pour sélectionner un exploit spécifique et la commande `show options` pour afficher et configurer les options requises pour l'exploit sélectionné.
### **Exploit Development**
In addition to searching for existing exploits, you can also develop your own exploits to target specific vulnerabilities. Exploit development involves identifying and understanding the vulnerability, analyzing the target system, and creating an exploit that can leverage the vulnerability to gain unauthorized access or perform other malicious actions.
In addition to searching for existing exploits, you can also develop your own exploits to target specific vulnerabilities. Exploit development involves identifying and understanding the vulnerability, analyzing the target software or service, and creating an exploit that can leverage the vulnerability to gain unauthorized access or perform other malicious actions.
En plus de rechercher des exploits existants, vous pouvez également développer vos propres exploits pour cibler des vulnérabilités spécifiques. Le développement d'exploits consiste à identifier et comprendre la vulnérabilité, analyser le système cible et créer un exploit qui peut exploiter la vulnérabilité pour obtenir un accès non autorisé ou effectuer d'autres actions malveillantes.
En plus de rechercher des exploits existants, vous pouvez également développer vos propres exploits pour cibler des vulnérabilités spécifiques. Le développement d'exploits consiste à identifier et comprendre la vulnérabilité, analyser le logiciel ou le service ciblé, et créer un exploit qui peut exploiter la vulnérabilité pour obtenir un accès non autorisé ou effectuer d'autres actions malveillantes.
Exploit development requires advanced knowledge of programming languages, system internals, and vulnerability analysis techniques. It is a complex and time-consuming process that requires careful testing and validation to ensure the exploit works as intended.
Exploit development requires a deep understanding of programming languages, software architecture, and vulnerability analysis techniques. It is a complex and advanced skill that requires extensive knowledge and experience in the field of cybersecurity.
Le développement d'exploits nécessite une connaissance avancée des langages de programmation, des systèmes internes et des techniques d'analyse de vulnérabilités. C'est un processus complexe et chronophage qui nécessite des tests et une validation minutieux pour s'assurer que l'exploit fonctionne comme prévu.
Le développement d'exploits nécessite une compréhension approfondie des langages de programmation, de l'architecture logicielle et des techniques d'analyse des vulnérabilités. C'est une compétence complexe et avancée qui nécessite une connaissance approfondie et une expérience dans le domaine de la cybersécurité.
```bash
msf> search type:exploit platform:windows target:2008 smb
searchsploit microsoft smb
@ -219,15 +211,15 @@ It is always recommended to look if you can access to anything, if you don't hav
```bash
```markdown
smbclient --no-pass -L //<IP> # Utilisateur nul
## smbclient --no-pass -L //<IP> # Utilisateur nul
smbclient -U 'nom_utilisateur[%mot_de_passe]' -L [--pw-nt-hash] //<IP> # Si vous omettez le mot de passe, il sera demandé. Avec --pw-nt-hash, le mot de passe fourni est le hachage NT
smbmap -H <IP> [-P <PORT>] # Utilisateur nul
## smbmap -H <IP> [-P <PORT>] # Utilisateur nul
smbmap -u "nom_utilisateur" -p "mot_de_passe" -H <IP> [-P <PORT>] # Identifiants
smbmap -u "nom_utilisateur" -p "<NT>:<LM>" -H <IP> [-P <PORT>] # Pass-the-Hash
smbmap -R -u "nom_utilisateur" -p "mot_de_passe" -H <IP> [-P <PORT>] # Liste récursive
crackmapexec smb <IP> -u '' -p '' --shares # Utilisateur nul
## crackmapexec smb <IP> -u '' -p '' --shares # Utilisateur nul
crackmapexec smb <IP> -u 'nom_utilisateur' -p 'mot_de_passe' --shares # Utilisateur invité
crackmapexec smb <IP> -u 'nom_utilisateur' -H '<HACHAGE>' --shares # Utilisateur invité
```
@ -300,11 +292,23 @@ examples
### smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME
La commande `smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here` renvoie NT_STATUS_BAD_NETWORK_NAME.
Ce command permet de se connecter à un partage SMB sur l'adresse IP 192.168.0.24 avec l'utilisateur anonyme ('%') et sans mot de passe ('-N'). Dans cet exemple, nous essayons de nous connecter au partage nommé 'im_clearly_not_here'. Cependant, la commande retourne l'erreur NT_STATUS_BAD_NETWORK_NAME, ce qui indique que le nom du partage est incorrect ou n'existe pas.
### smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session
La commande `smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$` renvoie NT_STATUS_ACCESS_DENIED ou peut même vous donner une session.
Ce command permet également de se connecter à un partage SMB sur l'adresse IP 192.168.0.24 avec l'utilisateur anonyme ('%') et sans mot de passe ('-N'). Dans cet exemple, nous essayons de nous connecter au partage ADMIN$. Cependant, la commande retourne l'erreur NT_STATUS_ACCESS_DENIED, ce qui indique que nous n'avons pas les autorisations nécessaires pour accéder à ce partage. Cependant, dans certains cas, cette commande peut donner accès à une session sur le partage ADMIN$.
```
```html
<h2>Pentesting SMB</h2>
<h3>smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME</h3>
<p>Ce command permet de se connecter à un partage SMB sur l'adresse IP 192.168.0.24 avec l'utilisateur anonyme ('%') et sans mot de passe ('-N'). Dans cet exemple, nous essayons de nous connecter au partage nommé 'im_clearly_not_here'. Cependant, la commande retourne l'erreur NT_STATUS_BAD_NETWORK_NAME, ce qui indique que le nom du partage est incorrect ou n'existe pas.</p>
<h3>smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session</h3>
<p>Ce command permet également de se connecter à un partage SMB sur l'adresse IP 192.168.0.24 avec l'utilisateur anonyme ('%') et sans mot de passe ('-N'). Dans cet exemple, nous essayons de nous connecter au partage ADMIN$. Cependant, la commande retourne l'erreur NT_STATUS_ACCESS_DENIED, ce qui indique que nous n'avons pas les autorisations nécessaires pour accéder à ce partage. Cependant, dans certains cas, cette commande peut donner accès à une session sur le partage ADMIN$.</p>
```
```
@ -378,7 +382,7 @@ Assurez-vous d'exécuter cette commande avec les privilèges appropriés et de r
sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares'
```
Ce commandement exécute l'outil `crackmapexec` en utilisant le protocole SMB pour scanner l'adresse IP `10.10.10.10`. Les options `-u` et `-p` spécifient le nom d'utilisateur et le mot de passe respectivement. L'option `-M` indique l'utilisation du module `spider_plus`. Enfin, l'option `--share` spécifie le partage SMB à cibler, qui est "Department Shares" dans ce cas.
Ce commandement exécute l'outil `crackmapexec` en utilisant le protocole SMB pour scanner l'adresse IP `10.10.10.10`. Les options `-u` et `-p` spécifient le nom d'utilisateur et le mot de passe respectivement. L'option `-M` indique l'utilisation du module `spider_plus`. Enfin, l'option `--share` spécifie le partage nommé "Department Shares".
```
Specially interesting from shares are the files called **`Registry.xml`** as they **may contain passwords** for users configured with **autologon** via Group Policy. Or **`web.config`** files as they contains credentials.
@ -393,11 +397,19 @@ You should **check** the **scripts** inside of it as you might **find** sensitiv
You may be able to **read the registry** using some discovered credentials. Impacket **`reg.py`** allows you to try:
```bash
```
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKCU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKLM -s
```
```
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKCU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKLM -s
```
```
## Post Exploitation
The **default config of** a **Samba** server is usually located in `/etc/samba/smb.conf` and might have some **dangerous configs**:
@ -601,9 +613,9 @@ Similar to SMB Trapping, planting malicious files onto a target system (via SMB,
## HackTricks Automatic Commands
```
Protocol_Name: SMB #Protocol Abbreviation if there is one.
Port_Number: 137,138,139 #Comma separated if there is more than one.
Protocol_Description: Server Message Block #Protocol Abbreviation Spelled out
Protocol_Name: SMB #Abréviation du protocole s'il y en a une.
Port_Number: 137,138,139 #Séparés par des virgules s'il y en a plusieurs.
Protocol_Description: Server Message Block #Abréviation du protocole écrite en toutes lettres
Entry_1:
Name: Notes
@ -654,7 +666,7 @@ Command: nmap -p 139,445 -vv -Pn --script=smb-vuln-cve2009-3103.nse,smb-vuln-ms0
Entry_4:
Name: Nmap Smb Scan 2
Description: Analyse de vulnérabilité SMB avec Nmap (Moins spécifique)
Command: nmap --script smb-vuln* -Pn -p 139,445 {IP}
Command: nmap --script 'smb-vuln*' -Pn -p 139,445 {IP}
Entry_5:
Name: Hydra Brute Force