Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Hunt-Sleeping-Beacons — 一种调用栈扫描器,通过分析线程空闲行为、无后备内存、模块踩踏、APC、定时器和返回地址欺骗,识别解包或注入的C2代理的入侵指标。 | Kitploit
工具/GitHubGitHub/theflink/hunt-sleeping-beacons
防御工具内存取证取证分析恶意软件分析二进制分析事件响应
GitHubtheflink/hunt-sleeping-beacons

Hunt-Sleeping-Beacons

一种调用栈扫描器,通过分析线程空闲行为、无后备内存、模块踩踏、APC、定时器和返回地址欺骗,识别解包或注入的C2代理的入侵指标。

查看仓库
6786437个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Hunt-Sleeping-Beacons

本项目(主要)是一个调用栈扫描器,旨在识别指示未打包或注入的C2代理的IOC。

所有检查基于以下观察:C2代理在回调之间等待,导致信标线程空闲,而此工具旨在分析可能导致线程空闲的原因。

这包括传统的IOC,如未备份的内存或被篡改的模块,但也尝试检测使用APC或定时器实现的多种睡眠掩码。后者通过两种方式完成:分析调用栈,以及从用户态枚举定时器及其确切回调。

(几乎)没有哪个IOC可以被认为是100%的真正例,例如模块篡改检测极易产生误报。尽管如此,结果可能会引起对进程行为的怀疑。

DotNet和32位二进制文件被忽略。

x

检查项

未备份内存

调用栈中的私有R(W)X页面可能表示信标在运行时被解包或注入。

不可执行内存

多种睡眠掩码会将信标页面的页权限更改为不可执行。这导致调用栈中出现可疑的不可执行页面。

模块篡改

通常,信标通过加载并覆盖磁盘上的合法模块来避免私有内存页面。 借助“写时复制”机制,可以通过检查MEMORY_WORKING_SET_EX_INFORMATION结构体的VirtualAttributes.SharedOriginal字段来识别被篡改的镜像。如果调用栈中的任何页面不是私有的且SharedOriginal == 0,则被视为IOC。

这可能是最容易产生误报的检测。:'(

可疑的APC

多种睡眠掩码实现会向Ntdll!NtContinue排队一系列APC,其中有一个APC触发Ntdll!WaitForSingleObject的执行。因此,如果在阻塞函数的调用栈中发现Ntdll!KiUserApcDispatcher,此工具将其视为IOC。

可疑的定时器

与APC的可疑使用类似,此工具还会检查阻塞函数调用栈中是否存在ntdll!RtlpTpTimerCallback,以检测基于定时器的睡眠掩码。

枚举定时器和回调

据我所知,定时器是基于线程池实现的。正如Alon Leviev所演示的,可以使用NtQueryInformationWorkerFactory并传入WorkerFactoryBasicInformation来枚举它们。

WORKER_FACTORY_BASIC_INFORMATION结构体包含一个FULL_TP_POOL,该池又链接到一个TimerQueue双向链表。遍历该PFULL_TP_TIMER列表可以访问每个已注册的回调。如果发现任何回调指向一组可疑的API调用,例如ntdll!ntcontinue,则可以视为强IOC。

x

异常的模块间调用(模块代理)

最初,模块代理被引入作为一种绕过可疑调用栈的方法。 虽然绕过有效,但它引入了另一种强IOC,因为NTAPI被用来调用WINAPI。这很奇怪,因为WINAPI是NTAPI的抽象。因此,如果观察到调用栈中存在ntdll.dll->kernel32.dll->ntdll.dll的序列,并最终调用一个阻塞函数,则可以视为IOC。

返回地址欺骗

据我所知,大多数返回地址欺骗实现使用一种技术,即被调用函数返回到一个jmp [非易失性寄存器] gadget。本项目简单地遍历调用栈中的每个返回地址,并搜索指示返回到jmp gadget的模式。

x

使用方法

root@kitploit:~
 _   _    _____   ______
| | | |  /  ___|  | ___ \
| |_| |  \ `--.   | |_/ /
|  _  |   `--. \  | ___ \
| | | |  /\__/ /  | |_/ /
\_| |_/  \____/   \____/

Hunt-Sleeping-Beacons | @thefLinkk

-p / --pid {PID}

--dotnet | 设置为包含dotnet进程。(容易产生误报)
--commandline | 启用可疑进程的命令行输出
-h / --help | 打印此消息?

致谢

  • https://urien.gitbook.io/diago-lima/a-deep-dive-into-exploiting-windows-thread-pools/attacking-timer-queues
  • https://github.com/mrexodia/phnt-single-header
  • https://github.com/SafeBreach-Labs/PoolParty
  • https://github.com/bshoshany/thread-pool
下载工具