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
CVE-2024-44193 — Hackeando Windows através do iTunes  - Escalação de Privilégios Local 0-day | Kitploit
Ferramentas/GitHubGitHub/mbog14/cve-2024-44193
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoPapers e PesquisaAprendizado e EducaçãoExploração de Binários
GitHubmbog14/cve-2024-44193

CVE-2024-44193

Hackeando Windows através do iTunes  - Escalação de Privilégios Local 0-day

Ver Repositório
98155há 1 anoRevisado 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

Hackeando o Windows através do iTunes  - Escalação de Privilégio Local 0-day

Apresentando a CVE-2024–44193

Este é um write-up sobre a CVE-2024–44193, que é um exploit de Escalação de Privilégio Local no iTunes versão 12.13.2.3.

Foi corrigido em 12 de setembro de 2024 pela Apple. Link para o Advisory de Segurança da Apple: Advisory de Segurança da Apple

O iTunes versão 12.13.2.3 instala o Apple Device Discovery Service: C:\Program Files\Common Files\Apple\Mobile Device Support\AppleMobileDeviceService.exe, que é vulnerável a um exploit de Escalação de Privilégio Local.

TL;DR

Em respeito e compreensão para aqueles que não se importam com mais um write-up mal escrito e provavelmente longo demais, aqui está a versão curta:

A vulnerabilidade é possibilitada devido à má gestão das permissões de usuário no caminho C:\ProgramData\Apple\*. Isso permite que membros do Grupo Local "Usuários" escrevam arquivos arbitrários nesse caminho. Quando o serviço AppleMobileDeviceService.exe é reiniciado, o que pode ser acionado por um usuário sem privilégios, uma primitiva de exclusão arbitrária de pasta/arquivo pode ser armada para obter execução arbitrária de código no sistema com privilégios de SYSTEM.

Ferramentas:

Aviso! Explicações medíocres de ferramentas a seguir.

Pule esta seção se você já está familiarizado com as ferramentas.

  • Oplock

SetOpLock

A ferramenta Oplock é uma ferramenta para usar um “bloqueio oportunista” no Windows. A ferramenta nos permite “pausar” um processo ao bloquear um arquivo até que certos requisitos sejam satisfeitos; no entanto, também pode ser usada para “pausar” um processo com propósitos maliciosos, como ganhar tempo suficiente para que nosso payload de exploit seja executado.

  • FolderContentsDeleteToFolderDelete

FilesystemEoPs

A ferramenta FolderContentsDeleteToFolderDelete funciona criando automaticamente uma pasta com um arquivo dentro. Um oplock é então definido no arquivo para pausar o processo. Quando o processo é pausado, o arquivo é movido para fora da pasta. A pasta é então excluída e recriada como uma junção NTFS para um destino. Quando o oplock é cancelado, e o processo continua, a exclusão do arquivo/pasta segue a junção NTFS recém-criada até o destino e exclui esse arquivo antes de continuar a execução.

  • FolderOrFileDeleteToSystem

FilesystemEoPs

Esta ferramenta provavelmente é melhor explicada pela Zero Day Initiative, então aqui está um link para uma explicação direto deles:

Abusando de Exclusões Arbitrárias de Arquivos para Escalar Privilégios e Outros Grandes Truques

O write-up propriamente dito

Introdução ao serviço vulnerável AppleMobileDeviceService.exe

Quando o iTunes é instalado, ele também instala um serviço: AppleMobileDeviceService.exe, que executa com privilégios de SYSTEM. Quando investiguei esse serviço usando o Windows Sysinternals Process Monitor (Procmon), imediatamente notei um comportamento preocupante.

O serviço percorre recursivamente todos os arquivos dentro do caminho C:\ProgramData\Apple\Lockdown\* e exclui todas as pastas e arquivos que não pertencem àquele local.

