在红队渗透测试中,信息收集是最重要的初期阶段之一。通过精确地获取目标系统上的信息,红队能够识别潜在的攻击路径,并为后续的攻击提供有价值的数据。本文将探讨通过钩子实现的记录器在内网渗透中的应用,以及如何通过开发和利用记录器工具,收集关键数据。我们将重点分析其在红队渗透阶段的实际使用场景,并探讨其技术实现方法。
钩子(Hook)是一种 Windows 操作内置的监控和拦截机制,通过程序拦截和处理操作系统或应用程序中的特定事件或消息,钩子通常用于监视和修改系统行为,可以获取或改变事件流,而无需直接修改目标程序的源代码。在系统中,钩子可以用于监控键盘、鼠标、窗口消息等各种系统事件。
1.1 原理和类型
3. 事件传递:钩子回调函数可以决定是否将事件传递给下一个钩子,主要通过 CallNextHookEx函数实现。如果钩子不调用 CallNextHookEx,则后续钩子或系统的默认处理程序将不会收到该事件。
4. 卸载钩子:钩子完成任务后,通过调用 UnhookWindowsHookEx 函数卸载钩子,释放资源。
1.2 SetWindwsHookEx
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError =true)]privatestaticexternIntPtrSetWindowsHookEx(int idHook,Program.LowLevelKeyboardProc lpfn,IntPtr hMod,uint dwThreadId);
1.3 CallNextHookEx
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError =true)]privatestaticexternIntPtrCallNextHookEx(IntPtr hhk,int nCode,IntPtr wParam,IntPtr lParam);
下面这段代码实现了一个键盘钩子,它会监听所有键盘按键事件,并将按下的键记录到文件。记录过程中会排除 Caps Lock 和 Backspace 键。
首先, 定义了一个 键盘钩子回调函数。_proc 是一个委托,指向 HookCallback 方法,将用作钩子的回调。
privatestaticProgram.LowLevelKeyboardProc _proc =newProgram.LowLevelKeyboardProc(Program.HookCallback);
接着,定义了一个静态变量 _hookID 来存储钩子句柄。钩子句柄是设置钩子时操作系统返回的一个值,用于卸载钩子或后续操作。
privatestaticIntPtr _hookID = IntPtr.Zero;privatedelegateIntPtrLowLevelKeyboardProc(int nCode,IntPtr wParam,IntPtr lParam);
并且,定义了低级键盘钩子的回调签名。此处的 LowLevelKeyboardProc 会处理按键事件。
随后,定义一个 SetHook 方法设置钩子。通过调用 Windows API 函数 SetWindowsHookEx 来安装钩子,具体的代码如下所示。
privatestaticIntPtrSetHook(Program.LowLevelKeyboardProc proc){IntPtr result;using(Process curProcess = Process.GetCurrentProcess()){using(ProcessModule curModule = curProcess.MainModule){ result = Program.SetWindowsHookEx(13, proc, Program.GetModuleHandle(curModule.ModuleName),0U);}}return result;}
此处的 proc 是回调函数,就是自定义的 HookCallback 函数,它会在键盘事件发生时被调用,GetModuleHandle(curModule.ModuleName) 方法获取当前进程的模块句柄,用于指定钩子所在的 当前进程,0U 代表钩子应用于所有的Windows进程。
Sharp4KeyLoger.exe
,用户可以通过点击界面上的“生成键盘记录EXE”按钮生成一个带有 .exe
扩展名的二进制文件,例如 key.exe
。这个二进制文件包含了键盘记录的核心功能,如下图所示。key.exe
文件并不是临时的,而是设计成能够在系统重新启动后依然能够自动运行。当攻击者双击运行生成的 key.exe
文件时,它会将自己复制到系统的启动目录下,如下所示。C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
从而确保系统重启后仍会自动启动并继续记录键盘输入,如下图所示。
键盘记录的内容会被存储在
目录下的 C:UsersPublicDocuments
ShadowLog.txt
文件中。该文件记录了用户输入的每个按键,允许攻击者查看用户的输入内容,包括敏感数据如用户名和密码。由于该文件位于公共目录下,通常不会引起用户的注意,记录的内容如下图所示。
综
上,Sharp4KeyLoger.exe
是一款专为收集用户输入敏感数据设计的键盘记录工具。通过生成并运行一个二进制文件,在系统后台悄无声息地记录所有的键盘输入信息。该工具可用于渗透测试、红队活动以及信息收集,但也带来了明显的安全风险。文章涉及的工具已打包在星球,感兴趣的朋友可以加入自取。从漏洞分析到安全攻防,我们涵盖了 .NET 安全各个关键方面,为您呈现最新、最全面的 .NET 安全知识,下面是公众号发布的精华文章集合,推荐大伙阅读!
20+专栏文章
海量资源和工具
专属成员交流群
已入驻的大咖们
欢迎加入我们
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...