免杀 | 反沙箱运行上线shellcode
2023-11-24 20:34:18 Author: F12sec(查看原文) 阅读量:32 收藏


申明:本次测试只作为学习用处,请勿未授权进行渗透测试,切勿用于其它用途!

1.漏洞背景

近期在进行免杀操作时,遭遇了些让人哭笑不得的难题。我费尽心思编写的代码,终于实现了零检出,但…

可就在我沾沾自喜时,微x监测系统却仍报告有毒。更头疼的是,连我的服务器IP地址也暴露了。

面对无奈,决定尝试Fuzzing技术。虽然程序绕过了传统杀毒软件,但沙箱监测却揭露了它的特征。现在的计划是,如果检测到运行在沙箱中,程序就不会执行。

时间检测:利用沙箱的限时运行特性,通过监测系统时间或延长执行来规避检测。

用户交互检测:寻找鼠标或键盘活动的迹象,无用户互动则可能处于沙箱环境。

环境检测:识别虚拟化软件的迹象,检查文件、进程、注册表,甚至硬件特征。

资源利用检测:观察系统程序、服务数量及CPU、内存使用,与沙箱环境的差异可能成为关键线索。

网络活动检测:分析IP地址和网络连接,判断是否在沙箱中。

硬件和系统配置检测:沙箱的硬件和系统配置可能与常规用户设备不同,这些差异可能被用来识别沙箱环境。

根据特征来fuzz

利用了Windows API的 GetTickCount64Sleep 函数。

  1. GetTickCount64调用

    • GetTickCount64 函数返回自系统启动以来的毫秒数。这是一个常用于测量时间间隔的函数。

  2. Sleep函数调用

    • Sleep(300u) 使程序暂停300毫秒。Sleep 函数用于暂停当前线程指定的毫秒数。

import ctypes
import time
 
# 定义所需的Windows API函数
GetTickCount64 = ctypes.windll.kernel32.GetTickCount64
Sleep = ctypes.windll.kernel32.Sleep
 
def is_sandbox():
    start_tick = GetTickCount64()
    Sleep(300)  # 暂停300毫秒
    end_tick = GetTickCount64()
    elapsed = end_tick - start_tick
 
    # 检查实际暂停时间是否显著小于预期时间
    # 这里我们检查时间差是否大于100毫秒
    return elapsed - 300 > 100
 
def execute_shellcode(shellcode):
    # shellcode执行的函数
    pass
 
def main():
    # 检测沙箱环境
    if is_sandbox():
        print("可能处于沙箱环境,不执行shellcode。")
    else:
        # 如果没有检测到沙箱,执行shellcode
         -----------------------------
         这里放loader
         -----------------------------
 
if __name__ == "__main__":
    main()

"在巧妙的is_sandbox函数中,我们运用了GetTickCount64Sleep来巧妙地评估程序的运行环境是否被人为加速。当发现实际的暂停时间显著低于预期时,我们便推断该程序可能处于沙箱环境中。基于这样的检测结果,main函数会慎重地决定是否执行shellcode。

这里仅展示了一个示例。由于沙箱技术不断演进,加上系统性能的变数可能会影响计时函数的准确性,这种方法有可能出现误报或漏报。因此,强调始终在合法和安全的环境下对你的代码进行测试。

随信附上图示,祝各位专家在杀毒软件的世界中驰骋无阻。


—————————————————————
  • 往期精彩推荐

❤️爱心三连击

1.关注公众号「明暗安全」

2.本文已收录在明暗官方网站:http://www.php1nf0.top/

3.看到这里了就点个关注支持下吧,你的「关注」是我创作的动力。

公众号:明暗安全

官方网站:http://www.php1nf0.top/

这是一个终身学习的团队,他们在坚持自己热爱的事情,欢迎加入明暗安全,和师傅们一起开心的挖洞~

        关注和转发是莫大鼓励❤️


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5NjU3NzE3OQ==&mid=2247488763&idx=1&sn=a28cb357413101e5d5d3dcaa709cb6d2&chksm=c07faf0ff70826194d5ba1837d72b882cee0be66b79f7ad3bcf19df1bc1f4f7bff0e9cab2f0c&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh