1 pontos por GN⁺ 2024-08-08 | 1 comentários | Compartilhar no WhatsApp

TONY HAWK’S PRO STRCPY

Visão geral

  • Projeto iniciado em 2016 para encontrar um novo bug para hackear o Xbox
  • Os consoles de videogame do começo dos anos 2000 tinham poucas mitigações de segurança, o que os torna adequados para aprender hacking
  • Ao analisar os arquivos de save de Tony Hawk’s Pro Skater 4, foi descoberta uma vulnerabilidade de buffer overflow

Parte 1: Começando

  • A vulnerabilidade foi descoberta por meio do recurso "Create-A-Park" de Tony Hawk’s Pro Skater 4
  • O buffer overflow ocorre durante o processo de copiar a string com o nome do gap do arquivo de save usando a função strcpy
  • Foi criado um arquivo de save malicioso para executá-lo no Xbox e obter permissão de execução de código

Parte 2: Execução remota de código

  • Exploração de uma forma de hackear o console pela rede sem usar cartão de memória
  • Tentativa de hackear o console cliente enviando o arquivo de save em um jogo multiplayer via LAN
  • O buffer overflow ocorre quando o console cliente carrega o arquivo de save enviado pelo host
  • Foi escrito um manipulador de mensagens de rede para transferir um executável de payload auxiliar para o console cliente

Análise de variantes

  • Vulnerabilidades semelhantes também foram encontradas em outros jogos, como Tony Hawk’s Pro Skater 3, Tony Hawk’s Underground 1 & 2 e Tony Hawk’s American Wasteland
  • Alguns jogos usam stack cookies para impedir buffer overflow

Resultado final

  • Quando o console cliente se conecta ao console host, um arquivo de save malicioso é enviado pela rede
  • O console cliente recebe e executa o executável de payload
  • Execução remota de código e transferência assíncrona de arquivos concluídas com sucesso

Resumo do GN⁺

  • Este texto aborda o processo de explorar e abusar de vulnerabilidades de segurança em consoles antigos, como o Xbox
  • Consoles antigos têm poucas mitigações de segurança, o que os torna adequados para aprender hacking, e vários bugs podem ser usados para obter permissão de execução de código
  • O texto explora um método de execução remota de código pela rede e mostra como hackear um console mesmo sem cartão de memória
  • Vulnerabilidades também foram encontradas e analisadas em outros jogos com recursos semelhantes, permitindo aprender várias técnicas de hacking
  • O texto oferece informações úteis para pessoas interessadas em hacking e pesquisa de segurança, ajudando a entender vulnerabilidades de segurança em consoles antigos

1 comentários

 
GN⁺ 2024-08-08
Comentários do Hacker News
  • O módulo da chave pública habibi difere da chave pública RSA da Microsoft em apenas 4 bytes

    • A chave da MS é uma chave RSA de 2048 bits
    • Se o valor do expoente for alterado para 3, é fácil encontrar uma chave parecida
    • Porém, o payload que usa a chave habibi não altera o expoente da rotina de verificação de assinatura RSA
    • Ainda parece realizar a verificação usando o expoente 65537
    • Não está claro como isso é possível
  • Um inteiro de 2048 bits pode possivelmente ser fatorado de forma simples

    • O código pode funcionar alterando 4 bytes aleatoriamente e tentando fatorar
    • Como resultado, pode ser gerado um módulo público com muitos fatores pequenos
    • Um módulo RSA normalmente tem dois fatores primos, mas matematicamente não há problema em ter mais fatores
  • O softmod do Xbox 360 era possível pelo nome do parque em um jogo do Tony Hawk

    • Uso de uma cadeia ROP de 24 segmentos
    • A descrição concisa das funções do hipervisor e as reflexões sobre uma botnet de x360 despertam nostalgia do Xbox 360
  • Deveriam ter usado strncpy em vez de strcpy

    • Tony Hawk é famoso por defender equipamentos de segurança
    • É uma pena o exploit para o mod THUG PRO
    • O mod tem mais de 10 anos, e o desenvolvedor original desapareceu
    • Agora o mod não pode ser usado, e ninguém quer usá-lo por causa do risco de um exploit com privilégios totais
    • Espero que este artigo chegue a alguém interessado em corrigir o mod
  • Tony Hawk é um skatista profissional, não um analista de segurança

    • No fim dos anos 90 e começo dos anos 2000, ele naturalmente passou seu tempo tornando a série de jogos possível, em vez de auditar código
  • Fico curioso sobre quando, onde e como a chave privada da habibi vazou

    • O autor original conseguiu executar um binário não assinado aplicando um patch na diferença de 4 bytes entre a chave da MS e a chave habibi
    • Isso significa que ele tinha acesso à chave privada
  • Encontrei muitos casos parecidos ao fazer decompilação de PSX

    • memmove é vinculado pela biblioteca do SDK, mas strcpy é fornecido pela BIOS
    • Até 1997, versões posteriores do SDK podiam ser corrigidas para usar a versão da biblioteca
  • Já li análises de exploit como esta várias vezes e espero poder ler mais 100 no futuro

    • Artigo excelente
  • Este é um bom exemplo de uma mentalidade de segurança equivocada no desenvolvimento de consoles

    • A ideia de "só precisamos fazer parsing dos dados que nós mesmos salvamos" está errada
    • O console não deveria tratar o usuário como inimigo
    • Mas, se tratar, então o jogo precisa adotar uma mentalidade de segurança compatível com isso
  • Imagine um plugin do VSCode que inventa nomes de manobras e dá pontos de combo para sequências contínuas de teclas digitadas

    • Tony Hawk's Pro-grammer