Esta é uma tentativa de engenharia reversa do sistema Apple Content Caching.
O objetivo deste projeto é me desafiar em uma tentativa séria de engenharia reversa e, ao mesmo tempo, criar algo que quero fazer: um Apple Content Cache que funcione em servidores Linux.
NOTA : asset-cache-tool é uma continuação de parte deste trabalho.
Querida Maçã,
Sou um ator de boa fé e devido ao design do cache, não acredito que isso deva causar qualquer dano. Caso você considere o contrário, entre em contato comigo através do meu e-mail: [email protected]
Obrigado, Alex
Por favor, não abuse do conteúdo que você vê aqui. Estou tentando fazer isso de boa fé e não tolero qualquer uso malicioso do sistema Apple Content Cache, seja ele qual for.
O cache de conteúdo está disponível na seção Compartilhamento das Preferências do Sistema. Ele é usado para armazenar conteúdo em cache em sua rede local para conteúdo público da Apple ou conteúdo do iCloud. O /usr/libexec/AssetCache/AssetCache
é responsável pela maior parte do trabalho. Possui um servidor HTTP que possui uma API que permite a busca e upload de conteúdo do servidor.
Além disso, as capturas de pacotes são fornecidas no diretório captures
.
O trabalho aqui foi feito usando Charles Proxy e Frida.
O arquivo tools/frida-ssl-pin.js
é um script Frida que pode ser anexado a qualquer processo macOS e desativar toda a verificação SSL e fixação de certificado SSL. Isso me permitiu examinar profundamente as solicitações enviadas aos servidores da Apple. Este script provavelmente é útil para muitos outros casos de uso. Se alguém mais o usar, adoraria saber como foi usado (sou um grande nerd e estou bastante interessado em engenharia reversa). Observe que o SIP precisará ser desativado para usá-lo corretamente.
Eu também tenho um script Frida Python modificado que visa launchd
para injetar o script de desativação de verificação e fixação SSL. Como AssetCache
é gerado pelo launchd, você pode anexar Frida ao launchd e aguardar o spawn AssetCache
por meio do serviço. O script está localizado em: tools/frida-ssl-pin-target.py
, basta fazer pip3 install frida frida-tools
e executar o script.