标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-3378] 作者: ecawen 发表于: [2023-12-30]
本文共 [162] 位读者顶过
这个工具将从Google Chrome浏览器中提取Cookie,是一个.NET程序集,可以在C2中通过工具如PoshC2使用或CobaltStrike的命令。 [出自:jiwo.org]
用法只需将站点输入即可。 SharpCookieMonster.exe [https://sitename.com] [chrome-debugging-port] [user data dir]
复制
可选的第一个参数分隔chrome启动时最初连接的网站(默认为https://www.google.com)。 第二个可选参数指定用于启动chrome调试器的端口(默认为9142)。 最后,可选的第三个参数指定用户数据目录的路径,可以覆盖该路径以访问不同的配置文件(默认为%APPDATALOCAL%\ Google \ Chrome \ User Data)。 如您所见,它可用于提取session,httpOnly并通过C2传输cookie。它还已作为模块添加到PoshC2中,并设置了自动加载和别名功能,因此可以使用来简单地运行它sharpcookiemonster。 这也适用于CobaltStrike的,可以使用execute-assembly。 还值得注意的是,您不需要任何特权访问权限即可执行此操作,只需在存储会话的计算机上在该用户上下文中执行代码即可。 它是如何工作的?在后台,这是通过首先启动Google Chrome来实现的。我们首先枚举任何正在运行的chrome.exe进程以提取其镜像路径,但是如果失败,则默认为C:\ Program Files(x86)\ Google \ Chrome \ Application \ chrome.exe。然后,我们启动该可执行文件,设置适当的标志并将该进程的输出重定向到我们的stdout,以便即使在C2通道上运行它时也可以查看它是否出错。 该--headless标志意味着chrome.exe实际上将在没有任何用户界面的情况下运行,但可以使用其API进行交互。对于红队成员而言,这是完美的选择,因为它将仅作为另一个chrome.exe进程出现,而不会向用户显示任何内容。然后,通过--remote-debugging-port标记为此过程启用远程调试,然后使用将数据目录指向用户的现有数据目录--user-data-dir。 启动启动后,我们将检查进程是否正在运行,并等待调试器端口打开。 然后,我们可以在该端口上与API交互以获取websocket调试器URL。该URL允许程序通过websockets上的API与Chrome的devtools进行交互,从而为我们提供了这些devtools的全部功能。所有这些操作都是在受害人的计算机上本地完成的,因为该二进制文件正在运行,而无界面的Chrome进程正在运行。 然后,我们可以发出请求以检索该配置文件的缓存中的所有cookie,并将其返回给操作员。 编译如果您想自己构建二进制文件,只需克隆它并在Visual Studio中构建它即可。 该项目已设置为与.NET 3.5兼容,以便与安装较旧版本.NET的受害人兼容。但是,为了使用WebSockets与Chrome进行通信,添加了WebSocket4Net程序包。 如果要在C2上运行此命令(例如使用PoshC2的sharpcookiemonster命令或通过CobaltStrike的命令),请execute-assembly使用ILMerge将生成的可执行文件与依赖库合并。 例如,首先重命名原始二进制文件,然后运行: ILMerge.exe /targetplatform:"v2,C:\Windows\Microsoft.NET\Framework\v2.0.50727" /out:SharpCookieMonster.exe SharpCookieMonsterOriginal.exe WebSocket4Net.dll SuperSocket.ClientEngine.dll |