基于AI辅助探索:生成用于识别沙箱环境的代码

admin 2025年4月2日21:08:46评论3 views字数 4149阅读13分49秒阅读模式

前言

本文仅限技术研究与讨论,旨在探索利用AI加速安全相关代码开发的可能性,特别是沙箱检测技术。严禁用于非法用途,例如恶意软件开发或绕过合法安全检查,否则产生的一切后果自行承担。

最近在进行免杀开发时,常常需要判断程序是否运行在沙箱或虚拟机(VM)环境中。这些环境通常被分析人员用来安全地运行和研究未知软件。如果能检测到这种环境,程序可以采取不同的行为,例如拒绝运行、展示虚假行为或者提醒开发者。然而,编写可靠的沙箱检测代码相当复杂,需要了解多种技巧,而且沙箱本身也在不断进化以规避检测。感觉传统的手工编码和查阅资料效率不高,于是想尝试借助AI的力量来加速这个过程。

初步探索与挑战

首先想到的是,沙箱环境通常会在硬件、系统配置或行为上留下一些蛛丝马迹。比如,特定的硬件名称、MAC地址前缀、有限的CPU核心数、缺少真实的用户交互等等。但是,要覆盖所有这些点,并写出稳定、不易被绕过的代码,工作量巨大。

求助于AI

这时候,我想到了利用AI大模型来帮助生成代码片段。这里我使用无问社区AI,无问社区AI是一个专门帮助网络安全人员的大模型,解除了原本AI一些安全限制,非常适合用来编写一些免杀的代码(文末包含该ai的注册链接)。我的想法是,先让AI列出一些常见的检测思路,然后针对性地要求它生成具体的代码实现。

沙箱可收集的特征有哪些,尽量全面一些

基于AI辅助探索:生成用于识别沙箱环境的代码

继续提问:那为了识别当前环境是否为沙箱环境,我们需要收集哪些沙箱特征基于AI辅助探索:生成用于识别沙箱环境的代码

让他帮我写出具体的代码:那依据你提到的那些点帮我写一个c代码来对这些点的信息进行收集,编写一个可以用gcc编译的c代码

基于AI辅助探索:生成用于识别沙箱环境的代码

这里给出完整的代码

#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(&currentPoint);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还是提示给我们一些免杀的方法

基于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辅助探索:生成用于识别沙箱环境的代码

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月2日21:08:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于AI辅助探索:生成用于识别沙箱环境的代码https://cn-sec.com/archives/3907693.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息