Kudaes / Elevator

UAC bypass by abusing RPC and debug objects.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

compile error LITCRYPT_ENCRYPT_KEY environment variable not set.

nocomp opened this issue · comments

hi,
thx a lot for your time and this dev, i am struggling compiling facing this isse, any tip for solve it? thxx a lot

PS C:\Users\nocomp\tools\Elevator\Elevator> set LITCRYPT_ENCRYPT_KEY="fondue"
PS C:\Users\nocomp\tools\Elevator\Elevator> cargo build --release
Compiling dinvoke v0.1.0 (C:\Users\nocomp\tools\Elevator\Elevator\dinvoke)
error: proc macro panicked
--> dinvoke\src\lib.rs:3:1
|
3 | use_litcrypt!();
| ^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:519:24
|
519 | return Err(lc!("[x] Failed to call module's entry point (DllMain -> DLL_PROCESS_ATTACH)."));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:597:60
|
597 | let module_base_address = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:598:46
|
598 | dynamic_invoke!(module_base_address,&lc!("LdrGetProcedureAddress"),func_ptr,ret,hmodule,fun_name,ordinal,return_address);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:624:60
|
624 | let module_base_address = get_module_base_address(&lc!("kernel32.dll"));
| ^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:625:46
|
625 | dynamic_invoke!(module_base_address,&lc!("SetUnhandledExceptionFilter"),func_ptr,ret,address);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:653:60
|
653 | let module_base_address = get_module_base_address(&lc!("kernel32.dll"));
| ^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:654:46
|
654 | dynamic_invoke!(module_base_address,&lc!("LoadLibraryA"),func_ptr,ret,function_name);
| ^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:687:60
|
687 | let module_base_address = get_module_base_address(&lc!("kernel32.dll"));
| ^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:688:46
|
688 | dynamic_invoke!(module_base_address,&lc!("OpenProcess"),func_ptr,ret,desired_access,inherit_handle,process_id);
| ^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:723:46
|
723 | let ntdll = get_module_base_address(&lc!("kernel32.dll"));
| ^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:724:32
|
724 | dynamic_invoke!(ntdll,&lc!("CloseHandle"),func_ptr,ret,handle);
| ^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:752:46
|
752 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:756:53
|
756 | let addr = get_function_address(ntdll, &lc!("NtWriteVirtualMemory")) as usize;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:770:32
|
770 | dynamic_invoke!(ntdll,&lc!("NtWriteVirtualMemory"),func_ptr,ret,handle,base_address,buffer,size,bytes_written);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:789:46
|
789 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:793:53
|
793 | let addr = get_function_address(ntdll, &lc!("NtAllocateVirtualMemory")) as usize;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:803:32
|
803 | dynamic_invoke!(ntdll,&lc!("NtAllocateVirtualMemory"),func_ptr,ret,handle,base_address,zero_bits,size,allocation_type,protection);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:821:46
|
821 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:825:53
|
825 | let addr = get_function_address(ntdll, &lc!("NtProtectVirtualMemory")) as usize;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:839:32
|
839 | dynamic_invoke!(ntdll,&lc!("NtProtectVirtualMemory"),func_ptr,ret,handle,base_address,size,new_protection,old_protection);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:857:46
|
857 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:861:53
|
861 | let addr = get_function_address(ntdll, &lc!("NtOpenProcess")) as usize;
| ^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:877:32
|
877 | dynamic_invoke!(ntdll,&lc!("NtOpenProcess"),func_ptr,ret,handle,access,attributes,client_id);
| ^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:896:46
|
896 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:897:32
|
897 | ... dynamic_invoke!(ntdll,&lc!("NtQueryInformationProcess"),func_ptr,ret,handle,process_information_class,process_information,length,re...
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:915:46
|
915 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:916:32
|
916 | dynamic_invoke!(ntdll,&lc!("RtlAdjustPrivilege"),func_ptr,ret,privilege,enable,current_thread,enabled);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:934:46
|
934 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:935:32
|
935 | dynamic_invoke!(ntdll,&lc!("RtlInitUnicodeString"),func_ptr,_ret,destination_string, source_string);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:948:46
|
948 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:949:32
|
949 | dynamic_invoke!(ntdll,&lc!("RtlZeroMemory"),func_ptr,_ret,address,length);
| ^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:963:46
|
963 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:964:32
|
964 | dynamic_invoke!(ntdll,&lc!("NtOpenFile"),func_ptr,ret,file_handle,desired_access,object_attributes,io,share_access,options);
| ^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:982:46
|
982 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:983:32
|
983 | ... dynamic_invoke!(ntdll,&lc!("NtDuplicateObject"),func_ptr,ret,source_phandle,source_handle,target_phandle,target_handle,desired_acce...
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:1002:46
|
1002 | let ntdll = get_module_base_address(&lc!("ntdll.dll"));
| ^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: proc macro panicked
--> dinvoke\src\lib.rs:1021:32
|
1021 | ... dynamic_invoke!(ntdll,&lc!("NtCreateThreadEx"),func_ptr,ret,thread,access,attributes,process,function,args,flags,zero,stack,reserve...
| ^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: LITCRYPT_ENCRYPT_KEY environment variable not set.

error: could not compile dinvoke due to 38 previous errors
PS C:\Users\nocomp\tools\Elevator\Elevator>

Hi @nocomp,

Try to compile the code from a regular cmd, not from Powershell. It seems Powershell handles environment variables in a different way.

Try again from a regular cmd and let me know how it went, you should not have issues compiling the code this way.

hi,
thxx a lot, worked like a charm, maybe add a warning in readme to notify to not use powershell.
thxx a lot!

Good to know ^^