<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Participe do grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou do grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) no github.
Algumas impressoras têm trabalhos de impressão armazenados acessíveis pelo servidor web. Geralmente, no entanto, a retenção de trabalhos deve ser explicitamente ativada para um determinado trabalho de impressão e pode ser feita usando comandos PJL padrão ou código PostScript proprietário. Os trabalhos são então mantidos na memória e podem ser reimpressos a partir do painel de controle.
Trabalhos em espera são mantidos na memória e podem ser reimpressos a partir do painel de controle da impressora. Esta funcionalidade é suportada por várias impressoras, no entanto, parece que apenas alguns dispositivos Epson permitem que a retenção permanente de trabalhos seja configurada usando `@PJL DEFAULT HOLD=ON`.
Use o comando `hold` do [**PRET**](https://github.com/RUB-NDS/PRET) no modo pjl para verificar se a retenção permanente de trabalhos pode ser configurada:
PostScript oferece funcionalidades similares que, no entanto, são específicas do modelo e do fabricante. Para a série HP LaserJet 4k e várias impressoras Kyocera, a retenção de trabalhos pode ser ativada ao adicionar os seguintes comandos no início de um documento PostScript:
Enquanto é teoricamente possível habilitar permanentemente a retenção de trabalhos PostScript usando o operador [startjob ](./#postscript-ps), essa configuração é explicitamente redefinida pelo CUPS no início de cada trabalho de impressão usando `<< /Collate false >> setpagedevice`. No entanto, para contornar esse mecanismo de proteção, o atacante pode redefinir permanentemente o operador `setpagedevice` para que não tenha efeito algum.
É possível, embora incomum, ativar a retenção de trabalho no diálogo de impressão, como discutido acima. Com PostScript, no entanto, tem-se acesso completo ao trabalho de impressão atual e, com o operador [startjob](./#postscript-ps), é até possível sair do loop do servidor e acessar trabalhos futuros. Tal funcionalidade tem o potencial de capturar todos os documentos se PostScript for usado como um driver de impressora.
Com a capacidade de se conectar a operadores PostScript arbitrários, é possível manipular e acessar trabalhos de impressão de terceiros. Para **analisar o fluxo de dados real enviado para a impressora**, pode-se aplicar um recurso muito interessante da linguagem PostScript: ler seu próprio código de programa como dados usando o operador `currentfile`. Dessa forma, todo o fluxo de dados a ser processado pelo interpretador PostScript pode ser acessado pela leitura e armazenado em um arquivo no dispositivo de impressão. Se a impressora não oferecer acesso ao sistema de arquivos, **documentos capturados podem ser armazenados na memória**, por exemplo, dentro de dicionários PostScript permanentes. \
Um problema prático é decidir **qual operador deve ser interceptado**, pois não se tem acesso ao fluxo de dados até que esse operador seja processado pelo interpretador PostScript. Como o atacante deseja capturar trabalhos de impressão desde o início, o **operador redefinido deve ser o primeiro operador** contido no documento PostScript. Felizmente, todos os documentos impressos com CUPS têm uma estrutura fixa que começa com `currentfile /ASCII85Decode filter /LZWDecode filter cvx exec`. Com base na suposição de tal estrutura fixa, o atacante pode capturar documentos desde o início e executar (ou seja, imprimir) o arquivo posteriormente. Para sistemas de impressão **diferentes de CUPS**, esse ataque também deve ser possível, mas **os operadores precisam ser adaptados**. Observe que o cabeçalho PostScript, que geralmente inclui tamanho de mídia, nomes de usuário e de trabalho, não pode ser capturado usando este método porque primeiro nos conectamos no início do documento real. Outra estratégia genérica para se conectar no início de cada trabalho de impressão é definir o parâmetro do sistema `BeginPage`, se suportado pela impressora (a maioria das impressoras suporta). Essa vulnerabilidade provavelmente está presente em dispositivos de impressão há décadas, pois apenas construções de linguagem definidas pelo padrão PostScript são exploradas.
Agora, imprima documentos arbitrários (certifique-se de que o PRET esteja desconectado para não bloquear o canal de impressão). Posteriormente, você pode listar, buscar ou reimprimir documentos capturados:
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).