前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Hunt-Sleeping-Beacons识别休眠的Beacon

如何使用Hunt-Sleeping-Beacons识别休眠的Beacon

作者头像
FB客服
发布2023-03-30 19:15:48
4560
发布2023-03-30 19:15:48
举报
文章被收录于专栏:FreeBuf

 关于Hunt-Sleeping-Beacons 

Hunt-Sleeping-Beacons项目的主要功能是帮助广大研究人员在运行时或其他正在运行进程的上下文场景中识别休眠的Beacon。为了实现这个目标,我们通过观察发现,Beacon会在回调过程中尝试调用sleep函数。在调用sleep的过程中,会将线程的状态设置为“DelayExecution”,而我们就可以将其作为第一个指标来识别线程是否在执行某个Beacon。

将所有状态为“DelayExecution”的线程全部枚举出来之后,我们就可以通过多种度量指标来识别潜在的休眠Beacon了。

 度量指标 

1、如果Beacon不使用基于文件的内存,那么NtDelayExecution的调用堆栈将包含无法与磁盘上的文件关联的内存区域; 2、如果Beacon使用了模块Stomping技术,则修改NtDelayExecution调用堆栈中的一个模块; 3、通过枚举标记为私有(非共享)存储的内存区域,可以对睡眠的内联钩子进行指纹识别; 4、由于Beacon等待命令的时间比实际执行代码的时间要长,因此可以通过比较SYSTEM_THREAD_INFORMATION的KernelTime和UserTime字段来对其进行指纹识别;

为了减少误报率,我们只考虑使用wininet.dll或winhttp.dll。

 工具下载 

广大研究人员可以使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
git clone https://github.com/thefLink/Hunt-Sleeping-Beacons.git

 工具使用 

不基于文件的Beacon样例

代码语言:javascript
复制
[!] Suspicious Process: PhantomDllHollower.exe
 
        [*] Thread (9192) has State: DelayExecution and abnormal calltrace:
 
                NtDelayExecution -> C:\WINDOWS\SYSTEM32\ntdll.dll
                SleepEx -> C:\WINDOWS\System32\KERNELBASE.dll
                0x00007FF8C13A103F -> Unknown or modified module
                0x000001E3C3F48FD0 -> Unknown or modified module
                0x00007FF700000000 -> Unknown or modified module
                0x00007FF7C00000BB -> Unknown or modified module
 
        [*] Suspicious Sleep() found
        [*] Sleep Time: 600s

使用了模块Stomping的Beacon样例

代码语言:javascript
复制
[!] Suspicious Process: beacon.exe (5296)
 
       [*] Thread (2968) has State: DelayExecution and uses potentially stomped module
       [*] Potentially stomped module: C:\Windows\SYSTEM32\xpsservices.dll
 
               NtDelayExecution -> C:\Windows\SYSTEM32\ntdll.dll
               SleepEx -> C:\Windows\System32\KERNELBASE.dll
               DllGetClassObject -> C:\Windows\SYSTEM32\xpsservices.dll
 
       [*] Suspicious Sleep() found
       [*] Sleep Time: 5s

Beacon内联钩子休眠

代码语言:javascript
复制
[!] Suspicious Process: ThreadStackSpoofer.exe (4876). Potentially hooked Sleep / Modifies Kernel32.dll
通过对比KernelTime和UserTime来识别常见Beacon行为
[!] Suspicious Process: ThreadStackSpoofer.exe (4876). Thread 1132 has state DelayExecution and spends 94% of the time in usermode

项目地址

https://github.com/thefLink/Hunt-Sleeping-Beacons

参考资料

https://github.com/mgeeky/ThreadStackSpoofer https://github.com/waldo-irc/YouMayPasser/blob/master/Lockd/Lockd/Sleep.cpp https://twitter.com/_forrestorr https://twitter.com/waldoirc https://www.forrest-orr.net/post/malicious-memory-artifacts-part-i-dll-hollowing

精彩推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  关于Hunt-Sleeping-Beacons 
  •  度量指标 
  •  工具下载 
  •  工具使用 
    • 不基于文件的Beacon样例
      • 使用了模块Stomping的Beacon样例
        • Beacon内联钩子休眠
        • 项目地址
        • 参考资料
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档