Você está na página 1de 23

ANÁLISE DA

VULNERABILIDADE
NA WHITELIST DA
UAC DO
WINDOWS
Yuri de Jesus Lopes de Abreu
Orientador: Paulo Henrique de Aguiar Rodrigues
UAC
Introdução ao sistema UAC

Sistema de controle de privilégios de execução de


aplicações
Companies spend millions of dollars
on firewalls, encryption and secure
access devices, and it’s money
“ wasted, because none of these
measures address the weakest link
in the security chain.
- Kevin Mitnick
USER ACCOUNT CONTROL

Permite que usuários


administradores executem tarefas
com acesso limitado usualmente,
ou com privilégios elevados
quando requisitado.
USER ACCOUNT CONTROL

◦ Similar ao sudo
◦ Implementado no Windows Vista
◦ Incomodava usuários com
constantes prompts
◦ Como melhorar a resposta para o
usuário?
WHITELIST
Permite que aplicações do sistema
executem ações privilegiadas sem
precisar de prompt se as ações forem
sobre outras aplicações do sistema.
WHITELIST

Positivo 😉 Negativo 😒

Permitiu que Abriu espaço para


tarefas fossem uma
executadas com vulnerabilidade
um único prompt por sua má
inicial. implementação.
WHITELIST - DETALHES

Critérios para Como é dado o


estar na lista privilégio elevado?

Possuir assinatura Se todos os


digital da critérios para
Microsoft; estar na lista são
satisfeitos, o
Estar em pasta do privilégio é
sistema; concedido

Estar numa lista


de aplicações
permitidas.
WHITELIST - VULNERABILIDADE

Qual o problema?

Análises de engenharia reversa mostram que:


a verificação da lista de autorização é feita
por comparação de string no nome do
aplicativo.

Se uma aplicação que satisfaz todos menos o


último critério da whitelist solicitar a
execução de uma aplicação da whitelist com
privilégio elevado, de maneira inteligente, a
autorização é concedida sem prompt. O
mesmo vale para criar objetos COM elevados.
TRABALHOS EXISTENTES

◦Provas de ◦Tentavam burlar


conceito o prompt pela
levantadas por simulação de
beta testes do pressionamento
Window 7 de teclas

◦Provas de ◦Apontavam a
conceito possibilidade de
amarradas ao criar objetos COM
Windows 7 elevados
DE SEMENTE À ÁRVORE FRUTÍFERA

◦Depurar e ◦Criar um exploit


entender as peças simples (80 linhas)
que compõe a
vulnerabilidade ◦Desenvolver a
tecnicamente vulnerabilidade
além das
◦Desamarrar atualizações de
vulnerabilidade do segurança
Windows 7

◦Criar uma prova


de conceito não-
programática
WHITELIST – EXPLOIT EM VISÃO MACRO

Dll maliciosa é Aplicativo do sistema


injetada no processo

Arquivos do sistema Terminal é executado


são copiados com como administrador
privilégios elevados
WHITELIST – EXPLOIT EM VISÃO MICRO

Tomando Operações Elevação


Controle Espúrias Indevida

Executa-se um Através da Executa-se o


aplicativo do aplicação do terminal com
sistema com sistema, copia-se privilégios
acesso limitado; o terminal, com o elevados
nome de um enganando a
Injeta-se uma dll aplicativo incluso whitelist.
nesse processo; na whitelist, para
uma pasta do
sistema.
TOMANDO CONTROLE

◦ Privilégios compatíveis
◦ Alocar memória no espaço de
endereçamento de outro processo
◦ Escrever nessa memória alocada o
caminho da dll
◦ Obter ponteiro da função
int LoadLibraryA(char *lpFileName)
no processo atual
◦ Ponteiro de API no processo que quer
injetar = ponteiro de API no processo de
sistema
◦ Criar thread no processo do sistema, no
ponteiro da função LoadLibraryA
OPERAÇÕES ESPÚRIAS

◦ Criar um objeto COM da interface


IFileOperation por um moniker com
elevação
◦ Usar esse objeto para criar uma cópia do
terminal (cmd.exe) com o nome oobe.exe
(está na whitelist)
◦ Executar com privilégios elevados a cópia
do terminal através da API ShellExecute
◦ A API ShellExecute é a única documentada
capaz de executar um processo com
privilégios elevados caso ele não tenha
isso em “manifesto”
VULNERABILIDADE “RESOLVIDA”

Nas últimas atualizações


(a partir de Julho/2016)
as atualizações de
segurança resolveram
este problema.
Vulnerabilidade resolvida?
Ainda é possível manipular
arquivos em pastas do sistema.
CONHECIMENTOS ADQUIRIDOS

Cinco meses de pesquisa ensinaram:

◦ Busca de padrões e pontos fracos


em sistemas de grande porte
◦ Engenharia reversa e depuração
aprofundada de aplicações e
bibliotecas
◦ Conhecimento técnico aprofundado
do sistema Windows
SENDA DO SABER

Início

Levantamento e Buffer overflow Depuração


Revisão Bibliográfica

Maturidade

Vulnerabilidades Segurança Contato com


em Android de Senhas Pesquisadores

Final e Além
Redes Wifi Cartões Sistemas
WPA/WPA2 NFC Embutidos/IoT

Vulnerabilidade
no Windows

Indo além
BIBLIOGRAFIA – MAIS IMPORTANTES

◦ Gray Hat Hacker (2014) “Bypassing Windows User


Account Control (UAC) and ways of mitigation”,
disponível em https://www.greyhathacker.net/?p=796

◦ Microsoft (2009) “UAC Architecture”, disponível em:


https://technet.microsoft.com/en-
us/library/dd835540%28v=ws.10%29.aspx

◦ Pretentious Name (2011) “Windows 7 UAC whitelist:


Code-injection Issue”, disponível em:
http://www.pretentiousname.com/misc/win7_uac_whit
elist2.html

◦ E outros...
Obrigado!
Alguma pergunta?
Você pode me contatar via:
yuh.lopes@gmail.com

Você também pode gostar