1 前言
2 效果图
3 前置知识
4 免杀实验
5 实验结论
01
02
03
04
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
HMODULE hModule = GetModuleHandleA("kernel32.dll");
if (hModule == NULL)
{
cout << "GetModuleHandle failed." << endl;
return -1;
}
char szPath[MAX_PATH];
DWORD dwSize = GetModuleFileNameA(hModule, szPath, MAX_PATH);
if (dwSize == 0)
{
cout << "GetModuleFileName failed." << endl;
return -1;
}
cout << "The path of kernel32.dll is: " << szPath << endl;
return 0;
}
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
HKEY hKey = NULL;
DWORD dwType = REG_SZ;
char szValue[MAX_PATH] = { 0 };
DWORD dwSize = sizeof(szValue);
LONG lRet = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_READ, &hKey);
if (lRet != ERROR_SUCCESS)
{
cout << "RegOpenKeyEx failed." << endl;
return -1;
}
lRet = RegQueryValueExA(hKey, "ProductName", NULL, &dwType, (LPBYTE)szValue, &dwSize);
if (lRet != ERROR_SUCCESS)
{
cout << "RegQueryValueEx failed." << endl;
RegCloseKey(hKey);
return -1;
}
cout << "The value of ProductName is: " << szValue << endl;
RegCloseKey(hKey);
return 0;
}
过360火绒静态加动态,defender静态,卡巴直接不过。
获取网卡名的第一个字符“{”作为key:
#include <windows.h>
#include <iphlpapi.h>
#include <iostream>
#pragma comment(lib, "iphlpapi.lib")
using namespace std;
int main()
{
PIP_ADAPTER_INFO pAdapterInfo = NULL;
ULONG ulSize = 0;
DWORD dwRet = GetAdaptersInfo(pAdapterInfo, &ulSize);
if (dwRet == ERROR_BUFFER_OVERFLOW)
{
pAdapterInfo = (PIP_ADAPTER_INFO)malloc(ulSize);
dwRet = GetAdaptersInfo(pAdapterInfo, &ulSize);
}
if (dwRet == ERROR_SUCCESS)
{
PIP_ADAPTER_INFO pAdapter = pAdapterInfo;
while (pAdapter)
{
cout << "Adapter name: " << pAdapter->AdapterName << endl;
cout << "MAC address: ";
for (int i = 0; i < pAdapter->AddressLength; i++)
{
printf("%02X", pAdapter->Address[i]);
if (i < pAdapter->AddressLength - 1)
{
printf("-");
}
}
cout << endl;
pAdapter = pAdapter->Next;
}
}
else
{
cout << "GetAdaptersInfo failed." << endl;
}
if (pAdapterInfo)
{
free(pAdapterInfo);
}
return 0;
}
取时间截的第一位数字1为key:
#define _CRT_SECURE_NO_WARNINGS
#include <time.h>
#include <iostream>
using namespace std;
int main()
{
time_t now = time(NULL);
cout << "Current time: " << now / 1000000000 << endl;
return 0;
}
过360火绒静态加动态,defender静态,卡巴直接不过。
通过环境变量%USERNAME%,取第一位字符“A”为key:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char* username = getenv("USERNAME");
if (username != NULL)
cout << "USERNAME is: " << username << endl;
else
cout << "USERNAME is not defined" << endl;
return 0;
}
过360火绒静态加动态,defender静态,卡巴静态加动态。
通过硬件ID
代码太长,这里不放了。
defender静态,卡巴一直卡死在99。
defender静态,卡巴不过。
使用线程ID,转为hash,由于hash第一位总为1,可以当作密钥:
defender静态,卡巴不过。
实践过程中,我逐渐意识到问题,可能并不是卡巴查杀很厉害,而是编译器的问题。在测试过程中,卡巴查杀经常卡在1%或99%,等很长时间,重复试了几次,最后卡巴直接删除了exe:
卡巴可能并没有检测出shellcode,而是基于一种风险指数,虽然没有检测出shellcode,但风险指数偏高,于是直接列为恶意软件直接删除了。这种风险指数与编译器有关。vs默认的编译器更容易被杀软认为恶意软件,vs默认的编译器几乎被所有杀软标记重点了。后面切换vs的intel C++编译器(需要自行安装),重新对前面的几个环境点进行了测试,切换intel C++编译器后均过卡巴静态加动态且扫描很快,没有出现像vs默认的编译器一直卡住的情况:
然后上传了VT测试,静态全过:
不使用动态生成key,明文密钥,使用intel c++编译,VT:
05
06
付费圈子
如果看到这里的师傅的你偏新人向
目前仅需70RMB一年,满1000人涨到99一年(目前进度659/1000)
价格只会越来越高
07
兄弟反映需要封面图?
后台回复文章推送日期加”封面“即可获取
(2022年十月五日前的文章没有)
例如今天为:20230315封面
08
(封号十天补发一下)Acunetix-v15.4_windows&linux破解版
漏扫工具Invicti-Professional-v23-1破解
fortify_sca_22.2-Windows-linux破解版
CS4.7汉化+修改指纹+加密流量+最新ladon9.2.5教程内附成品
windows10渗透虚拟机更新!帮助渗透新手快速搭建工作环境,工欲善其事,必先利其器。
AppScan_Standard_10.1.0中文永久破解版
github-cve-monitor——一款cve、大佬仓库、工具监控工具(文末成品直接使用)
08
本工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。
为避免被恶意使用,本项目所有收录的poc均为漏洞的理论判断,不存在漏洞利用过程,不会对目标发起真实攻击和漏洞利用。
在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。
如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。
本工具来源于网络,请在24小时内删除,请勿用于商业行为,自行查验是否具有后门,切勿相信软件内的广告!
在安装并使用本工具前,请您务必审慎阅读、充分理解各条款内容,限制、免责条款或者其他涉及您重大权益的条款可能会以加粗、加下划线等形式提示您重点注意。除非您已充分阅读、完全理解并接受本协议所有条款,否则,请您不要安装并使用本工具。您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束。