厚客戶端滲透測試實戰(三)
背景
歡迎來到本系列的第三部分,在本系列的第一部分,我們已經建立了測試環境,討論了信息收集的方法。在本系列的第二部分,我們討論了厚客戶端的流量分析。今天我們討論的是厚客戶端應用程序數據存儲問題。
註冊表內的敏感數據
註冊表內有敏感數據是出現在Windows桌面應用程序最常見的一個漏洞。開發人員通常使用註冊表作為他們的客戶端數據存儲的位置。
讓我們來分析DVTA,看看它有沒有任何敏感數據存儲在註冊表中。
regshot是一個流行的工具,用於分析註冊表的修改。該工具通過對比註冊表在程序運行前後的差異找出註冊表被修改的位置。
下載後運行regshot,點擊1stshot,保存DVTA啟動前註冊表的狀態。選擇HTML作為日誌輸出的格式。
第一份註冊錶快照保存之後,運行DVTA並登陸。使用的憑證是rebecca:rebecca。
登陸成功之後,我們看到如下界面。
現在點擊2nd shot保存DVTA運行後註冊表的狀態。
在第二個快照保存完畢之後,我們就可以開始對比了,點擊Compare按鈕。
程序會自動比較並輸出HTML文件。
我們發現了點有趣的東西,註冊表內添加了幾個項,清楚的記錄了用戶名,密碼,郵箱,登陸狀態。我們打開註冊表編輯器,導航到HKEY_CURRENT_USER|dvta,如下圖。
注意:本系列的第1部分中所示,我們還可以使用Process Monitor確定應用程序訪問的註冊表條目。n
得到資料庫憑證
二層架構中,客戶端使用預先存儲好的資料庫憑證來連接資料庫。憑證存儲的方式有兩種類型。
1、 明文連接字元串是硬編碼的,連接字元串可以在內存中看到。n2、 加密後的連接字元串是硬編碼的,可以在內存中看到未加密的字元串。n
DVTA是屬於第二類,現在我們先查看內存讀取未加密的字元串,會在後面的文章中討論如何手動解密字元串。
從內存中獲取連接字元串
我們使用一個叫做Process Hacker的工具,安裝好後運行Process Hacker,可以看到正在運行的DVTA。
選中DVTA.exe,然後右鍵選擇Properties。
會彈出一個窗口,切換到Memory選項卡,會顯示出內存中跟該程序有關的數據。
點擊Strings按鈕時,我們可以選擇要顯示的字元串的格式,如下圖。
我們先保持默認,點擊ok,然後會顯示出內存中與應用程序相關的字元串。我們可以點擊filter來過濾結果。
在本文的第一部分中,我們已經設置了資料庫的ip為192.168.56.110。我們可以用這個ip作為關鍵詞。
我們可以看到有包含這個ip的所有字元串,其中就有我們想要的資料庫連接字元串。
這就是我們得到的資料庫憑證:
資料庫名:DVTAn用戶名:san密碼:p@ssw0rdn
我們看到應用程序連接到資料庫的是「sa」,這是一個特權帳戶。這是我們應該注意另一個重要的安全問題:賬戶許可權最小化。
我們用這個憑證連接到資料庫看看。
我們可以看到資料庫DVTA下面的兩張表。
點擊dbo.users,我們看到了所有的用戶名和他們的密碼。
硬編碼的憑證
顧名思義,就是在程序的代碼裡面寫死了連接字元串。我們可以在github上的DVTA項目中的代碼裡面看到用於連接ftp的賬號和密碼。
如果我們沒有源代碼,我們可以使用.NET的反編譯工具來查看。我們會在後續的文章中探討這一做法。我們使用strings工具來查看可執行文件裡面的字元串。
結論
在本文中,我們已經學會了如何使用DVTA應用練習各種數據存儲問題,然後我們看到了如何分析內存敏感的數據,其次是硬編碼的問題。在下一篇文章中,我們將討論輸入驗證相關的漏洞。
註:本文參考來源於infosecinstitute
《厚客戶端的滲透測試》系列文章
第一篇:《如何搭建厚客戶端的滲透測試環境?》https://zhuanlan.zhihu.com/p/23512632
第二篇:《厚客戶端滲透測試實戰(二)》https://zhuanlan.zhihu.com/p/23489049
第三篇:《厚客戶端滲透測試實戰(三)》https://zhuanlan.zhihu.com/p/23352751
第四篇:《厚客戶端滲透測試實戰(四)》https://zhuanlan.zhihu.com/p/23247439
推薦閱讀:
※範例二:報價帶判讀術——針對大牛股的範例
※Active Directory攻防實驗室環境搭建教程(一)
※mysql-unsha1:在未知密碼情況下,登錄任意MYSQL資料庫
※用DLL文件黑掉遠程Windows PC
※工具推薦:22款最流行的計算機取證工具【2017年更新版】