前言
"大妹子"跟我说环境坏了搞不了了?事实上不影响,一般情况下我们的正常思维就是处理好问题或者恢复环境再继续,但是这个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然后再选择提权也是可以的,此时的提权也是相对来说比较多,内核提权也是有可能的。