[猥瑣姿勢]利用MySQL的root賬號從而快速GetShell
01-28
*本文注重分享,切勿用作非法用途
今天給大家介紹通過mysql的root賬號來get shell的猥瑣方法,寫的不是很詳細,但圖配了不少,大家應該是會看得懂了今天的場景是前一周在內網滲透的時候遇到過的,找到一個mysql資料庫弱口令。
賬號和密碼分別是root,也就是mysql中的dba。這裡其實許可權很大了,首先mysql的root用戶具有文件寫許可權,同時mysql5.0以上,提供一個system函數,而這個函數通常被攻擊者用作shell的介面。
那時在遇到這個弱口令時,我就在想怎樣快速的拿下這台主機,通過mysql的root賬號。是否有比較快速的方法,這時候,我當然想到了sqlmap。經過查詢github上的文檔,我發現了這樣的參數環境: 兩台機器,一台是kali linux,作為mysql伺服器,開放ssh服務以及mysql服務,ip地址為192.168.80.128;另外一台是ubuntu,作為攻擊主機,安裝有nmap,sqlmap,ip地址為192.168.80.129。1. 首先我們對nmap掃描一下常見埠。nmap -A -n -T3 192.168.80.128n
我們先來看一下Github上的sqlmap文檔(ClickMe):
我們可以看到這是一個"-d"選項,用法在For example有整一個的語法為:" DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME" 或者是"DBMS://DATABASE_FILEPATH"。
[1]dbms:代表所使用的資料庫,如我們這裡是mysql [2]user:對應我們資料庫的用戶,如我們這裡是root [3]password:對應我們數據的密碼,如我的伺服器為3erver [4]dbma_IP:資料庫伺服器對應的ip地址,如我這裡為192.168.80.128 [5]dbms_PORT:數據伺服器所使用的埠,不能省略。默認我們寫3306 [6]database_NAME:你要使用的資料庫名,因為mysql一般會有test資料庫,如我這裡使用test。假如沒有test,我們可以自己使用create database test;創建一個4. 下面我們開始利用,伺服器上我首先以root身份運行mysql資料庫。看看會發生什麼事情。在Mysql中,以什麼身份運行資料庫,會在/etc/mysql/my.cnf這個配置文件設置。所以下面我將用戶mysqld節點中的user修改為root。如下圖:我們通過查看進程,可以看到在服務啟動的時候,mysqld已經帶上--user=root這個選項了。現在我開始根據sqlmap的選項在kali裡面對mysql伺服器進行連接。sqlmap -d "mysql://root:3erver@192.168.80.128:3306/test" -f
上面-f參數是列印mysql伺服器的版本信息,如下圖:我們之後將-f參數更換成--os-shell參數:之後sqlmap會讓我們選擇伺服器的位數,要是你不知道就猜一個,反正兩個選項,不是32位就是64位我這裡選擇64位(看大家計算機而定),然後系統就會替我們上傳對應位數的動態鏈接庫文件,這個文件提供system函數以便我們可以執行系統命令:當我們輸入whoami命令時候,系統會詢問我們是否返回命令的輸出,我們這裡選擇"a",代表總是返回命令的輸出。可以看到這裡可以獲取到許可權與我們運行mysql伺服器用戶許可權一致,也就是說我們這裡獲取root許可權所有,比如查看/etc/passwd,nc反彈shell、添加用戶等ifconfig信息:查看/etc/passwd文件:nc反彈shell(1)執行nc,在Mysql伺服器上2333埠進行監聽(2)我們查看我們攻擊機的ip,可以看到的確是192.168.80.129。
我們使用ncat 192.168.80.128 2333 來進行連接反彈shell*到這裡,我們已經將怎樣快速利用一個mysql的root賬號來獲取系統許可權的過程演示完畢 。//文章首發於I春秋社區,原文:[猥瑣姿勢]利用MySQL的Root賬號從而快速GetShell_網站安全_i春秋社區-分享你的技術,為安全加點溫度
//Author:W3bSafe安全團隊--黑子
知乎整理:W3bSafe安全團隊--黑色毛衣
推薦閱讀: