找回密码
 加入
搜索
查看: 1909|回复: 12

[系统综合] 哪位大神能来个NSudo提权dll库的使用说明?

[复制链接]
发表于 2021-12-6 15:03:18 | 显示全部楼层 |阅读模式
看着蒙蔽啊,哪位大神来个简单的例子学习一下啊。


NSudo:https://nsudo.m2team.org/zh-hans/


发表于 2021-12-7 16:08:01 | 显示全部楼层
Const $TRUSTED_INSTALLER = 0x01

$nsudo = DllOpen("NSudoAPI.dll")
Local $aResult = DllCall($nsudo, "int64:cdecl", "NSudoCreateProcess", _
                "UserModeType", $TRUSTED_INSTALLER, _
                "PrivilegesModeType",0x01, _
                "MandatoryLabelType",0x05, _
                "ProcessPriorityClassType",0x02, _
                "ShowWindowModeType",0x01, _
                "WaitInterval",1000, _
                "CreateNewConsole",true, _
                "CommandLine",@ComSpec , _
                "CurrentDirectory",@ScriptDir)
MsgBox(0,"",@error)
DllClose($nsudo)

好像运行失败,抱歉dllcall我不是很熟悉
发表于 2021-12-7 16:08:16 | 显示全部楼层
Const $TRUSTED_INSTALLER = 0x01

$nsudo = DllOpen("NSudoAPI.dll")
Local $aResult = DllCall($nsudo, "int64:cdecl", "NSudoCreateProcess", _
                "UserModeType", $TRUSTED_INSTALLER, _
                "PrivilegesModeType",0x01, _
                "MandatoryLabelType",0x05, _
                "ProcessPriorityClassType",0x02, _
                "ShowWindowModeType",0x01, _
                "WaitInterval",1000, _
                "CreateNewConsole",true, _
                "CommandLine",@ComSpec , _
                "CurrentDirectory",@ScriptDir)
MsgBox(0,"",@error)
DllClose($nsudo)

好像运行失败,抱歉dllcall我不是很熟悉
发表于 2021-12-7 20:48:33 | 显示全部楼层
#include <File.au3>
#include <Array.au3>
#include <WinAPIRes.au3>
#RequireAdmin

;共享库
;~ using System;

;~ namespace M2.NSudo.Demo
;~ {
;~     class Program
;~     {
;~         static void Main(string[] args)
;~         {
;~             NSudoInstance instance = new NSudoInstance();

;~             instance.CreateProcess(
;~                 NSUDO_USER_MODE_TYPE.TRUSTED_INSTALLER,
;~                 NSUDO_PRIVILEGES_MODE_TYPE.ENABLE_ALL_PRIVILEGES,
;~                 NSUDO_MANDATORY_LABEL_TYPE.SYSTEM,
;~                 NSUDO_PROCESS_PRIORITY_CLASS_TYPE.NORMAL,
;~                 NSUDO_SHOW_WINDOW_MODE_TYPE.DEFAULT,
;~                 0,
;~                 true,
;~                 "cmd",
;~                 null);

;~             Console.ReadKey();
;~         }
;~     }
;~ }

Local $Result = DllCall(@ScriptDir & '\x64\NSudoAPI.dll', 'int', 'NSudoCreateProcess', _
                        'int', 1, _ ; NSUDO_USER_MODE_TYPE
                        'int', 1, _ ; NSUDO_PRIVILEGES_MODE_TYPE
                        'int', 5, _; NSUDO_MANDATORY_LABEL_TYPE
                        'int', 2, _; NSUDO_PROCESS_PRIORITY_CLASS_TYPE
                        'int', 1, _; NSUDO_SHOW_WINDOW_MODE_TYPE
                        'dword', 0, _; WaitInterval
                        'bool', True, _; CreateNewConsole
                        'wstr', 'cmd', _; CommandLine
                        'wstr', Null) ; CurrentDirectory

;恶魔模式
;~ using System;
;~ using System.IO;
;~ using System.Runtime.InteropServices;

;~ namespace Demo
;~ {
;~     class Program
;~     {
;~         [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
;~         static extern IntPtr LoadLibrary(string lpLibFileName);

;~         [DllImport("kernel32.dll", SetLastError = true)]
;~         [return: MarshalAs(UnmanagedType.Bool)]
;~         static extern bool FreeLibrary(IntPtr hLibModule);

;~         static void Main(string[] args)
;~         {
;~             IntPtr NSudoDevilModeModuleHandle = LoadLibrary(
;~                 @"E:\GitHub\M2Team\NSudo\Output\Release\x64\NSudoDevilMode.dll");

;~             {
;~                 DirectoryInfo Folder = new DirectoryInfo(
;~                 @"C:\System Volume Information");

;~                 foreach (FileInfo File in Folder.GetFiles())
;~                 {
;~                     Console.WriteLine(File.FullName);
;~                 }
;~             }

;~             FreeLibrary(NSudoDevilModeModuleHandle);

;~             {
;~                 DirectoryInfo Folder = new DirectoryInfo(
;~                 @"C:\System Volume Information");

;~                 foreach (FileInfo File in Folder.GetFiles())
;~                 {
;~                     Console.WriteLine(File.FullName);
;~                 }
;~             }

;~             Console.ReadKey();
;~         }
;~     }
;~ }

_FileListToArray('C:\System Volume Information')
MsgBox(0, '', @error)
Local $NSudoDevilModeModuleHandle = _WinAPI_LoadLibrary(@ScriptDir & '\x64\NSudoDM.dll')
_ArrayDisplay(_FileListToArray('C:\System Volume Information'))
_WinAPI_FreeLibrary($NSudoDevilModeModuleHandle)

点评

又看了C代码,原来是通过复制llsass.exe令牌创建system进程,以前试过复制services.exe令牌,拒绝访问.没想到可以复制lsass.exe的,然后又试了下,winlogon.exe的令牌也可复制,但是二者的令牌特权有区别  发表于 2021-12-27 12:23
这个几个月前就知道了,只是不知道他用的是什么办法可以不通过service.exe启动  发表于 2021-12-20 10:57
厉害  发表于 2021-12-8 20:08
 楼主| 发表于 2021-12-10 20:38:04 | 显示全部楼层
本帖最后由 angelink 于 2021-12-10 21:23 编辑

Local $NSudoDevilModeModuleHandle = _WinAPI_LoadLibrary(@ScriptDir & '\x64\NSudoDM.dll')
_ArrayDisplay(_FileListToArray('C:\System Volume Information'))
_WinAPI_FreeLibrary($NSudoDevilModeModuleHandle)

关于这个,如果我想启动一个外部程序,启动后用户权限是system ,好像不行,要怎么改动那?
发表于 2021-12-20 11:00:21 | 显示全部楼层
4楼不是给你代码了...

Local $Result = DllCall(@ScriptDir & '\NSudo Shared Library\Win32\NSudoAPI.dll', 'int', 'NSudoCreateProcess', _
                        'int', 1, _ ; NSUDO_USER_MODE_TYPE
                        'int', 1, _ ; NSUDO_PRIVILEGES_MODE_TYPE
                        'int', 5, _; NSUDO_MANDATORY_LABEL_TYPE
                        'int', 2, _; NSUDO_PROCESS_PRIORITY_CLASS_TYPE
                        'int', 1, _; NSUDO_SHOW_WINDOW_MODE_TYPE
                        'dword', 0, _; WaitInterval
                        'bool', True, _; CreateNewConsole
                        'wstr', 'cmd', _; CommandLine
                        'wstr', 'C:\') ; CurrentDirectory
 楼主| 发表于 2021-12-26 19:22:39 | 显示全部楼层
tubaba 发表于 2021-12-20 11:00
4楼不是给你代码了...

Local $Result = DllCall(@ScriptDir & '\NSudo Shared Library\Win32\NSudoAPI.d ...
Local $Result = DllCall(@ScriptDir & '\x64\NSudoAPI.dll', 'int', 'NSudoCreateProcess', _
                        'int', 1, _ ; NSUDO_USER_MODE_TYPE
                        'int', 1, _ ; NSUDO_PRIVILEGES_MODE_TYPE
                        'int', 5, _; NSUDO_MANDATORY_LABEL_TYPE
                        'int', 2, _; NSUDO_PROCESS_PRIORITY_CLASS_TYPE
                        'int', 1, _; NSUDO_SHOW_WINDOW_MODE_TYPE
                        'dword', 0, _; WaitInterval
                        'bool', True, _; CreateNewConsole
                        'wstr', 'cmd', _; CommandLine
                        'wstr', Null) ; CurrentDirectory

人笨,这段没看懂,要怎么加入代码,难道要把cmd那里换代码?
发表于 2021-12-27 12:12:07 | 显示全部楼层
angelink 发表于 2021-12-26 19:22
人笨,这段没看懂,要怎么加入代码,难道要把cmd那里换代码?



        C/C++ 函数原型
        EXTERN_C HRESULT WINAPI NSudoCreateProcess(
        _In_ NSUDO_USER_MODE_TYPE UserModeType,
        _In_ NSUDO_PRIVILEGES_MODE_TYPE PrivilegesModeType,
        _In_ NSUDO_MANDATORY_LABEL_TYPE MandatoryLabelType,
        _In_ NSUDO_PROCESS_PRIORITY_CLASS_TYPE ProcessPriorityClassType,
        _In_ NSUDO_SHOW_WINDOW_MODE_TYPE ShowWindowModeType,
        _In_ DWORD WaitInterval,
        _In_ BOOL CreateNewConsole,
        _In_ LPCWSTR CommandLine,
        _In_opt_ LPCWSTR CurrentDirectory);
        UserModeType 参数

        一个类型为 NSUDO_USER_MODE_TYPE 枚举类型的值, 用以表示用户类别。
        typedef enum class _NSUDO_USER_MODE_TYPE
        {
        DEFAULT,        ;0以当前用户的访问令牌运行程序,如果用户账户控制即 UAC 没有被禁用, 则该模式的权限与标准用户等价
        TRUSTED_INSTALLER,        ;1以 TrustedInstaller 访问令牌运行程序
        SYSTEM,        ;2以 System 访问令牌运行程序
        CURRENT_USER,        ;3以提升后的当前用户的访问令牌运行程序,该模式的权限与提升后的用户等价
        CURRENT_PROCESS,        ;4以当前进程的访问令牌运行程序,该模式的权限与提升后的用户等价
        CURRENT_PROCESS_DROP_RIGHT        ;5以当前进程 LUA 模式的访问令牌运行程序,该模式的权限与标准?户等价且该实现和 Internet Explorer 浏览器中的 iertutil.dll 中的对应实现一致
        } NSUDO_USER_MODE_TYPE, *PNSUDO_USER_MODE_TYPE;

        PrivilegesModeType 参数
        一个类型为 NSUDO_PRIVILEGES_MODE_TYPE 枚举类型的值, 用以表示特权类型。
        typedef enum class _NSUDO_PRIVILEGES_MODE_TYPE
        {
        DEFAULT,        ;0默认特权
        ENABLE_ALL_PRIVILEGES,        ;1启用全部特权
        DISABLE_ALL_PRIVILEGES        ;2禁用所有特权
        } NSUDO_PRIVILEGES_MODE_TYPE, *PNSUDO_PRIVILEGES_MODE_TYPE;

        MandatoryLabelType 参数
        一个类型为 NSUDO_MANDATORY_LABEL_TYPE 枚举类型的值, 用以表示完整性标签。
        typedef enum class _NSUDO_MANDATORY_LABEL_TYPE
        {
        UNTRUSTED,        ;0不信任的
        LOW,        ;1低
        MEDIUM,        ;2中
        MEDIUM_PLUS,        ;3中高
        HIGH,        4高
        SYSTEM,        ;5系统
        PROTECTED_PROCESS,        ;6受保护进程
        } NSUDO_MANDATORY_LABEL_TYPE, *PNSUDO_MANDATORY_LABEL_TYPE;

        ProcessPriorityClassType 参数
        一个类型为 NSUDO_PROCESS_PRIORITY_CLASS_TYPE 枚举类型的值, 用以表示进程优先级。
        typedef enum class _NSUDO_PROCESS_PRIORITY_CLASS_TYPE
        {
        BELOW_NORMAL,        ;0低于正常
        NORMAL,        ;1正常
        ABOVE_NORMAL,        ;2高于正常
        HIGH,        ;3高
        REALTIME,        ;4实时
        } NSUDO_PROCESS_PRIORITY_CLASS_TYPE, *PNSUDO_PROCESS_PRIORITY_CLASS_TYPE;

        ShowWindowModeType 参数
        一个类型为 NSUDO_SHOW_WINDOW_MODE_TYPE 枚举类型的值, 用以表示显示窗口模式。
        typedef enum class _NSUDO_SHOW_WINDOW_MODE_TYPE
        {
        DEFAULT,        ;0默认
        SHOW,        ;1显示窗口
        HIDE,        ;2隐藏窗口
        MAXIMIZE,        ;3最大化
        MINIMIZE,        ;4最小化
        } NSUDO_SHOW_WINDOW_MODE_TYPE, *PNSUDO_SHOW_WINDOW_MODE_TYPE;

        WaitInterval 参数
        等待创建的进程的时间 (毫秒)。

        CreateNewConsole 参数
        如果这个参数设为 TRUE, 新进程则在新的控制台窗口运行, 否则则直接在&#12119;进程对应的控 制台窗口运行 (默认设定)。

        CommandLine 参数
        要执行的命令行, 对应的字符串最大长度为 32k 即 32768 字符, 命令行所执行的应用的路径被限制为MAX_PATH 即 260 字符。
        CurrentDirectory 参数
        用来指定进程的当前&#12140;录, 需要使用完整路径。可以使用 UNC 路径。如果该参数为 nullptr, 新进程将使用调用该函数的进程所使用的当前路径。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2022-1-5 21:51:33 | 显示全部楼层
tubaba 发表于 2021-12-27 12:12
C/C++ 函数原型
        EXTERN_C HRESULT WINAPI NSudoCreateProcess(
        _In_ NSUDO_USER_MODE_TYPE User ...

谢谢。感谢。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 21:12 , Processed in 0.091618 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表