Para testes locais, usei o ProcessHacker2 para reiniciar o serviço à força, a fim de inspecionar o comportamento do programa. O comportamento observado foi que o serviço executando como SYSTEM consulta o diretório e todos os subdiretórios internos e, em seguida, executa a operação CreateFile com a opção Delete On Close habilitada, o que significa que o serviço SYSTEM consulta o caminho C:\ProgramData\Apple\Lockdown\* e consulta recursivamente as subpastas e arquivos dentro desse diretório e os exclui.

Alt text

Privilégios de usuário problemáticos no caminho: C:\ProgramData\Apple\*

Windows Sysinternals https://learn.microsoft.com/en-us/sysinternals/ accesschk64.exe pode ser usado para verificar os direitos de acesso em pastas específicas. Membros do Grupo Local "Usuários" têm permissões de escrita na pasta C:\ProgramData\Apple\Lockdown\, o que permite que usuários com poucos privilégios escrevam arquivos arbitrários dentro da pasta.

Alt text

Primitiva de exclusão arbitrária de arquivo/pasta

Como podemos escrever arquivos arbitrários dentro do caminho Lockdown, e o processo SYSTEM os excluirá quando o serviço for reiniciado, foi possível criar uma primitiva de exclusão arbitrária de arquivo/pasta. Para ilustrar isso, crio duas subpastas dentro da pasta Lockdown. Subpasta a, e subpasta b dentro da subpasta a. Isso vai ficar assim: C:\ProgramData\Apple\Lockdown\a\b

Dentro da subpasta a há um arquivo de texto chamado aa.txt e dentro da subpasta b há um arquivo de texto chamado bb.txt

C:\ProgramData\Apple\Lockdown\a\aa.txt

C:\ProgramData\Apple\Lockdown\a\b\bb.txt

Alt text

Como pode ser visto na captura de tela acima, a operação "CreateFile" está sendo executada com a opção "Delete On Close" em aa.txt, excluindo-o.

Quando o processo SYSTEM executa a operação CreateFile em aa.txt e bb.txt com a opção Delete On Close nos arquivos, o processo SYSTEM AppleMobileDeviceService.exe excluirá os arquivos. Agora é possível para nós criar arquivos arbitrários dentro da pasta Lockdown e excluí-los, o que nos leva ao próximo truque interessante.

Junções NTFS

No Windows, é possível usar junções NTFS para direcionar uma pasta para outro lugar. De certa forma, isso é semelhante a symlinks no Linux. Para ilustrar isso, é possível criar uma junção NTFS (symlink) dentro da pasta C:\ProgramData\Apple\Lockdown apontando para uma pasta na Área de Trabalho. Você pode fazer isso sozinho usando o PowerShell New-Item -Type Junction -Path whatever -Target "C:\Users\user\Desktop\AAyes", ou simplesmente usar o conjunto de ferramentas oferecido pela ZDI:

FilesystemEoPs

Execute o seguinte comando para apontar uma junção NTFS dentro da pasta Lockdown para "Target" na Área de Trabalho.

root@kitploit:~
.\FolderContentsDeleteToFolderDelete.exe /target "C:\Users\user\Desktop\AAyes" /initial "C:\ProgramData\Apple\Lockdown"

Quando o Serviço é reiniciado, a junção NTFS recém-criada apontará para AAyes localizado na Área de Trabalho. Como o Serviço executa a operação CreateFile com a opção Delete On Close como SYSTEM, o arquivo será excluído. Como a operação é executada com privilégios de SYSTEM, temos uma primitiva de exclusão arbitrária de pasta ou arquivo, o que significa que podemos obter execução de código no host como SYSTEM.

Alt text

NOTA:

Foi necessário fazer certas edições no código-fonte do projeto FolderContentsDeleteToFolderDelete devido a restrições de nomes de arquivo / nomes de pasta. Os nomes de arquivo / nomes de pasta tiveram que ser muito curtos para que a exclusão ocorresse. A razão por trás disso é desconhecida e não foi investigada, pois nomes curtos resolveram o problema de forma confiável.

Edições no código-fonte do FolderContentsDeleteToFolderDelete:

