8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png
提取Chrome中Cookie工具分享
aiyun 2020-3-5

这个工具将从Google Chrome浏览器中提取Cookie,是一个.NET程序集,可以在C2中通过工具如PoshC2使用或CobaltStrike的命令。run-exe execute-assembly

项目地址是SharpCookieMonster

用法

只需将站点输入即可。

SharpCookieMonster.exe [https://sitename.com] [chrome-debugging-port] [user data dir]

可选的第一个参数分隔chrome启动时最初连接的网站(默认为https://www.google.com)。

第二个可选参数指定用于启动chrome调试器的端口(默认为9142)。

最后,可选的第三个参数指定用户数据目录的路径,可以覆盖该路径以访问不同的配置文件(默认为%APPDATALOCAL%\ Google \ Chrome \ User Data)。

img

img

如您所见,它可用于提取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

img

启动

启动后,我们将检查进程是否正在运行,并等待调试器端口打开。

然后,我们可以在该端口上与API交互以获取websocket调试器URL。该URL允许程序通过websockets上的API与Chrome的devtools进行交互,从而为我们提供了这些devtools的全部功能。所有这些操作都是在受害人的计算机上本地完成的,因为该二进制文件正在运行,而无界面的Chrome进程正在运行。

img

然后,我们可以发出请求以检索该配置文件的缓存中的所有cookie,并将其返回给操作员。

编译

如果您想自己构建二进制文件,只需克隆它并在Visual Studio中构建它即可。

该项目已设置为与.NET 3.5兼容,以便与安装较旧版本.NET的受害人兼容。但是,为了使用WebSockets与Chrome进行通信,添加了WebSocket4Net程序包。

如果要在C2上运行此命令(例如使用PoshC2sharpcookiemonster命令或通过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

*参考来源:jmpesp

转载至freebuf网站:freebuf

最新回复 (0)
    • Ai云
      2
        立即登录 立即注册
返回