quinta-feira, 23 de dezembro de 2010

Acessando o Windows sem ter conta de usuário

Quem nunca quis (ou tentou) ter acesso à uma conta de administrador nas máquinas da sua escola/faculdade? Sinceramente, eu já quis e já o fiz várias vezes em todo esse meu tempo de computação. No entanto, nunca achava uma solução que fosse ao mesmo tempo elegante e sorrateira.

Eis que me surge durante uma aula na faculdade um colega que me fala de uma maneira de acessar uma máquina alterando a senha do administrador da máquina! Curioso como sou, pedi pra ele me demonstrar a técnica e fiquei surpreso com a simplicidade e com a facilidade!

Sei que vocês devem estar curiosos, então continue lendo...




O conceito é simples: Existem dois aplicativos que podem ser carregados pelo winlogon.exe (a.k.a.: o programa responsável pela tela de login). O primeiro programa é uma caixa de diálogo de acessibilidade (sethc.exe) e o outro é o Gerenciador de Utilitários do Windows (utilman.exe). Estes dois programas são executados em modo de super-usuário. Então, se você alterar o executável destes programas, você pode ter funcionalidades diferentes na hora do logon.

Mas, por que quando não há ninguém logado, estes programas rodam como modo de super-usuário? Simples! O Windows XP usa uma conta especial do sistema, chamada "SYSTEM", para rodar esses programas. Essa conta é usada enquanto nenhum usuário está logado, pois para os programas funcionarem no Windows, eles precisam de uma conta de usuário, e usarão as configurações de personalizações e segurança do perfil desse usuário. Mesmo após o logon, se você abrir a guia "Processos" do Gerenciador de tarefas, verá que alguns programas são executados por essa conta, "SYSTEM". Possivelmente são serviços essenciais inicializados antes do ponto de logon, onde há interação com o usuário. Muito provavelmente esta conta especial é usada durante a instalação do Windows também, após o início da parte gráfica. A "brecha" é que ela possui privilégios administrativos. Qualquer programa rodado com ela, tem direitos de administrador, e pode fazer o que bem quiser no sistema. Eis o segredo: rodar um programa sem fazer logon, usando essa conta.

Sabendo disso, agora o que você têm a fazer é simplesmente trocar o utilman.exe ou o sethc.exe por um executável à sua escolha. Na minha opinião, um shell de super-usuário é muito melhor que qualquer outra solução. Se você têm algum conhecimento de operações de shell no Windows, bem. Se não, sugiro você colocar o explorer.exe mesmo que já ali você terá acesso a um ambiente gráfico com permissões de super-usuário.

Como fazer

  • Se você tiver acesso de escrita na pasta Windows\System32 (o que eu duvido) vc não precisaria estar fazendo esse tutorial. Se você não têm acesso, a dica é a seguinte:
  • Dê boot com um Live CD do Ubuntu (ou qualquer outro sistema linux à sua escolha);
  • Monte a partição onde se encontra o sistema (sei lá, /mnt/Windows);
  • Vá até a pasta /mnt/Windows/System32 e renomeie os arquivos sethc.exe e utilman.exe pra qualquer outra coisa que vc possa identificar depois;
  • Copie o arquivo cmd.exe na mesma pasta e cole colocando os nomes originais dos dois arquivos acima;
  • Inicie o sistema pelo Windows.
Nesse caso, você abriu duas portas de entrada na sua máquina. Ao alterar o arquivo sethc.exe, você pode acessar o terminal apertando Shift 5 vezes ou apertando Alt + Shift + Print Screen. Ao alterar o utilman.exe, você pode acessar através do atalho Win + U. Lembrando que no caso da tela de login, após algum tempo, a própria tela de login encerra os dois processos. Então, seja rápido. Normalmente eu criaria uma conta de convidado com permissões de administrador.

Quer saber como fazer isso no terminal? Ah, aí o Google te ajuda bagarai!

Mais uma coisa. Em um dos boletins de segurança da Microsoft, eles atentam para a falha de segurança relacionada ao utilman.exe. Este programa pode ser desabilitado facilmente através do AD. No entanto, o mesmo boletim não fala nada do sethc.exe. Então, sacaram né?

Só para finalizar, eu escrevi um programa em python que já faz boa parte desse trabalho para você. O link é o seguinte:

https://sites.google.com/site/tocadoelfo/arquivos/winopen.py

Eh isso gente! Boas brincadeiras aí com o seu sistema!

Fontes:
http://www.theprohack.com/2009/02/hack-administrator-from-guest-account.html
http://forum.intern0t.net/offensive-guides-information/2269-exploiting-ms-shortcuts.html
http://www.microsoft.com/brasil/technet/Boletins/BoletinsMS03_45.aspx