root@kitploit:~
const wchar_t folder2path[] = L"C:\\d";
const wchar_t exploitFileName[] = L"e.txt";

// It was required to shorten the two consstants: “folder2path” and “exploitFileName”
// They where changed to: L"C:\\d" and L"e.txt" because it seemed that file and folder name length had a meaningful impact on exploit functionality.

[...]

// We also needed to edit the “folder1path” value to L”c” in order to shorten it.
folder1path += L"c";

Tese da exploração

Como o serviço seguirá recursivamente quaisquer junctions (symlinks), a tese era que seria possível excluir arquivos arbitrariamente no sistema como SYSTEM usando o serviço vulnerável da Apple, que seguirá a junção NTFS. Como o serviço vulnerável convenientemente permite que usuários sem privilégios reiniciem o serviço usando o truque ("Aplicativos -> Aplicativos instalados -> Apple Mobile Device Support -> Modificar -> Reparar") pela GUI do Windows, é possível acionar o exploit à vontade. Quando o serviço é reiniciado, ele seguirá a junção NTFS e o comportamento definido do programa dita que o serviço excluirá os arquivos ou pastas para os quais o usuário escolher apontar.

Em outras palavras, é o usuário que decide quais arquivos ou pastas o serviço excluirá. Como ele executa como SYSTEM, podemos excluir quase qualquer arquivo do sistema (não arquivos que exijam privilégios de TrustedInstaller).

Isso significa que podemos criar cuidadosamente uma cadeia de eventos que fará o seguinte:

  1. Preparar o oplock para pausar o processo em um momento conveniente para prepararmos as etapas de exploração
  2. Reiniciar o serviço, o oplock é acionado e o processo é pausado
  3. Preparar nosso truque de rollback do MSI usando o FolderOrFileDeleteToSystem.exe
  4. Preparar nossa junção NTFS para apontar a primitiva de exclusão de arquivo para o Config.MSI preparado pela etapa do truque de rollback do MSI usando o FolderContentsDeleteToFolderDelete.exe
  5. Liberar o oplock

Prova de Conceito

A Prova de Conceito consiste em 5 etapas.

  1. Definir Oplock em C:\ProgramData\Apple\Lockdown\
root@kitploit:~
.\SetOpLock.exe C:\ProgramData\Apple\Lockdown\
Alt text
  1. Acionar a reinicialização do serviço Aplicativos -> Aplicativos instalados -> Apple Mobile Device Support -> Modificar -> Reparar

  2. Preparar o truque de rollback do MSI

root@kitploit:~
.\FolderOrFileDeleteToSystem.exe
  1. Preparar a etapa de Junção do Windows (symlink) para apontar a primitiva de exclusão arbitrária de pasta/arquivo do serviço para o instalador do MSI
root@kitploit:~
.\FolderContentsDeleteToFolderDelete.exe /target 'C:\Config.Msi' /initial "C:\ProgramData\Apple\Lockdown"
  1. Liberar o Oplock

Quando o Oplock é liberado na etapa cinco, monitoramos o processo FolderContentsDeleteToFolderDelete para verificar se a junção NTFS foi seguida e se o Config.MSI localizado em C:\ foi excluído corretamente. Em seguida, monitoramos o processo FolderOrFileDeletionToSystem.exe para verificar se vencemos a condição de corrida e se a pasta Config.MSI "maliciosa" com o script de rollback modificado foi gravada. Se tudo der certo, podemos pressionar CTRL+ALT+DELETE, abrir o menu Acessibilidade no canto inferior direito e abrir o Teclado Virtual. Como sobrescrevemos o HID.DLL em C:\Program Files\Common Files\microsoft shared\ink\HID.DLL usando o script de rollback malicioso, um shell CMD aparecerá como SYSTEM, finalizando nosso exploit. Alt text

Executando e monitorando o FolderContentsDeleteToFolderDelete.exe

Alt text

Executando e monitorando o FolderOrFileDeleteToSystem.exe

Alt text

Obtendo um shell SYSTEM

Baixar ferramenta