freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用Hunt-Sleeping-Beacons识别休眠的Beacon
2022-06-30 23:28:11
所属地 广西

关于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。

工具下载

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

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

工具使用

不基于文件的Beacon样例

[!] 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样例

[!] 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内联钩子休眠

[!] 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

项目地址

Hunt-Sleeping-Beacons:【GitHub传送门

参考资料

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

# Beacon # 信标识别
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录