前言
"大妹子"跟我说环境坏了搞不了了?事实上不影响,一般情况下我们的正常思维就是处理好问题或者恢复环境再继续,但是这个ICA1就比较有意思,,,,,

环境搭建
name:ICA1
攻击机kali:192.168.0.101
靶机ip:192.168.0.105

信息搜集
端口扫描
nmap -A -p- 192.168.0.105

22端口,80端口web服务,3306mysql端口,33060端口

使用msf查找一下该cms可以利用的漏洞有哪些

9.2的版本能够利用的只有未授权的密码泄露,查询之后发现和扫描目录看到的配置文件的内容是一致的。
目录扫描,这里我没有使用kali的字典,能够访问的目录文件不多,但是明确有内容的是install
、template
和core
目录

在install目录可以重新安装能进数据库,所以3306端口开放但是爆破不出密码也是正常的。template目录下可以看到

有个sh文件,但是目前为止不知道有什么用,但是可执行文件可能跟后期的提权有关(猜测)

这里以为可以直接重置数据库,但是并不能行

有配置文件

数据库的用户名以及密码为qdpmadmin/
UcVQCMQk2STVeS6J

这里说啥都不要用工具连数据库,连到si都连不上,原因是因为mysql版本8.0不支持大小写,网上百度一波,连接依旧没连上,但是确实mysql密码已经修改了
命令操作吧
mysql -uqdpmadmin -h 192.168.0.105 -pUcVQCMQk2STVeS6J

linux系统明确区分大小写,重新尝试一下
查看mysql数据库中可以看到password的格式

为了使用nativate连接,修改 user 表中的密码规则,回到mysql5.7的密码验证格式
修改密码规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
刷新数据库
FLUSH PRIVILEGES;

还是连不上可视化数据库。使用qdpm数据库查表,user表为空,有数据的只有configuration
use qdpm;
show tables;
select * from configuration;

这里有我们想要的web界面的账号密码,但是我们并不知道密码是什么,因为不清楚加密方式,并且爆破还是没有结果,继续查找有没有其它可用信息,在使用数据库staff
的时候
use staff;
show tables;
select * from department;
select * from login;
select * from user;

base64解密password

直接登录不行,密码不正确,ssh爆破
hydra -L user.txt -P password.txt ssh://192.168.0.101

travis : DJceVy98W28Y7wLg
dexter:7ZwV4qtg42cmUXGX
这里因为重启了靶机,ip是dhcp自动获取的,所以改变了。因为前面的操作改变了mysql8.0的数据规则,数据交互产生问题了,web服务直接500了,大妹子就是在这一步说“坏掉了”。

确实也给整吐了,这也不是最恶心的,用户名数据库中是大写的,实际登录的时候用户名是小写的。ssh登录
ssh travis@192.168.0.101
ls
cat user.txt

提权
起初我以为是使用find提权
find / -perm -u=s -type f 2>/dev/null

find /opt/get_access -exec "whoami" \;

但是并不能提权成功,用户权限还是travis
,登录另一个用户也没提示,sudo -l
也没有什么root权限的相关提示。
接下来的垂直提权也是需要点儿运气和脑洞了
/opt/get_access
比较另类,查一下文件类型

二进制文件,查询一下是否存在root字符
grep -a 'root' /opt/get_access

查询可打印字符串

想办法调用这个文件的时候执行cat,在临时目录下创建cat
文件,内容写入/bin/bash
,
echo '/bin/bash' > /tmp/cat
这里cat
只能当作文件,且赋予cat
执行权限才能提权成功,正常情况下我们默认cat为命令,所以这里就是因为cat作为可执行文件去执行
将其添加到环境变量中
export PATH=/tmp:$PATH
echo $PATH
执行二进制文件,调用cat
执行/bin/bash

flag在根目录,但是cat命令无法读取,黑名单,绕过就行,方式有很多

总结
这个靶机其实还有多种解法,在拿到数据库密码的时候使用命令登入数据库,可以选择自己本机搭建该cms,使用mysql语句修改web应用的密码是可以登录后台的,在后台传入shell然后再选择提权也是可以的,此时的提权也是相对来说比较多,内核提权也是有可能的。