【知了堂信安筆記】MSSQL日誌分析

文章來源:知了堂信息安全項目經理馮老師

【知了堂信安筆記】MSSQL日誌分析

常見的數據庫攻擊包括弱口令、SQL注入、提升權限、竊取備份等。對數據庫日誌進行分析,可以發現攻擊行為,進一步還原攻擊場景及追溯攻擊源。

0x01 MSSQL日誌分析

首先,MSSQL數據庫應啟用日誌記錄功能,默認配置僅限失敗的登錄,需修改為失敗和成功的登錄,這樣就可以對用戶登錄進行審核。

【知了堂信安筆記】MSSQL日誌分析

登錄到SQL Server Management Studio,依次點擊 管理--SQL Server 日誌

【知了堂信安筆記】MSSQL日誌分析

雙擊日誌存檔文件即可打開日誌文件查看器,並可以對日誌進行篩選或者導出等操作。

【知了堂信安筆記】MSSQL日誌分析

另外,MSSQ提供了一個工具SQL Server Profiler ,方便查找和發現SQL執行的效率和語句問題。

【知了堂信安筆記】MSSQL日誌分析

日誌分析案例:

在日誌文件查看器中,選擇篩選,在篩選設置中源設置為“登錄”,應用篩選器,確定。

【知了堂信安筆記】MSSQL日誌分析

篩選後的結果,可以很清晰的識別用戶登錄信息,記錄內容包括用戶登錄時間、登錄是否成功、登錄使用的賬號以及遠程登錄時用戶使用的IP地址。

如下圖:客戶端:192.168.204.1進行嘗試弱口令登錄,並發現其中有一條登錄成功的記錄。

【知了堂信安筆記】MSSQL日誌分析

0x02 SQL注入入侵痕跡

在利用SQL注入漏洞的過程中,我們會嘗試利用sqlmap的--os-shell參數取得shell,如操作不慎,可能留下一些sqlmap創建的臨時表和自定義函數。我們先來看一下sqlmap os-shell參數的用法以及原理:

1、構造一個SQL注入點,開啟Burp監聽8080端口

sqlmap.py -u http://192.168.204.164/sql.asp?id=1 --os-shell --proxy=http://127.0.0.1:8080

HTTP通訊過程如下:


創建了一個臨時表sqlmapoutput,調用存儲過程執行系統命令將數據寫入臨時表,然後取臨時表中的數據展示到前端。

通過查看數據庫中最近新建的表的結構和內容,可以判斷是否發生過sql注入漏洞攻擊事件。

檢查方法:

1、數據庫表檢查


2、檢查xp_cmdshell等存儲過程

xp_cmdshell在mssql2005之後的版本中是默認禁止的,查看xp_cmdshell是否被啟用。

`Exec master.dbo.xp_cmdshell 'whoami'

3、需要結合web日誌,通過查看日誌文件的大小以及審計日誌文件中的內容,可以判斷是否發生過sql注入漏洞攻擊事件。

【知了堂信安筆記】MSSQL日誌分析



分享到:


相關文章: