前言
本文仅限技术研究与讨论,旨在探索利用AI加速安全相关代码开发的可能性,特别是沙箱检测技术。严禁用于非法用途,例如恶意软件开发或绕过合法安全检查,否则产生的一切后果自行承担。
最近在进行免杀开发时,常常需要判断程序是否运行在沙箱或虚拟机(VM)环境中。这些环境通常被分析人员用来安全地运行和研究未知软件。如果能检测到这种环境,程序可以采取不同的行为,例如拒绝运行、展示虚假行为或者提醒开发者。然而,编写可靠的沙箱检测代码相当复杂,需要了解多种技巧,而且沙箱本身也在不断进化以规避检测。感觉传统的手工编码和查阅资料效率不高,于是想尝试借助AI的力量来加速这个过程。
初步探索与挑战
首先想到的是,沙箱环境通常会在硬件、系统配置或行为上留下一些蛛丝马迹。比如,特定的硬件名称、MAC地址前缀、有限的CPU核心数、缺少真实的用户交互等等。但是,要覆盖所有这些点,并写出稳定、不易被绕过的代码,工作量巨大。
求助于AI
这时候,我想到了利用AI大模型来帮助生成代码片段。这里我使用无问社区AI,无问社区AI是一个专门帮助网络安全人员的大模型,解除了原本AI一些安全限制,非常适合用来编写一些免杀的代码(文末包含该ai的注册链接)。我的想法是,先让AI列出一些常见的检测思路,然后针对性地要求它生成具体的代码实现。
沙箱可收集的特征有哪些,尽量全面一些
继续提问:那为了识别当前环境是否为沙箱环境,我们需要收集哪些沙箱特征
让他帮我写出具体的代码:那依据你提到的那些点帮我写一个c代码来对这些点的信息进行收集,编写一个可以用gcc编译的c代码
这里给出完整的代码
#include<windows.h>#include<tlhelp32.h>#include<stdio.h>#include<tchar.h>// Function to check system uptimeintCheckUptime() { DWORD uptime = GetTickCount();if (uptime < 10 * 60 * 1000) { // 小于10分钟printf("Warning: The system might be a sandbox. Uptime is less than 10 minutes.n");return1; }printf("The system has been running for more than 10 minutes.n");return0;}// Function to check mouse movementintCheckMouseMovement() { POINT startPoint, currentPoint; GetCursorPos(&startPoint); Sleep(5000); // Wait for 5 seconds GetCursorPos(¤tPoint);if (startPoint.x == currentPoint.x && startPoint.y == currentPoint.y) {printf("Warning: No mouse movement detected in the last 5 seconds. This could indicate a sandbox.n");return1; }printf("Mouse movement detected.n");return0;}// Function to list all processesvoidListProcesses() { HANDLE hProcessSnap; PROCESSENTRY32 pe32; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (hProcessSnap == INVALID_HANDLE_VALUE) {printf("CreateToolhelp32Snapshot Errorn");return; } pe32.dwSize = sizeof(PROCESSENTRY32);if (!Process32First(hProcessSnap, &pe32)) {printf("Process32First Errorn"); CloseHandle(hProcessSnap);return; }do { _tprintf(TEXT("Process Name: %sn"), pe32.szExeFile); } while (Process32Next(hProcessSnap, &pe32)); CloseHandle(hProcessSnap);}// Function to check installed software via registryvoidCheckInstalledSoftware() { HKEY hKey; LONG result; TCHAR valueName[255]; DWORD valueNameSize = sizeof(valueName); DWORD index = 0; DWORD type; BYTE data[255]; DWORD dataSize = sizeof(data); result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"), 0, KEY_READ, &hKey);if (result != ERROR_SUCCESS) {printf("RegOpenKeyEx Errorn");return; }printf("Checking installed software...n");while (RegEnumValue(hKey, index, valueName, &valueNameSize, NULL, &type, data, &dataSize) == ERROR_SUCCESS) { _tprintf(TEXT("Installed Software: %sn"), valueName); index++; valueNameSize = sizeof(valueName); dataSize = sizeof(data); } RegCloseKey(hKey);}intmain() {int sandboxFlag = 0; sandboxFlag |= CheckUptime(); sandboxFlag |= CheckMouseMovement();printf("nListing Processes:n"); ListProcesses();printf("nInstalled Software:n"); CheckInstalledSoftware();if (sandboxFlag) {printf("nFinal Verdict: Potential Sandbox Environment Detected!n"); } else {printf("nFinal Verdict: Environment seems normal.n"); }return0;}
给出代码之后,ai还是提示给我们一些免杀的方法
当然了这种简单检测方法很容易被绕过。例如,攻击者可以修改虚拟机的MAC地址,或者分配更多的CPU核心。更可靠的方法是将多种检测技术结合起来。我们也可以继续提示这个ai,让他去生成包含更多检测项的代码。
结果与反思
通过AI的辅助,我们快速地获得了沙箱检测技术的代码框架。AI不仅提供了代码,还解释了其原理和局限性。这极大地提高了开发效率。
当然,AI生成的代码只是起点。这些只是基础检测方法,高级的沙箱可能会规避它们。需要不断研究新的检测技术(例如,检测特定的虚拟化指令、更复杂的行为分析),我们可以再次借助AI(或自己)来实现。直接的检测代码本身也可能被分析人员发现和绕过。可能需要结合代码混淆、反调试等技术,这方面也可以咨询AI获取一些思路或基础的实现方法。
深入学习与闭环
完成了初步的代码生成后,我们不应止步于此。应该去理解每种检测技术背后的原理:
-
• 为什么特定的MAC地址前缀指向虚拟机?(制造商分配的OUI) -
• 为什么低CPU核心数是可疑的?(资源限制) -
• 这些方法有哪些已知的绕过技巧?(修改配置、Hook API) -
• 如何让检测更难被发现?(间接检测、环境指纹计算)
我们可以继续向AI提问,让它解释这些原理,或者查找相关的技术文档和研究论文。例如,可以问AI:“如何让基于MAC地址的虚拟机检测更难被静态分析发现?”或者“除了硬件信息,还有哪些基于软件行为的沙箱检测方法?”
通过这种方式,利用AI不仅可以完成编码任务,还能促进对相关技术的深入理解,形成一个学习和实践的闭环。
结论
AI大模型在辅助编写如沙箱检测这类具有特定领域知识的代码时,展现出了巨大的潜力。它能够快速提供多种方案和代码框架,显著提升开发效率。然而,AI目前还不能完全替代专业的安全知识和经验。开发者仍需对AI生成的代码进行审查、测试、适配和完善,并深入理解其背后的原理和局限性。合理利用AI,把它当作一个强大的助手和知识引擎,可以让安全研究和开发工作事半功倍。
这里为师傅们提供了无问社区邀请链接地址:https://www.wwlib.cn/index.php/login/icode/ad758664d690ca65
,点击阅读原文
即可跳转
如果你对网络安全、红队攻防技术充满热情,渴望学习更多实战技巧,例如渗透测试、自动化脚本编写、免杀技术等, 欢迎关注我的公众号 “红队工坊”。 在这里,我会持续分享更多原创高质量的技术文章,与你一同探索网络安全的奥秘,提升实战技能! 让我们一起在队攻防的道路上,不断精进,突破边界!
免责声明: 本文仅供安全技术研究与学习交流之用。 严禁将本文所提及的技术用于任何非法用途,包括但不限于未经授权的渗透测试、网络攻击、恶意代码传播等。
原文始发于微信公众号(红队工坊):基于AI辅助探索:生成用于识别沙箱环境的代码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论